JP6593222B2 - 情報処理装置、演算処理装置及び情報処理装置の制御方法 - Google Patents

情報処理装置、演算処理装置及び情報処理装置の制御方法 Download PDF

Info

Publication number
JP6593222B2
JP6593222B2 JP2016032201A JP2016032201A JP6593222B2 JP 6593222 B2 JP6593222 B2 JP 6593222B2 JP 2016032201 A JP2016032201 A JP 2016032201A JP 2016032201 A JP2016032201 A JP 2016032201A JP 6593222 B2 JP6593222 B2 JP 6593222B2
Authority
JP
Japan
Prior art keywords
identification information
unit
mode
packet
processor
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
JP2016032201A
Other languages
English (en)
Other versions
JP2017151622A (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
Priority to JP2016032201A priority Critical patent/JP6593222B2/ja
Publication of JP2017151622A publication Critical patent/JP2017151622A/ja
Application granted granted Critical
Publication of JP6593222B2 publication Critical patent/JP6593222B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、情報処理装置、演算処理装置及び情報処理装置の制御方法に関する。
近年、情報処理装置の発展は目覚ましく、新たな機能を有する情報処理装置が次々に登場し、各システムに導入されている。例えば、CPU(Central Processing Unit)コアの性能向上などにより、少ない数のCPUコアでも今まで以上の処理が行えるようになる。加えて、CPUコアの性能向上により、CPUコアが制御するIO(Input Output)装置の数を増やすことが求められている。このようにIO装置の数を増やすことで、情報処理装置のIO処理性能を向上させることができる。実際には、CPUはIOコントローラを介してIO装置のコントロールを行うので、IOコントローラの数が増えることになる。ここで、1つ又は複数のCPUコア及びIO装置をコントロールするIOコントローラを搭載した演算処理装置を「プロセッサ」という。また、このプロセッサは、「チップ」とも呼ばれる。チップにおけるCPUコアの数は、1つでも複数でもよい。
さらに、旧来の情報処理装置と比較して、CPUコアの数を少なくし各CPUコアがコントロールするIO装置の数を増やしたプロセッサが新しく開発されている。すなわち、この場合の旧来のプロセッサは、新しいプロセッサと比べて、CPUコアの数は多いが各CPUコアがコントロールするIO装置の数が少ないといえる。
ここで、大規模なシステムの場合、古い資産を継続活用したいというニーズが多く存在する。そのため、旧来の情報処理装置が使用されているシステムに新しい情報処理装置を追加して新たなシステムの構築が行われる場合がある。このようなシステムでは、旧来の情報処理装置と新しい情報処理装置とが相互に通信を行えることが好ましい。
一方、マルチプロセッサシステムを搭載した情報処理装置において、プロセッサ間でパケットを送受信する場合、送信先プロセッサ及び送信元プロセッサをパケットのヘッダなどで指定する。具体的には、送信先プロセッサ及び送信元プロセッサは、各プロセッサの識別子であるCHIPID(Identification)で指定される。さらに、パケットのヘッダでは、そのパケットを使用するIO装置を制御するIOコントローラの識別子であるIO−IDも指定される。
すなわち、各プロセッサは、ヘッダに記載された宛先のCHIPIDを用いてパケットを配送する。そして、パケットを受信したCPUコアは、プロセッサ内部における宛先をIO−IDを用いて判定する。
ここで、新しいプロセッサと旧来のプロセッサとにおいてCPUコアの数やIOコントローラの数が異なる場合、パケットのフォーマットが異なるため、単純に接続するだけではパケットの送受信が困難となる。
例えば、旧来のプロセッサは、IOコントローラの数がプロセッサあたり2つであり、1ビットのIO−IDを用いるものとし、新しいプロセッサは、IOコントローラの数がプロセッサあたり4つであり、2ビットのIO−IDを用いるものとする。このような新旧のプロセッサ同士を接続する場合、IO−IDが1ビットであるプロセッサが通信で用いるパケットのフォーマットでは、IO−IDの格納領域が足りないため新しいプロセッサが有するIOコントローラの全てのIO−IDを表すことが困難である。そこで、従来、IO−IDが2ビットであるプロセッサは、プロセッサあたりの4つのIOコントローラのうち2つを使用不可にして、パケットのフォーマットをIO−IDが1ビットであるプロセッサに合わせることが行われてきた。これにより、IO−IDの数が異なる新旧のプロセッサを接続することを可能としていた。
なお、複数の仮想マシンのそれぞれが、同じ物理リソース又はデバイスに対して設定を行い、個別にアクセスする従来技術がある。
特開2012−9029号公報
しかしながら、IOコントローラを使用不可とした場合、新しいプロセッサのIO処理能力を十分に発揮することが難しい。また、クラウドなど不特定多数のユーザの利用を想定したシステムの場合、多くのIO装置を用いて同時に処理を行うことが困難となる。
また、複数の仮想マシンのそれぞれが別個に物理リソース又はデバイスを設定する従来技術では、IO−IDのビット数が異なる装置間の通信については考慮されていない。この従来技術を用いても、CPUコアの数やIOコントローラの数が異なる装置を接続する場合、IOコントローラの数が多い方の装置のIOコントローラの一部を使用不可にして、双方を同じ構成にして動作させることになる。そのため、この従来技術を用いても、無駄になるIOコントローラが存在してしまい、新しいプロセッサのIO処理能力を十分に発揮することが困難である。
開示の技術は、上記に鑑みてなされたものであって、IOコントローラの数が異なるプロセッサが混在する場合の各プロセッサの入出力性能を向上させる情報処理装置、演算処理装置及び情報処理装置の制御方法を提供することを目的とする。
本願の開示する情報処理装置、演算処理装置及び情報処理装置の制御方法の一つの態様において、情報処理装置は、互いに接続される複数の演算処理装置と各前記演算処理装置のそれぞれに複数配置され、入出力処理装置を制御する制御部とを有する。さらに情報処理装置は以下の各部を有する。動作モード決定部は、動作モードを第1モード又は第2モードの何れかに決定する。生成部は、前記第2モードの場合に制御部識別情報のサイズを前記第1モードの場合よりも所定サイズ小さくし且つ演算処理装置識別情報の前記所定サイズの領域が前記制御部の識別ための情報となるように、前記動作モードに応じて前記演算処理装置識別情報及び前記制御部識別情報を生成し、生成した前記演算処理装置識別情報及び前記制御部識別情報を基に送信元及び送信先の識別情報を生成する。通信部は、送信先及び送信元の識別情報を用いて信号の送受信を行う。選択部は、受信した信号の送信先が前記制御部の場合、前記送信先の識別情報を基に、制御装置を選択し信号を送信する。処理実行部は、受信した信号の送信先が前記制御部以外の場合、前記動作モード及び前記演算処理装置識別情報のうち前記所定サイズの領域の値を基に、受信した信号に対して処理を実行する。
本願の開示する情報処理装置、演算処理装置及び情報処理装置の制御方法の一つの態様によれば、IOコントローラの数が異なるプロセッサが混在する場合の各プロセッサの処理能力を向上させることができるという効果を奏する。
図1は、実施例に係る情報処理システムの一例の図である。 図2は、4つのIOコントローラを有するプロセッサの内容を表すブロック図である。 図3は、4つのIOコントローラを有するプロセッサにおけるパケット送信時の機能のブロック図である。 図4は、4つのIOコントローラを有するプロセッサにおけるパケット受信時の機能のブロック図である。 図5は、動作モード毎のパケットを説明するための図である。 図6は、他のプロセッサから見た4つのIOコントローラを有するプロセッサの状態を説明するための図である。 図7は、4つのIOコントローラを有するプロセッサにおけるリクエスト処理時の機能のブロック図である。 図8は、リクエスト処理経路判定のテーブルを示す図である。 図9は、動作モード毎のリクエスト応答処理を説明するための図である。 図10は、4つのIOコントローラを有するプロセッサによるパケットの発行処理のフローチャートである。 図11は、4つのIOコントローラを有するプロセッサによるIO処理要求のパケットの受信処理のフローチャートである。 図12は、4つのIOコントローラを有するプロセッサによるリクエストの受信処理のフローチャートである。 図13は、2つのIOコントローラを有するプロセッサ同士の通信におけるアドレスマップを説明するための図である。 図14は、互換モードを用いた通信におけるアドレスマップを説明するための図である。 図15は、通常モードを用いた通信におけるアドレスマップを説明するための図である。
以下に、本願の開示する情報処理装置、演算処理装置及び情報処理装置の制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する情報処理装置、演算処理装置及び情報処理装置の制御方法が限定されるものではない。
図1は、実施例に係る情報処理システムの一例の図である。本実施例に係る情報処理システムは、複数のノード1及び複数のクロスバスイッチ5を有する。ノード1は、情報処理装置の一例であり、例えば、サーバなどである。
ノード1は、サービスプロセッサ2、複数のメモリ3、2つのXB(Cross bar)チップ4及び演算処理装置である複数のプロセッサ10を有する。ただし、それぞれのノード1は、プロセッサ10の数などが異なってもよい。
XBチップ4は、各プロセッサ10が有する外部IF(Interface)106に接続される。また、XBチップ4は、各クロスバスイッチ5に接続される。XBチップ4は、接続されたプロセッサ10又はクロスバスイッチ5からパケットを受信する。そして、XBチップ4は、受信したパケットの送信先を判定し、送信先である他のプロセッサ10又はクロスバスイッチ5に経路を切り替えてパケットを転送する。
クロスバスイッチ5は、各ノード1が有するXBチップ4に接続される。クロスバスイッチ5は、XBチップ4からパケットを受信する。そして、クロスバスイッチ5は、受信したパケットの送信先を判定し、送信先であるプロセッサ10に接続されたXBチップ4に経路を切り替えてパケットを転送する。
また、クロスバスイッチ5は、サービスプロセッサ501を有する。サービスプロセッサ501は、自己が配置されたクロスバスイッチ5の起動やクロスバスイッチ5内の構成制御や温度監視などの状態監視を行う。
プロセッサ10は、コア101、キャッシュ102、IOコントローラ103、メモリコントローラ104、構成制御レジスタ105及び外部IF106を有する。
コア101は、CPUコアである。コア101は、メモリ3に対するデータの読み出し及び書き込みをメモリコントローラ104に指示する。また、コア101は、IO装置の制御をIOコントローラ103に指示する。また、コア101は、外部IF106及びXBチップ4を介して、自己が属するノード1内の他のプロセッサ10に搭載されたコア101と通信する。また、コア101は、外部IF106、XBチップ4及びクロスバスイッチ5を介して自己が属するノード1以外のノード1内の他のプロセッサ10に搭載されたコア101と通信する。
そして、コア101は、キャッシュ102、IOコントローラ103、メモリコントローラ104、構成制御レジスタ105及び外部IF106を用いて演算処理を行う。
キャッシュ102は、メモリ3よりも高速な一時的な記憶装置である。構成制御レジスタ105は、後述するプロセッサ10の動作モードの設定、各プロセッサ10のCHIPID及びアドレスとCHIPIDとの対応情報などを記憶する。また、外部IF106は、プロセッサ10がXBチップ4と接続するためのインタフェースである。
メモリコントローラ104は、メモリ3に対するデータの読み出し及び書き込みを制御する。各メモリ3は、それぞれのプロセッサ10に対応させて配置される。メモリ3は、対応するプロセッサ10が使用する主記憶媒体である。
IOコントローラ103は、図1には図示していないが、LAN(Local Area Network)などのネットワークやストレージ装置などのIO装置に接続される。IOコントローラ103は、接続されたネットワークを介した通信の制御や接続されたIO装置の制御を行う。このIOコントローラ103が、「制御部」及び「制御装置」の一例にあたる。
サービスプロセッサ2は、後述するプロセッサ10の動作モードの設定、各プロセッサ10のCHIPID及びアドレスとCHIPIDとの対応情報を各プロセッサ10の構成情報レジスタに書き込む。また、サービスプロセッサ2は、自己が配置されたノード10に搭載された各プロセッサ10の起動やノード1内の温度監視などの状態監視などを行う。
サービスプロセッサ2は、各ノード1に配置される。そして、サービスプロセッサ2及びサービスプロセッサ501のうちの何れかがメインのサービスプロセッサとなり、全体の統括制御を行う。具体的には、メインのサービスプロセッサは、各プロセッサ10のCHIPIDの割り当て、通信セグメントの決定、及び、各セグメントでのプロセッサ10の動作モードの決定などを行う。
ここで、本実施例では、プロセッサ10に内蔵するIOコントローラ103の数が異なるものが混在する。具体的には、IOコントローラ103の数が2つのプロセッサ10とIOコントローラ103の数が4つのプロセッサ10が存在する。
そして、IOコントローラ103を4つ有するプロセッサ10は、通信の運用形態に応じて、通常モードと互換モードという2つの動作モードを有する。具体的には、IOコントローラ103の数が同じ他のプロセッサ10とのみ通信を行う場合、プロセッサ10は、通常モードで動作する。また、IOコントローラ103の数が異なる他のプロセッサ10と通信を行う可能性がある場合、プロセッサ10は、互換モードで動作する。この通常モードが、「第1モード」の一例にあたる。また、互換モードが、「第2モード」の一例にあたる。以下に、本実施例に係るプロセッサ10による通信及びパケット処理の詳細について説明する。
図2は、4つのIOコントローラを有するプロセッサの内部を表すブロック図である。ただし、図2では、4つのIOコントローラ103をまとめて1つのIOコントローラ103で表す。図2に示すように、プロセッサ10は、外部バスIF部11、パケット送信部12、パケット受信部13、IOリクエスト生成部14、IOリクエスト処理部15及びリクエスト処理制御部16を有する。また、プロセッサ10は、図1に示した構成制御レジスタ105及びIOコントローラ103を有する。IOコントローラ103は、IO装置6に接続される。IOコントローラ103は、接続されたIO装置6を制御する。以下では、4つのIOコントローラ103を有するプロセッサ10を単にプロセッサ10という場合がある。
ここで、パケット送信部12及びパケット受信部13が、「通信部」の一例にあたる。また、IOリクエスト生成部14が、「生成部」の一例にあたる。また、IOリクエスト処理部15が、「選択部」の一例にあたる。さらに、リクエスト処理制御部16が、「処理実行部」の一例にあたる。
外部バスIF部11は、例えば、図1の外部IF106によって実現される。パケット送信部12、パケット受信部13、IOリクエスト生成部14、IOリクエスト処理部15及びリクエスト処理制御部16は、例えば、図1のコア101及びキャッシュ102により実現される。
ここで、図2に示したプロセッサ10の各機能をパケット送信時の機能と受信時の機能とに分けて説明する。まず、図3を参照して、プロセッサ10のIO処理のパケットの送信時の機能について説明する。図3は、4つのIOコントローラを有するプロセッサにおけるパケット送信時の機能のブロック図である。図3では、4つのIOコントローラ103は、IOコントローラ131〜134として表される。
構成制御レジスタ105は、動作モード情報レジスタ151、CHIPIDレジスタ152及び宛先リストレジスタ153を有する。この動作モード情報レジスタ151を有する構成制御レジスタ105が、「動作モード決定部」の一例にあたる。
ここで、動作モード情報レジスタ151に登録される各動作モードについて説明する。4つのIOコントローラ103を有するプロセッサ10は、パケットのフォーマットとして6ビットのCHIPIDと2ビットのIO−IDを用いて送信先や送信元を表すことが決められる。これに対して、2つのIOコントローラ103を有するプロセッサ10は、パケットのフォーマットとして6ビットのCHIPIDと1ビットのIO−IDを用いて送信先や送信元を表すことが決められる。このCHIPIDが、「演算処理装置識別情報」の一例にあたる。また、IO−IDが、「制御部識別情報」の一例にあたる。
そこで、4つのIOコントローラ103を有するプロセッサ10は、他の4つのIOコントローラ103を有するプロセッサ10と通信する場合、動作モードとして通常モードが選択される。すなわち、通常モードの場合、プロセッサ10は、6ビットのCHIPIDと2ビットのIO−IDを用いて送信先や送信元を表すパケットのフォーマットを用いる。この通常モードで使用されるCHIPIDのサイズの6ビットが、「第1サイズ」の一例にあたる。また、IO−IDのサイズの2ビットが、「第2サイズ」の一例にあたる。
一方、4つのIOコントローラ103を有するプロセッサ10は、2つのIOコントローラ103を有するプロセッサ10と通信する可能性がある場合、動作モードとして互換モードが選択される。すなわち、互換モードの場合、プロセッサ10は、6ビットのCHIPIDと1ビットのIO−IDを用いて送信先や送信元を表すパケットのフォーマットを用いる。ただし、この場合、6ビットのCHIPIDのうち最下位の1ビットは、実際には4つのIOコントローラ103を有するプロセッサ10が有するIOコントローラ103のIO−IDの上位1ビットに割り当てられる。この通常モードで使用されるIO−IDのサイズの1ビットが、「第3サイズ」の一例にあたる。そして、通常モードと互換モードにおけるIO−IDのサイズの差である1ビットが、「所定サイズ」の一例にあたる。さらに、互換モードにおける6ビットのCHIPIDの最下位の1ビットが、「所定サイズの領域」の一例にあたる。
例えば、構成制御レジスタ105は、動作モード情報レジスタ151内に、通常モードを表す値として「0」を記憶し、互換モードを表す値として「1」を記憶する。また、構成制御レジスタ105は、6ビットのCHIPIDレジスタ152を有する。また、宛先リストレジスタ153は、各プロセッサ10のCHIPIDとアドレスとの対応を表す情報である。
また、動作モードが互換モードの場合、後述するようにCHIPIDレジスタ152の最下位の1ビットの値はIOコントローラ103の上位1ビットを表す値に変換される。そのため、互換モードの場合、CHIPIDレジスタ152は、上位5ビットにより区別される値が与えられる。すなわち、CHIPIDレジスタ152の最下位の1ビットの値は、予め「0」などと決められる。これに対して、動作モードが通常モードであれば、CHIPIDレジスタ152は6ビット全てを使用して表される。
図3に戻って説明を続ける。IOコントローラ131〜134は、同じ機能を有するので、ここでは、これらを区別せずにIOコントローラ103として説明する。IOコントローラ103は、2ビットで表される自己のIOコントローラ番号を記憶する。
IOコントローラ103は、実行した処理に関してパケットの送信を決定する。そして、IOコントローラ103は、自己のIOコントローラ番号及び宛先のアドレスとともにIOリクエスト生成部14にパケット送信の要求を出力する。IOリクエスト生成部14は、調停回路41、選択回路42、不使用情報出力部43、選択回路44及びパケット生成部45を有する。
調停回路41は、IOコントローラ103(IOコントローラ131〜134)からパケットの送信要求を取得する。このパケットの送信要求には、IOコントローラ番号及び宛先のアドレスが付属する。そして、調停回路41は、受信した送信要求の調停を行い、出力するパケットの送信要求を決定する。その後、調停回路41は、出力を決定したパケットの送信元のIOコントローラ103のIOコントローラ番号の上位1ビットの値を選択回路42及び選択回路44へ出力する。また、調停回路41は、出力を決定したパケットの送信元のIOコントローラ103のIOコントローラ番号の下位1ビットの値を送信元ID生成部451へ出力する。また、調停回路41は、送信先のアドレスを送信先ID生成部452及びリクエスト情報生成部453へ出力する。さらに、調停回路41は、リクエスト種やリクエストIDなどを含むリクエスト情報をリクエスト情報生成部453へ出力する。
選択回路42は、動作モードに応じてCHIPIDの情報を決定する回路である。選択回路42は、構成制御レジスタ105の動作モード情報レジスタ151が有する値を取得する。すなわち、選択回路42は、動作モードを構成制御レジスタ105から取得する。さらに、選択回路42は、CHIPIDレジスタ152の最下位1ビットの値を構成制御レジスタ105から取得する。また、選択回路42は、パケットの送信元のIOコントローラ103のIOコントローラ番号の上位1ビットの値の入力を調停回路41から受ける。
取得した動作モード情報レジスタ151の値が「0」である、すなわち通常モードの場合、選択回路42は、取得したプロセッサ10のCHIPIDの最下位1ビットの値を送信元ID生成部451へ出力する。
これに対して、取得した動作モード情報レジスタ151の値が「1」である、すなわち互換モードの場合、選択回路42は、IOコントローラ番号の上位1ビットの値を送信元ID生成部451へ出力する。
不使用情報出力部43は、不使用を表す情報を出力値として出力する回路である。
選択回路44は、動作モードに応じてIO−IDの情報を決定する回路である。選択回路44は、動作モード情報レジスタ151の値を構成制御レジスタ105から取得する。さらに、選択回路44は、パケットの送信元のIOコントローラ103のIOコントローラ番号の上位1ビットの値の入力を調停回路41から受ける。また、選択回路44は、不使用を表す情報の入力を不使用情報出力部43から受ける。
取得した動作モード情報レジスタ151の値が「0」である、すなわち通常モードの場合、選択回路44は、送信元のIOコントローラ103のIOコントローラ番号の上位1ビットの値を送信元ID生成部451へ出力する。
これに対して、取得した動作モード情報レジスタ151の値が「1」である、すなわち互換モードの場合、選択回路44は、送信元ID生成部451への信号の出力を行わない。
パケット生成部45は、取得した情報を用いて送信するパケットを生成する回路である。パケット生成部45は、送信元ID生成部451、送信先ID生成部452及びリクエスト情報生成部453を有する。パケット生成部45は、動作モード情報レジスタ151の値を構成制御レジスタ105から取得し、動作モードを取得する。そして、パケット生成部45は、取得した動作モードにしたがって、送信元ID生成部451を動作させる。
送信元ID生成部451は、動作モードにしたがってパケットに格納する送信元の送信元IDを生成する。送信元IDには、CHIPIDとIO−IDが含まれる。動作モードが通常モードの場合、送信元ID生成部451は、6ビットのCHIPID及び2ビットのIO−IDを含む送信元IDを生成する。一方、動作モードが互換モードの場合、送信元ID生成部451は、最下位の1ビットにIO−IDの上位1ビットを含む6ビットのCHIPIDとIO−IDの下位1ビットを1ビットのIO−IDとして含む送信元IDを生成する。具体的には、送信元ID生成部451は、以下のように送信元IDを生成する。
通常モードの場合、送信元ID生成部451は、CHIPIDレジスタ152の上位5ビットの値を構成制御レジスタ105から取得する。また、送信元ID生成部451は、CHIPIDレジスタ152の最下位1ビットの値の入力を選択回路42から受ける。また、送信元ID生成部451は、IO−IDの上位1ビットの値の入力を選択回路44から受ける。さらに、送信元ID生成部451は、IO−IDの下位1ビットの値の入力を調停回路41から受ける。そして、送信元ID生成部451は、構成制御レジスタ105から取得した値に選択回路44から取得した値を付加して、6ビットのCHIPIDを生成する。この生成されたCHIPIDは、CHIPIDレジスタ152の各ビットの値に一致する。また、送信元ID生成部451は、選択回路44から取得した値に調停回路41から取得した値を付加して送信元のIOコントローラ103の2ビットのIO−IDを生成する。そして、送信元ID生成部451は、生成したCHIPIDに生成したIO−IDを付加して送信元IDを生成する。
これに対して、互換モードの場合、送信元ID生成部451は、CHIPIDレジスタ152の上位5ビットの値を構成制御レジスタ105から取得する。また、送信元ID生成部451は、IO−IDの上位1ビットの入力を選択回路42から受ける。さらに、送信元ID生成部451は、IO−IDの下位1ビットの値の入力を調停回路41から受ける。そして、送信元ID生成部451は、構成制御レジスタ105から取得した値に選択回路44から取得した値を付加して、6ビットのCHIPIDを生成する。この生成されたCHIPIDは、最下位の1ビットにIO−IDの上位1ビットを含むことになる。また、送信元ID生成部451は、動作モードが互換モードであることから、IO−IDを1ビットに決定する。そして、送信元ID生成部451は、調停回路41から取得した値を1ビットのIO−IDとする。その後、送信元ID生成部451は、生成したCHIPIDに生成した1ビットのIO−IDを付加して送信元IDを生成する。
送信先ID生成部452は、パケットに格納する送信先IDを生成する。送信先ID生成部452は、アドレスの入力を調停回路41から受ける。そして、送信先ID生成部452は、取得したアドレスに対応するCHIPIDを宛先リストレジスタ153から取得して送信先IDを生成する。
ここで、宛先リストレジスタ153では、4つのIOコントローラを有するプロセッサ10を宛先とするアドレスに対するCHIPIDの割り当ては、通常モードでは6ビットのCHIPIDが予め割り当てられる。また、互換モードでは、上位5ビットがCHIPIDの上位5ビットを表し、最下位の1ビットがIO−IDを表すCHIPIDが、アドレスに対するCHIPIDとして予め割り当てられる。
リクエスト情報生成部453は、パケットに格納するリクエストに関する情報を生成する。リクエスト情報生成部453は、アドレスの入力を調停回路41から受ける。また、リクエスト情報生成部453は、データやリクエストの種別の情報やリクエストのIDの入力を調停回路41から受ける。そして、リクエスト情報生成部453は、リクエストID、リクエスト種、アドレス及びデータをパケットに格納する状態で生成する。
パケット生成部45は、リクエスト情報生成部453が生成したパケットID、パケット種及びアドレス、送信先ID生成部452が生成した送信先ID、並びに、送信元ID生成部451が生成した送信元IDを用いてパケットのヘッダを生成する。さらに、パケット生成部45は、生成したヘッダにデータを付加してパケットを生成する。そして、パケット生成部45は、生成したパケットをパケット送信部12へ出力する。
パケット送信部12は、送信するパケットの入力をパケット生成部45から受ける。そして、パケット送信部12は、外部バスIF部11を介してXBチップ4へパケットを出力する。
このように、互換モードにおいて出力パケットの送信先IDを6ビットのCHIPID及び1ビットのIO−IDとすることで、プロセッサ10は、2つのIOコントローラ103を有するプロセッサ10と通信を行うことができる。そして、2つのIOコントローラ103を有するプロセッサ10は、CHIPIDの上位5ビットとIO−IDの上位1ビットで生成されたCHIPIDを送信元のCHIPIDとして処理する。すなわち、実際には1つのプロセッサ10しか存在しないが、2つのIOコントローラ103を有するプロセッサ10は、CHIPIDの上位5ビットにIO−IDの上位1ビットが付加された2つのプロセッサ10と通信するように動作する。
次に、図4を参照して、プロセッサ10のIO処理のパケットの受信時の機能について説明する。図4は、4つのIOコントローラを有するプロセッサにおけるパケット受信時の機能のブロック図である。ここでは、プロセッサ10がIO処理のパケットを受信する場合を説明する。
構成制御レジスタ105は、動作モード情報レジスタ151及びCHIPIDレジスタ152を有する。動作モード情報レジスタ151及びCHIPIDレジスタ152は、送信時の場合と同様の値である。
外部バスIF部11は、CHIPIDチェック部111を有する。外部バスIF部11は、XBチップ4からIO処理用のパケットを受信する。
CHIPIDチェック部111は、動作モード情報レジスタ151の値を取得する。また、CHIPIDチェック部111は、受信したパケットの送信先のCHIPIDを取得する。
通常モードの場合、CHIPIDチェック部111は、受信したパケットの送信先のCHIPIDとCHIPIDレジスタ152との6ビット全てが一致するか否かを判定する。一致しない場合、外部バスIF部11は、エラーと判定しエラー応答を送信元に返す。これに対して、一致した場合、外部バスIF部11は、パケットをパケット受信部13へ出力する。
一方、互換モードの場合、CHIPIDチェック部111は、受信したパケットの送信先のCHIPIDとCHIPIDレジスタ152との上位5ビットが一致するか否かを判定する。すなわち、互換モードの場合、CHIPIDチェック部111は、CHIPIDの最下位の1ビットは無視する。一致しない場合、外部バスIF部11は、エラーと判定しエラー応答を送信元に返す。これに対して、一致した場合、外部バスIF部11は、パケットをパケット受信部13へ出力する。
パケット受信部13は、パケットの入力を外部バスIF部11から受ける。そして、パケット受信部13は、取得したパケットをIOリクエスト処理部15のIOコントローラ選択部51へ出力する。
IOリクエスト処理部15は、受信したパケットを宛先のIOコントローラ103へ送信する回路である。IOリクエスト処理部15は、IOコントローラ選択部51及び選択回路52を有する。
IOコントローラ選択部51は、IO−ID抽出部511、選択回路512及びリクエスト情報取得部513を有する。IOコントローラ選択部51のIO−ID抽出部511及びリクエスト情報取得部513は、パケットの入力をパケット受信部13から受ける。
IO−ID抽出部511は、受信したパケットから送信先のIO−IDの上位1ビットを抽出する。また、IO−ID抽出部511は、パケットから送信先のCHIPIDの最下位の1ビットを抽出する。そして、IO−ID抽出部511は、IO−IDの上位1ビット及びCHIPIDの最下位の1ビットを選択回路512へ出力する。さらに、IO−ID抽出部511は、パケットからIO−IDの下位1ビットを抽出する。そして、IO−ID抽出部511は、抽出したIO−IDの下位1ビットの値を選択回路52へ出力する。
選択回路512は、動作モード情報レジスタ151の値を構成制御レジスタ105から取得し、動作モードを判定する。さらに、選択回路512は、IO−IDの上位1ビット及びCHIPIDの最下位の1ビットの入力をIO−ID抽出部511から受ける。
通常モードの場合、選択回路512は、IO−IDの上位1ビットを選択回路52へ出力する。これに対して、互換モードの場合、選択回路512は、CHIPIDの最下位の1ビットをIO−IDの上位1ビットとして選択回路52へ出力する。
リクエスト情報取得部513は、受信したパケットからリクエストの内容、アドレス及びデータを取得する。そして、リクエスト情報取得部513は、リクエストの内容、アドレス及びデータなどのリクエスト情報を選択回路52へ出力する。
選択回路52は、IO−IDの上位1ビットの入力を選択回路512から受ける。また、選択回路52は、IO−IDの下位1ビットの入力をIO−ID抽出部511から受ける。そして、選択回路52は、受信したIO−IDの上位1ビット及び下位1ビットで表されるIOコントローラ番号を有するIOコントローラ103をIOコントローラ131〜134の中から選択する。
また、選択回路52は、リクエスト情報の入力をリクエスト情報取得部513から受ける。そして、選択回路52は、選択したIOコントローラ103に対して、リクエスト情報を送信する。リクエスト情報を受信したIOコントローラ103は、リクエストにしたがい接続されるIO装置(不図示)を制御する。
このように、互換モードの場合、IOリクエスト処理部15は、パケットに格納された送信先IDのうちCHIPIDの最下位の1ビット及びIO−IDの1ビットで処理を行わせるIOコントローラ103を判定する。これにより、1ビットのIO−IDしか有さないフォーマットのパケットを受信しても、IOリクエスト処理部15は、4つのIOコントローラ131〜134の中から適切なIOコントローラ103を選択できる。
また、2つのIOコントローラを有するプロセッサ10は、送信先の6ビットのCHIPIDを有するプロセッサ10の1ビットのIO−IDで表されるIOコントローラ103に対してパケットを送信する。ただし、1つのプロセッサ10が有するIOコントローラ103に対するパケットのCHIPIDは上位5ビットが同様で、最下位の1ビットが異なるCHIPIDである。そこで、4つのIOコントローラ103を有するプロセッサ10は、2つのIOコントローラを有するプロセッサ10が送信した自己宛のパケットを自己宛と判定でき、且つ、指定されたIOコントローラ103を選択できる。
ここで、図5を参照して、動作モード毎のパケットについて再度説明する。図5は、動作モード毎のパケットを説明するための図である。
パケット201は、フォーマットの一例を示す。パケット201は、ヘッダ部202及びデータ部203を有する。ヘッダ部202には、パケットID、パケット種、送信先、送信元及びアドレスが格納される。また、データ部203には、データが格納される。
いずれの動作モードにおいても、ヘッダ部202のパケットID、パケット種及びアドレスは同様に生成される。またデータ部203には同様にデータが格納される。
これに対して、互換モードであれば、4つのIOコントローラ103を有するプロセッサ10が送信元の場合、ヘッダ部202の送信元にID204が格納される。また、4つのIOコントローラ103を有するプロセッサ10が送信先の場合、ヘッダ部202の送信先にID204が格納される。
具体的には、ID204は、それが示す対象が4つのIOコントローラ103の場合、CHIPID205として割り当てられた6ビットのうち最下位の1ビットであるビット206がIO−IDの上位1ビットを表す。したがって、示す対象が4つのIOコントローラ103の場合、ID204は、ビット206とIO−ID207とで2ビットのIO−IDを表す。
ここで、表208は、互換モードの場合の送信先又は送信元の一例を表す。表208のCHIPIDは、ID204のCHIPID205にあたり、IO−IDは、ID204のIO−ID207にあたる。すなわち、CHIPIDが「0x0」のプロセッサ10に対して、「0x0」及び「0x1」の2つのIO−IDが割り当てられる。さらに、CHIPIDとして「0x0」の最下位の1ビットと異なる「0x1」を有するプロセッサ10に対して、「0x0」及び「0x1」の2つのIO−IDが割り当てられる。このように、互換モードの場合、2つのCHIPIDと2つのIO−IDとの組によって、実際には1つのプロセッサ10の中の4つのIOコントローラ103を表す。
一方、通常モードであれば、ヘッダ部202の送信元及び送信先にID210が格納される。具体的には、ID210は、CHIPID211として割り当てられた6ビットとIO−ID212として割り当てられた2ビットとで表される。
ここで、表213は、通常モードの場合の送信先又は送信元の一例を表す。表213のCHIPIDは、ID210のCHIPID211にあたり、IO−IDは、ID210のIO−ID212にあたる。すなわち、CHIPIDが「0x0」のプロセッサ10に対して、「0x0」〜「0x3」の4つのIO−IDが割り当てられる。このように、通常モードの場合、1つのCHIPIDと4つのIO−IDとの組によって、1つのプロセッサ10の中の4つのIOコントローラ103を表す。
さらに、図6を参照して、他のプロセッサ10から見た4つのIOコントローラ103を有するプロセッサ10の状態を説明する。図6は、他のプロセッサから見た4つのIOコントローラを有するプロセッサの状態を説明するための図である。
図6の状態220は、実際の4つのIOコントローラ103を有するプロセッサ10の状態を表す。また、状態230は、2つのIOコントローラ103を有するプロセッサ10から見た4つのIOコントローラ103を有するプロセッサ10の状態を表す。ここで、プロセッサ10は対応するメモリ3をそれぞれが有する。そこで、図6では、組み合わせが分かり易いようにプロセッサ10の中に対応するメモリ3を含ませて記載している。また、プロセッサ10は、1つのコア101及び1つの対応するメモリ3を有する場合で示したが、コア101及びメモリ3の数は他の数でもよい。
4つのIOコントローラ103を有するプロセッサ10は、実際には、状態220に示すように、1つのコア101及び1つのメモリ3を有する。さらに、プロセッサ10は、コア101及びメモリ3に対して、4つのIOコントローラ131〜134を有する。
一方、互換モードの場合、1つのプロセッサ10は、最下位の1ビットが異なる6ビットのCHIPIDと1ビットのIO−IDによって、送信先及び送信元が表される。この場合、他のプロセッサ10は、4つのIOコントローラ103を有するプロセッサ10のIOコントローラ103を2つのCHIPID及び2つのIO−IDによって判別する。すなわち、プロセッサ10は、状態230に示すように、仮想のプロセッサ231及び232に分けられて認識される。さらに、仮想のプロセッサ231及び232それぞれにIOコントローラ131及び132、もしくは、IOコントローラ133及び134が含まれる。そして、仮想のプロセッサ231又は232の何れかのCHIPIDは、プロセッサ10のCHIPIDと一致する。この場合、仮想のプロセッサ231のCHIPIDとプロセッサ10のCHIPIDとが一致するものとすると、仮想のプロセッサ231は、コア101及びメモリ3を有するといえる。一方、仮想のプロセッサ232は、実際にはないCHIPIDで識別されるため、コア101及びメモリ3を有さないプロセッサとなる。
このように、互換モードの場合、他のプロセッサ10は、仮想のプロセッサ231のIOコントローラ131及び132、並びに、仮想のプロセッサ232のIOコントローラ133及び134を通信相手とする。これにより、他のプロセッサ10は、実際のプロセッサ10のIOコントローラ131〜134と通信を行うことができる。
また、パケットによって送られてくるリクエストには、IO処理以外の他の処理も含まれる。そのため、4つのIOコントローラ103を有するプロセッサ10は、他の処理のリクエストが、通常モード及び互換モードの何れのフォーマットのパケットで送られてきた場合でも、それらを適切に処理する機能を有する。そこで、図7を参照して、IO処理以外の他の処理のリクエストを処理する場合の4つのIOコントローラ103を有するプロセッサ10について説明する。図7は、4つのIOコントローラを有するプロセッサにおけるリクエスト処理時の機能のブロック図である。
構成制御レジスタ105は、動作モード情報レジスタ151及びCHIPIDレジスタ152を有する。動作モード情報レジスタ151及びCHIPIDレジスタ152は、送信時の場合と同様の値である。
外部バスIF部11は、CHIPIDチェック部111を有する。外部バスIF部11は、XBチップ4からIO処理用のパケットを受信する。
CHIPIDチェック部111は、動作モード情報レジスタ151の値を取得し、動作モードを判定する。また、CHIPIDチェック部111は、受信したパケットの送信先のCHIPIDを取得する。
通常モードの場合、CHIPIDチェック部111は、受信したパケットの送信先のCHIPIDとCHIPIDレジスタ152との6ビット全てが一致するか否かを判定する。一致しない場合、外部バスIF部11は、エラーと判定しエラー応答を送信元に返す。これに対して、一致した場合、外部バスIF部11は、パケットをパケット受信部13へ出力する。
一方、互換モードの場合、CHIPIDチェック部111は、受信したパケットの送信先のCHIPIDとCHIPIDレジスタ152との上位5ビットが一致するか否かを判定する。すなわち、互換モードの場合、CHIPIDチェック部111は、CHIPIDの最下位の1ビットは無視する。一致しない場合、外部バスIF部11は、エラーと判定しエラー応答を送信元に返す。これに対して、一致した場合、外部バスIF部11は、パケットをパケット受信部13へ出力する。
パケット受信部13は、リクエストのパケットの入力を外部バスIF部11から受ける。そして、パケット受信部13は、リクエストのパケットをリクエスト処理制御部16の応答判定部61及び選択回路62へ出力する。
リクエスト処理制御部16は、応答判定部61、選択回路62、受信バッファ63、リクエスト処理部64、リクエスト応答部65、受信バッファ66及び仮想チップ宛リクエスト応答部67を有する。さらに、応答判定部61は、CHIPID抽出部611及びAND回路612を有する。
CHIPID抽出部611は、パケットの入力をパケット受信部13から受ける。そして、CHIPID抽出部611は、取得したパケットから送信先のCHIPIDを抽出し、さらに、抽出したCHIPIDから最下位の1ビットの値を取得する。その後、CHIPID抽出部611は、取得した送信先のCHIPIDの最下位の1ビットの値をAND回路612へ出力する。
AND回路612は、動作モード情報レジスタ151の値の入力を受ける。ここでは、AND回路612は、動作モード情報レジスタ151の値として、通常モードの場合「0」の入力を受け、互換モードの場合「1」の入力を受ける。また、AND回路612は、送信先のCHIPIDの最下位の1ビットの値の入力をCHIPID抽出部611から受ける。
次に、AND回路612は、動作モード情報の値と送信先のCHIPIDの最下位の1ビットの値との論理積を求める。そして、AND回路612は、求めた論理積の結果を選択回路62へ出力する。通常モードであれば、AND回路612は、「0」を選択回路62へ出力する。また、互換モードであって、送信先のCHIPIDの最下位の1ビットの値が「0」の場合、AND回路612は、「0」を選択回路62へ出力する。これに対して、互換モードであって、送信先のCHIPIDの最下位の1ビットの値が「1」の場合、AND回路612は、「1」を選択回路62へ出力する。ただし、ここではプロセッサ10の6ビットで表される実際のCHIPIDの最下位の1ビットが「0」であるとする。
選択回路62は、動作モード情報の値と送信先のCHIPIDの最下位の1ビットの値との論理積の結果の入力をAND回路612から受ける。また、選択回路62は、リクエストのパケットの入力をパケット受信部13から受ける。
選択回路62は、AND回路612からの入力が「1」の場合、リクエストのパケットを受信バッファ63へ出力する。一方、AND回路612からの入力が「0」の場合、選択回路62は、リクエストのパケットを受信バッファ66へ出力する。すなわち、通常モードの場合、又は互換モードで且つCHIPIDの最下位の1ビットが「0」の場合、選択回路62は、パケットを受信バッファ63へ出力する。
ここで、受信バッファ63は、実チップID宛のリクエスト処理である通常のリクエスト処理を実行する経路に繋がる。また、受信バッファ66は、仮想チップID宛のリクエストに対する処理を実行する経路に繋がる。すなわち、選択回路62は、図8に示すテーブルに示す経路選択のようにパケットを出力する経路を選択する。図8は、リクエスト処理経路判定のテーブルを示す図である。ここで、CHIPID[0]は、CHIPIDの最下位の1ビットであることを表す。すなわち、動作モードが通常モードの場合、選択回路62は、実チップID宛のリクエスト処理経路にパケットを送信する。また、動作モードが互換モードであって、CHIPIDの最下位の1ビットが「0」の場合、選択回路62は、実チップID宛のリクエスト処理経路にパケットを送信する。また、動作モードが互換モードであって、CHIPIDの最下位の1ビットが「1」の場合、仮想チップID宛のリクエスト処理経路にパケットを送信する。
なぜなら、通常モードの場合、6ビットのCHIPID及び2ビットのIO−IDを送信先として用いるフォーマットのパケットを用いて通信を行うため、自己宛てのパケットである。そこで、プロセッサ10は、そのパケットを実チップID宛として通常の処理を施すことができる。また、互換モードであっても、CHIPIDの最下位の1ビットが「0」であれば、自己のCHIPIDと一致するため、プロセッサ10は、自己宛のパケットとして処理することができる。そこで、プロセッサ10は、そのパケットを実チップID宛として通常の処理を施すことができる。これに対して、互換モードであり、且つ、CHIPIDの最下位の1ビットが「1」の場合、受信したパケットは、実際には存在しないプロセッサ10を送信先とするパケットである。そこで、プロセッサ10は、そのパケットについて仮想チップID宛てのリクエストに対する処理を実行することになる。
受信バッファ63は、リクエストのパケットの入力を選択回路62から受ける。そして、受信バッファ63は、取得したリクエストのパケットを順次蓄積していく。
リクエスト処理部64は、受信バッファ63に格納されたリクエストのパケットの中から1つ選択し、リクエストを取得する。そして、リクエスト処理部64は、取得したリクエストに対して通常の処理を実行する。その後、リクエスト処理部64は、処理完了の通知をリクエスト応答部65へ出力する。リクエスト処理部64は、受信バッファ63に格納されたリクエストについて順次処理を行う。
リクエスト応答部65は、処理完了の通知の入力をリクエスト処理部64から受ける。そして、リクエスト応答部65は、処理完了の通知に応じてリクエストに対する応答のパケットを生成する。その後、リクエスト応答部65は、生成した応答のパケットをパケット送信部12へ出力する。
受信バッファ66は、リクエストのパケットの入力を選択回路62から受ける。そして、受信バッファ66は、取得したリクエストのパケットを順次蓄積していく。
仮想チップ宛リクエスト応答部67は、受信バッファ66に格納されたリクエストのパケットの中から1つ選択し、リクエストを取得する。そして、仮想チップ宛リクエスト応答部67は、取得したリクエストに対して仮想チップID宛てのリクエスト処理を実行する。仮想チップ宛リクエスト応答部67は、処理の実行にしたがいリクエストに対する応答のパケットを生成する。その後、仮想チップ宛リクエスト応答部67は、生成した応答のパケットをパケット送信部12へ出力する。仮想チップ宛リクエスト応答部67は、受信バッファ66に格納されたリクエストについて順次処理を行う。
ここで、図9を参照して、リクエスト処理部64、リクエスト応答部65及び仮想チップ宛リクエスト応答部67によるリクエスト応答について説明する。図9は、動作モード毎のリクエスト応答処理を説明するための図である。ここで、CHIPID[0]=0は、CHIPIDの最下位の1ビットの値が0であることを表す。また、CHIPID[0]=1は、CHIPIDの最下位の1ビットの値が1であることを表す。
図9に示すように、IO処理以外のリクエストには、例えば、メモリアクセス要求、キャッシュ制御要求、アーキテクチャレジスタへのアクセス要求及びコア101に対する割込要求がある。ここで、アーキテクチャレジスタは、プロセッサ10上に搭載されたソフトウェアレベルで参照可能なレジスタである。リクエスト処理部64及び仮想チップ宛リクエスト応答部67は、図5に示すパケット201のヘッダ部202におけるパケット種のフィールドに格納された値でリクエストの種類を判定する。
通常モードの場合、リクエスト処理部64及びリクエスト応答部65は以下のような処理を行い応答を返す。例えば、メモリアクセス要求の場合、リクエスト応答部65は、要求のあったメモリアドレスのデータを応答する。また、キャッシュ制御要求の場合、リクエスト処理部64は、キャッシュ102が指定されたデータを保持するかを調べ、保持する場合破棄する。そして、リクエスト応答部65は、要求元へ完了応答を返す。アーキテクチャレジスタへのアクセス要求の場合、リクエスト処理部64は、指定されたレジスタに対する読み出し又は書き込みを行う。そして、リクエスト応答部65は、要求元へ完了応答を返す。コア101に対する割込要求の場合、リクエスト処理部64は、指定された割り込みを発生させる。そして、リクエスト応答部65は、パケットの送信元に受信完了を示す応答を返す。
また、互換モードであって、CHIPIDの最下位の1ビットが「0」の場合、リクエスト処理部64及びリクエスト応答部65は、通常モードと同様のリクエスト処理を行い応答を返す。ここで、CHIPIDの最下位の1ビットの値としての「0」が、「所定値」の一例にあたる。
これに対して、互換モードであって、CHIPIDの最下位の1ビットが「1」の場合、仮想チップ宛リクエスト応答部67は、以下のような処理を行い応答を返す。メモリアクセス要求の場合、仮想チップ宛リクエスト応答部67は、要求されたメモリアドレスに実メモリがないことを示すエラー応答を返す。キャッシュ制御要求の場合、仮想チップ宛リクエスト応答部67は、キャッシュ102に対して何もせずに、要求元に完了応答を返す。アーキテクチャレジスタへのアクセス要求の場合、仮想チップ宛リクエスト応答部67は、指定したレジスタが存在しないことを示すエラー応答を要求元に返す。ただし、実装によっては、仮想チップ宛リクエスト応答部67は、アーキテクチャレジスタへのアクセス要求の場合、書き込みデータは捨て、読み出し値は全て0として、正常応答を要求元に返してもよい。コア101に対する割込要求の場合、仮想チップ宛リクエスト応答部67は、受信した割り込みは破棄し、パケットの送信元に受信したことを示す応答を返してもよい。ただし、実装によっては、仮想チップ宛リクエスト応答部67は、コア101に対する割込要求の場合、エラー応答をパケットの送信元に返してもよい。
また、図9では、リクエスト処理制御部16による受信したパケットに対する応答処理について説明したが、リクエスト処理制御部16は、プロセッサ10が送信元となるリクエストのパケットの生成も行う。この場合、リクエスト処理制御部16は、CHIPIDレジスタ152を構成制御レジスタ105から取得する。そして、リクエスト処理制御部16は、取得した6ビットのCHIPIDを送信元の識別情報として用い、送信先の識別情報はアドレスに対応するCHIPIDを宛先リストレジスタ153から取得してパケットを生成する。また、リクエスト処理制御部16は、その他の情報は、送信するリクエストに合わせて作成しパケットを生成する。そして、リクエスト処理制御部16は、生成したパケットをパケット送信部12を介してXBチップ4に送信する。
次に、図10を参照して、本実施例に係る4つのIOコントローラ103を有するプロセッサ10によるパケットの発行処理の流れについて説明する。図10は、4つのIOコントローラを有するプロセッサによるパケットの発行処理のフローチャートである。
IOコントローラ103は、IOリクエスト生成部14にリクエストを発信する(ステップS101)。
IOリクエスト生成部14は、構成制御レジスタ105の動作モード情報レジスタ151の値から動作モードが通常モードか否かを判定する(ステップS102)。
動作モードが通常モードの場合(ステップS102:肯定)、IOリクエスト生成部14は、リクエストの発信元のIOコントローラ103のIOコントローラ番号で2ビットのIO−IDを作成する(ステップS103)。
さらに、IOリクエスト生成部14は、CHIPIDレジスタ152を表す6ビット全てを構成制御レジスタ105から取得する(ステップS104)。
次に、IOリクエスト生成部14は、6ビットのCHIPID及び2ビットのIO−IDを用いて送信元のIDを生成する(ステップS105)。その後、IOリクエスト生成部14は、ステップS109へ進む。
これに対して、動作モードが互換モードの場合(ステップS102:否定)、IOリクエスト生成部14は、リクエストの発信元のIOコントローラ103のIOコントローラ番号の下位1ビットを1ビットのIO−IDに割り当てる。さらに、IOリクエスト生成部14は、リクエストの発信元のIOコントローラ103のIOコントローラ番号の上位1ビットをCHIPIDの最下位の1ビットに割り当てる(ステップS106)。
さらに、IOリクエスト生成部14は、CHIPIDレジスタ152の上位5ビットを構成制御レジスタ105から取得する(ステップS107)。
次に、IOリクエスト生成部14は、IOコントローラ番号の上位1ビット及びCHIPIDの上位5ビットを有するCHIPID、並びに、IOコントローラ番号の下位1ビットを有する1ビットのIO−IDを用いて送信元のIDを生成する(ステップS108)。
次に、IOリクエスト生成部14は、アドレスに対応するCHIPIDを構成制御レジスタ105の宛先リストレジスタ153から取得する(ステップS109)。
そして、IOリクエスト生成部14は、リクエストのパケットを生成する(ステップS110)。その後、IOリクエスト生成部14は、生成したパケットをパケット送信部12へ出力する。
パケット送信部12は、パケットをIOリクエスト生成部14から取得する。そして、パケット送信部12は、外部バスIF部11を介してXBチップ4へパケットを送信することで、パケットの発行を行う(ステップS111)。
次に、図11を参照して、本実施例に係る4つのIOコントローラ103を有するプロセッサ10によるIO処理要求のパケットの受信処理の流れについて説明する。図11は、4つのIOコントローラを有するプロセッサによるIO処理要求のパケットの受信処理のフローチャートである。
外部バスIF部11は、XBチップ4からリクエストのパケットを受信する(ステップS201)。
外部バスIF部11のCHIPIDチェック部111は、構成制御レジスタ105の動作モード情報レジスタ151の値から動作モードが通常モードか否かを判定する(ステップS202)。
動作モードが通常モードの場合(ステップS202:肯定)、CHIPIDチェック部111は、受信したパケットの送信先におけるCHIPIDの6ビット全てが一致するか否かを判定する(ステップS203)。CHIPIDが一致しない場合(ステップS203:否定)、外部バスIF部11は、エラー応答をパケットの送信元へ返す(ステップS204)。
これに対して、CHIPIDが一致した場合(ステップS203:肯定)、外部バスIF部11は、パケット受信部13へパケットを出力する。そして、パケット受信部13は、パケットをIOリクエスト処理部15へ出力する。IOリクエスト処理部15は、パケットの送信先のIDに格納された2ビットのIO−IDを宛先のIOコントローラ番号として取得する(ステップS205)。その後、IOリクエスト処理部15は、ステップS209へ進む。
一方、動作モードが互換モードの場合(ステップS202:否定)、CHIPIDチェック部111は、受信したパケットの送信先におけるCHIPIDの上位5ビットが一致するか否かを判定する(ステップS206)。CHIPIDが一致しない場合(ステップS206:否定)、外部バスIF部11は、エラー応答をパケットの送信元へ返す(ステップS207)。
これに対して、CHIPIDが一致した場合(ステップS206:肯定)、外部バスIF部11は、パケット受信部13へパケットを出力する。そして、パケット受信部13は、パケットをIOリクエスト処理部15へ出力する。IOリクエスト処理部15は、パケットの送信先のIDに格納された1ビットのIO−IDをIOコントローラ番号の下位1ビットとして取得する。さらに、IOリクエスト処理部15は、CHIPIDの最下位の1ビットをIOコントローラ番号の上位1ビットとして取得する(ステップS208)。
次に、IOリクエスト処理部15は、取得したIOコントローラ番号を有するIOコントローラ103へリクエストのパケットを転送する(ステップS209)。IOコントローラ103は、受信したパケットにより示されるリクエストに応じてIO装置を制御する。
次に、図12を参照して、本実施例に係る4つのIOコントローラ103を有するプロセッサ10によるリクエストの受信処理の流れについて説明する。図12は、4つのIOコントローラを有するプロセッサによるリクエストの受信処理のフローチャートである。
外部バスIF部11は、リクエストのパケットを受信する(ステップS301)。
CIHPIDチェック部111は、構成制御レジスタ105の動作モード情報レジスタ151の値から、動作モードが通常モードか否かを判定する(ステップS302)。
動作モードが通常モードの場合(ステップS302:肯定)、CHIPIDチェック部111は、受信したパケットの送信先におけるCHIPIDの6ビット全てが一致するか否かを判定する(ステップS303)。CHIPIDが一致しない場合(ステップS303:否定)、外部バスIF部11は、エラー応答をパケットの送信元へ返す(ステップS304)。
これに対して、CHIPIDが一致した場合(ステップS303:肯定)、外部バスIF部11は、パケット受信部13へパケットを出力する。そして、パケット受信部13は、パケットをリクエスト処理制御部16へ出力する。リクエスト処理制御部16は、実チップID宛のリクエスト処理を実行する(ステップS305)。
一方、動作モードが互換モードの場合(ステップS302:否定)、CHIPIDチェック部111は、受信したパケットの送信先におけるCHIPIDの上位5ビットが一致するか否かを判定する(ステップS306)。CHIPIDが一致しない場合(ステップS306:否定)、外部バスIF部11は、エラー応答をパケットの送信元へ返す(ステップS307)。
これに対して、CHIPIDが一致した場合(ステップS306:肯定)、外部バスIF部11は、パケット受信部13へパケットを出力する。そして、パケット受信部13は、パケットをリクエスト処理制御部16へ出力する。リクエスト処理制御部16は、受信したパケットの送信先におけるCHIPIDの最下位の1ビットが「0」であるか否かを判定する。最下位の1ビットが「0」の場合(ステップS308:肯定)、リクエスト処理制御部16は、ステップS305に進む。
これに対して、最下位の1ビットが「1」の場合(ステップS308:否定)リクエスト処理制御部16は、仮想チップID宛のリクエスト処理を実行する(ステップS309)。
さらに、図13〜15を参照して、各ノードにおけるアドレスマップについて説明する。図13は、2つのIOコントローラを有するプロセッサ同士の通信におけるアドレスマップを説明するための図である。図14は、互換モードを用いた通信におけるアドレスマップを説明するための図である。図15は、通常モードを用いた通信におけるアドレスマップを説明するための図である。
図13では、構成702に示すように、2つのIOコントローラ103を備えたプロセッサ10を有するノード1が通信する場合で説明する。ここでは、ノード#00〜#15を有するシステムを考えるが、構成702では、例として2つのノード1であるノード#00及び#01の接続を記載した。また、ノード#00及びノード#01は、それぞれ4つのプロセッサ10を有する。ノード#00は、CHIPID#0〜#3が割り当てられたプロセッサ10を有する。ノード#01は、CHIPID#4〜#7が割り当てられたプロセッサ10を有する。さらに、各プロセッサ10は、2つのIOコントローラ番号として##0及び##1が割り当てられたIOコントローラ103を有する。ここでは、この2つのIOコントローラ103を、IOコントローラ##0及び##1と表す。図13では、IOコントローラを「IOC」と表す。また、構成702では、分かり易いように、プロセッサ10に対応するメモリ3もそのプロセッサ10のCHIPIDで表されるグループに属するように記載した。
アドレスマップ701は、CA(Cacheable Address)空間及びNC(Non Cacheable)空間を有する。
CA空間には、ノード#00〜ノード#15の各メモリ3に対してアドレスが割り当てられる。例えば、ノード#00に存在するメモリ3として、CHIPID#0〜#3のそれぞれのプロセッサ10に搭載された各メモリ3に対してアドレスが割り当てられる。
また、NC空間には、ノード#00〜ノード#15の各プロセッサ10の各IOコントローラ##0及び##1に対してアドレスが割り当てられる。例えば、ノード#00のIOコントローラ103として、CHIPID#0〜#3のそれぞれのプロセッサ10毎に、各IOコントローラ##0及び##1に対してアドレスが割り当てられる。すなわち、2つのIOコントローラ103を有するプロセッサ10同士の通信では、各プロセッサ10は、直接CHIPID#0〜#3のそれぞれのプロセッサ10の各IOコントローラ##0及び##1のIDをアドレスマップ701から取得することができる。
一方、図14では、構成712に示すように、2つのIOコントローラ103を備えたプロセッサ10を有するノード1と4つのIOコントローラ103を備えたノード1とが通信する場合で説明する。ここでは、ノード#00〜#15を有するシステムを考えるが、構成712では、例として2つのノード1のみ記載した。ここでは、ノード#00は、2つのIOコントローラを有するプロセッサ10を備えたノードとする。また、ノード#01は、4つのIOコントローラを有するプロセッサ10を備えたノードとする。ノード#00は、CHIPID#0〜#3が割り当てられたプロセッサ10を有する。ノード#01は、CHIPID#4及び#6が割り当てられたプロセッサ10を有する。さらに、ノード#00の各プロセッサ10は、2つのIOコントローラ番号として##0及び##1が割り当てられたIOコントローラ103を有する。また、ノード#01の各プロセッサ10は、IOコントローラ番号として##0〜##3が割り当てられたIOコントローラ103を有する。
この場合も、アドレスマップ711のCA空間には、ノード#00〜ノード#15の各メモリ3に対してアドレスが割り当てられる。ただし、例えば、CA空間のCHIPID#5メモリ及び#7メモリのメモリ領域には実メモリが存在しないため、メモリ未実装となる。
これに対して、アドレスマップ711のNC空間には、ノード#00のIOコントローラ103として、CHIPID#0〜#3のそれぞれのプロセッサ10毎に、各IOコントローラ##0及び##1に対してアドレスが割り当てられる。一方、2つのIOコントローラ103を有するプロセッサ10と通信するために、IO−IDに使用できる領域は1ビットのみである。そこで、ノード#01のIOコントローラ103として、CHIPID#5及び#7を有する仮想のプロセッサ71及び72が作成される。さらに、各CHIPID#4〜#7がIOコントローラ##0及び##1を有するとして、各IOコントローラ103にアドレスが割り当てられる。ここで、アドレスマップ711でアドレスが割り当てられたCHIPID#5のIOコントローラ##0及び##1は、実体はCHIPID#4のIOコントローラ##2及び##3である。また、アドレスマップ711でアドレスが割り当てられたCHIPID#7のIOコントローラ##0及び##1は、実体はCHIPID#6のIOコントローラ##2及び##3である。これにより、2つのIOコントローラ103を有するプロセッサ10は、CHIPID#4及び#6のIOコントローラ##0〜##3を表すIDを、6ビットのCHIPIDと1ビットのIO−IDとの組み合わせで表されるIDとしてアドレスマップ711から取得することができる。
一方、図15では、構成722に示すように、4つのIOコントローラ103を備えたプロセッサ10を有するノード1同士が通信する場合で説明する。ここでは、ノード#00〜#15を有するシステムを考えるが、構成722では、例として2つのノード1を記載した。ここでは、ノード#00及び#01は、4つのIOコントローラを有するプロセッサ10を備えたノードである。ノード#00及び#01は、それぞれCHIPID#0〜#3が割り当てられたプロセッサ10を有する。さらに、ノード#00の各プロセッサ10は、4つのIOコントローラ番号として##0〜##3が割り当てられたIOコントローラ103を有する。
アドレスマップ721のCA空間には、ノード#00〜ノード#15の各メモリ3に対してアドレスが割り当てられる。
また、NC空間には、ノード#00〜ノード#15の各プロセッサ10の各IOコントローラ##0〜##3に対してアドレスが割り当てられる。例えば、ノード#00のIOコントローラ103として、CHIPID#0〜#3のそれぞれのプロセッサ10毎に、各IOコントローラ##0〜##3に対してアドレスが割り当てられる。すなわち、4つのIOコントローラ103を有するプロセッサ10同士の通信では、各プロセッサ10は、直接CHIPID#0〜#3のそれぞれのプロセッサ10の各IOコントローラ##0〜##3のIDをアドレスマップ721から取得することができる。
そして、アドレスマップ701,711及び721で表すように、各モードに合わせてアドレスマップが変更されることで、あるプロセッサ10で実行されるソフトウェアは、アドレスマップを用いて他のプロセッサ10と通信することができる。
以上に説明したように、本実施例に係る4つのIOコントローラを有するプロセッサは、1ビットのIO−IDを使用する2つのIOコントローラを有するプロセッサと混在した場合にも、全てのIOコントローラを用いることができる。したがって、本実施例に係る4つのIOコントローラを有するプロセッサは、2つのIOコントローラを有するプロセッサと混在した場合にも、IO処理能力を十分に発揮することができる。
また、本実施例に係る4つのIOコントローラを有するプロセッサは、2つのIOコントローラを有するプロセッサと混在した場合における各リクエストに対するエラー応答などの処理も適切に行うことができ、適切な動作を継続することができる。
1 ノード
2 サービスプロセッサ
3 メモリ
4 XBチップ
5 クロスバスイッチ
6 IO装置
10 プロセッサ
11 外部バスIF部
12 パケット送信部
13 パケット受信部
14 IOリクエスト生成部
15 IOリクエスト処理部
16 リクエスト処理制御部
41 調停回路
42 選択回路
43 不使用情報出力部
44 選択回路
45 パケット生成部
51 IOコントローラ選択部
52 選択回路
61 応答判定部
62 選択回路
63 受信バッファ
64 リクエスト処理部
65 リクエスト応答部
66 受信バッファ
67 仮想チップ宛リクエスト応答部
101 コア
102 キャッシュ
103,131〜134 IOコントローラ
104 メモリコントローラ
105 構成制御レジスタ
106 外部IF
111 CHIPIDチェック部
151 動作モード情報
152 CHIPID
153 宛先リストレジスタ
451 送信元ID生成部
452 送信先ID生成部
453 リクエスト情報生成部
501 サービスプロセッサ
511 IO−ID抽出部
512 選択回路
513 リクエスト情報取得部
611 CHIPID抽出部
612 AND回路

Claims (7)

  1. 互いに接続される複数の演算処理装置と、
    各前記演算処理装置のそれぞれに複数配置され、入出力処理装置を制御する制御部と、
    動作モードを第1モード又は第2モードの何れかに決定する動作モード決定部と、
    前記第2モードの場合に制御部識別情報のサイズを前記第1モードの場合よりも所定サイズ小さくし且つ演算処理装置識別情報の前記所定サイズの領域が前記制御部の識別ための情報となるように、前記動作モードに応じて前記演算処理装置識別情報及び前記制御部識別情報を生成し、生成した前記演算処理装置識別情報及び前記制御部識別情報を基に送信元及び送信先の識別情報を生成する生成部と、
    送信先及び送信元の識別情報を用いて信号の送受信を行う通信部と、
    受信した信号の送信先が前記制御部の場合、前記送信先の識別情報を基に、制御装置を選択し信号を送信する選択部と、
    受信した信号の送信先が前記制御部以外の場合、前記動作モード及び前記演算処理装置識別情報のうち前記所定サイズの領域の値を基に、受信した信号に対して処理を実行する処理実行部と
    を備えたことを特徴とする情報処理装置。
  2. 前記生成部は、前記第1モードの場合、前記演算処理装置識別情報を第1サイズとし、前記制御部識別情報を第2サイズとして、送信先及び送信元の識別情報を生成し、前記第2モードの場合、前記演算処理装置識別情報を前記第1サイズとし、前記制御部識別情報を前記第2サイズより前記所定サイズ小さい第3サイズとし、且つ前記演算処理装置識別情報のうち前記所定サイズの領域を前記制御部を識別するための情報として、送信先及び送信元の識別情報を生成することを特徴とする請求項1に記載の情報処理装置。
  3. 前記選択部は、前記第1モードの場合、送信先の識別情報に含まれる前記制御部識別情報を基に、前記制御部を選択し、前記第2モードの場合、送信先の識別情報に含まれる前記演算処理装置識別情報のうちの前記所定サイズの領域の値及び前記制御部識別情報を基に前記制御部を選択することを特徴とする請求項1又は2に記載の情報処理装置。
  4. 前記処理実行部は、前記動作モードが前記第1モードの場合、及び、前記動作モードが前記第2モードであって前記演算処理装置識別情報のうち前記所定サイズの領域の値が所定値の場合、受信した前記信号に対して第1処理を実行し、前記動作モードが前記第2モードであって前記演算処理装置識別情報のうち前記所定サイズの領域の値が前記所定値以外の値の場合、受信した前記信号に対して第2処理を実行する請求項1〜3のいずれか一つに記載の情報処理装置。
  5. 前記第モードは、配置された前記制御部の数が自装置よりも少ない第1演算処理装置と通信を行うシステムで動作する場合の動作モードであり、
    前記第モードは、配置された前記制御部の数が自装置よりも少ない第1演算処理装置との通信を行わないシステムで動作する場合の動作モードである
    ことを特徴とする請求項1〜4のいずれか一つに記載の情報処理装置。
  6. 入出力処理装置を制御する複数の制御部と、
    動作モードを第1モード又は第2モードの何れかに決定する動作モード決定部と、
    前記第2モードの場合に制御部識別情報のサイズを前記第1モードの場合よりも所定サイズ小さくし且つ演算処理装置識別情報の前記所定サイズの領域が前記制御部の識別ための情報となるように、前記動作モードに応じて前記演算処理装置識別情報及び前記制御部識別情報を生成し、生成した前記演算処理装置識別情報及び前記制御部識別情報を基に送信元及び送信先の識別情報を生成する生成部と、
    送信先及び送信元の識別情報を用いて信号の送受信を行う通信部と、
    受信した信号の送信先が前記制御部の場合、前記送信先の識別情報を基に、制御装置を選択し信号を送信する選択部と、
    受信した信号の送信先が前記制御部以外の場合、前記動作モード及び前記演算処理装置識別情報のうち前記所定サイズの領域の値を基に、受信した信号に対して処理を実行する処理実行部と
    を備えたことを特徴とする演算処理装置。
  7. 互いに接続される複数の演算処理装置及び各前記演算処理装置のそれぞれに複数配置され、入出力処理装置を制御する制御装置を有する情報処理装置の制御方法であって、
    前記演算処理装置が、
    動作モードを第1モード又は第2モードの何れかに決定し、
    前記第2モードの場合に制御部識別情報のサイズを前記第1モードの場合よりも所定サイズ小さくし且つ演算処理装置識別情報の前記所定サイズの領域が前記制御装置の識別ための情報となるように、前記動作モードに応じて前記演算処理装置識別情報及び前記制御部識別情報を生成し、
    生成した前記演算処理装置識別情報及び前記制御部識別情報を基に送信元及び送信先の識別情報を生成し、
    送信先及び送信元の識別情報を用いて信号の送受信を行い、
    受信した信号の送信先が前記制御装置の場合、前記送信先の識別情報を基に、制御装置を選択し信号を送信し、
    受信した信号の送信先が前記制御装置以外の場合、前記動作モード及び前記演算処理装置識別情報のうち前記所定サイズの領域の値を基に、受信した信号に対して処理を実行する
    ことを特徴とする情報処理装置の制御方法。
JP2016032201A 2016-02-23 2016-02-23 情報処理装置、演算処理装置及び情報処理装置の制御方法 Active JP6593222B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016032201A JP6593222B2 (ja) 2016-02-23 2016-02-23 情報処理装置、演算処理装置及び情報処理装置の制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016032201A JP6593222B2 (ja) 2016-02-23 2016-02-23 情報処理装置、演算処理装置及び情報処理装置の制御方法

Publications (2)

Publication Number Publication Date
JP2017151622A JP2017151622A (ja) 2017-08-31
JP6593222B2 true JP6593222B2 (ja) 2019-10-23

Family

ID=59741974

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016032201A Active JP6593222B2 (ja) 2016-02-23 2016-02-23 情報処理装置、演算処理装置及び情報処理装置の制御方法

Country Status (1)

Country Link
JP (1) JP6593222B2 (ja)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62193491A (ja) * 1986-02-20 1987-08-25 Sanyo Electric Co Ltd 遠隔集中制御システム
JPS6330948A (ja) * 1986-07-25 1988-02-09 Fujitsu Ltd 入出力制御装置のアドレス変換回路
US6457068B1 (en) * 1999-08-30 2002-09-24 Intel Corporation Graphics address relocation table (GART) stored entirely in a local memory of an expansion bridge for address translation
JP3959914B2 (ja) * 1999-12-24 2007-08-15 株式会社日立製作所 主記憶共有型並列計算機及びそれに用いるノード制御装置
JP4469010B2 (ja) * 2006-03-10 2010-05-26 ソニー株式会社 ブリッジ、情報処理システムおよびアクセス制御方法
WO2010021018A1 (ja) * 2008-08-18 2010-02-25 富士通株式会社 ノード間通信方法

Also Published As

Publication number Publication date
JP2017151622A (ja) 2017-08-31

Similar Documents

Publication Publication Date Title
US9025495B1 (en) Flexible routing engine for a PCI express switch and method of use
CN111092773B (zh) 一种支持虚拟交换的pcie交换芯片端口配置系统和方法
US8615623B2 (en) Internet connection switch and internet connection system
JP5280135B2 (ja) データ転送装置
US9219695B2 (en) Switch, information processing apparatus, and communication control method
CN102263698B (zh) 虚拟通道的建立方法、数据传输的方法及线卡
US9087162B2 (en) Using a PCI standard hot plug controller to modify the hierarchy of a distributed switch
US7539129B2 (en) Server, method for controlling data communication of server, computer product
WO2022012309A1 (zh) 扩展PCIe系统的方法、PCIe交换设备及PCIe系统
US8589610B2 (en) Method and system for receiving commands using a scoreboard on an infiniband host channel adaptor
US10169279B2 (en) Input/output control device, input/output control system, and input/output control method for conversion of logical address of instruction into local address of device specified in instruction
US11157431B2 (en) System, apparatus and method for multi-die distributed memory mapped input/output support
CN113168384B (zh) 通信设备、信息处理系统和通信方法
JP6593222B2 (ja) 情報処理装置、演算処理装置及び情報処理装置の制御方法
JP6036445B2 (ja) 通信システム、中継装置、通信方法、及びプログラム
KR20130066401A (ko) 칩 멀티 프로세서, 및 칩 멀티 프로세서를 위한 라우터
US11824752B2 (en) Port-to-port network routing using a storage device
KR20120054142A (ko) QoS 및 전송 효율 개선을 위한 SoC 기반 시스템 네트워크에서의 인터페이스 장치의 통신방법 및 그에 의해 통신하는 인터페이스 장치
JP6586374B2 (ja) 通信装置、経路管理サーバ、通信方法、および仮想ポート割当方法
KR20220132333A (ko) PCIe 인터페이스 장치 및 그 동작 방법
US10523457B2 (en) Network communication method, system and controller of PCIe and Ethernet hybrid networks
CN109951365B (zh) 结合PCIe总线与以太网络的网络通信方法、系统及控制器
JP2009276828A (ja) Usb接続装置、及びusb接続方法
CN111865794A (zh) 一种逻辑端口的关联方法、系统、设备及数据传输系统
WO2023112646A1 (ja) 情報処理装置、及び情報処理装置の制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181011

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190619

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190814

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190909

R150 Certificate of patent or registration of utility model

Ref document number: 6593222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150