JP4905255B2 - Ioアダプタとそのデータ転送方法 - Google Patents

Ioアダプタとそのデータ転送方法 Download PDF

Info

Publication number
JP4905255B2
JP4905255B2 JP2007146429A JP2007146429A JP4905255B2 JP 4905255 B2 JP4905255 B2 JP 4905255B2 JP 2007146429 A JP2007146429 A JP 2007146429A JP 2007146429 A JP2007146429 A JP 2007146429A JP 4905255 B2 JP4905255 B2 JP 4905255B2
Authority
JP
Japan
Prior art keywords
descriptor
interface
ring
encapsulated
information
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.)
Expired - Fee Related
Application number
JP2007146429A
Other languages
English (en)
Other versions
JP2008165724A (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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2007146429A priority Critical patent/JP4905255B2/ja
Priority to US11/831,097 priority patent/US7827331B2/en
Publication of JP2008165724A publication Critical patent/JP2008165724A/ja
Application granted granted Critical
Publication of JP4905255B2 publication Critical patent/JP4905255B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Description

本発明は、サーバ装置、ストレージ装置、ネットワークスイッチ装置等に代表される情報プラットフォーム装置に搭載されるIOアダプタのデータ転送技術に関して、特に任意のプロトコルをカプセル化して装置間でデータ通信を行うカプセル化インターフェース技術に対して、複数のカプセル化インターフェースの帯域制御に有効な技術に関するものである。
インターネットサイトに代表されるITシステムでは、システムを構成するサーバ装置、ストレージ装置、クライアント端末等を相互に接続し、様々なプロトコルを用いてデータ通信が行われる。プロトコルの例としては、イーサーネット、ファイバーチャネル、InfiniBandなどがある。このようなデータ通信では、互いに通信を行う各装置にプロトコル専用のIOアダプタを搭載し、IOアダプタの入出力ポート同士をバックプレーンやケーブルで互いに接続する。また、多数の装置を接続する場合には、プロトコル専用のIOスイッチを数段経由して接続する。装置上で動作するアプリケーションプログラムがデータ転送を行う場合は、一般的に装置上で稼動するオペレーションシステム上のプロトコル専用のIOドライバのアプリケーションプログラムインターフェースを用いる。例えば、イーサネットプロトコルの場合は、装置にIOアダプタとしてネットワークインターフェースカード(NIC)を搭載し、IOスイッチとしてイーサーネットスイッチを用い、相互接続用ケーブルとしてはツイストペアケーブルを用いる。またアプリケーションプログラムは、オペレーションシステム上で動作するNICドライバによりデータ通信を行うことができる。このような装置間の通信に用いられるIOアダプタは、一般的に通信性能の向上のためDMA(Direct Memory Access)転送方式が用いられる。DMA転送は、IOアダプタがCPU(Central Processing Unit)を介さずに直接主記憶メモリにアクセスして、データ転送を行う転送方法である。DMA転送を用いるとCPUを使用しないでデータ転送ができるためデータ転送が高速化されるとともに、CPU側にもデータ転送の処理の負荷がかからないという利点がある。
従来のDMA転送を用いた帯域制御技術としては、IOアダプタ部にタイマーカウンタを持ち設定された帯域を満たす間だけDMAエンジンを有効にするという方法が用いられる。なお、この種のデータ転送装置については、特許文献1に記載されている。
近年装置間の通信に用いられるIOインターフェースは、シリアル転送が主流になり物理配線当たりの転送帯域の大容量化が進んでいる。一方、サーバ装置等の装置に搭載されるプロセッサは、マルチコア化によりプロセッサチップ当たりの処理性能が向上している。このため1つのプロセッサチップに複数のアプリケーションプログラムを動作させて用いる使い方が増えている。このように物理配線当たりの転送帯域容量と1プロセッサチップ当たりの処理性能は増加するが、1プロセッサ当たりのI/O物理配線数は増加しない。このため1つの物理配線を論理的に分割し複数のアプリケーションプログラムで共有する必要がある。1つの物理配線を論理的に分割する技術としては、ベースとなるインターフェースに任意のプロトコルをカプセル化して転送するカプセル化インターフェース技術がある。このようなインターフェースとしては、例えばInfiniBandやPCI Express Advanced Switching Interconnectがある。このカプセル化インターフェースをアプリケーションプログラム毎に割り当てることで、1つの物理配線を複数のアプリケーションプログラムで共有して使用することができる。
特開2002−183078号公報
ところが、従来のカプセル化インターフェース技術では、次のような問題点があることが本発明者により見い出された。カプセル化インターフェース技術に対して、上記のようなDMA転送を用いた帯域制御技術を適用する場合はDMAエンジン単位の帯域制御しかできないため、カプセル化インターフェース毎に帯域制御を行うことができないという課題がある。このため、カプセル化インターフェースをアプリケーションプログラム毎に割り当てても、アプリケーションプログラムに必要な通信帯域を保証することができないという問題が生じる。
そこで本発明では、IOアダプタに構成される複数のカプセル化インターフェースがDMAエンジンを共有していても、それらカプセル化インターフェース毎の帯域を制御するIOアダプタ、およびそのデータ転送方法を提供することを目的とする。
本願で開示する発明の代表的実施例に従えば、1個以上のDMAエンジンと1個以上のディスクリプタ制御部を持ち、主記憶メモリに前記ディスクリプタ制御部に対応したディスクリプタを保持するためのリングバッファであるディスクリプタリングを形成し、前記DMAエンジンを用いてデータ通信を行うための任意の通信プロトコルをカプセル化したインターフェースであるカプセル化インターフェースを1つ以上構成して、データ通信を行う機能を持ち、かつ情報処理装置を管理する管理ソフトウェアからIOアダプタの設定を行うための管理インターフェースを持つIOアダプタであって、前記IOアダプタのドライバであるIOドライバ部に、前記カプセル化インターフェースの情報として少なくとも、前記カプセル化インターフェースを識別するためのカプセル化インターフェース識別子と、前記カプセル化インターフェースが使用する帯域情報とを持つカプセル化インターフェース情報テーブルと、前記ディスクリプタリングの情報として少なくともディスクリプタリングを使用する前記カプセル化インターフェース毎に所定のサイクル時間あたりに消費するディスクリプタのエントリ数を持つリング予約情報テーブルと、前記管理ソフトウェアからの前記カプセル化インターフェースの生成要求時に、前記IOアダプタが接続されたネットワーク内で一意なカプセル化インターフェース識別子を生成し、該カプセル化インターフェース識別子と設定する帯域情報とを前記カプセル化インターフェース情報テーブルに保存するカプセル化インターフェース情報テーブル設定手段と、アプリケーションプログラムからのデータ転送要求時に、データ転送用の制御情報や転送するデータのアドレス情報が書かれたディスクリプタを生成し、アプリケーションプログラムからカプセル化インターフェース識別子を受け取り、前記カプセル化インターフェース識別子に対応した帯域情報をカプセル化インターフェース情報テーブルから取得し、前記帯域情報に基づき帯域を制限するために一定時間毎に転送するデータサイズ毎に作成した前記ディスクリプタを1個以上のディスクリプタグループに分けるディスクリプタ生成手段と、前記アプリケーションプログラムからのデータ転送要求時に、前記リング予約情報テーブルを参照し前記ディスクリプタリングの空き状況を確認し該データ転送が可能な前記ディスクリプタリングを選択し、該データ転送で使用する前記ディスクリプタリングのディスクリプタのエントリ数をリング予約情報に登録するリング予約手段と、前記アプリケーションプログラムからのデータ転送要求時に、前記サイクル時間毎に前記リング予約情報テーブルを参照し、前記ディスクリプタリングを使用する前記カプセル化インターフェースの前記ディスクリプタグループの1つを前記ディスクリプタリングにメモリコピーしDMA転送を実行するディスクリプタ登録手段と、前記ディスクリプタグループのデータ転送終了時に、前記リング予約情報から該当する前記カプセル化インターフェースの予約情報を削除するリング予約解除手段とを持つことを特徴とするIOアダプタによって上記の新規な課題を解決する。
また、別の観点に従えば、1個以上のDMAエンジンと1個以上のディスクリプタ制御部を持ち、主記憶メモリに前記ディスクリプタ制御部に対応したディスクリプタを保持するためのリングバッファであるディスクリプタリングを形成し、前記DMAエンジンを用いてデータ通信を行うための任意の通信プロトコルをカプセル化したインターフェースであるカプセル化インターフェースを1つ以上構成してデータ通信を行う機能を持ち、かつ情報処理装置を管理する管理ソフトウェアからIOアダプタの設定を行うための管理インターフェースを備えたIOアダプタのデータ転送方法において、
前記カプセル化インターフェースを生成する手順として、
前記管理ソフトウェアから前記カプセル化インターフェース生成の要求を受けると、前記IOアダプタが接続されたネットワーク内で一意なカプセル化インターフェース識別子を生成するステップと、
前記カプセル化インターフェースの情報項目として、前記カプセル化インターフェース識別子と、前記カプセル化インターフェースが使用する帯域情報とを少なくも持つカプセル化インターフェース情報テーブルに、生成した前記カプセル化インターフェース識別子と前記管理ソフトウェアから指定された帯域情報とを登録するステップと、
生成した前記カプセル化インターフェース識別子を前記管理ソフトウェアに通知するステップとを持つことを特徴とするデータ転送方法により上記の課題を解決する。
更には、前記カプセル化インターフェースを削除する手順として、前記管理ソフトウェアから前記カプセル化インターフェース削除の要求を受けると、前記カプセル化インターフェース情報テーブルから、削除を要求された前記カプセル化インターフェース識別子に対応した情報を削除するステップと、前記管理ソフトウェアに前記カプセル化インターフェースの削除の完了を通知するステップとを持つことを特徴とするデータ転送方法により上記の課題を解決する。
更には、前記カプセル化インターフェースを用いたデータ転送の手順として、アプリケーションプログラムから前記カプセル化インターフェース識別子を指定したデータ転送の要求を受けると、前記カプセル化インターフェース情報テーブルから、指定されたカプセル化インターフェース識別子に対応する帯域情報を取得するステップと、データ転送用の制御情報および転送するデータのアドレス情報が書かれたディスクリプタを生成し、取得した前記帯域情報に基づき一定サイクル時間内に転送するデータサイズに対応したディスクリプタの個数を決定して前記作成したディスクリプタを前記個数ごとのディスクリプタグループに分けるステップと、前記ディスクリプタリングの情報項目として少なくとも前記ディスクリプタリングを使用するカプセル化インターフェース毎に前記サイクル時間内にデータ転送で消費するディスクリプタのエントリ数として前記ディスクリプタグループのディスクリプタのエントリ数を持つリング予約情報テーブルを参照し、前記ディスクリプタリングの空き状況を確認し該データ転送が可能なディスクリプタリングを選択し、前記サイクル時間内にデータ転送で消費するディスクリプタのエントリ数を前記リング予約情報テーブルに登録するステップとを持ち、
該データ転送の全ディスクリプタのデータ転送処理が終わるまで繰返す手順として、前記一定サイクル時間毎に、前記ディスクリプタリングが予約できたか確認し、予約できていれば前記リング予約情報テーブルを参照し、前記ディスクリプタリングを使用する前記カプセル化インターフェースの前記ディスクリプタグループの1つを前記ディスクリプタリングにメモリコピーしDMA転送を実行するステップと、前記ディスクリプタグループのデータ転送終了時に、前記リング予約情報テーブルから該当するカプセル化インターフェースの予約情報を削除するステップと、該データ転送の全ディスクリプタのデータ転送処理が終わったかを確認するステップとを持つことを特徴とするデータ転送方法により上記の課題を解決する。
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下の通りである。
アプリケーションプログラムがカプセル化インターフェースを用いて1つの物理配線を共有する場合に、保証された通信帯域分を使用することが可能となる。
また、カプセル化インターフェース毎の帯域制御をIOドライバまたはVMM部で行うため、IOアダプタのハードウェア論理を減らすことができ、LSIチップ面積を削減できるためLSIコスト削減することができる。
さらに、カプセル化インターフェース毎の粒度の細かい帯域制御を動的に行うことができるため、IOインターフェース内の輻輳を削減でき安定したデータ通信を行うことができる。
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するために全図において、同一の部材には原則として同一の符号を付し、その繰り返しの説明は原則として省略する。
図1は本発明の実施例1のIOアダプタおよびIOドライバのブロック図である。図2は実施例1のIOアダプタを搭載した計算機装置間でのデータ通信の一例を示す説明図である。図2に示すように、本発明のIOアダプタを用いた典型的なデータ通信の構成は、計算機装置1001、1002、1003のそれぞれにIOアダプタ1041、1042、1043を搭載し、オペレーションシステム(OS)1021、1022、1023上でIOアダプタ1041、1042、1043のドライバであるIOドライバ1011、1012、1013が動作する。計算機装置間1001、1002、1003は、それぞれ物理配線PLによりIOスイッチ105に接続され、互いにデータ通信を行うことができる。計算機装置上で動作するアプリケーションプログラム1061、1062、1063、1064がIOアダプタ1041、1042、1043を用いてデータ通信を行う場合は、任意のプロトコルをIOアダプタのベースとなるプロトコルにカプセル化して通信するインターフェースであるカプセル化インターフェースを構成する。図2では、2つのカプセル化インターフェースKI1 2001、カプセル化インターフェースKI2 2002を構成した例を示す。図22は実施例1のIOアダプタを用いたカプセル化インターフェースのデータパケットの一例を示す説明図である。図22に示すように、カプセル化インターフェースのKI1、KI2のデータパケットは、少なくともベースとなるプロトコルのヘッダ部2201とカプセル化したプロトコルの全体からなるカプセル化プロトコル部2202から構成され、ベースプロトコルの種類によっては、エラー訂正フィールド等を含むベースプロトコルテイラー部2203から構成される。図2に示す例では、アプリケーションプログラム1061、1063にはカプセル化インターフェースKI1 2001を、アプリケーションプログラム1062、1064にはカプセル化インターフェースKI2 2002を割り当てている。アプリケーションプログラム1061からアプリケーションプログラム1063にデータ転送を行う場合は、アプリケーションプログラム1061がIOドライバ1011に対してデータ転送リクエストを行い、オペレーションシステム1021、IOアダプタ1041を経てカプセル化したデータパケットが転送される。データパケットは、IOアダプタ1041から物理配線PLを通りIOスイッチ105でスイッチングされ、データ転送先の計算機装置1003に搭載されたIOアダプタ1043に到着する。IOアダプタ1043に到着したデータパケットはオペレーションシステム1023、IOドライバ1013を経て、データ転送先のアプリケーションプログラム1063にデータが転送される。ここでは、計算機装置間のデータ転送の例について示したが、計算機装置に限定されるものではなく、例えば、ストレージ装置のRAID(Redundant Arrays of Inexpensive Disks)コントローラやネットワークスイッチ装置のラインカードでも良い。本発明では、上記データ転送でのデータ転送元のIOアダプタに次に説明するような特徴を持つ。図1に示すように、データ転送元の計算機装置1001は、物理配線PLとIOスイッチ105を経由して、データ転送先の計算機装置1002に接続される。管理サーバ108は、システム内の装置である計算機装置1001、1002、IOスイッチ105を管理する管理ソフトウェア109が動作する管理用のサーバである。図2の説明で述べたように、それぞれの計算機装置1001、1002にはIOアダプタ1041、1042が搭載される。図1では、データ転送先の計算機装置1002上で稼動するソフトウェアプログラムについては記載を省略しているが、実際は図2の説明で述べたような構成になっている。計算機装置1001は、IOアダプタ1041、主記憶メモリ103、オペレーティングシステム102、IOドライバ101、1個以上のデータ転送元のアプリケーションプログラム1061、1062、…から構成されている。IOアダプタ1041には、DMA転送処理を行うDMAエンジン111と1個以上のディスクリプタ制御部1121、1122、…から構成されている。主記憶メモリ103は、DMA転送時に作られるデータ転送方法やデータが格納されたバッファのアドレスを含むディスクリプタ転送順にリングバッファに格納したディスクリプタリング1221、1222、…と、カプセル化インターフェース毎に一時的に作られるディスクリプタ1211、1222から構成されている。ディスクリプタリング1221、1222、…の数は、IOアダプタ1041の動作が有効なディスクリプタ制御部1121、1122、…の数と同じである。ディスクリプタ制御部1121、1122、…は、主記憶メモリ103のディスクリプタリング1221、1222、…に登録されている最初のディスクリプタのアドレスと最後のディスクリプタのアドレスを管理し、DMAエンジン111からデータ転送の要求DSCをされた場合に最初のディスクリプタのアドレスにあるディスクリプタをメモリリードアクセスDRCにより取得し、ディスクリプタの内容に従ったデータ転送処理を行う。DMAエンジン111は、複数のディスクリプタ制御部1121、1122、…をもつ場合は、ディスクリプタ制御部間の調停を行う。調停の方法の例としては、単純なラウンドロビン、ディスクリプタ制御部毎に優先度を持たせて優先度に応じて時分割する方法等があるが特定の方法に限定されるものではない。IOドライバ101は、カプセル化インターフェース情報テーブル設定手段116、ディスクリプタ生成手段117、リング予約手段118、ディスクリプタ登録手段119、リング予約解除手段120を持ち、情報テーブルとして、カプセル化インターフェース情報テーブル114、リング予約情報テーブル115を持つ。
次に実施例1において、IOアダプタ1041を用いたカプセル化インターフェースKI1、KI2のデータ転送方法についてフローチャートを用いて説明する。このデータ転送方法は、実施例1においては、以下の3つの方法から成る。方法(1)は、カプセル化インターフェースKI1、KI2を使用するために生成する方法である(カプセル化インターフェース生成方法)。
方法(2)は、カプセル化インターフェースKI1、KI2を使用を終了するために削除する方法である(カプセル化インターフェース削除方法)。方法(3)は、アプリケーションプログラム1071、1072がカプセル化インターフェースKI1、KI2を使用してデータを転送する方法である(カプセル化インターフェースを使用したデータ転送方法)。以下、各方法について順次説明する。
最初に、方法(1)(カプセル化インターフェース生成方法)について、図10を用いて説明する。図10は、実施例1のIOアダプタを用いたカプセル化インターフェース生成方法のフローチャートである。管理ソフトウェア109は、管理インターフェース124によりIOドライバ101に対して計算機装置1001と計算機装置1002間のデータ転送を行うためのカプセル化インターフェースの生成、削除を行う機能を持つ。管理インターフェース124の一例としては、LANを用いた方法があるが特定の方法に限定されるものではない。図1に示す例では、アプリケーションプログラム1061に対してカプセル化インターフェースKI1が割り当てられ、アプリケーションプログラム1062に対してカプセル化インターフェースKI2が割り当てられる。カプセル化インターフェース情報テーブル設定手段116は、管理ソフトウェア109からのカプセル化インターフェースの生成の要求を受けて(ステップS1001)、カプセル化インターフェースに対してシステム内で一意な識別子を生成し(ステップS1002)、カプセル化インターフェースの識別子と管理ソフトウェア109から指定されたカプセル化インターフェースに割り当てるデータ転送帯域情報をカプセル化インターフェース情報テーブル114に登録する(ステップS1003)。ここでのシステムの範囲は、IOスイッチ105で接続されたIOアダプタ1041、1042を搭載した装置群を指す。図1の例では、カプセル化インターフェースの識別子としてKI1、KI2が生成されている。この識別子KI1、KI2は、アプリケーションプログラムがカプセル化インターフェースを使用する際にどのカプセル化インターフェースを使用するか指定するのに必要なため、カプセル化インターフェース情報テーブル設定手段116は、生成したカプセル化インターフェースの識別子(KI1やKI2)を管理ソフトウェア109に通知する(ステップS1004)。
次に、カプセル化インターフェース生成方法について、図11を用いて説明する。図11は、実施例1のIOアダプタを用いたカプセル化インターフェース削除方法のフローチャートである。カプセル化インターフェース情報テーブル設定手段116は、管理ソフトウェア109からのカプセル化インターフェースの削除の要求を受けて(ステップS1101)、削除対象のカプセル化インターフェースの情報をカプセル化インターフェース情報テーブル114から削除する(ステップS1102)。カプセル化インターフェース情報テーブル設定手段116は、削除が完了したことを管理ソフトウェア109に通知する(ステップS1103)。
図3は、実施例1のIOドライバ(図1)が有するカプセル化インターフェース情報テーブルを示す説明図である。カプセル化インターフェース情報テーブル114は、表形式で表すと図3の表FT3に示すように、カプセル化インターフェースの識別子K301、カプセル化インターフェースに割り当てるデータ転送帯域情報K302、の列で構成される。図3に示すように、カプセル化インターフェースの識別子KI1には、データ転送帯域情報として10MB/sが、カプセル化インターフェースの識別子KI2には、データ転送帯域情報として50MB/sが、登録されている。
次に、カプセル化インターフェースを使用したデータ転送方法について、図12を用いて説明する。図12は、実施例1のIOアダプタによるカプセル化インターフェースを使用したデータ転送方法のフローチャートである。アプリケーションプログラム1061、1062がカプセル化インターフェースKI1、KI2を用いてデータ転送を行う場合は、IOドライバのデータ転送用のアプリケーションプログラムインターフェース1261、1262を用いて、カプセル化インターフェースの識別子1071、1072を指定してデータ転送要求を行う(ステップS1201)。IOドライバ101は、アプリケーションプログラム1061、1062からのデータ転送要求を受けて、ディスクリプタ生成手段117が、カプセル化インターフェース情報テーブル参照127によりカプセル化インターフェース情報テーブル114からカプセル化インターフェースの識別子1071、1072に対応したデータ転送帯域情報K302を取得する(ステップS1202)。また、ディスクリプタ生成手段117は、ディスクリプタ生成要求1281、1282により主記憶メモリ領域103にカプセル化インターフェース毎のディスクリプタ1211、1212を生成する。一般に、一回のデータ転送に複数のディスクリプタが生成される。さらに、上記取得したデータ転送帯域情報K302を基に、下記式を満たすようにディスクリプタをグループ化する(ステップS1203)。
ΣBS=BW×CT
この式で、ディスクリプタ当りのデータサイズBSはディスクリプタ生成時に各ディスクリプタのデータバッファのサイズで、データ転送帯域BWはデータ転送帯域情報K302から得られる値で、1サイクル時間CTはIOドライバで設定した特定の時間である。すなわち、一定のサイクル時間CT内に転送すべきデータサイズBW×CTに対応したディスクリプタの個数を決定し、その個数毎にディスクリプタをグループ化する。
図1では、12111、12112、12113、12114、…はカプセル化インターフェースKI1のグループ化したディスクリプタであり、12121、12122、12123、…はカプセル化インターフェースKI1のグループ化したディスクリプタである。ディスクリプタ当りのデータサイズが固定の4KB、1サイクル時間CTが1msecの場合は、カプセル化インターフェースKI1の設定されたデータ転送帯域は10MB/secなので、1グループ当りのディスクリプタの個数は、0.001×10×1024/4=2.56個で整数化してx=3個となる。また、カプセル化インターフェースKI1の設定されたデータ転送帯域は50MB/secなので、1グループ当りのディスクリプタの個数は、0.001×50×1024/4=12.8個で整数化してy=13個となる。
図4は、図1のIOドライバのカプセル化インターフェースKI1のディスクリプタをグループ化した一例を示す説明図である。また図5は、図1のIOドライバのカプセル化インターフェースKI2のディスクリプタをグループ化した一例を示す説明図である。図4に示すように、カプセル化インターフェースKI1では、グループ当り3個のディスクリプタにグループ化され、KI1グループ1にはディスクリプタ1〜ディスクリプタ3が、KI1グループ2にはディスクリプタ4〜ディスクリプタ6が、KI1グループ1にはディスクリプタ7〜ディスクリプタ9が割り当てられる。また、図5に示すように、カプセル化インターフェースKI2では、グループ当り13個のディスクリプタにグループ化され、KI2グループ1にはディスクリプタ1〜ディスクリプタ13が、KI2グループ2にはディスクリプタ14〜ディスクリプタ26が割り当てられる。
図17は、図1のIOドライバのカプセル化インターフェースKI1のディスクリプタの一例を示す説明図である。図17に示すようにカプセル化インターフェースKI1のディスクリプタ1211は、複数のディスクリプタ17011、17012、17013、17014、17015、17016、…から構成される。個々のディスクリプタは、データ転送を行うのに必要な情報を保持するデータ転送制御フィールド1702、ディスクリプタグループ12111、12112の最後のディスクリプタであるかを示すグループ終了フィールド17031、17032、転送データのバッファの先頭アドレスを保持するデータバッファアドレスフィールド1704から構成される。グループ終了フィールドは、グループの最後のディスクリプタ17013、17016の時は、グループ終了フィールド(=Y)17032であり、グループの最後でないディスクリプタ17011、17012、17014、17015の時は、グループ終了フィールド(=N)17031である。グループ終了フィールド(=Y)17032のときは、DMAエンジン111はデータ転送終了時に転送終了を通知するハードウェア割り込み134を上げる。
次にリング予約手段118は、リング予約要求129によりリング予約情報テーブル115を参照してカプセル化インターフェースのデータ転送が可能なディスクリプタリングを選択し、選択したディスクリプタリングのリング予約情報テーブル115にカプセル化インターフェースが各サイクル時間内に消費するディスクリプタのエントリ数を登録する(ステップS1204)。この登録するエントリ数とは、先のステップS1203で決定した1グループあたりのディスクリプタの個数と等しい。
図6は、図1のIOドライバが有するディスクリプタリング1のリング予約情報テーブルの予約内容を示し、カプセル化インターフェースKI1を予約登録する前の状態を示す。図7は、同じくリング予約情報テーブルの予約内容で、カプセル化インターフェースKI1を予約登録した後の状態を示す。リング予約情報テーブル115は、表形式で表すと図6の表FT61に示すように、サイクル時間の識別子K611、各カプセル化インターフェースが使用するディスクリプタのエントリ数K612、の列で構成される。図6の表FT61は、カプセル化インターフェースKI1を予約登録前であり、カプセル化インターフェースKI2のみが予約されている場合を示したものである。従って、カプセル化インターフェース識別子KI2のエントリ数K6122の列のみが登録されている。上述のようにカプセル化インターフェースKI2のグループ当りのディスクリプタ数は13個なので、各サイクル時間のディスクリプタのエントリ数は13になっている。一方、図7の表FT62は、カプセル化インターフェースKI1を予約登録後のリング予約情報テーブル115を示したものである。図7に示すようにカプセル化インターフェースKI1が使用するディスクリプタのエントリ数K6121の列が追加されている。上述のようにカプセル化インターフェースKI1のグループ当りのディスクリプタ数は3個なので、各サイクル時間のディスクリプタのエントリ数は3になっている。
次にディスクリプタ登録手段119は、一定時間ウェイトすることにより一定サイクル時間CT毎に(ステップS1205)、カプセル化インターフェースKI1、KI2がディスクリプタリングを予約できたか確認する(ステップS1206)。予約ができていない場合は、ステップS1204を再実行する。予約ができている場合は、リング予約情報テーブル参照131によりリング予約情報テーブルから、現在のサイクル時間の識別子(図7のK611)から各カプセル化インターフェースKI1、KI2のディスクリプタのエントリ数K6121、K6122を取得する。この情報を基にディスクリプタ登録手段119は、ディスクリプタコピー要求132により各カプセル化インターフェースのディスクリプタ1211、1212の1つのグループをディスクリプタリング1221、1222にメモリコピー1331、1332を行う(ステップS1207)。図1に示す例では、カプセル化インターフェースKI1のディスクリプタのグループ12111、カプセル化インターフェースKI2のディスクリプタのグループ12121を、ディスクリプタリング1221のリングバッファ領域の1231、1232にメモリコピーをしている。
図9は、実施例1のIOドライバのディスクリプタリングの構成の一例を示す説明図である。図9に示すように、ディスクリプタリング1221の構成は、リングバッファ領域1231にカプセル化インターフェースKI1のディスクリプタのグループ12111のディスクリプタ1〜ディスクリプタ3の3個がコピーされ、リングバッファ領域1232にカプセル化インターフェースKI2のディスクリプタのグループ12121のディスクリプタ1〜ディスクリプタ13の13個がコピーされている。図9に示す例では、カプセル化インターフェースKI1、KI2のみがディスクリプタリング1221を使用しているので、リングバッファの他の領域901は、ディスクリプタのエントリが無い。また、最初のディスクリプタのエントリであるカプセル化インターフェースKI1のディスクリプタ1がディスクリプタリング1221のヘッドポインタHPとなり、最後のディスクリプタのエントリであるカプセル化インターフェースKI2のディスクリプタ13がディスクリプタリング1221のテイルポインタTPとなる。ディスクリプタ登録手段119に一定サイクル時間CTを知らせる方法としては、例えば、図1に示すようなオペレーションシステム102が持つ機能であるシステムタイマ113により一定サイクル時間CT毎にソフトウェア割り込み130を受ける方法がある。しかし、一定サイクル時間CTを通知できる方法であれば良く、特定の方法に限定されるものではない。図1に示す方法以外にも、例えばハードウェアタイマカウンタにより一定サイクル時間CTを計測し、ハードウェア割り込みを受けるという方法もある。ディスクリプタリング1221、1222にディスクリプタを登録することにより、IOアダプタ1041のDMAエンジン111の機能により、転送するデータパケットが生成され、データ転送が行われる。次に一定サイクル時間CTにおけるデータ転送後の後処理として、リング予約解除手段120は、DMAエンジン111からのカプセル化インターフェースKI1、KI2のディスクリプタグループ1231、1232の転送が終了したハードウェア割り込み134を受けて、リング予約情報テーブル更新要求135により、リング予約情報テーブル115の該当するカプセル化インターフェースKI1、KI2のディスクリプタのエントリ数K612を削除する(ステップS1208)。図8は、カプセル化インターフェースK1のディスクリプタのグループ1231のデータを転送後、リング予約解除手段120が予約情報を解除した状態のリング予約情報テーブル115の予約内容を示したものである。図8に示すように、予約情報の解除によりサイクル時間t1のカプセル化インターフェースKI1のディスクリプタのエントリ数K6121が0に変更されている。次にカプセル化インターフェースの全ディスクリプタグループのデータ転送処理が終了したか判断する(ステップ1209)。これにより、全ディスクリプタグループのデータ転送処理が未完了の場合はステップS1205〜ステップS1209を繰り返し実行する。
以上述べた実施例1では、DMAエンジン111を複数のアプリケーションプログラムで共有した場合でも、カプセル化インターフェースKI1、KI2毎にデータ転送帯域を制御することが可能になる。これにより、アプリケーションプログラムがカプセル化インターフェースを用いて1つの物理配線を共有する場合に、保証された通信帯域分を使用することが可能になる。
次に本発明の実施例2のIOアダプタの構成について図13を用いて説明する。図13は、実施例2によるカプセル化インターフェース情報テーブルの一例を示す説明図である。実施例2のIOアダプタは、図1に示す実施例1のIOアダプタと比較してカプセル化インターフェース情報テーブル114の部分が異なる。以下では実施例1と異なる部分を中心に説明する。
図13に示すように実施例2では、カプセル化インターフェース情報テーブル114に優先度情報K1301が追加される。この優先度情報によりカプセル化インターフェースKI1、KI2間の優先度制御を行う。優先度制御の方法としては、例えば、優先度情報毎にディスクリプタリング1221、1222、…を変え、DMAエンジン111のディスクリプタ制御部1121、1122、…の調停方法に優先度を付けるという方法がある。しかしながら優先度を持たせる方法を特定の方法に限定されるものではない。カプセル化インターフェースKI1、KI2に優先度情報K1301を持たせるため、以下に述べる点が追加される。カプセル化インターフェース生成時に、管理ソフトウェア109は、優先度情報を付加してカプセル化インターフェース生成要求124を行う。さらに、カプセル化インターフェース情報テーブル設定手段116は、カプセル化インターフェースをカプセル化インターフェース情報テーブル114に登録する際に、優先度情報K1301も合わせて登録する。また、カプセル化インターフェースを使用したデータ転送時に、リング予約手段118は、優先度情報K1301を基に使用するディスクリプタリング1221、1222を選択する。ディスクリプタリング1221、1222を選択する方法の例としては、優先度1の場合はディスクリプタリング1221を選択し、優先度2の場合はディスクリプタリング1222を選択する、という方法があるが、特定の方法に限定するものではない。以上述べた実施例2により、優先度情報を基にカプセル化インターフェース間の優先制御を行うことが可能になる。
次に本発明の実施例3のIOアダプタの構成について図14、図15を用いて説明する。図14は実施例3のIOアダプタおよびIOドライバのブロック図である。図15は、実施例3のIOアダプタによる帯域情報変更時のカプセル化インターフェースを使用したデータ転送方法のフローチャートである。実施例3のIOアダプタは、図1に示す実施例1のIOアダプタと比較してIOドライバ部分が一部異なる。すなわち、図14に示すように実施例3のIOドライバ101には帯域変更手段1400が追加される。
帯域情報変更時にアプリケーションプログラム1071、1072がカプセル化インターフェースKI1、KI2を使用してデータを転送する場合について図15にそって実施例3の動作を説明する。管理ソフトウェア109は管理インターフェース1401によりIOドライバ101に対して、特定のカプセル化インターフェース(ここでは、カプセル化インターフェースKI1とする)の帯域情報の変更を要求する(ステップS1501)。この要求を受けて帯域変更手段1400は、カプセル化インターフェース情報テーブル設定手段116に対して帯域情報の変更要求1402を行い、カプセル化インターフェース情報テーブル設定手段116はカプセル化インターフェース情報テーブル116のカプセル化インターフェースKI1の帯域情報(図3のK302)を変更する(ステップS1502)。次に帯域変更手段1400は、リング予約手段118に対して予約情報の削除要求1404を行い、リング予約手段118はリング予約情報テーブル115からカプセル化インターフェースKI1のディスクリプタのエントリ数(図7のK6121)を削除する(ステップS1503)。次に帯域変更手段1400は、ディスクリプタ生成手段117に対してディスクリプタの再グループ化要求1403を行う。これによりディスクリプタ生成手段117は主記憶メモリ上のカプセル化インターフェースKI1のディスクリプタ1211を変更後の帯域情報を基に再グループ化を行う(ステップS1504)。次に帯域変更手段1400は、リング予約手段118に対してディスクリプタリングの予約要求1404を行い、リング予約手段118はリング予約情報テーブル115を参照しカプセル化インターフェースKI1のデータ転送が可能なディスクリプタリングを選択し、選択したディスクリプタリングのリング予約情報テーブル115にカプセル化インターフェースKI1が各サイクル時間毎に消費するディスクリプタのエントリ数を再登録する(ステップS1505)。その後の動作は、一定サイクル時間TC毎にカプセル化インターフェースKI1、KI2がディスクプタリングを予約できたかを確認し、予約ができている場合はリング予約情報テーブルに記載された各カプセル化インターフェースのサイクル時間毎に消費するディスクリタのエントリ数に従いディスクリプタグループをディスクリプタリング1221にメモリコピーしてDMA転送を実行するというものである。この動作を実現するステップS1205〜ステップS1209の処理については、図12に示す実施例1のデータ転送動作のステップS1205〜ステップS1209と同じであるため説明を省略する。
以上述べた実施例3により、カプセル化インターフェース毎の粒度の細かい帯域制御をデータ転送途中にも動的に行うことができるため、IOインターフェースの輻輳を削減でき安定したデータ通信を行うことが可能になる。
次に本発明の実施例4のIOアダプタの構成について図16を用いて説明する。図16は、実施例4の管理ソフトウェアのグラフィカルな管理インターフェースを示す説明図である。実施例4におけるIOアダプタの構成は、図1に示す実施例1のIOアダプタと比較して管理ソフトウェアの部分が異なる。以下では実施例1と異なる部分を中心に説明する。実施例4では、管理ソフトウェア109に、図16に示すIOアダプタ設定用の管理インターフェース1602を持つ。管理ソフトウェア109は、一般的に管理用のディスプレイである管理コンソール1601を持つ。管理インターフェース1602は、IOアダプタ毎のIOアダプタ設定部16031、16032、…を持つ。IOアダプタ設定部16031、16032、…は、それぞれのIOアダプタに構成されるカプセル化インターフェース毎のカプセル化インターフェース設定部16041、16042、16043、16044、新規のカプセル化インターフェースを生成する新規生成設定部16121、16122から構成される。それぞれのカプセル化インターフェース設定部16041、16042、16043、16044は、カプセル化インターフェースのIOアダプタ内の番号を示すインターフェース番号表示部16051、16052、16053、16054、カプセル化インターフェースの識別子を表示するカプセル化インターフェースの識別子表示部16061、16062、16063、16064、カプセル化されるプロトコルの種別を設定するプロトコル種別設定部16061、16062、16063、16064、カプセル化インターフェースに割り当てる帯域情報を設定する帯域情報設定部16081、16082、16083、16084、カプセル化インターフェースに割り当てる優先度情報を設定する優先度情報設定部16091、16092、16093、16094、カプセル化インターフェースを構成する物理経路を設定するパス情報設定部16101、16102、16103、16104、現在構成されているカプセル化インターフェースを削除する削除設定部16111、16112、16113、16114から構成される。
次に本発明の実施例5のIOアダプタの構成について図18と図19を用いて説明する。図18は、実施例5のIOドライバのカプセル化インターフェースKI1のディスクリプタの一例を示す。図19は、実施例5のIOアダプタの構成を示す。実施例5におけるIOアダプタの構成は、図1に示す実施例1のIOアダプタと比較してディスクリプタの構成部分とIOアダプタの構成部分のみが異なる。以下では実施例1と異なる部分を中心に説明する。
図18に示すように実施例5のカプセル化インタフェース(図示したのはKI1)のディスクリプタ1211は、転送データバッファ1802の物理メモリアドレスが該当ディスクリプタと次のディスクリプタの間で連続かどうかを示す物理メモリ連続フィールド18011、18012を含む。連続である場合はそのこと(=Y)を示す物理メモリ連続フィールド18011が、不連続である場合はそのこと(=N)を示す物理メモリ連続フィールド18012が付加される。図18に示す例では、転送データバッファ1802は、転送データバッファ18031〜18034、および、転送データバッファ18035〜18037が連続であり、これらの間は非連続1804である。これらの転送データバッファの物理メモリアドレスa1〜a7は、ディスクリプタのデータバッファアドレスフィールド17041、17042、…に代入される。転送バッファアドレスの非連続を示すために、ディスクリプタ4 17014の物理メモリ連続フィールド18012は、非連続を示すものが入力される。その他のディスクリプタでは物理メモリは連続であるので、物理メモリ連続フィールド18011は、連続を示すものが入力される。
次に図19を用いて、この物理メモリ連続フィールドのIOアダプタ1041内での処理方法について説明する。図19に示すように、実施例5では、図1の実施例1のIOアダプタ1041の構成に連続メモリ制御部1901が追加される。連続メモリ制御部1901は、ディスクリプタ制御部112からディスクリプタを取得し1902、カプセル化インターフェースKI1のディスクリプタの履歴を少なくとも1つ以上保持して、現在処理しているディスクリプタの1つ前のディスクリプタの物理メモリ連続フィールド17031、17032の値を基に、物理メモリ連続フィールド(=Y)17031のときは、現在処理しているディスクリプタについては、物理メモリ連続フィールド17031、17032等の最低限必要なフィールドのみを主記憶メモリからリードし、また転送データバッファーのアドレスも1つ前のディスクリプタの物理メモリアドレスから計算したものを使用してDMA転送処理を行う。以上述べた実施例5では、実施例1に示すように転送データバッファをディスクリプタ毎に一定の小さなデータサイズに分割しても、主記憶メモリからディスクリプタや転送データバッファをリードする際にかかるオーバヘッドを削減することが可能になる。
次に本発明の実施例6のIOアダプタの構成について図20と図21を用いて説明する。図20は実施例6のVMM(Virtual Machine Monitor)に適用した場合のIOアダプタおよびIOドライバのブロック図である。図21は実施例6の論理パーティション(LPAR)の主記憶メモリとVMMの主記憶メモリの対応関係の一例を示す説明図である。実施例6のIOアダプタの構成は、図1に示す実施例1のIOアダプタと比較して、IOドライバ101、および、オペレーションシステム102の機能部分がVMM 2008に変更になった点と、LPAR 2007の構成が追加された点が異なる。以下では実施例1と異なる部分を中心に説明する。
図20に示すように、実施例6ではアプリケーションプログラム20031、20032は、VMM 2008の仮想化機能によりLPAR 2007上で動作する。LPAR 2007は、LPAR用の主記憶メモリ2006、ゲストオペレーションシステム2005、ゲストオペレーションシステム向けIOドライバ2004、アプリケーションプログラム20031、20032から構成される。アプリケーションプログラム20031、20032は、カプセル化インターフェースを使用するためカプセル化インターフェースの識別子KI1 1071 、KI2 1072を保持する。ここでのIOドライバ2004は、実施例1でのIOドライバ101が持つ機能は持たない。実施例6では、実施例1でのIOドライバ101およびオペレーションシステム103の機能は、VMM 2008が持つ。すなわち、VMM2008は、カプセル化インターフェース情報テーブル設定手段116、ディスクリプタ生成手段117、リング予約手段118、ディスクリプタ登録手段119、リング予約解除手段120、カプセル化インターフェース情報テーブル114、リング予約情報テーブル115、システムタイマ113から構成される。また、実施例1での主記憶メモリ103は、VMM用の主記憶メモリ2009となる。これ以外の構成については、実施例1と同じである。
次に図21を用いて、実施例6の論理パーティション(LPAR)の主記憶メモリ2006とVMMの主記憶メモリ2009の対応関係について示す。図21は、LPAR上のIOドライバ2004がLPAR用の主記憶メモリ2006に仮想ディスクリプタリング2102を持つ場合について示したものである。仮想ディスクリプタリング2102には、カプセル化インターフェースKI1のディスクリプタ2103が構成される。また、2104は仮想ディスクリプタリング2102のリングバッファの内、ディスクリプタのエントリが無い部分である。カプセル化インターフェースKI1のディスクリプタ2103の情報からVMMが持つ仮想メモリ-物理メモリ変換処理2105によりVMM用主記憶メモリに2009に実施例1と同様にカプセル化インターフェースのディスクリプタ1211とグループ化分けが行われる。さらに、実施例1と同様にVMM 2008が持つディスクリプタ登録手段119により物理のディスクリプタリング1221にディスクリプタグループ1231がコピー1331される。ここで示した論理パーティション(LPAR)の主記憶メモリ2006とVMMの主記憶メモリ2009の対応関係は一例であり、特定の方法に限定されるものではない。例えば、LPAR上のIOドライバ2004が仮想ディスクリプタリング2102を持たない場合は、LPAR用主記憶メモリ上の転送データバッファの情報が直接VMMに提供されても良い。以上述べた本特許の第6の実施例により、本特許のIOアダプタの帯域制御方法をVMMで構成したLPAR上のアプリケーションプログラムでも使用することが可能になる。
次に本発明の実施例7のIOアダプタの構成について図23を用いて説明する。図23は、実施例7のVMMに適用した場合のIOアダプタおよびIOドライバの管理ソフトウェアのグラフィカルな管理インターフェースを示す説明図である。実施例7におけるIOアダプタの構成は、図20に示す実施例6のIOアダプタと比較して管理ソフトウェアの部分が異なる。また、図16に示す実施例4のIOアダプタ設定用の管理インターフェースと対比すると、各IOアダプタのカプセル化インターファース毎の設定部に、そのカプセル化インターフェースをどのLPARに割り当てるかを設定するための手段が追加されている。
以下では、実施例4と異なる部分を中心に説明する。実施例7では、図23に示すように、管理ソフトウェア109に、VMMおよびIOアダプタ設定用の管理インターフェース2302を持つ。管理インターフェース2302は、IOアダプタ毎のIOアダプタ設定部23031…を持つ。図23ではIOアダプタ番号1以外のIOアダプタの設定部は図示が省略されている。IOアダプタ設定部23031は、対応するIOアダプタに構成されるカプセル化インターフェース毎のカプセル化インターフェース設定部23041、23042を持つ。カプセル化インターフェース設定部23041、23042には、それぞれインターフェース番号表示部16051、16052、カプセル化インターフェースの識別子表示部16061、16062、プロトコル種別設定部16061、16062、帯域情報設定部16081、16082、優先度情報設定部16091、16092、パス情報設定部16101、16102、並びに、削除設定部16111、16112を含む。これらは、図16に示す実施例4のIOアダプタ設定用の管理インターフェースと同様である。それに加えて、実施例7ではカプセル化インターフェース毎にどのLPARに割り当てるかを設定する割当てLPAR情報設定部23131、23132、を持つ。このユーザインターフェースにより、カプセル化インターフェースとLPARとの新規割当て、割当て変更、割当て削除が可能となる。
次に本発明の実施例8のIOアダプタの構成について図24を用いて説明する。図24は実施例8のVMMに適用した場合のIOアダプタおよびIOドライバのブロック図である。実施例6のIOアダプタの構成は、図20に示す実施例6のIOアダプタと比較して、アプリケーションプログラム20031、20032がカプセル化インターフェースの識別子KI1、KI2(図20の1071, 1072)を保持しない点が異なる。以下では実施例6と異なる部分を中心に説明する。図24に示すように、実施例8ではVMM 2008にカプセル化インターフェース毎にIOアダプタ1041をエミュレートするインスタンスである仮想IOアダプタ24011、24012を持つ。LPAR 2007上のIOドライバ2004は、仮想IOアダプタ24011、24012を物理的なIOアダプタ1041と同じように使うことが可能である。VMM 2008によりLPAR 2007に対する仮想IOアダプタ24011、24012の割当てが決められているので、アプリケーションプログラム20031、20032が、カプセル化インターフェースを用いて通信を行う場合は特定の仮想IOアダプタ24011、24012に対してデータ転送要求を行う。実施例8では、アプリケーションプログラム20031、20032の代りに仮想IOアダプタ24011、24012がカプセル化インターフェースの識別子KI1 1071 、KI2 1072を保持する。これにより仮想IOアダプタ24011、24012が1つの物理配線を共有する場合に、保証された通信帯域分を使用することが可能になる。これ以外の構成については、実施例6と同じである。なお、図24では、LPAR 2007と仮想IOアダプタ24011、24012は1対1の場合を記載しているが、N対M(N、Mは1以上の任意の整数)であっても良い。
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
本発明のIOアダプタのデータ転送方法は、サーバ装置、ストレージ装置、ネットワークスイッチ装置等に代表される情報プラットフォーム装置間のデータ通信に適している。
本発明の実施例1のIOアダプタおよびIOドライバのブロック図である。 実施例1のIOアダプタを搭載した計算機装置間でのデータ通信の一例を示す説明図である。 実施例のIOドライバが有するカプセル化インターフェース情報テーブルの一例を示す説明図である。 実施例1のIOドライバのカプセル化インターフェースKI1のディスクリプタをグループ化した一例を示す説明図である。 実施例1のIOドライバのカプセル化インターフェースKI2のディスクリプタをグループ化した一例を示す説明図である。 実施例1のIOドライバが有するディスクリプタリング1のリング予約情報テーブルのカプセル化インターフェースKI1を予約登録前の一例を示す説明図である。 実施例1のIOドライバが有するディスクリプタリング1のリング予約情報テーブルのカプセル化インターフェースKI1を予約登録後の一例を示す説明図である。 実施例1のIOドライバが有するディスクリプタリング1のリング予約情報テーブルのカプセル化インターフェースKI1の予約情報解除後の一例を示す説明図である。 実施例1のIOドライバのディスクリプタリング1の構成の一例を示す説明図である。 実施によるカプセル化インターフェース生成方法のフローチャートである。 実施例1によるカプセル化インターフェース削除方法のフローチャートである。 実施例1によるカプセル化インターフェースを使用したデータ転送方法のフローチャートである。 本発明の実施例2によるカプセル化インターフェース情報テーブルの一例を示す説明図である。 本発明の実施例3のIOアダプタおよびIOドライバのブロック図である。 実施例3態による帯域情報変更時のカプセル化インターフェースを使用したデータ転送方法のフローチャートである。 本発明の実施例4の管理ソフトウェアのグラフィカルな管理インターフェースを示す説明図である。 実施例1のIOドライバのカプセル化インターフェースKI1のディスクリプタの一例を示す説明図である。 本発明の実施例5のIOドライバのカプセル化インターフェースKI1のディスクリプタの一例を示す説明図である。 実施例5のIOアダプタの構成を示すブロック図である。 本発明の実施例6のVMM(Virtual Machine Monitor)に適用した場合のIOアダプタおよびIOドライバのブロック図である。 実施例6による論理パーティション(LPAR)の主記憶メモリとVMMの主記憶メモリの対応関係の一例を示す説明図である。 実施例1のIOアダプタを用いたカプセル化インターフェースのデータパケットの一例を示す説明図である。 本発明の実施例7の管理ソフトウェアのグラフィカルな管理インターフェースを示す説明図である。 本発明の実施例8のVMM(Virtual Machine Monitor)に適用した場合のIOアダプタおよびIOドライバのブロック図である。
符号の説明
1001、1002、1003 計算機装置
101、1011、1012、1013 IOドライバ
102、1021、1022、1023 オペレーションシステム
103 主記憶メモリ
104、1041、1042、1043 IOアダプタ
105 IOスイッチ
1061、1062、… アプリケーションプログラム
1072、1072 カプセル化インターフェース識別子
108 管理サーバ
109 管理ソフトウェア
111 DAMエンジン
1121、1122、… ディスクリプタ制御部
113 オペレーションシステムのシステムタイマ
114 カプセル化インターフェース情報テーブル
115 リング予約情報テーブル
116 カプセル化インターフェース情報テーブル設定手段
117 ディスクリプタ生成手段
118 リング予約手段
119 ディスクリプタ登録手段
120 リング予約解除手段
1211 カプセル化インターフェースKI1のディスクリプタ
12111、12112、12113、12114 カプセル化インターフェースKI1のディスクリプタグループ
1212 カプセル化インターフェースKI2のディスクリプタ
12121、12122、12123、12124 カプセル化インターフェースKI2のディスクリプタグループ
1221、1222、… ディスクリプタリング
1231、1232 ディスクリプタリングに登録されたカプセル化インターフェースKI1、KI2のディスクリプタグループ
124 管理インターフェース
125 カプセル化インターフェース情報テーブル更新要求
1261、1262 IOドライバのデータ転送用のアプリケーションプログラムプログラムインターフェース
127 カプセル化インターフェース情報テーブル参照
1281、1282 ディスクリプタ生成要求
129 リング予約要求、
130 システムタイマ113からの一定サイクル時間CT毎にソフトウェア割り込み
131 リング予約情報テーブル参照
132 ディスクリプタコピー要求
1331、1332 ディスクリプタグループのディスクリプタリングへのコピー
134 ディスクリプタグループのデータ転送処理の終了を通知するハードウェア割り込み
135 リング予約情報テーブル更新要求
2001、2002 カプセル化インターフェースKI1、KI2
1400 帯域変更手段
1401 管理インターフェース
1402 帯域情報の変更要求
1403 ディスクリプタの再グループ化要求
1404 ディスクリプタリングの予約要求
1601 管理コンソール
1602 管理インターフェース
16031、16032、… IOアダプタ設定部
16041、16042、16043、16044 IOアダプタに構成されるカプセル化インターフェース毎のカプセル化インターフェース設定部
16051、16052、16053、16054 カプセル化インターフェースのIOアダプタ内の番号を示すインターフェース番号表示部
16061、16062、16063、16064 カプセル化インターフェースの識別子を表示するカプセル化インターフェースの識別子表示部
16071、16072、16073、16074 カプセル化されるプロトコルの種別を設定するプロトコル種別設定部
16081、16082、16083、16084 カプセル化インターフェースに割り当てる帯域情報を設定する帯域情報設定部
16091、16092、16093、16094 カプセル化インターフェースに割り当てる優先度情報を設定する優先度情報設定部
16101、16102、16103、16104 カプセル化インターフェースを構成する物理経路を設定するパス情報設定部
16111、16112、16113、16114 現在構成されているカプセル化インターフェースを削除する削除設定部
16111、16112 新規のカプセル化インターフェースを生成する新規生成設定部
17011、17012、17013、17014、17015、17016 カプセル化インターフェースのディスクリプタ
1702 データ転送を行うのに必要な情報を保持するデータ転送制御フィールド
17031、17032 グループ終了フィールド
1704 データバッファアドレスフィールド
18011、18012 物理メモリ連続フィールド
1802 転送データバッファ
18031、18032、18033、18034、18035、18036、18037 ディスクリプタ単位の転送データバッファ
1804 転送データバッファの非連続部分
1901 連続メモリ制御部
1902 ディスクリプタを取得
1903 物理メモリ連続の制御
20031、20032 アプリケーションプログラム
2004 ゲストオペレーションシステム向けIOドライバ
2005 ゲストオペレーションシステム
2006 LPAR用の主記憶メモリ
2007 LPAR
2008 VMM
2009 VMM用の主記憶メモリ
2102 仮想ディスクリプタリング
2103 カプセル化インターフェースKI1のディスクリプタ
2104 仮想ディスクリプタリング2102のリングバッファの内、ディスクリプタのエントリが無い部分
2105 VMMが持つ仮想メモリ-物理メモリ変換処理
2201 ベースプロトコルのヘッダ部
2202 カプセル化プロトコル部
2203 ベースプロトコルテイラー部
2302 管理インターフェース
23031、23032 IOアダプタ設定部
23041、23042 IOアダプタに構成されるカプセル化インターフェース毎のカプセル化インターフェース設定部
23131、23132 割当てLPAR情報設定部
24011、24012 仮想IOアダプタ
FT3 カプセル化インターフェース情報テーブル
K301 カプセル化インターフェースの識別子
K302 データ転送帯域情報
FT61 リング予約情報テーブル(カプセル化インターフェースKI1を予約登録前)
FT62 リング予約情報テーブル(カプセル化インターフェースKI1を予約登録後)
FT63 リング予約情報テーブル(カプセル化インターフェースK1のディスクリプタのグループ1231のデータを転送後)
K611 サイクル時間の識別子
K612、K6121、K6122 カプセル化インターフェースが使用するディスクリプタのエントリ数
a1、a2、a3、a4、a5、a6、a7 転送データバッファの物理メモリアドレス
PL 物理配線
DSC DMAエンジン111からデータ転送の要求
DRC メモリリードアクセス
x カプセル化インターフェースKI1のグループ当りのディスクリプタ個数
y カプセル化インターフェースKI2のグループ当りのディスクリプタ個数
BS ディスクリプタ当りのデータサイズ
BW データ転送帯域
CT 1サイクル時間。

Claims (13)

  1. 1個以上のDMAエンジンと1個以上のディスクリプタ制御部を持ち、主記憶メモリ上に前記ディスクリプタ制御部に対応したディスクリプタを保持するためのリングバッファであるディスクリプタリングを形成し、前記DMAエンジンを用いてデータ通信を行うための任意の通信プロトコルをカプセル化したインターフェースであるカプセル化インターフェースを1つ以上生成してデータ通信を行う機能を持ち、かつ情報処理装置を管理する管理ソフトウェアから設定を行うための管理インターフェースを備えたIOアダプタであって、
    前記IOアダプタのドライバであるIOドライバ部に、
    前記カプセル化インターフェースの情報として、少なくとも前記カプセル化インターフェースを識別するためのカプセル化インターフェース識別子と、前記カプセル化インターフェースがデータ転送の際に使用する転送速度を示す転送速度情報と、を持つカプセル化インターフェース情報テーブルと、
    前記ディスクリプタリングの情報として少なくともディスクリプタリングを使用する前記カプセル化インターフェース毎に所定のサイクル時間あたりに消費するディスクリプタのエントリ数を持つリング予約情報テーブルと、
    前記管理ソフトウェアからの前記カプセル化インターフェースの生成要求時に、前記IOアダプタが接続されたネットワーク内で一意なカプセル化インターフェース識別子を生成し、該カプセル化インターフェース識別子と設定する転送速度情報とを前記カプセル化インターフェース情報テーブルに保存するカプセル化インターフェース情報テーブル設定手段と、
    アプリケーションプログラムからのデータ転送要求時に、データ転送用の制御情報や転送するデータのアドレス情報が書かれたディスクリプタを生成し、アプリケーションプログラムからカプセル化インターフェース識別子を受け取り、前記カプセル化インターフェース識別子に対応した転送速度情報をカプセル化インターフェース情報テーブルから取得し、前記転送速度情報に基づき転送速度を制限するために一定時間毎に転送するデータサイズ毎に作成した前記ディスクリプタを1個以上のディスクリプタグループに分けるディスクリプタ生成手段と、
    前記アプリケーションプログラムからのデータ転送要求時に、前記リング予約情報テーブルを参照し前記ディスクリプタリングの空き状況を確認し該データ転送が可能な前記ディスクリプタリングを選択し、該データ転送で使用する前記ディスクリプタリングのディスクリプタのエントリ数をリング予約情報に登録するリング予約手段と、
    前記アプリケーションプログラムからのデータ転送要求時に、前記サイクル時間毎に前記リング予約情報テーブルを参照し、前記ディスクリプタリングを使用する前記カプセル化インターフェースの前記ディスクリプタグループの1つを前記ディスクリプタリングにメモリコピーしDMA転送を実行するディスクリプタ登録手段と、
    前記ディスクリプタグループのデータ転送終了時に、前記リング予約情報から該当する前記カプセル化インターフェースの予約情報を削除するリング予約解除手段とを持つことを特徴とするIOアダプタ。
  2. 請求項1に記載のIOアダプタにおいて、前記カプセル化インターフェース情報テーブルに、前記カプセル化インターフェースの情報として少なくともデータ転送の優先度を表す優先度情報を持ち、前記アプリケーションプログラムからのデータ転送要求時に、前記リング予約手段は、前記カプセル化インターフェース情報テーブルを参照し、前記優先度情報を基に前記カプセル化インターフェースが使用するディスクリプタリングを選択する機能を持つことを特徴とするIOアダプタ。
  3. 請求項1に記載のIOアダプタにおいて、前記IOドライバ部に、前記アプリケーションプログラムからのデータ転送要求時に前記カプセル化インターフェースに設定された転送速度情報を変更する場合に、前記カプセル化インターフェース情報テーブルの該当する前記カプセル化インターフェースの転送速度情報を変更し、前記リング予約テーブルの該当する前記カプセル化インターフェースの予約情報を削除する転送速度変更手段を持ち、
    前記ディスクリプタ生成手段は、前記カプセル化インターフェースに設定された転送速度情報を変更する場合に、変更された前記転送速度情報に基づき転送速度を制限するために一定時間毎に転送するデータサイズ毎に前記作成したディスクリプタを1個以上のディスクリプタグループに分け直す機能を持ち、
    前記リング予約手段は、前記カプセル化インターフェースに設定された転送速度情報を変更する場合に、前記リング予約情報テーブルを参照し前記ディスクリプタリングの空き状況を確認し該データ転送が可能な前記ディスクリプタリングを再選択し、該データ転送で使用する前記ディスクリプタリングのディスクリプタのエントリ数をリング予約情報に再登録する機能を持つことを特徴とするIOアダプタ。
  4. 請求項1に記載のIOアダプタにおいて、前記管理ソフトウェアにIOアダプタを設定するためのユーザインターフェースを持ち、前記ユーザインターフェースは、前記カプセル化インターフェースの新規作成を設定機能、前記カプセル化インターフェースの削除を設定する機能、前記カプセル化インターフェースの識別子を表示する機能、及び前記カプセル化インターフェースの転送速度情報を設定する機能の少なくとも一つを有することを特徴とするIOアダプタ。
  5. 請求項1に記載のIOアダプタにおいて、前記カプセル化インターフェースのディスクリプタのフィールドに、該ディスクリプタと次のディスクリプタとの転送データバッファの物理メモリアドレスが連続であるかを示す物理メモリ連続フィールドを持ち、前記IOアダプタは、少なくとも1つ以上のディスクリプタの履歴を持ち、前記DMAエンジンがDMA転送処理を行う際に、DMA転送処理中のディスクリプタの1つの前のディスクリプタの前記物理メモリ連続フィールドを参照し、物理メモリが連続の場合は、主記憶メモリからDMA転送処理中のディスクリプタの内、転送データバッファの物理メモリアドレス等の不要な部分の読み込みを行わずに、以前のディスクリプタの情報から算出した値を用いてDMA転送処理を行うことを特徴とするIOアダプタ。
  6. 1個以上のDMAエンジンと1個以上のディスクリプタ制御部を持ち、主記憶メモリに前記ディスクリプタ制御部に対応したディスクリプタを保持するためのリングバッファであるディスクリプタリングを形成し、前記DMAエンジンを用いてデータ通信を行うための任意の通信プロトコルをカプセル化したインターフェースであるカプセル化インターフェースを1つ以上生成してデータ通信を行う機能を持ち、かつ情報処理装置を管理する管理ソフトウェアから設定を行うための管理インターフェースを備えたIOアダプタのデータ転送方法において、
    前記カプセル化インターフェースを生成する手順として、
    前記管理ソフトウェアから前記カプセル化インターフェース生成の要求を受けると、前記IOアダプタが接続されたネットワーク内で一意なカプセル化インターフェース識別子を生成するステップと、
    前記カプセル化インターフェースの情報項目として、前記カプセル化インターフェース識別子と、前記カプセル化インターフェースがデータ転送の際に使用する転送速度を示す転送速度情報とを少なくとも持つカプセル化インターフェース情報テーブルに、生成した前記カプセル化インターフェース識別子と前記管理ソフトウェアから指定された転送速度情報とを登録するステップと、
    生成した前記カプセル化インターフェース識別子を前記管理ソフトウェアに通知するステップとを持つことを特徴とするIOアダプタのデータ転送方法。
  7. 請求項6に記載のIOアダプタのデータ転送方法において、前記カプセル化インターフェースを削除する手順として、前記管理ソフトウェアから前記カプセル化インターフェース削除の要求を受けると、前記カプセル化インターフェース情報テーブルから、削除を要求された前記カプセル化インターフェース識別子に対応した情報を削除するステップと、前記管理ソフトウェアに前記カプセル化インターフェースの削除の完了を通知するステップとを更に持つことを特徴とするIOアダプタのデータ転送方法。
  8. 請求項6に記載のIOアダプタのデータ転送方法において、
    前記カプセル化インターフェースを用いたデータ転送の手順として、
    アプリケーションプログラムから前記カプセル化インターフェース識別子を指定したデータ転送要求を受けると、前記カプセル化インターフェース情報テーブルから、指定されたカプセル化インターフェース識別子に対応する転送速度情報を取得するステップと、
    データ転送用の制御情報および転送するデータのアドレス情報が書かれたディスクリプタを生成し、取得した前記転送速度情報に基づき一定サイクル時間内に転送するデータサイズに対応したディスクリプタの個数を決定して前記作成したディスクリプタを前記個数ごとのディスクリプタグループに分けるステップと、
    情報項目として少なくとも前記ディスクリプタリングを使用するカプセル化インターフェース毎に前記サイクル時間内に消費するディスクリプタのエントリ数を持つリング予約情報テーブルを参照し、前記ディスクリプタリングの空き状況を確認し該データ転送が可能なディスクリプタリングを選択し、前記サイクル時間内にデータ転送で消費するディスクリプタのエントリ数として前記ディスクリプタグループのディスクリプタ個数を前記リング予約情報テーブルに登録するステップとを持ち、
    該データ転送の全ディスクリプタのデータ転送処理が終わるまで繰返す手順として、
    前記一定サイクル時間毎に、前記ディスクリプタリングが予約できたか確認し、予約できていれば前記リング予約情報テーブルを参照し、前記ディスクリプタリングを使用する前記カプセル化インターフェースの前記ディスクリプタグループの1つを前記ディスクリプタリングにメモリコピーしDMA転送を実行するステップと、
    前記ディスクリプタグループのデータ転送終了時に、前記リング予約情報テーブルから該当するカプセル化インターフェースの予約情報を削除するステップと、
    該データ転送の全ディスクリプタのデータ転送処理が終わったかを確認するステップとを持つことを特徴とするIOアダプタのデータ転送方法。
  9. 請求項8に記載のIOアダプタのデータ転送方法において、
    前記カプセル化インターフェースを用いたデータ転送中に転送速度情報を変更する手順として、
    前記管理ソフトウェアから前記カプセル化インターフェース識別子を指定して転送速度情報の変更要求を受けるステップと
    前記カプセル化インターフェース情報テーブルに、変更を要求された前記カプセル化インターフェース識別子に対応する転送速度情報を前記管理ソフトウェアから指定された転送速度情報に変更するステップと、
    前記管理ソフトウェアに前記カプセル化インターフェースの転送速度情報の変更の完了を通知するステップと、
    前記リング予約テーブルの該当する前記カプセル化インターフェース識別子の予約情報を削除するステップと、
    変更された前記転送速度情報に基づき、一定サイクル時間内に転送するデータサイズに対応したディスクリプタの個数を再決定して、データ転送要求時に生成したディスクリプタを前記決定した個数毎のディスクリプタグループに分け直すステップと、
    前記リング予約情報テーブルを参照し、前記ディスクリプタリングの空き状況を確認し該データ転送が可能な前記ディスクリプタリングを再選択し、前記サイクル時間内にデータ転送で消費する前記ディスクリプタリングのディスクリプタのエントリ数をリング予約情報に再登録するステップとを持つことを特徴とするIOアダプタのデータ転送方法。
  10. 汎用処理を行う機能を持つ1以上の汎用処理モジュールと、モジュール固有の専用処理機能を持つ1以上の専用処理モジュールと、 前記汎用処理モジュールと専用処理モジュールの管理を行う管理モジュールと、これらモジュール間を接続し通信データのスイッチングを行う1以上のIOスイッチから構成され、それぞれのモジュールは前記IOスイッチを用いて通信するための1以上のIOアダプタを持ち、前記汎用処理モジュールと前記専用処理モジュールを組合わせて1以上の異なる種別の情報プラットフォーム装置を構成する複合型情報プラットフォーム装置において、
    前記IOアダプタが、請求項1〜請求項5のいずれかに記載のIOアダプタであることを特徴とする複合型情報プラットフォーム装置。
  11. 1個以上のDMAエンジンと1個以上のディスクリプタ制御部を持ち、仮想マシンモニター部用の主記憶メモリ上に前記ディスクリプタ制御部に対応したディスクリプタを保持するためのリングバッファであるディスクリプタリングを形成するIOアダプタであり、前記DMAエンジンを用いてデータ通信を行うための任意の通信プロトコルをカプセル化したインターフェースであるカプセル化インターフェースを1つ以上構成し、前記仮想マシンモニター部が構成する論理パーティション上で稼動するアプリケーションプログラム間でデータ通信を行う機能を持ち、情報処理装置を管理する管理ソフトウェアからIOアダプタの設定を行うための管理インターフェースを持つIOアダプタにおいて、
    前記仮想マシンモニター部に、
    前記カプセル化インターフェースの情報として少なくとも、前記カプセル化インターフェースを識別するためのカプセル化インターフェース識別子と、前記カプセル化インターフェースがデータ転送の際に使用する転送速度を示す転送速度情報と、を持つカプセル化インターフェース情報テーブルと、
    前記ディスクリプタリングの情報として少なくともディスクリプタリングを使用する前記カプセル化インターフェース毎に所定のサイクル時間あたりに消費するディスクリプタのエントリ数を持つリング予約情報テーブルと、
    前記カプセル化インターフェースの生成要求時に、前記IOアダプタが接続されたネットワーク内で一意なカプセル化インターフェース識別子を生成し、該カプセル化インターフェース識別子と設定する転送速度情報とを前記カプセル化インターフェース情報テーブルに保存するカプセル化インターフェース情報テーブル設定手段と、
    前記論理パーティション上で稼動する前記アプリケーションプログラムからのデータ転送要求時に、データ転送用の制御情報や転送するデータのアドレス情報が書かれたディスクリプタを生成し、前記アプリケーションプログラムが使用するカプセル化インターフェースのカプセル化インターフェース識別子に対応した転送速度情報をカプセル化インターフェース情報テーブルから取得し、前記転送速度情報に基づき転送速度を制限するために一定時間毎に転送するデータサイズ毎に前記作成したディスクリプタを1個以上のディスクリプタグループに分けるディスクリプタ生成手段と、
    前記論理パーティション上で稼動する前記アプリケーションプログラムからのデータ転送要求時に、前記リング予約情報テーブルを参照し前記ディスクリプタリングの空き状況を確認し該データ転送が可能な前記ディスクリプタリングを選択し、該データ転送で使用する前記ディスクリプタリングのディスクリプタのエントリ数をリング予約情報に登録するリング予約手段と、
    前記論理パーティション上で稼動する前記アプリケーションプログラムからのデータ転送要求時に、前記サイクル時間毎に前記リング予約情報テーブルを参照し、前記ディスクリプタリングを使用する前記カプセル化インターフェースの前記ディスクリプタグループの1つを前記ディスクリプタリングにメモリコピーしDMA転送を実行するディスクリプタ登録手段と、
    前記論理パーティション上で稼動する前記アプリケーションプログラムからのデータ転送要求時に、前記ディスクリプタグループのデータ転送終了時に、前記リング予約情報から該当する前記カプセル化インターフェースの予約情報を削除するリング予約解除手段とを持つことを特徴とするIOアダプタ。
  12. 請求項11に記載のIOアダプタにおいて、
    前記論理パーティション上で稼動する前記アプリケーションプログラムからのデータ転送要求時に、前記アプリケーションプログラムからカプセル化インターフェース識別子を受け取り、このカプセル化インターフェース識別子に対応した転送速度情報をカプセル化インターフェース情報テーブルから取得し、前記転送速度情報に基づき転送速度を制限するために一定時間毎に転送するデータサイズ毎に前記作成したディスクリプタを1個以上のディスクリプタグループに分けるディスクリプタ生成手段を持つことを特徴とするIOアダプタ。
  13. 請求項11に記載のIOアダプタにおいて、前記管理ソフトウェアに前記仮想マシンモニタ部およびIOアダプタを設定するためのユーザインターフェースを持ち、前記ユーザインターフェースは、前記カプセル化インターフェースの新規作成を設定する機能、前記カプセル化インターフェースの削除を設定する機能、前記カプセル化インターフェースの識別子を表示する機能、及び前記カプセル化インターフェースの転送速度情報を設定する機能の少なくとも一つを有すること、及び
    前記カプセル化インターフェースを前記論理パーティションに割当てを行う機能、割当てを変更する機能、割当てを削除する機能の少なくとも一つを有することを特徴とするIOアダプタ。
JP2007146429A 2006-12-06 2007-06-01 Ioアダプタとそのデータ転送方法 Expired - Fee Related JP4905255B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007146429A JP4905255B2 (ja) 2006-12-06 2007-06-01 Ioアダプタとそのデータ転送方法
US11/831,097 US7827331B2 (en) 2006-12-06 2007-07-31 IO adapter and data transferring method using the same

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006328934 2006-12-06
JP2006328934 2006-12-06
JP2007146429A JP4905255B2 (ja) 2006-12-06 2007-06-01 Ioアダプタとそのデータ転送方法

Publications (2)

Publication Number Publication Date
JP2008165724A JP2008165724A (ja) 2008-07-17
JP4905255B2 true JP4905255B2 (ja) 2012-03-28

Family

ID=39695086

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007146429A Expired - Fee Related JP4905255B2 (ja) 2006-12-06 2007-06-01 Ioアダプタとそのデータ転送方法

Country Status (1)

Country Link
JP (1) JP4905255B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5651622B2 (ja) * 2012-03-07 2015-01-14 株式会社東芝 データ伝送装置、データ伝送方法、及びプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003143221A (ja) * 2001-11-01 2003-05-16 Matsushita Electric Ind Co Ltd Tcp/ipエンジン
JP2004094452A (ja) * 2002-08-30 2004-03-25 Fujitsu Ltd Dmaコントローラおよびdma転送方法
JP2005352666A (ja) * 2004-06-09 2005-12-22 Murata Mach Ltd Dmaコントローラ及びdma制御方法

Also Published As

Publication number Publication date
JP2008165724A (ja) 2008-07-17

Similar Documents

Publication Publication Date Title
CN112099941B (zh) 实现硬件加速处理的方法、设备和系统
US10003649B2 (en) Systems and methods to improve read/write performance in object storage applications
JP6014271B2 (ja) データ処理システム及びデータ処理方法
US11861203B2 (en) Method, apparatus and electronic device for cloud service migration
US10489176B2 (en) Method, system and apparatus for creating virtual machine
CN110809760B (zh) 资源池的管理方法、装置、资源池控制单元和通信设备
KR102144330B1 (ko) 캡슐화 가능한 pcie 가상화
EP3461086B1 (en) Communication apparatus, communication method and computer-readable medium
CN110162378B (zh) 一种资源调度的方法、装置、设备及系统
JP2020113137A (ja) ストレージ装置
JP2019053591A (ja) 通知制御装置、通知制御方法及びプログラム
JP4905255B2 (ja) Ioアダプタとそのデータ転送方法
CN114860387A (zh) 一种面向虚拟化存储应用的hba控制器i/o虚拟化方法
KR101634672B1 (ko) 네트워크 인터페이스 가상화 장치, 방법 및 이를 실행하기 위한 컴퓨터 프로그램
JP5772132B2 (ja) データ転送装置、データ転送方法および情報処理装置
WO2013062109A1 (ja) I/oデバイス制御システムおよびi/oデバイス制御方法
US20110296434A1 (en) Techniques for Dynamically Sharing a Fabric to Facilitate Off-Chip Communication for Multiple On-Chip Units
CN116383127B (zh) 节点间通信方法、装置、电子设备及存储介质
US10992601B2 (en) Packet processing method and apparatus in multi-layered network environment
JP4106964B2 (ja) アドレス割当装置およびその方法
JP2002033739A (ja) 通信制御装置および方法
JP2013097718A (ja) 優先度制御システム、スイッチ、優先度制御方法、及びプログラム
JPH047768A (ja) 計算機システムのバッファ管理方式
JP2004152060A (ja) 計算機システム、および、そのディスクサブシステム
JP2005043940A (ja) 計算機システム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110927

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111125

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20111226

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20150120

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees