JP6011727B2 - データ転送装置、データ転送方法及び情報処理装置 - Google Patents

データ転送装置、データ転送方法及び情報処理装置 Download PDF

Info

Publication number
JP6011727B2
JP6011727B2 JP2015527105A JP2015527105A JP6011727B2 JP 6011727 B2 JP6011727 B2 JP 6011727B2 JP 2015527105 A JP2015527105 A JP 2015527105A JP 2015527105 A JP2015527105 A JP 2015527105A JP 6011727 B2 JP6011727 B2 JP 6011727B2
Authority
JP
Japan
Prior art keywords
data
storage unit
unit
data size
data transfer
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
JP2015527105A
Other languages
English (en)
Other versions
JPWO2015008354A1 (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of JP6011727B2 publication Critical patent/JP6011727B2/ja
Publication of JPWO2015008354A1 publication Critical patent/JPWO2015008354A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/382Information transfer, e.g. on bus using universal interface adapter

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Communication Control (AREA)

Description

本発明は、データ転送装置、データ転送方法及び情報処理装置に関する。
図13は従来のI/O(Input/Output:入出力)サブシステムを備える情報処理装置500の構成を示す図である。
この情報処理装置500は、プロセッサ504,メモリ503,システムコントローラ502,I/Oサブシステム510及びI/Oデバイス507,508を備える。
I/Oデバイス507,508は入出力装置であり、例えば、I/Oデバイス507はディスク装置であり、I/Oデバイス508はネットワークインタフェースである。
メモリ503は、ROM及びRAMを含む記憶装置である。プロセッサ504は、処理装置であり、メモリ503等に格納されたOSやプログラムを実行することにより、種々の機能を実現する。システムコントローラ502は、プロセッサ504やメモリ503とI/Oサブシステム510とを接続し、データの通信制御を行なう。又、システムコントローラ502は、プロセッサ504や後述するエンドポイント506等からのリクエストに応じて、メモリ503へのデータの書込み、読み出し等も行なう。
I/Oサブシステム510は、情報処理装置500の内部でプロセッサ504やメモリ503とI/Oデバイス507,508とを接続するバスシステムであり、その規格として、例えば、Peripheral Component Interconnect Express(PCIe)が知られている。
I/Oサブシステム510は、ルートコンプレックス(Root Complex)501,スイッチ505及び1つ以上のエンドポイント506を備える。
ルートコンプレックス501は、I/Oホストブリッジであり、プロセッサ504,メモリ503及びルートコンプレックス501の間のデータ転送プロトコルとI/Oサブシステム510内のデータ転送プロトコルとの間の変換を行なう。ルートコンプレックス501は、システムコントローラ502を介してプロセッサ504やメモリ503と接続される。
なお、ルートコンプレックス501とシステムコントローラ502との間を接続するインタフェースをシステムインタフェース501aといい、ルートコンプレックス501とスイッチ505との間を接続するインタフェースをI/Oインタフェース501bという。
スイッチ505は、経路集約用のデバイスであり、I/Oバスに対しファンアウト機能を提供する。
エンドポイント506は、I/Oバス構造の末端に位置する装置である。このエンドポイント506は、I/Oデバイス507,508が接続されるインタフェースである。
I/Oサブシステム510においては、データ転送はパケットを用いて行なわれる。エンドポイント506は、メモリ503とI/Oデバイス507,508との間で高スループットのデータ転送を実現するため、一般にDMA(Direct Memory Access)方式を採用している。
図14は従来の情報処理装置においてエンドポイント506によりDMAリード要求が行なわれた際のルートコンプレックス501の処理を示す図である。
エンドポイント506が発行したDMA リード要求パケットは、スイッチ505を経由して、ルートコンプレックス501のI/Oインタフェース501bの入力で受信される。DMAリード要求パケットはペイロード部がないヘッダ部のみで構成される。
ルートコンプレックス501は、DMAリード要求パケットの受信後、システムインタフェース501aを介してメモリ503にリード要求を発行し、メモリ503から応答データを受信する。データ受信後、ルートコンプレックス501は、DMAリード応答パケットを生成し、I/Oインタフェース501bに送出する。ここで、DMAリード応答パケットは、リード応答コマンド,応答先のIDを指定したヘッダ部及びペイロードを備える。
DMAリード応答パケットは、スイッチ505を経由して、リード要求を行なったエンドポイント506に到達し、DMAリード処理が完了する。
ここで、1つのパケットに付加されるペイロードのサイズ(ペイロードサイズ)は、例えば、以下のようにその上限を設定することができる。すなわち、ペイロードサイズの上限は、ルートコンプレックス501,スイッチ505,及びエンドポイント506の各デバイスが1パケット当りに処理できる最大のペイロードサイズ(MPSS;Max Payload Size Supported)を考慮して設定することが出来る。MPSSは、デバイス固有の値である。設定されたペイロードサイズの上限値をMPS(Max Payload Size)設定値もしくは単にMPSという。
I/Oサブシステム510内の各デバイスは、MPS設定値を、MPSSを超えない範囲で128バイト,256バイト,512バイト,・・・などと任意に設定できる。また、MPSSはI/Oサブシステム510内の各デバイスで異なる場合があるので、MPS設定値をデバイス毎に個別に設定することができる。図13に示す例においては、ルートコンプレックス501及びスイッチ505のMPS設定値がそれぞれ512バイトであり、又、3つのエンドポイント506のMPSがそれぞれ512バイト,256バイト,128バイトである。
MPS設定値は、主に以下に示す用途(1),(2)に用いられる。
(1)受信パケットのペイロードサイズチェック
ペイロード付きパケットを受信したデバイス(受信デバイス)は、受信したパケットのペイロードサイズと当該受信デバイス自身のMPS設定値とを比較する。そして、MPS設定値以下のペイロードサイズのパケットのみを処理し、パケットのペイロードサイズが大きい場合は、エラーとして、受信したデバイスがパケットを破棄する。この結果、データ転送が失敗することになる。
(2)送信パケットに付加するペイロードサイズの上限
ペイロード付きパケットを送信するデバイスは、送信先のデバイスが処理できるように、送信デバイスのMPS設定値に基づきパケットのペイロードサイズを決定する。MPS設定値より大きなサイズのデータを転送したい場合には、MPS設定値を上限としたペイロードサイズを有する複数のパケットを複数回に分けて送信する。
また、I/Oサブシステム510内の各デバイスは、リード要求のデータサイズを制限するための図示しない設定レジスタを備えている。リード要求のデータサイズの最大値(Max-Read-Request-Size:MRRS設定値)は、128バイト,256バイト,512バイト,・・・などと任意の大きさに設定でき、各デバイスで個別の設定値を指定できる。
パケットは、ヘッダ部が固定長に対してペイロードは可変長であるので、1パケット当りのペイロードサイズが大きい程、効率良くデータを転送できる。従来の情報処理装置500においては、ルートコンプレックス501がエンドポイント506のDMAリード要求に応答する際に、ルートコンプレックス501のMPS設定値を基にDMAリード応答パケットのペイロードサイズを可能な範囲で最大にすることで、データ転送の効率を上げている。
図15は従来の情報処理装置において、エンドポイントからリード要求を受けた場合のデータ転送処理を示す図である。この図15においては、ルートコンプレックス501のMPS設定が512バイトであり、エンドポイント506から2Kバイトのリード要求パケットを受けた場合のデータ転送例を示す。
ルートコンプレックス501は、I/Oインタフェース501bを介してエンドポイント506から2Kバイトの1つのDMAリード要求パケットを受信する。ルートコンプレックス501は、128バイト単位で分割されたメモリリード要求を、システムコントローラ502に対してシステムインタフェース501aの出力から合計で16回発行する。
システムインタフェース501aに入力されたメモリ503からのデータ応答を契機に、ルートコンプレックス501は、最大512バイト のペイロードサイズを持つDMAリード応答パケットを生成する。そして、ルートコンプレックス501においては、作成した応答パケットをI/Oインタフェース501bに送出する。応答パケットの送出回数は最小で4回となる。
ルートコンプレックス501においては、スループットを向上させるために効率よくデータ転送を行ないたい。そのためにMPS設定値を大きくすることが有効である。
しかし、情報処理装置においては、デバイス毎にMPSSが異なる場合があり、且つMPS設定値をデバイス毎に設定できるため、自由にMPS設定値を設定するとデータ転送に失敗する場合がある。すなわち、上述した用途(1)に示したように、データ受信側のMPS設定値を超えるペイロードサイズでパケット送信するとデータ転送に失敗する。
例えば、ルートコンプレックス501のMPS設定値が512バイトで設定されているI/O サブシステム510で、エンドポイント506のMPSSが128バイトでMPS設定値も128バイトと設定されるシステムを想定する。
エンドポイント506が例えば2Kバイト のDMAリード要求した場合に、ルートコンプレックス501がペイロードサイズ512バイトのDMAリード応答パケットを発行すると、このペイロードサイズは、エンドポイント506のMPS設定値(128バイト)よりも大きい。従って、エンドポイント506においては、この受信したDMAリード応答パケットをエラーとして扱い、データ転送が失敗する。
このデータ転送失敗はI/Oサブシステム510内のMPS設定値を独立して設定できることに起因するので、従来の情報処理装置500においては、以下の(a1),(a2)のいずれかに示すような手法を用いてシステム運用でデータ転送の失敗を回避している。
(a1)I/Oサブシステム510内で最小のMPSSに合わせてMPS設定値を統一
I/Oサブシステム510内において最小のMPSSを全デバイスのMPS設定値とする。これにより、どのエンドポイント506が任意のサイズのDMAリードを行なっても、ルートコンプレックス501はエンドポイント506が受信可能なDMAリード応答パケットを発行する。
図16は従来の情報処理装置において、エンドポイントからリード要求を受けた場合のデータ転送処理を示す図である。この図16においては、エンドポイント506から2Kバイトのリード要求を受けた場合のデータ転送例であって、MPS設定値が128バイトで統一された場合のデータ転送の具体例を示す。
ルートコンプレックス501は、I/Oインタフェース501bを介してエンドポイント506から2Kバイトの1つのDMAリード要求パケットを受信する。ルートコンプレックス501は、128バイト単位で分割されたメモリリード要求を、システムコントローラ502に対してシステムインタフェース501aの出力から合計で16回発行する。
システムインタフェース501aに入力されたメモリ503からのデータ応答を契機に、ルートコンプレックス501は、128バイト のペイロードサイズを持つDMAリード応答パケットを生成する。そして、ルートコンプレックス501においては、作成した応答パケットをI/Oインタフェース501bに送出する。応答パケットの送出回数は最小でも16回となる。
(a2)エンドポイント506のDMAリード要求のデータサイズの上限を設ける
各エンドポイント506のMPS設定値は自身のMPSSを超えない範囲で設定するとともに、エンドポイント506のMRRS設定値をMPS設定値と同じ大きさにする。この場合、DMAリードのデータサイズがエンドポイント506のMPS設定値を超えることはなく、ルートコンプレックス501のDMAリード応答パケットのペイロードサイズも要求元エンドポイント506のMPS設定値を超えない。従って、DMAリードは成功する。
図17は従来の情報処理装置において、エンドポイントからリード要求を受けた場合のデータ転送処理を示す図である。この図17においては、エンドポイント506から2Kバイトのリード要求を受けた場合のデータ転送例であって、エンドポイント506のMPS設定値及びMRRS設定値が512バイトで統一された場合のデータ転送の具体例を示す。
この図17に示すように、エンドポイント506は、2Kバイト分のDMA リードをしたい場合であっても、512バイト のDMAリード要求を最低4回発行する。
その後、ルートコンプレックス501は、128バイト単位で分割されたメモリリード要求を、システムコントローラ502に対してシステムインタフェース501aの出力から合計で16回発行する。
システムインタフェース501aに入力されたメモリ503からのデータ応答を契機に、ルートコンプレックス501は、512バイト のペイロードサイズを持つDMAリード応答パケットを生成する。そして、ルートコンプレックス501においては、作成した応答パケットをI/Oインタフェース501bに送出する。応答パケットの送出回数は最小で4回となる。
特開2012−205142号公報
従来の情報処理装置においては、ルートコンプレックス501のI/Oインタフェース501bの出力もしくは入力に余分なパケットのヘッダ部が発生してしまうため、データ転送効率を低下させるという課題がある。
すなわち、図16に示したように、I/Oサブシステム510内で最小のMPSSに合わせてMPS設定値を統一する手法(a1)を用いるには、リード要求に対する応答パケットのペイロードサイズが小さくなるため、ルートコンプレックス501のI/Oインタフェース501bの出力バスにおけるデータスループットが減少する。又、増加した応答パケットのヘッダ部が、ルートコンプレックス501のI/Oインタフェース501bの出力バスのデータ転送を圧迫する。
また、図17に示したように、エンドポイント506のDMA リード要求のデータサイズの上限を設ける手法(a2)を用いる場合には、DMAリードのデータサイズを任意サイズに指定できる場合(図15に示す例では1回)に比べて、DMAリード要求の発行回数が増加する(図17に示す例では4回)。従って、増加したDMAリード要求パケットのヘッダ部が、ルートコンプレックス501のI/Oインタフェース501bの入力バスのデータ転送を圧迫する。
1つの側面では、本発明は、データ転送効率を向上できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、このデータ転送装置は、入出力バスに接続されるデータ転送装置であって、前記入出力バスに接続される入出力制御デバイスからデータ取得要求を受信すると、前記入出力制御デバイスが処理可入出力制御デバイスからデータ取得要求を受信すると、前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、当該データ転送装置が処理可能な第2のデータサイズ情報とを比較し、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する決定部と、前記決定部によって決定された前記応答データサイズに基づいて応答データを作成する作成部と、前記作成部によって作成された前記応答データを送信する送信部とを備える。
開示の技術によれば、データ転送効率を向上できる利点がある。
第1実施形態の一例としての情報処理装置の機能構成を例示する図である。 第1実施形態の一例としての情報処理装置におけるスコアボードの例を示す図である。 DMAリード要求パケットの構成例を示す図である。 第1実施形態の一例としての情報処理装置におけるMPS設定テーブルの構成を説明するための図である。 第1実施形態の一例としての情報処理装置におけるイーグレス処理部によるDMAリード応答パケットの送信処理を示すフローチャートである。 第1実施形態の一例としての情報処理装置におけるDMAリード応答パケットのペイロードサイズの決定手法の概要を示すフローチャートである。 第1実施形態の一例としての情報処理装置の制御部によるペイロードサイズの決定方法を示すフローチャートである。 第2実施形態の一例としての情報処理装置の構成を示す図である。 第2実施形態の一例としての情報処理装置におけるスコアボードの例を示す図である。 第2実施形態の一例としての情報処理装置におけるデータ転送を示すシーケンス図である。 第3実施形態の一例としての情報処理装置の構成を示す図である。 第4実施形態の一例としての情報処理装置の構成を示す図である。 従来のI/Oサブシステムを備える情報処理装置の構成を示す図である。 従来の情報処理装置においてエンドポイントによりDMAリード要求が行なわれた際のルートコンプレックスの処理を示す図である。 従来の情報処理装置において、エンドポイントからリード要求を受けた場合のデータ転送処理を示す図である。 従来の情報処理装置において、エンドポイントからリード要求を受けた場合のデータ転送処理を示す図である。 従来の情報処理装置において、エンドポイントからリード要求を受けた場合のデータ転送処理を示す図である。
以下、図面を参照して本データ転送装置、データ転送方法及び情報処理装置に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態を組み合わせる等)して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(A)第1実施形態
図1は第1実施形態の一例としての情報処理装置1の機能構成を例示する図である。本情報処理装置1は、I/Oバスシステムとして、例えばPCIeバスを備える。
第1実施形態の情報処理装置1は、図1に示すように、プロセッサ32,メモリ31,システムコントローラ30,ルートコンプレックス50,スイッチ33及び1つ以上のエンドポイント34を備える。又、情報処理装置1において、ルートコンプレックス50,スイッチ33及びエンドポイント34をI/Oサブシステム2という。
メモリ31は、ROM及びRAMを含む記憶装置である。メモリ31のROMには、種々のソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ31上のソフトウェアプログラムは、プロセッサ32に適宜読み込まれて実行される。又、メモリ31のRAM(主記憶装置)は、一次記憶メモリあるいはワーキングメモリとして利用される。
プロセッサ32は、種々の制御や演算を行なう処理装置であり、例えば、CPU(Central Processing Unit)である。プロセッサ32は、メモリ31や図示しない記憶装置等に格納されたOSやプログラムを実行することにより、種々の機能を実現する。
システムコントローラ30は、プロセッサ32やメモリ31とルートコンプレックス50とを接続し、データの通信制御を行なう。システムコントローラ30は、プロセッサ32やエンドポイント34等からのリクエストに応じて、メモリ31へのデータの書込み、読み出し等も行なう。システムコントローラ30は、例えば、ホストブリッジやメモリコントローラとしての機能を備える。
スイッチ33は、経路集約用のデバイスであり、I/Oバスに対しファンアウト機能を提供する。すなわち、スイッチ33は、エンドポイント34とルートコンプレックス50とを接続し、データの通信制御を行なう。
エンドポイント34は、I/Oバス(入出力バス)構造の末端に位置する入出力デバイスであり、ストレージ装置やネットワークインタフェース装置等の図示しないI/O装置が接続される。
エンドポイント34は、PCIeを利用したI/O装置であってもよく、又、PCIe以外のデバイスを接続するためのインタフェースであってもよい。
エンドポイント34は、例えば、配下のI/O装置からDMA(Direct Memory Access)要求を受けると、要求をルートコンプレックス50に送信する。
以下、I/O装置からのDMA要求として、特に、メモリ31のデータをリードするDMAリード要求が行なわれる場合について説明する。DMAリード要求は、エンドポイント34からDMAリード要求パケットを送信することにより行なわれる。
ルートコンプレックス50は、スイッチ33を介してエンドポイント34と接続されている。又、ルートコンプレックス50は、システムコントローラ30を介してメモリ31及びプロセッサ32とも接続されている。
ルートコンプレックス50は、I/Oバス構造のルートデバイスであり、プロトコル変換を行なって、エンドポイント34から送信されるPCIeのパケットと、メモリ31やプロセッサ32のプロトコルにしたがったパケットとを相互に転送する。
ルートコンプレックス50は、システムコントローラ30との間を接続するシステムインタフェース26と、スイッチ33との間を接続するI/Oインタフェース25とを備える。
エンドポイント34は、エンドポイント34配下のI/O装置からDMA要求を受けると、DMA要求をルートコンプレックス50に送信する。
ルートコンプレックス50は、エンドポイント34からDMA要求を受信すると、このエンドポイント34から受信したDMA要求をシステムコントローラ30に転送する。
この際、ルートコンプレックス50は、エンドポイント34から受信したDMA要求を1または2以上のDMA要求(分割リクエスト)に分割する。具体的には、ルートコンプレックス50は、エンドポイント34から受信したリード要求が要求するデータを、最終的に、システムコントローラ30との間で送受信可能なサイズ以下となるように分割し、分割したデータ毎に新たなリード要求(分割リクエスト)を生成する。そして、ルートコンプレックス50は、分割して生成したリード要求をシステムコントローラ30に送信する。
システムコントローラ30は、ルートコンプレックス50からリード要求を受信すると、そのリード要求で要求されるデータをメモリ31から読み出す。そして、システムコントローラ30は、メモリ31から読み出したデータを、リードデータ(レスポンス)として、ルートコンプレックス50に送信する。
ルートコンプレックス50は、システムコントローラ30からリード要求に対するリードデータを受信する。そして、ルートコンプレックス50は、受信した1または2以上のリードデータが、後述する所定のペイロードサイズになると、所定のペイロードサイズを有するDMAリード応答パケットを生成してエンドポイント34に転送する。エンドポイント34は、ルートコンプレックス50からDMAリード応答パケットを受信すると、DMA要求のあったI/O装置にデータを送信する。
なお、上記DMA転送の処理では、ルートコンプレックス50とエンドポイント34との間、及び、ルートコンプレックス50とシステムコントローラ30との間は、それぞれパケット形式でデータの送受信が行なわれる。
ルートコンプレックス50は、図1に示すように、イングレス処理部10,スコアボード14及びイーグレス処理部15を備える。
イングレス処理部10は、受信部11,パケット分割部12及びシステムインタフェース送信部13を備える。
受信部11は、エンドポイント34からDMAリード要求(DMAリード要求パケット)を受信する。そして、受信部11は、受信したDMAリード要求をパケット分割部12に出力する。
パケット分割部12は、DMAリード要求を1または2以上のDMAリード要求(分割リクエスト)に分割する。例えば、DMA要求がDMAリード要求である場合には、このDMAリード要求を1または2以上のリード要求(分割リクエスト)に分割する。具体的には、パケット分割部12は、エンドポイント34からのDMAリード要求をシステムコントローラ30が処理可能なデータサイズに分割して、1または2以上のリード要求に分割する。パケット分割部12は、DMAリード要求を、システムコントローラ30が処理可能なサイズ(例えば、128kバイト)の1または2以上のリード要求に分割する。
パケット分割が完了すると、パケット分割部12は、図2を用いて後述するスコアボード14にリード要求(分割リクエスト)についての情報を記憶する。
システムインタフェース送信部13は、パケット分割部12が作成したリード要求を、順次、システムインタフェース26を介してシステムコントローラ30に送信する処理を行なう。
エンドポイント34から受信したDMA要求がメモリ31に対するDMAリード要求である場合、分割して作成されたリード要求もメモリ31に対するDMAリード要求となる。この場合、システムコントローラ30は、ルートコンプレックス50から受信したリード要求に基づき、リード要求が要求するデータをメモリ31から読み出し、読み出したデータ(リードデータ)を含むレスポンスデータをルートコンプレックス50に送信する。
スコアボード14は、パケット分割部12によって作成されたリード要求についての情報を格納する。
図2は第1実施形態の一例としての情報処理装置1におけるスコアボード14の例を示す図である。
スコアボード14は、図2に例示するように、受信リクエスト番号「No.」,コマンド,Requester-ID,分割数及びカウント数の各フィールドを対応付けて構成されている。受信リクエスト番号「No.」は、受信リクエスト(リード要求)を特定するための識別情報である。スコアボード14は、受信リクエスト番号「No.」毎に、コマンド,Requester-ID,分割数及びカウント数を含む情報を対応させて記憶する。スコアボード14には、RAMなどの揮発性メモリを使用することができる。
受信リクエスト番号「No.」は、受信順に受信リクエストに割り当てる識別情報である。コマンドは、受信リクエストに含まれるコマンドである。受信リクエストがリード要求である場合には、リード命令が格納される。分割数は、パケット分割部12により受信リクエストから最終的に分割された分割リクエストの数である。カウント値は、レスポンスとして未送信である分割リクエストの数を示す値である。
Requester-IDは、DMAリード要求パケットに含まれ、DMAリード要求の要求元を示す識別情報(要求元識別情報,ID)の役割をする。すなわち、Requester-IDはリード要求の要求元IDとして機能する。
図3はDMAリード要求パケットの構成例を示す。この図3に示すDMAリード要求パケット(Memory Read)は96ビットのパケットとして構成されている。PCIeでは、DMAリード要求パケット内に16ビットのRequester-IDが含まれており、このRequester-IDがパケット発行元デバイスの識別情報として機能する。このRequester-IDには、8ビットのBus-ID,5ビットのDevice-ID及び3ビットのFunction-IDが含まれている。
スコアボード14のRequester-IDには、このDMAリード要求パケットから抽出されたRequester-IDが格納される。
なお、スコアボード14に格納する情報は、これらに限定されるものではなく、例えば、受信リクエストを識別するためのタグ等を格納してもよい。
イーグレス処理部15は、システムインタフェース受信部16,レスポンスキュー17,データバッファ18,制御部19,送信部20,監視部24及びMPS設定テーブル51を備える。
システムインタフェース受信部16は、システムコントローラ30からレスポンスデータを受信する。システムインタフェース受信部16は、レスポンスデータに含まれるヘッダ部を、レスポンスキュー17に格納する。又、システムインタフェース受信部16は、レスポンスデータに含まれるデータ部を、データバッファ18に格納する。データバッファ18に格納されるデータ部と、レスポンスキュー17に格納されるヘッダ部とは、1対1に対応づけて格納される。
MPS設定テーブル(格納部)51は、I/Oサブシステム2内の全デバイスのMPS設定値(第1のデータサイズ情報)のコピーを記録する。すなわち、MPS設定テーブル51は、/Oサブシステム2内の全デバイスのMPS設定値のコピーを一元管理する。このMPS設定テーブル51は、イーグレス処理部15に備えられたレジスタに格納される。
図4は第1実施形態の一例としての情報処理装置1におけるMPS設定テーブル51の構成を説明するための図である。
MPS設定テーブル51は、この図4に示すように、Bus-IDに対してMPS設定を対応付けて構成されている。Bus-IDは、I/Oサブシステム2内のデバイスを一意に特定する識別情報であり、DMAリード要求パケットのRequester-IDに含まれている。
図4に示す例においては、Bus-IDとして0〜255の整数を用いた256のエントリが示されている。なお、このBus-IDのエントリは、PCIeで規定されているMPSレジスタと同様の値を用いることが望ましい。
MPS設定は、MPSを示す情報であり、例えば、3ビットの情報である。図4に示す例においては、MPS設定を、尾部に“b”を付した2進数で表している。この図4に示す例においては、例えば、MPS設定“000b”がMPS=128バイトを示し、MPS設定“001b”がMPS=256バイトを示す。MPSの値をMPS設定値という。
後述する制御部19は、スコアボード14内のRequester-IDを用いて、Requester-IDに含まれる8ビットのBus-IDに基づいてMPS設定テーブル51を参照する。そして、制御部19は、MPS設定テーブル51からRequester-IDに含まれるBus-IDと一致するエントリを選択し、その対応するMPS設定値を抽出する。
このMPS設定テーブル51には、例えば、プロセッサ32が制御プログラムを実行することにより、各エンドポイント34のMPS設定値の設定を行なう過程で、各MPS設定値のコピーを設定する。
なお、図4に示すMPS設定テーブル51は、Bus-IDとMPS設定値とを備えているが、これに限定されるものではなく、他の情報を格納してもよい。例えば、MPS設定テーブル51に、Requester-IDに含まれるDevice-IDやFunction-IDを格納してもよい。
制御部19は、エンドポイント34に送信するレスポンスのペイロードサイズを決定する。制御部19は、MPSレジスタ191を備える。MPSレジスタ191はルートコンプレックス50のMPS設定値(第2のデータサイズ情報)を格納する。MPSレジスタ191は、例えば、システムコントローラ30を介して、又は、直接、プロセッサ32と接続されている。プロセッサ32がOSを実行することにより、その機能によってMPSレジスタ191にMPS設定値を書き込むことができる。
制御部(決定部)19は、リード要求元からのリード要求のRequester-IDに含まれるBus-IDに基づいてMPS設定テーブル51を参照して、リード要求元のMPS設定値のコピーを取得し、この取得したMPS設定値のコピーと、MPSレジスタ191に格納されたMPS設定値とを比較する。
そして、制御部19は、この比較の結果、小さい方のMPS設定値に基づいて、ペイロードサイズを決定する。なお、この制御部19によるペイロードサイズの決定方法の詳細は、図7を用いて後述する。
なお、以下、制御部19がMPS設定テーブル51からリード要求元のMPS設定値のコピーを抽出することを、単に、リード要求元のMPS設定値を抽出するという。
制御部19は、決定したペイロードサイズを送信部20に通知する。
また、制御部19は、レスポンスデータの受信状態等に基づいて、パケットが発行可能であることを検出する。この場合、制御部19は、送信部20にパケットの発行を指示する。
また、制御部19は、送信部20による、エンドポイント34へのDMAリード応答パケット(レスポンス)の送信が完了する毎に、後述するスコアボード14を参照し、送信が完了したレスポンスの分割元の受信リクエストのカウント値をデクリメントする。
なお、カウント値の初期値には、分割数を使用することができる。カウント値が0になると、制御部19は、カウント値が0となった受信リクエストに対するレスポンスの送信が完了したと判断する。制御部19は、レスポンスの送信が完了した受信リクエストのパケット情報を、スコアボード14からクリアする。
送信部(作成部)20は、制御部19から通知されたペイロードサイズに基づき、DMAリード応答パケットを生成し、I/Oインタフェース25を介してスイッチ33に送出する。
送信部20は、図1に示すように、ペイロード生成部21,パケット生成部22及び出力バッファ23を備える。
ペイロード生成部21は、データバッファ18から取り出したレスポンスデータを受信すると、制御部19から通知されたペイロードサイズのペイロードを生成する。なお、所定のペイロードサイズのペイロードを作成する手法は既知であり、その詳細な説明は省略する。そして、ペイロード生成部21は、生成したペイロードをパケット生成部22に出力する。
パケット生成部22は、ペイロード生成部21からペイロードを受信すると、ヘッダ情報を生成して、ペイロード生成部21から受信したペイロードを含む、エンドポイント34へのレスポンスデータ(DMAリード応答パケット)を生成する。パケット生成部22は、生成したレスポンスデータを出力バッファ23に格納する。出力バッファ23は、レスポンスデータを格納する記憶装置である。
送信部20は、出力バッファ23にレスポンスが格納されると、出力バッファ23に格納されたレスポンスデータを、エンドポイント34に出力する。
監視部24は、出力バッファ23を監視して、送信部20のビジー(busy)状態を検出する。ビジー状態を検出すると、監視部24は、ビジー情報を生成して制御部19に通知(ビジー通知)する。このビジー情報には、例えば送信部20がビジー状態であることを示す情報が含まれる。
なお、監視部24は、出力バッファ23の空き状況に基づいて、例えば、出力バッファ23の、新たなパケットを格納するための空き容量が一定以下の場合に、送信部20がビジー状態であると判断する。また、監視部24は、出力バッファ23からエンドポイント34へパケットを送出する通信回線の通信状況に基づいて、例えば、通信回線がビジー状態の場合に、送信部20がビジー状態であると判断してもよい。
上述の如く構成された第1実施形態の一例としての情報処理装置1におけるイーグレス処理部15によるDMAリード応答パケットの送信処理を、図5に示すフローチャート(ステップA1〜A5)に従って説明する。
制御部19は監視部24のビジー状態を監視している(ステップA1)。監視部24からビジー通知が行なわれていない場合に、制御部19がペイロードサイズを決定し、決定したペイロードサイズを送信部20に通知する(ステップA2)。
送信部20において、ペイロード生成部21が、制御部19から通知されたペイロードサイズに従って、データバッファ18に格納されているデータ部を用いてペイロードを生成する(ステップA3)。ペイロード生成部21は、通知されたペイロードサイズに従い、データバッファ18から1又は2以上のレスポンスデータを取りだして、ペイロードを生成する。
パケット生成部22が、レスポンスキュー17に格納されたヘッダ部を用いてヘッダ情報を生成し、ペイロード生成部21によって作成されたペイロードを用いて、DMAリード応答パケットを生成する(ステップA4)。ヘッダ情報は、例えば、ペイロードに使用したレスポンスデータのヘッダ部に含まれる情報、例えば、送信先アドレス等に基づいて生成される。
パケット生成部22は、生成したDMAリード応答パケットを出力バッファ23に格納し、送信部20は、このDMAリード応答パケットをスイッチ33を介して要求元のエンドポイント34に送信する(ステップA5)。
次に、第1実施形態の一例としての情報処理装置1におけるDMAリード応答パケットのペイロードサイズの決定手法の概要を、図6に示すフローチャート(ステップB1〜B7)に従って説明する。
まず、ステップB1において、制御部19は、DMAリード要求パケットのRequester-IDのBus-IDを用いて、MPS設定テーブル51から要求元のMPS設定値を抽出する。
ステップB2において、制御部19は、MPSレジスタ191からルートコンプレックス50のMPS設定値を読み出し、ステップB1において抽出した要求元のMPS設定値と比較する。そして、制御部19は、要求元のMPS設定値とルートコンプレックス50のMPS設定値とのうち、小さい方のMPS設定値をチェック用MPSとする。チェック用MPSはペイロードサイズを決定するために暫定的に用いられる値である。
ステップB3において、制御部19は、チェック用MPSでリード応答パケットを生成可能かを確認し、生成可能であれば(ステップB3のYESルート参照)、その時点でのチェック用MPSをペイロードサイズとして決定する(ステップB4)。制御部19は、決定したペイロードサイズを送信部20に通知する。送信部20は、通知されたチェック用MPSをペイロードサイズとするDMAリード応答パケットを生成する。
一方、チェック用MPSでパケット生成可能でない場合には(ステップB3のNOルート参照)、制御部19は、チェック用MPSを、その最小値となるまでの間で段階的に減少させながら、リード応答パケットが生成可能かをチェックしていく。
すなわち、制御部19は、チェック用MPSが最小値であるか否かを確認する(ステップB5)。チェック用MPSが最小値ではない場合には(ステップB5のNOルート参照)、ステップB7において、チェック用MPSを所定量減少させ、ステップB3に戻る。なお、減少量と最小値は任意の大きさを想定しており、例えば両者を128バイトとする。
また、チェック用MPSが最小値である場合(ステップB5のYESルート参照)、すなわち、最小となるチェック用MPSでもリード応答パケットを生成可能ではない場合は、ペイロードサイズの決定は行なわない(ステップB6)。すなわち、DMAリード応答パケットの生成は行なわずに処理を終了し、ペイロードサイズの決定やDMAリード応答パケットの生成は次のタイミングに任せる。
次に、第1実施形態の一例としての情報処理装置1の制御部19によるペイロードサイズの決定方法を、図7に示すフローチャート(ステップC1〜C12)に従って説明する。
ステップC1において、制御部19は、監視部24から通知されるビジー情報に基づき、イーグレス処理部15(送信部20)がビジー状態か否かを判別する。
送信部20がビジー状態であると判別すると(ステップC1のYESルート参照)、ステップC1に戻る。この場合、例えば、一定期間経過後に、制御部19は、再度ステップC1の処理を行なう。制御部19は、送信部20のビジー状態が解除されるまで、ステップC1の処理を繰り返す。なお、送信部20がビジー状態の間も、受信部11は、システムコントローラ30からレスポンスデータを受信し、レスポンスデータに含まれるヘッダ部およびデータ部を、それぞれ、レスポンスキュー17及びデータバッファ18に格納することができる。ただし、レスポンスキュー17及びデータバッファ18に空き領域がある場合に限る。
一方、送信部20がビジー状態でないと判別すると(ステップC1のNOルート参照)、ステップC2において、制御部19は、DMAリード要求パケット(DMAリード要求)のRequester-ID(識別情報)を用いて、MPS設定テーブル51から該当する要求元のMPS設定値を抽出する。
ステップC3において、制御部19は、要求元のMPS設定値と、MPSレジスタ191に格納されたMPS設定値とを比較し、小さい方のMPS設定値をチェック用MPSとして設定する。チェック用MPSはペイロードサイズを決定するために暫定的に用いられる値である。
ステップC4において、チェック用MPSが第1の閾値である512バイト以上であるか否かを確認する。チェック用MPSが512バイト以上の場合(ステップC4のYESルート参照)、制御部19は、処理をステップC5に移行する。ステップC5において、制御部19は、ペイロードサイズが512バイトのレスポンスを生成可能か判別する。例えば、レスポンスデータのペイロードサイズが128バイトの場合、制御部19は、システムコントローラ30から4つ(4×128バイト=512バイト)以上レスポンスデータを受信している場合に、ペイロードサイズが512バイトのレスポンスを生成可能と判別できる。なお、このようなペイロードサイズが所定のレスポンスデータを作成可能であるか否かの判断は、既知の種々の手法を用いて行なうことができる。
ペイロードサイズが512バイトのレスポンスを生成可能と判別した場合(ステップC5のYESルート参照)には、ステップC6において、制御部19は、ペイロードサイズを512バイトに決定する。
チェック用MPSが512バイトより小さい場合には(ステップC4のNOルート参照)、ステップC8において、チェック用MPSが第2の閾値である256バイト以上であるか否かを確認する。チェック用MPSが256バイト以上の場合(ステップC8のYESルート参照)、制御部19は、処理をステップC9に移行する。ステップC9において、制御部19は、ペイロードサイズが256バイトのレスポンスを生成可能か判別する。又、ペイロードサイズが512バイトのレスポンスを生成できないと判別した場合にも(ステップC5のNOルート参照)、ステップC9に移行する。
例えば、レスポンスデータのペイロードサイズが128バイトの場合、制御部19は、システムコントローラ30から2つ(2×128バイト=256バイト)以上レスポンスデータを受信している場合に、ペイロードサイズが256バイトのレスポンスを生成可能と判別できる。
ペイロードサイズが256バイトのレスポンスを生成可能と判別した場合(ステップC9のYESルート参照)には、ステップC10において、制御部19は、ペイロードサイズを256バイトに決定する。
チェック用MPSが256バイトより小さい場合には(ステップC8のNOルート参照)、又は、ペイロードサイズが256バイトのレスポンスを生成できないと判別した場合(ステップC9のNOルート参照)、制御部19は、処理をステップC11に移行する。ステップC11において、制御部19は、ペイロードサイズが128バイトのレスポンスを生成可能か判別する。
例えば、レスポンスデータのペイロードサイズが128バイトの場合、制御部19は、システムコントローラ30から少なくとも1つ(1×128バイト=128バイト)以上レスポンスデータを受信している場合に、ペイロードサイズが128バイトのレスポンスを生成可能と判別できる。
ペイロードサイズが128バイトのレスポンスを生成可能と判別した場合(ステップC11のYESルート参照)、ステップC12において、制御部19は、ペイロードサイズを128バイトに決定する。
また、ペイロードサイズが128バイトのレスポンスを生成できないと判別した場合(ステップC11のNOルート参照)、制御部434は、処理をステップC1に戻る。この場合、新たなレスポンスデータがレスポンスキュー17に格納されると、制御部19は、ステップC1から処理を開始する。
ペイロードサイズを決定すると(ステップC6,C10及びC12)、ステップC7において、制御部19は、決定したペイロードサイズをペイロード生成部21に通知する。以上の処理が終了すると、制御部19は、ペイロードサイズを決定する処理を終了する。
以上に説明したイングレス処理部10は、受信部11における受信処理、パケット分割部12におけるパケット分割処理およびシステムインタフェース送信部13における送信処理などの処理要素を直列に連結してパイプライン処理を行なうことができる。この場合、受信処理、パケット分割処理および送信処理を、さらに複数の処理要素に分割してパイプライン処理を行なうこともできる。
同様に、イーグレス処理部15においても、システムインタフェース受信部16における受信処理、送信部20における送信処理などの処理要素を直列に連結してパイプライン処理を行なうことができる。この場合、受信処理および送信処理を、さらに複数の処理要素に分割してパイプライン処理を行なうこともできる。
また、図1に示す例においては、スコアボード14、レスポンスキュー17およびデータバッファ18等を別々に記載しているが、1つのメモリで実現してもよいし、必要に応じて、2以上のメモリで実現してもよい。
このように、実施形態の一例としての情報処理装置1によれば、MPS設定テーブル51にI/Oサブシステム2内の全デバイスのMPS設定値のコピーを記録しておき、制御部19が、このMPS設定テーブル51を参照して、DMAリード要求パケットの発行元デバイスのMPS設定値を取得する。そして、制御部19が、リード要求元のMPS設定値を取得して、この取得したMPS設定値と、MPSレジスタ191に格納されたMPS設定値とを比較し、小さい方のMPS設定値に基づいて、ペイロードサイズを決定する。
これにより、I/Oサブシステム2内の各デバイスが異なるMPSSを有する場合でも、各デバイスに応じた最適なペイロードサイズのレスポンスデータを作成することができ、データ転送効率を向上させることができる。その結果、ルートコンプレックス50−エンドポイント34間のバスを効率的に使用してスループットを向上させることができる。
(B)第2実施形態
図8は第2実施形態の一例としての情報処理装置1の構成を示す図である。この図8に示す情報処理装置1は、図1に示した第1実施形態の情報処理装置1のイーグレス処理部15にMPS設定テーブル51を備える代わりに、メモリ31にMPS設定テーブル51を備える。又、MPS設定テーブルベースアドレスレジスタ52を備えるとともに、イングレス処理部10にMPS設定読出部53を備える。更に、スコアボード14に代えてスコアボード14aを備える。
なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
MPS設定テーブルベースアドレスレジスタ(第3格納部)52には、メモリ31上のMPS設定テーブル31の格納場所を示すアドレス情報(MPS設定テーブルアドレス情報,ベースアドレス,アクセス情報)が格納される。MPS設定テーブルアドレス情報は、メモリ31上においてMPS設定テーブル51が格納されている位置を示すアドレス情報であり、例えば、MPS設定テーブル51の先頭位置(ベースアドレス)を示す。
MPS設定読出部53は、このMPS設定テーブルアドレス情報を参照することにより、メモリ31におけるMPS設定テーブル51にアクセスすることができる。
MPS設定読出部(取得部)53は、受信部11からDMAリード要求が転送されると、MPSテーブルベースアドレス情報を参照して、メモリ31上のMPS設定テーブル51にアクセスする。そして、MPS設定読出部53は、DMAリード要求パケットのRequester-IDに基づいてMPS設定テーブル51を参照して、Requester-IDに対応するMPS設定値のコピーを読み出す。
なお、MPS設定テーブル51における各MPS設定値の格納位置は、MPS設定テーブルアドレス情報によって示されるベースアドレス(MPS設定テーブル51の先頭アドレス)に所定のオフセット値を加算した値で示される。そして、本第2実施形態において、その所定のオフセット値は、Requester-ID(Bus-ID)に相当する。すなわち、ベースアドレスに要求元デバイスのRequester-IDを加算した値が、MPS設定テーブル51において当該要求元デバイスのMPS設定値の格納位置を示す。以下、要求元デバイスのRequester-IDを要求元IDオフセットという場合がある。
このメモリ31からのMPS設定値の読み出しは、例えば、イングレス処理部10からシステムコントローラ30を介してベースアドレスと要求元IDオフセットとを通知することにより行なわれる。メモリ31から読み出されたMPS設定値は、システムコントローラ30及びシステムインタフェース受信部16を介してMPS設定読出部53に送達される。
なお、メモリ31からのMPS設定値の読み出しには、既知の種々のメモリ読み出し手法を用いることができる。
また、メモリ31のMPS設定テーブル51から読み出されたMPS設定値はパケット分割部12に受け渡され、パケット分割部12は、このMPS設定値を、スコアボード14aに、要求元のRequester-IDに対応付けて格納する。
図9は第2実施形態の一例としての情報処理装置1におけるスコアボード14aの例を示す図である。
スコアボード(第2格納部)14aは、この図9に示すように、図2に示した第1実施形態のスコアボード14にMPS設定値(MPS)のフィールドを備える。MPS設定値は、例えば3ビットのデータサイズを有する。
MPS設定読出部53によるメモリ31からMPS設定値の読み出しが完了すると、パケット分割部12が該当するMPS設定値をリード要求情報(Requester-ID等)とともにスコアボード14aに登録する。
本第2実施形態においては、イーグレス処理部15の制御部19は、MPS設定テーブル51を参照する変わりに、Requester-IDに基づいてスコアボード14aを参照し、このスコアボード14aのMPS設定値フィールドの値を抽出してMPS設定値として使用する。
ルートコンプレックス50による該当MPS設定値の取得は、DMAリード応答パケットを生成する前に行なう必要がある。そのため、イングレス処理部10からメモリ31へリード要求を行なう前にMPS設定テーブル51を読み出し、スコアボード14aへ格納する。
図10は第2実施形態の一例としての情報処理装置におけるデータ転送を示すシーケンス図である。
ルートコンプレックス50は、I/Oインタフェース25を介してDMAリード要求パケットを受信した後(P1参照)、MPS設定読出部53が、メモリ31上のMPS設定テーブル51から該当するMPS設定値のリード要求を発行する(P2参照)。システムコントローラ30はメモリ31のMPS設定テーブル51からMPS設定値を読み出し、MPS設定読出部53に応答する(P3参照)。パケット分割部12は、スコアボード14aにMPS設定値を格納する。
メモリ31から該当MPS設定値の読み出しが完了した後、ルートコンプレックス50はDMAリード要求のデータ読み出しを開始し(P4参照)、システムインタフェース受信部16がリード応答を受信する(P5参照)。制御部19は、DMAリード要求パケット(DMAリード要求)のRequester-IDを用いて、スコアボード14aから該当する要求元のMPS設定値を抽出する。
制御部19は、第1実施形態と同様に、要求元のMPS設定値と、MPSレジスタ191に格納されたMPS設定値とを比較し、小さい方のMPS設定値をチェック用MPSとして設定する。
そして、制御部19は、チェック用MPSとして設定したペイロードサイズのレスポンスを生成可能と判別した場合に、チェック用MPSをペイロードサイズとして決定し、送信部20に通知する。
送信部20が、通知されたペイロードサイズの応答パケットを作成して、I/Oインタフェース25にDMAリード応答パケットを送信する(P6参照)。
このように、第2実施形態の情報処理装置1によれば、MPS設定テーブル51を、イーグレス処理部15のレジスタよりもメモリ資源が大きいメモリ(主記憶装置)31に格納する。これにより、テーブルエントリ数を増やすことが容易である。これにより、抽出するMPS設定値をRequester-ID毎の細かい粒度で設定できる利点がある。
またMPS設定読出部53が、メモリ31のMPS設定テーブル51からMPS設定値を読み出し、パケット分割部12がこのMPS設定値をスコアボード14aに格納する。これにより、ルートコンプレックス50において制御部19がスコアボード14aを参照して、DMAリード要求の要求元のMPS設定値を抽出することができる。すなわち、制御部19がメモリ31のMPS設定テーブル51からMPS設定値を読み出す必要がなく、処理速度を向上させることができる。
(C)第3実施形態
図11は第3実施形態の一例としての情報処理装置1の構成を示す図である。この図11に示す情報処理装置1は、図8に示した第2実施形態の情報処理装置1のルートコンプレックス50にMPS設定テーブルキャッシュ54を備える。
MPS設定テーブルキャッシュ54は、メモリ31から読み出したMPS設定値を格納するキャッシュメモリである。このMPS設定テーブルキャッシュ54には、メモリ31から読み出したMPS設定値を、対応するRequester-IDに関連付けて格納する。すなわち、MPS設定読出部53が、このMPS設定テーブルキャッシュ54からRequester-IDをタグとしてMPS設定値を読み出すことができるよう構成されている。
イングレス処理部10の受信部11からDMAリード要求がMPS設定読出部53に転送されると、MPS設定読出部53は、DMAリード要求パケットのRequester-IDに基づき、MPS設定テーブルキャッシュ54を参照する。
このMPS設定テーブルキャッシュ54内に該当するMPS設定値が存在する場合には、このMPS設定値をMPS設定テーブルキャッシュ54から読み出す。これにより、メモリ31へのMPS設定値の読み出し処理を省略することができる。一方、MPS設定テーブルキャッシュ54に対応するMPS設定値が存在しない場合には、MPS設定読出部53は、メモリ31のMPS設定テーブル51からMPS設定値の読み出しを行なう。その後、第2実施形態と同様にDMAリード応答パケットを生成する。
上述した第2実施形態の一例としての情報処理装置1においては、DMAリード要求が起きるたびにメモリ31上のMPS設定テーブル51からDMA設定値の読み出しを実行している。これにより、メモリ31とルートコンプレックス50との間でのデータ転送手順が増加する。
本第3実施形態の一例としての情報処理装置1においては、ルートコンプレックス50にMPS設定テーブルキャッシュ54を備え、MPS設定読出部53が読み出したMPS設定値をこのMPS設定テーブルキャッシュ54にキャッシュする。これにより、MPS設定読出部53がMPS設定テーブルキャッシュ54からMPS設定値を読み出すことで、メモリ31からのMPS設定値の読み出し処理を省略することが可能となる。
(D)第1〜第3実施形態での運用について
上述した第1〜第3実施形態において、データ転送の効率を向上させるには、以下の(1),(2)に示す運用指針を適用することが望ましい。
(1)I/O サブシステム内のMPS設定値はMPSSを超えない範囲で最大にする。ただし、システムのI/OリードにあたるDMAライト転送を成功させるためにエンドポイント34のMPS設定値はルートコンプレックス50のMPS設定値以下とする。
(2)各デバイスのMRRS設定値は可能な限り大きくする。なお、PCIeインタフェースでは4Kバイト が最大のMRRS設定値となる。
MPS設定テーブル51の初期化及びエントリの登録は、プロセッサ32が設定用プログラム(ソフトウェア)を実行することで実現する。具体的には、I/Oサブシステムの初期設定時に、かかる設定用ソフトウェアを併せて実行する。
プロセッサ32は、各デバイスのMPS設定値をセットする際に、MPS設定テーブル51内の該当デバイスに対応したRequester-IDまたはBus-IDのエントリに、各デバイスにセットしたMPS設定内容と同じ設定値を格納する。
エンドポイント34がMPS設定値を有していない場合には、プロセッサ32は、出来る限り最小の値(例えば、PCIeインタフェースでは128バイト)をMPS設定テーブル51の該当エントリにセットする。
また、I/Oサブシステム内のデバイス構成によりMPS設定テーブル51の同一エントリに複数回設定する場合は、最小の設定値をセットする。
上述した第2実施形態及び第3実施形態の情報処理装置1においては、メモリ31上にMPS設定テーブル51を設けるために、例えば、MPS設定テーブルアドレス情報によって示されるアドレスを先頭に連続するアドレス領域内にMPS設定テーブル51を用意する。プロセッサ32は、このMPS設定テーブル51において、I/Oサブシステム内の各デバイスのRequester-IDに対応するメモリアドレス上に、当該デバイスにセットされた内容と同じMPS設定値をセットする。
また、情報処理装置によっては、システムが稼働中にエンドポイント34が追加・削除される場合がある。そのようなシステムにおいてエンドポイント34を追加する場合には、例えば、追加したエンドポイント34を組み込むための設定をプロセッサ32が行なう際に、MPS設定テーブル51の該当エントリも設定することが望ましい。
一方、エンドポイント34を削除する場合は、MPS設定テーブル51の該当エントリをゼロクリアするか、もしくは操作しないでおくことが望ましい。
(E)第4実施形態
図12は第4実施形態の一例としての情報処理装置1aの構成を示す図である。この図12に示す情報処理装置1aは、プロセッサ32,メモリ31,システムコントローラ30及びルートコンプレックス50を備える複数(図12に示す例では3つ以上)の処理ユニット100−1〜100−3を備えている。これらの複数の処理ユニット100−1〜100−3は、スイッチ33を介して接続されている。
図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。すなわち、処理ユニット100−1は、上述した第3実施形態の一例としての情報処理装置1と同様の構成を有する。そして、複数の処理ユニット100−1〜100−3は、互いに同様の構成を有する。
なお、図12中においては、便宜上、処理ユニット100−1におけるイーグレス処理部15の構成の図示を省略している。又、この図12中においては、処理ユニット100−1についてのみ、ルートコンプレックス50やメモリ31の構成を示し、他の処理ユニット100−2,100−3におけるこれらの構成の図示を省略している。
以下、処理ユニットを示す符号としては、複数の処理ユニットのうち1つを特定する必要があるときには符号100−1〜100−3を用いるが、任意の処理ユニットを指すときには符号100を用いる。
この図12に示す情報処理装置1aにおいて、各処理ユニット100のメモリ31のMPS設定テーブルに、全ルートコンプレックス50デバイスのMPS設定値が登録されている。
各処理ユニットのメモリ31上のMPS設定テーブル51には、情報処理装置1aの各ルートコンプレックス50の各デバイスのMPS設定値がそれぞれ格納されている。これにより、あるルートコンプレックス50からスイッチ33を介して他のルートコンプレックス50上のメモリ31に対してリード要求をする場合に、前記第3実施形態と同様に、リード応答するルートコンプレックス50は、リード要求元のルートコンプレックス50のMPS設定値に応じたペイロードサイズを決定することが出来る。
このように、本第4実施形態の一例としての情報処理装置1aによれば、複数のルートコンプレックス50が異なるMPS設定値をもつ場合でも、ルートコンプレックス50間でリードのデータ転送を効率よく行なうことができる。
(F)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(付記1)
入出力バスに備えられる入出力制御デバイスからデータ取得要求を受信すると、前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、当該データ転送装置が処理可能な第2のデータサイズ情報とを比較し、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する決定部と、
前記決定部によって決定された前記応答データサイズに基づいて応答データを作成する作成部と、
前記作成部によって作成された前記応答データを送信する送信部と
を備えることを特徴とする、データ転送装置。
(付記2)
前記決定部が、前記小さい方のデータサイズ情報に基づき、前記応答データを生成可能であるか否かを判断し、前記応答データを生成不可であると判断した場合に、前記データサイズを減少させることを特徴する、付記1記載のデータ転送装置。
(付記3)
前記格納部において、前記入出力制御デバイスの前記第1のデータサイズ情報のコピーが、前記入出力制御デバイスの識別情報に関連付けて格納され、
前記決定部が、前記リード要求に含まれる要求元識別情報に基づいて、前記格納部から、前記データ取得要求を発行した入出力制御デバイスの前記第1のデータサイズ情報のコピーを読み出すことを特徴とする、付記1又は2記載のデータ転送装置。
(付記4)
前記格納部を備えることを特徴とする、付記1〜3のいずれか1項に記載のデータ転送装置。
(付記5)
前記格納部が当該データ転送装置の外部の主記憶装置に備えられ、
前記データ転送装置が、
前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得する取得部と、
前記格納部から読み出された前記第1のデータサイズ情報のコピーを格納する第2格納部とを備え、
前記決定部が、前記第2格納部から前記第1のデータサイズ情報のコピーを取得することを特徴とする、付記1〜3のいずれか1項に記載のデータ転送装置。
(付記6)
前記主記憶装置から読み出された前記第1のデータサイズ情報のコピーを格納するキャッシュメモリを備え、
前記取得部が、前記主記憶装置の前記格納部に代えて前記キャッシュメモリから前記第1のデータサイズ情報のコピーを取得することを特徴とする、付記5記載のデータ転送装置。
(付記7)
前記格納部へのアクセス情報を格納する第3格納部を備え、
前記取得部が、前記第3格納部から読み出した前記アクセス情報を用いて、前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得することを特徴とする、付記5又は6記載のデータ転送装置。
(付記8)
入出力バスに備えられるデータ転送装置におけるデータ転送方法であって、
前記入出力バスに備えられる入出力制御デバイスからデータ取得要求を受信する処理と、
前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、前記データ転送装置が処理可能な第2のデータサイズ情報とを比較して、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する処理と、
決定された前記応答データサイズに基づいて応答データを作成する処理と、
作成された前記応答データを送信する処理と
を備えることを特徴とする、データ転送方法。
(付記9)
前記小さい方のデータサイズ情報に基づき、前記応答データを生成可能であるか否かを判断し、前記応答データを生成不可であると判断した場合に、前記データサイズを減少させる処理を備えることを特徴する、付記8記載のデータ転送方法。
(付記10)
前記格納部において、前記入出力制御デバイスの前記第1のデータサイズ情報のコピーが、前記入出力制御デバイスの識別情報に関連付けて格納され、
前記リード要求に含まれる要求元識別情報に基づいて、前記格納部から、前記データ取得要求を発行した入出力制御デバイスの前記第1のデータサイズ情報のコピーを読み出す処理を備えることを特徴とする、付記8又は9記載のデータ転送方法。
(付記11)
前記データ転送装置が、前記格納部を備えることを特徴とする、付記8〜10のいずれか1項に記載のデータ転送方法。
(付記12)
前記格納部が前記データ転送装置の外部の主記憶装置に備えられ、
前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得する処理と、
前記格納部から取得された前記第1のデータサイズ情報のコピーを第2格納部に格納する処理と、
前記第2格納部から前記第1のデータサイズ情報のコピーを取得して、前記データ取得要求に対する応答データサイズを決定する処理と
を備えることを特徴とする、付記8〜11のいずれか1項に記載のデータ転送方法。
(付記13)
前記主記憶装置の前記格納部から読み出された前記第1のデータサイズ情報のコピーをキャッシュメモリに格納する処理と、
前記主記憶装置の前記格納部に代えて前記キャッシュメモリから前記第1のデータサイズ情報のコピーを取得する処理と
を備えることを特徴とする、付記12記載のデータ転送方法。
(付記14)
第3格納部に前記データ転送装置が、前記格納部へのアクセス情報を格納する処理と、
前記第3格納部から読み出した前記アクセス情報を用いて、前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得する処理と
を備えることを特徴とする、付記12又は13記載のデータ転送方法。
(付記15)
プロセッサと、
主記憶装置と、
データ転送装置及び入出力制御デバイスを備える入出力バスと、
前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部と、
前記入出力制御デバイスからデータ取得要求を受信すると、前記格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、前記データ転送装置が処理可能な第2のデータサイズ情報とを比較し、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する決定部と、
前記決定部によって決定された前記応答データサイズに基づいて応答データを作成する作成部と、
前記作成部によって作成された前記応答データを送信する送信部と
を備えることを特徴とする、情報処理装置。
(付記16)
前記決定部が、前記小さい方のデータサイズ情報に基づき、前記応答データを生成可能であるか否かを判断し、前記応答データを生成不可であると判断した場合に、前記データサイズを減少させることを特徴する、付記15記載の情報処理装置。
(付記17)
前記格納部において、前記入出力制御デバイスの前記第1のデータサイズ情報のコピーが、前記入出力制御デバイスの識別情報に関連付けて格納され、
前記決定部が、前記リード要求に含まれる要求元識別情報に基づいて、前記データ取得要求を発行した入出力制御デバイスの前記第1のデータサイズ情報を読み出すことを特徴とする、付記15又は16記載の情報処理装置。
(付記18)
前記データ転送装置が、前記格納部を備えることを特徴とする、付記15〜17のいずれか1項に記載の情報処理装置。
(付記19)
前記格納部が前記主記憶装置に備えられ、
前記データ転送装置が、
前記格納部から読み出した前記第1のデータサイズ情報を格納する第2格納部と、
前記主記憶装置から前記第1のデータサイズ情報を取得し、前記第2格納部に格納する取得部とを備え、
前記決定部が、前記第2格納部から前記第1のデータサイズ情報を取得することを特徴とする、付記15〜17のいずれか1項に記載の情報処理装置。
(付記20)
前記主記憶装置から読み出された前記第1のデータサイズ情報のコピーを格納するキャッシュメモリを備え、
前記取得部が、前記主記憶装置の前記格納部に代えて前記キャッシュメモリから前記第1のデータサイズ情報のコピーを取得することを特徴とする、付記19記載の情報処理装置。
(付記21)
前記データ転送装置が、前記格納部へのアクセス情報を格納する第3格納部を備え、
前記取得部が、前記第3格納部から読み出した前記アクセス情報を用いて、前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得することを特徴とする、付記19又は20記載の情報処理装置。
1,1a 情報処理装置
2 I/Oサブシステム
10 イングレス処理部
11 受信部
12 パケット分割部
13 システムインタフェース送信部
14,14a スコアボード(第2格納部)
15 イーグレス処理部
16 システムインタフェース受信部
17 レスポンスキュー
18 データバッファ
19 制御部(決定部)
20 送信部(作成部)
21 ペイロード生成部
22 パケット生成部
23 出力バッファ
24 監視部
25 I/Oインタフェース
26 システムインタフェース
30 システムコントローラ
31 メモリ(主記憶装置)
32 プロセッサ
33 スイッチ
34 エンドポイント(入出力制御デバイス)
50 ルートコンプレックス(データ転送装置)
51 MPS設定テーブル(格納部)
52 MPS設定テーブルベースアドレスレジスタ(第3格納部)
53 MPS設定読出部(取得部)
54 MPS設定テーブルキャッシュ(キャッシュメモリ)
100−1〜100−3,100 処理ユニット

Claims (15)

  1. 入出力バスに接続されるデータ転送装置であって、
    前記入出力バスに接続される入出力制御デバイスからデータ取得要求を受信すると、前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、当該データ転送装置が処理可能な第2のデータサイズ情報とを比較し、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する決定部と、
    前記決定部によって決定された前記応答データサイズに基づいて応答データを作成する作成部と、
    前記作成部によって作成された前記応答データを送信する送信部と
    を備えることを特徴とする、データ転送装置。
  2. 前記決定部が、前記小さい方のデータサイズ情報に基づき、前記応答データを生成可能であるか否かを判断し、前記応答データを生成不可であると判断した場合に、前記応答データサイズを減少させることを特徴する、請求項1記載のデータ転送装置。
  3. 前記格納部において、前記入出力制御デバイスの前記第1のデータサイズ情報のコピーが、前記入出力制御デバイスの識別情報に関連付けて格納され、
    前記決定部が、リード要求元からのリード要求に含まれる要求元識別情報に基づいて、前記格納部から、前記データ取得要求を発行した入出力制御デバイスの前記第1のデータサイズ情報のコピーを読み出すことを特徴とする、請求項1又は2記載のデータ転送装置。
  4. 前記格納部を備えることを特徴とする、請求項1〜3のいずれか1項に記載のデータ転送装置。
  5. 前記格納部が当該データ転送装置の外部の主記憶装置に備えられ、
    前記データ転送装置が、
    前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得する取得部と、
    前記格納部から読み出された前記第1のデータサイズ情報のコピーを格納する第2格納部とを備え、
    前記決定部が、前記第2格納部から前記第1のデータサイズ情報のコピーを取得することを特徴とする、請求項1〜3のいずれか1項に記載のデータ転送装置。
  6. 前記主記憶装置から読み出された前記第1のデータサイズ情報のコピーを格納するキャッシュメモリを備え、
    前記取得部が、前記主記憶装置の前記格納部に代えて前記キャッシュメモリから前記第1のデータサイズ情報のコピーを取得することを特徴とする、請求項5記載のデータ転送装置。
  7. 前記格納部へのアクセス情報を格納する第3格納部を備え、
    前記取得部が、前記第3格納部から読み出した前記アクセス情報を用いて、前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得することを特徴とする、請求項5又は6記載のデータ転送装置。
  8. 入出力バスに接続されるデータ転送装置におけるデータ転送方法であって、
    前記入出力バスに接続される入出力制御デバイスからデータ取得要求を受信する処理と、
    前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、前記データ転送装置が処理可能な第2のデータサイズ情報とを比較して、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する処理と、
    決定された前記応答データサイズに基づいて応答データを作成する処理と、
    作成された前記応答データを送信する処理と
    を備えることを特徴とする、データ転送方法。
  9. 前記小さい方のデータサイズ情報に基づき、前記応答データを生成可能であるか否かを判断し、前記応答データを生成不可であると判断した場合に、前記応答データサイズを減少させる処理を備えることを特徴する、請求項8記載のデータ転送方法。
  10. 前記格納部において、前記入出力制御デバイスの前記第1のデータサイズ情報のコピーが、前記入出力制御デバイスの識別情報に関連付けて格納され、
    リード要求元からのリード要求に含まれる要求元識別情報に基づいて、前記格納部から、前記データ取得要求を発行した入出力制御デバイスの前記第1のデータサイズ情報のコピーを読み出す処理を備えることを特徴とする、請求項8又は9記載のデータ転送方法。
  11. 前記データ転送装置が、前記格納部を備えることを特徴とする、請求項8〜10のいずれか1項に記載のデータ転送方法。
  12. 前記格納部が前記データ転送装置の外部の主記憶装置に備えられ、
    前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得する処理と、
    前記格納部から取得された前記第1のデータサイズ情報のコピーを第2格納部に格納する処理と、
    前記第2格納部から前記第1のデータサイズ情報のコピーを取得して、前記データ取得要求に対する応答データサイズを決定する処理と
    を備えることを特徴とする、請求項8〜11のいずれか1項に記載のデータ転送方法。
  13. 前記主記憶装置の前記格納部から読み出された前記第1のデータサイズ情報のコピーをキャッシュメモリに格納する処理と、
    前記主記憶装置の前記格納部に代えて前記キャッシュメモリから前記第1のデータサイ
    ズ情報のコピーを取得する処理と
    を備えることを特徴とする、請求項12記載のデータ転送方法。
  14. 第3格納部に前記データ転送装置が、前記格納部へのアクセス情報を格納する処理と、
    前記第3格納部から読み出した前記アクセス情報を用いて、前記主記憶装置の前記格納部から前記第1のデータサイズ情報のコピーを取得する処理と
    を備えることを特徴とする、請求項12又は13記載のデータ転送方法。
  15. プロセッサと、
    主記憶装置と、
    データ転送装置及び入出力制御デバイスに接続される入出力バスと、
    前記入出力制御デバイスが処理可能な第1のデータサイズ情報のコピーを格納する格納部と、
    前記入出力制御デバイスからデータ取得要求を受信すると、前記格納部から読み出した前記入出力制御デバイスに関する前記第1のデータサイズ情報のコピーと、前記データ転送装置が処理可能な第2のデータサイズ情報とを比較し、小さい方のデータサイズ情報に基づいて前記データ取得要求に対する応答データサイズを決定する決定部と、
    前記決定部によって決定された前記応答データサイズに基づいて応答データを作成する作成部と、
    前記作成部によって作成された前記応答データを送信する送信部と
    を備えることを特徴とする、情報処理装置。
JP2015527105A 2013-07-17 2013-07-17 データ転送装置、データ転送方法及び情報処理装置 Active JP6011727B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/069435 WO2015008354A1 (ja) 2013-07-17 2013-07-17 データ転送装置、データ転送方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JP6011727B2 true JP6011727B2 (ja) 2016-10-19
JPWO2015008354A1 JPWO2015008354A1 (ja) 2017-03-02

Family

ID=52345849

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015527105A Active JP6011727B2 (ja) 2013-07-17 2013-07-17 データ転送装置、データ転送方法及び情報処理装置

Country Status (2)

Country Link
JP (1) JP6011727B2 (ja)
WO (1) WO2015008354A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7003752B2 (ja) * 2018-03-13 2022-01-21 日本電気株式会社 データ転送装置、データ転送方法、プログラム

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093636A (ja) * 2007-10-03 2009-04-30 Internatl Business Mach Corp <Ibm> Pciエキスプレス帯域幅を動的に平衡化するためのシステム
JP2012133643A (ja) * 2010-12-22 2012-07-12 Sony Corp 情報処理装置、情報処理システム、情報処理方法、およびプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009093636A (ja) * 2007-10-03 2009-04-30 Internatl Business Mach Corp <Ibm> Pciエキスプレス帯域幅を動的に平衡化するためのシステム
JP2012133643A (ja) * 2010-12-22 2012-07-12 Sony Corp 情報処理装置、情報処理システム、情報処理方法、およびプログラム

Also Published As

Publication number Publication date
JPWO2015008354A1 (ja) 2017-03-02
WO2015008354A1 (ja) 2015-01-22

Similar Documents

Publication Publication Date Title
JP6014271B2 (ja) データ処理システム及びデータ処理方法
JP6475256B2 (ja) コンピュータ、制御デバイス及びデータ処理方法
CN109582614B (zh) 针对远程存储器访问的nvm express控制器
US10491672B2 (en) Data transfer device, data receiving system and data receiving method
WO2018102967A1 (zh) NVMe over Fabric架构中数据读写命令的控制方法、存储设备和系统
CN108701004A (zh) 一种数据处理的系统、方法及对应装置
JP5204195B2 (ja) データ送信システムおよびデータ送信プログラム
WO2014038070A1 (ja) 情報処理装置,並列計算機システム及び情報処理装置の制御方法
US20150378640A1 (en) Nvm express controller for remote access of memory and i/o over ethernet-type networks
WO2021063160A1 (zh) 访问固态硬盘的方法及存储设备
JP2008225558A (ja) データ中継集積回路、データ中継装置およびデータ中継方法
US10375168B2 (en) Throughput in openfabrics environments
JP6011727B2 (ja) データ転送装置、データ転送方法及び情報処理装置
US20160267050A1 (en) Storage subsystem technologies
JP2006040011A (ja) ディスクアレイシステム
JP5836229B2 (ja) ストリーム処理装置、サーバ、及び、ストリーム処理方法
US9164947B1 (en) Method and system for inserting cookies in I/O commands
US20150242160A1 (en) Memory system, control method of memory system, and controller
JP2018504689A5 (ja)
US9762671B2 (en) Wireless access device and wireless access system
JP2014048810A (ja) ホストシステム、ストレージデバイス、および通信方法
JP2023027970A (ja) メモリシステム
JP5772132B2 (ja) データ転送装置、データ転送方法および情報処理装置
US10348779B2 (en) Data receiving device, data receiving method, and non-transitory computer readable medium
JP2014142757A (ja) インターフェース制御装置、データ記憶装置及びインターフェース制御方法

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160801

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160905

R150 Certificate of patent or registration of utility model

Ref document number: 6011727

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150