JP2014016749A - スイッチ装置およびシステム - Google Patents

スイッチ装置およびシステム Download PDF

Info

Publication number
JP2014016749A
JP2014016749A JP2012153066A JP2012153066A JP2014016749A JP 2014016749 A JP2014016749 A JP 2014016749A JP 2012153066 A JP2012153066 A JP 2012153066A JP 2012153066 A JP2012153066 A JP 2012153066A JP 2014016749 A JP2014016749 A JP 2014016749A
Authority
JP
Japan
Prior art keywords
address
port
storage unit
information
registered
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.)
Pending
Application number
JP2012153066A
Other languages
English (en)
Inventor
Shinya Notomi
真也 納富
Shunsuke Arita
俊介 有田
Shigeru Toyazaki
茂 戸矢崎
Yuya Sato
雄哉 佐藤
Muneyoshi Akai
宗喜 赤井
Hidetoshi Suzuki
英利 鈴木
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.)
Ricoh Co Ltd
Original Assignee
Ricoh Co 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 Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2012153066A priority Critical patent/JP2014016749A/ja
Publication of JP2014016749A publication Critical patent/JP2014016749A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】転送元ホスト側のアドレス空間を、転送先ホスト内のメモリの使用可能領域のアドレスに対応付けるスイッチ装置およびシステムを提供する。
【解決手段】スイッチ装置は、第1ポートと第2ポートとアドレス変換情報記憶部と設定部とを備え、第1ポートは、第1装置側のアドレス空間のうちデータ転送処理に用いられる第1空間を指定する第1アドレス情報が登録される第1記憶部と、第1装置が有する第2記憶部の使用可能な領域を指定する第2アドレス情報が登録される第3記憶部とを備える。第2ポートは、第2装置側のアドレス空間のうちデータ転送処理に用いられる第2空間を指定する第3アドレス情報が登録される第4記憶部と、第2装置が有する第5記憶部の使用可能な領域を指定する第4アドレス情報が登録される第6記憶部とを備える。設定部は、アドレス変換情報記憶部に登録された第3アドレス情報に対応付けてアドレス変換情報を設定する。
【選択図】図3

Description

本発明は、スイッチ装置およびシステムに関する。
従来、例えばPCI−Expressを使用して、ホスト間のデータ転送を行う技術が知られている。
例えば特許文献1には、ホスト間でデータ転送を行う目的で、ホスト間をPCI−Expressで接続した画像処理装置が開示されている。より具体的には、2つのホスト間をNon−Transparent Portを持つPCI−Expressスイッチを介して接続し、スイッチ内で転送元ホストのPCI空間が転送先ホストのメモリ空間にマッピングされることで、互いのメモリ領域を相互に参照できる構成が開示されている。
しかしながら、特許文献1に開示された技術では、一方のホストのメモリの使用可能領域を示すアドレスを、他方のPCI空間に対する変換アドレスとして設定するためには、各ホストは、初期設定時に相手側ホストのメモリの使用可能領域を予め知っておく必要がある。
このため、各ホストは、事前にインタフェース仕様でお互いのメモリ空間の使用可能領域を規定しておく、又は、別のインタフェースを経由して使用可能領域を相手側ホストへ通知する必要がある。
本発明は、上記に鑑みてなされたものであって、スイッチ装置を介したデータ転送を行う転送元ホストが、転送先ホストのメモリの使用可能領域のアドレスを知らなくても、転送元ホスト側のアドレス空間を、転送先ホスト内のメモリの使用可能領域のアドレスに対応付けることが可能なスイッチ装置およびシステムを提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、第1装置が接続される第1ポートと、第2装置が接続される第2ポートと、前記第1装置側のアドレス空間と前記第2装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、前記アドレス変換情報を設定する設定部と、を備え、前記第1ポートは、前記第1ポートの初期設定時に、前記第1装置側のアドレス空間のうちデータ転送処理に用いられる第1空間を指定する第1アドレス情報が登録される第1記憶部と、前記第1ポートの初期設定時に、前記第1装置が有する第2記憶部の使用可能な領域を指定する第2アドレス情報が登録される第3記憶部と、を備え、前記第2ポートは、前記第2ポートの初期設定時に、前記第2装置側のアドレス空間のうちデータ転送処理に用いられる第2空間を指定する第3アドレス情報が登録される第4記憶部と、前記第2ポートの初期設定時に、前記第2装置が有する第5記憶部の使用可能な領域を指定する第4アドレス情報が登録される第6記憶部と、を備え、前記設定部は、前記第2ポートの初期設定時に、前記第4記憶部に登録された前記第3アドレス情報を前記アドレス変換情報記憶部に登録し、前記第1ポートの初期設定時に、前記第3記憶部に登録された前記第2アドレス情報を、前記アドレス変換情報記憶部に登録された前記第3アドレス情報に対応付けて前記アドレス変換情報を設定するスイッチ装置である。
また、本発明は、第1装置と、第2装置と、前記第1装置と前記第2装置を接続するスイッチ装置とを備えるシステムであって、前記スイッチ装置は、前記第1装置が接続される第1ポートと、前記第2装置が接続される第2ポートと、前記第1装置側のアドレス空間と前記第2装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、前記アドレス変換情報を設定する設定部と、を備え、前記第1ポートは、前記第1ポートの初期設定時に、前記第1装置側のアドレス空間のうちデータ転送処理に用いられる第1空間を指定する第1アドレス情報が登録される第1記憶部と、前記第1ポートの初期設定時に、前記第1装置が有する第2記憶部の使用可能な領域を指定する第2アドレス情報が登録される第3記憶部と、を備え、前記第2ポートは、前記第2ポートの初期設定時に、前記第2装置側のアドレス空間のうちデータ転送処理に用いられる第2空間を指定する第3アドレス情報が登録される第4記憶部と、前記第2ポートの初期設定時に、前記第2装置が有する第5記憶部の使用可能な領域を指定する第4アドレス情報が登録される第6記憶部と、を備え、前記第1装置は、前記第1ポートの初期設定時に、前記第1アドレス情報を前記第1記憶部に登録する制御を行う第1制御部と、前記第1ポートの初期設定時に、前記第2アドレス情報を前記第3記憶部に登録する制御を行う第2制御部と、を備え、前記第2装置は、前記第2ポートの初期設定時に、前記第3アドレス情報を前記第4記憶部に登録する制御を行う第3制御部と、前記第2ポートの初期設定時に、前記第4アドレス情報を前記第6記憶部に登録する制御を行う第4制御部と、を備え、前記設定部は、前記第2ポートの初期設定時に、前記第4記憶部に登録された前記第3アドレス情報を前記アドレス変換情報記憶部に登録し、前記第1ポートの初期設定時に、前記第3記憶部に登録された前記第2アドレス情報を、前記アドレス変換情報記憶部に登録された前記第3アドレス情報に対応付けて前記アドレス変換情報を設定するシステムである。
本発明によれば、スイッチ装置を介したデータ転送を行う転送元ホストが、転送先ホスト内のメモリの使用可能領域のアドレスを知らなくても、転送元ホスト側のアドレス空間を、転送先ホスト内のメモリの使用可能領域のアドレスに対応付けることができる。
図1は、実施形態のシステムの概略構成例を示すブロック図である。 図2は、PCI−Express経由で相手側ホストのメモリ空間へデータをライトする場合のアドレス変換を説明するための図である。 図3は、実施形態のシステムの詳細な構成例を示すブロック図である。 図4は、アドレス変換テーブルのデータ構造例を示す図である。 図5は、第1ポートおよび第2ポートの初期設定において、PCIメモリ空間のベースアドレスおよびサイズをアドレス変換テーブルに設定する処理の一例を示すフローチャートである。 図6は、第1ポートおよび第2ポートの初期設定において、アドレス変換テーブルにアドレス変換情報を設定する処理の一例を示すフローチャートである。 図7は、第1ホストシステムと第2ホストシステムとの間のデータ転送処理の例を示すフローチャートである。
以下、添付図面を参照しながら、本発明に係るスイッチ装置およびシステムの実施形態を詳細に説明する。図1は、本実施形態のシステム1の概略構成例を示すブロック図である。図1に示すように、システム1は、第1ホストシステム100と第2ホストシステム200とを備える。
図1の例では、第1ホストシステム100は、第1ホスト装置10とスイッチ装置20とを含み、第2ホストシステム200は、第2ホスト装置30を含む。第1ホスト装置10は、CPU11と、記憶装置12とを含む。CPU11と記憶装置12は、チップセット13を介して互いに接続される。チップセット13は、PCI−Expressのシステムを構成する要素であるルート・コンプレックス(Root Complex)である。
第2ホスト装置30も、第1ホスト装置10と同様の構成であり、CPU31と記憶装置32とを含む。CPU31と記憶装置32は、チップセット33を介して互いに接続される。チップセット33は、PCI−Expressのシステムを構成する要素であるルート・コンプレックス(Root Complex)である。
スイッチ装置20は、半導体集積回路で構成されるスイッチチップである。ここでは、スイッチ装置20は、PCI−Expressスイッチであるが、これに限られるものではない。スイッチ装置20は、第1ホスト装置10が接続される第1ポート40と、第2ホスト装置30が接続される第2ポート50とを備える。チップセット13は、第1ポート40と接続するための複数のPCI−Expressポートを有する。この例では、第1ポート40は、Upstreamポートとして構成される。また、チップセット33は、第2ポート50と接続するための複数のPCI−Expressポートを有する。この例では、第2ポート50は、ノントランスペアレントポート(Non−Transparent Port)として構成される。要するに、本実施形態では、第1ポート40とホスト装置10とを接続するバスの規格、および、第2ポート50と第2ホスト装置30とを接続するバスの規格は、PCI−Expressである。
この例では、第1ホスト装置10は請求項の「第1装置」に対応し、第2ホスト装置30は請求項の「第2装置」に対応している。
本実施形態では、第1ホストシステム100の起動時に、第1ポート40の初期設定を行うが、その際、記憶装置12内の使用可能領域を指定するアドレスを、第2ホスト装置30側のアドレス空間に対応付ける。また、第2ホストシステム200の起動時に、第2ポート50の初期設定を行うが、その際、記憶装置32内の使用可能領域を指定するアドレスを、第1ホスト装置10側のアドレス空間に対応付ける。詳細な内容については後述する。
図2は、PCI−Express経由で相手側ホストのメモリ空間へデータをライトする場合のアドレス変換を説明するための図である。ホスト間のメモリアクセス時のアドレス変換動作について、図1及び図2を用いて説明する。第1ホスト装置10から第2ホスト装置30へデータ転送を行う場合(見方を変えれば、第1ホストシステム100から第2ホストシステム200へデータ転送を行う場合)、まず、第1ホスト装置10のCPU11が自身のアドレス空間内のPCIメモリ空間へデータをライトアクセスすると、チップセット13からスイッチ装置20(PCI−Expressスイッチ)へPCIメモリ空間内のアドレスをライトアドレスとしたパケットが送信される。パケットを受信したスイッチ装置20は、パケット内のアドレスを、後述のアドレス変換テーブル内に設定された、当該パケット内のアドレス(PCIメモリ空間のアドレス)に対応する変換アドレス(記憶装置32内の領域を指定するアドレス)に書き換えてホスト装置30へ送信する。その後、パケットを受信したチップセット33は、パケット内のアドレスが示す記憶装置32の使用可能領域にデータを書き込み、データ転送が完了する。
第2ホスト装置30から第1ホスト装置10へデータ転送を行う場合(見方を変えれば、第2ホストシステム200から第1ホストシステム100へデータ転送を行う場合)、まず、第2ホスト装置30のCPU31が自身のアドレス空間内のPCIメモリ空間へデータをライトアクセスすると、チップセット33からスイッチ装置20へPCIメモリ空間内のアドレスをライトアドレスとしたパケットが送信される。パケットを受信したスイッチ装置20は、パケット内のアドレスを、後述のアドレス変換テーブルに設定された、当該パケット内のアドレス(PCIメモリ空間のアドレス)に対応する変換アドレス(記憶装置12内の領域を指定するアドレス)に書き換えて第1ホスト装置10へ送信する。その後、パケットを受信したチップセット13は、パケット内のアドレスが示す記憶装置12の領域にデータを書き込み、データ転送が完了する。
図3は、本実施形態のシステム1の詳細な構成例を示す図である。まず、スイッチ装置20の構成例を説明する。なお、図1の説明と重複する部分については、適宜に説明を省略する。図3に示すように、スイッチ装置20は、第1ポート40および第2ポート50の他、アドレス変換テーブル60と、設定部70と、アドレス変換部80とを備える。
第1ポート40は、受信バッファ41と、送信バッファ42と、ベースアドレス/サイズレジスタ43と、使用可能領域レジスタ44と、要求サイズレジスタ45とを有する。同様に、第2ポート50は、受信バッファ51と、送信バッファ52と、ベースアドレス/サイズレジスタ53と、使用可能領域レジスタ54と、要求サイズレジスタ55とを有する。以下、具体的に説明する。
受信バッファ41は、第1ホスト装置10から第2ホスト装置30へデータ転送を行う場合に、チップセット13から送信されるパケットを一時的に保持するバッファメモリとして機能する。送信バッファ42は、第2ホスト装置30から第1ホスト装置10へデータ転送を行う場合に、第2ポート50側から送信されるパケットを一時的に保持するバッファメモリとして機能する。
ベースアドレス/サイズレジスタ43は、請求項の「第1記憶部」に対応し、第1ポート40の初期設定時に、第1ホスト装置10側のアドレス空間のうちデータ転送処理(「アクセス処理」と捉えることもできる)に用いられるPCIメモリ空間(請求項の「第1空間」に対応)を指定する第1アドレス情報が登録される。より具体的には、第1ポート40の初期設定時に、ベースアドレス/サイズレジスタ43には、第1ホスト装置10のPCIメモリ空間のベースアドレスとサイズが、第1アドレス情報として登録される。
また、第1ポート40の初期設定時において、ベースアドレス/サイズレジスタ43に登録される第1アドレス情報に含まれる、PCIメモリ空間(第1空間)のサイズを示す第1サイズ情報は、第2ポート50側の要求サイズレジスタ55にも登録される。要求サイズレジスタ55は、請求項の「第8記憶部」に対応し、第1ポート40の初期設定時に、第1ホスト装置10のPCIメモリ空間のサイズを示す第1サイズ情報が登録される。
使用可能領域レジスタ44は、請求項の「第3記憶部」に対応し、第1ポート40の初期設定時に、第1ホスト装置10が有する記憶装置12(請求項の「第2記憶部」に対応)の使用可能な領域を指定する第2アドレス情報が登録される。より具体的には、第1ポート40の初期設定時に、使用可能領域レジスタ44には、第1ホスト装置10が有する記憶装置12内の使用可能な領域の先頭アドレスが、第2アドレス情報として登録される。
受信バッファ51は、第2ホスト装置30から第1ホスト装置10へデータ転送を行う場合に、チップセット33から送信されるパケットを一時的に保持するバッファメモリとして機能する。送信バッファ52は、第1ホスト装置10から第2ホスト装置30へデータ転送を行う場合に、第1ポート40側から送信されるパケットを一時的に保持するバッファメモリとして機能する。
ベースアドレス/サイズレジスタ53は、請求項の「第4記憶部」に対応し、第2ポート50の初期設定時に、第2ホスト装置30側のアドレス空間のうちデータ転送処理に用いられるPCIメモリ空間(請求項の「第2空間」に対応)を指定する第3アドレス情報が登録される。より具体的には、第2ポート50の初期設定時に、ベースアドレス/サイズレジスタ53には、第2ホスト装置30のPCIメモリ空間のベースアドレスとサイズが、第3アドレス情報として登録される。
また、第2ポート50の初期設定時に、ベースアドレス/サイズレジスタ53に登録される第3アドレス情報に含まれる、PCIメモリ空間(第2空間)のサイズを示す第2サイズ情報は、第1ポート40側の要求サイズレジスタ45にも登録される。要求サイズレジスタ45は、請求項の「第7記憶部」に対応し、第2ポート50の初期設定時に、第2ホスト装置30のPCIメモリ空間のサイズを示す第2サイズ情報が登録される。
使用可能領域レジスタ54は、請求項の「第6記憶部」に対応し、第2ポート50の初期設定時に、第2ホスト装置30が有する記憶装置32(請求項の「第5記憶部」に対応)の使用可能な領域を指定する第4アドレス情報が登録される。より具体的には、第2ポート50の初期設定時に、使用可能領域レジスタ54には、第2ホスト装置30が有する記憶装置32内の使用可能な領域の先頭アドレスが、第4アドレス情報として登録される。以上が本実施形態における第1ポート40および第2ポート50の構成である。
アドレス変換テーブル60は、請求項の「アドレス変換情報記憶部」に対応し、第1ホスト装置10側のアドレス空間と第2ホスト装置30側のアドレス空間との対応関係を示すアドレス変換情報を記憶する。本実施形態では、アドレス変換テーブル60は、第1ホスト装置10のPCIメモリ空間を指定する第1アドレス情報と、第2ホスト装置30が有する記憶装置32内の使用可能な領域を指定する第4アドレス情報との対応関係を示すアドレス変換情報(説明の便宜上、図3では第1アドレス変換情報と表記)をテーブル形式で記憶する。また、アドレス変換テーブル60は、第2ホスト装置30のPCIメモリ空間を指定する第3アドレス情報と、第1ホスト装置10が有する記憶装置12内の使用可能な領域を指定する第2アドレス情報との対応関係を示すアドレス変換情報(説明の便宜上、図3では第2アドレス変換情報と表記)をテーブル形式で記憶する。
図4は、アドレス変換テーブル60のデータ構造例を示す図である。図4に示すように、アドレス変換テーブル60は、データ転送方向と、PCIメモリ空間のベースアドレスと、PCIメモリ空間のサイズと、変換アドレスと、変換アドレスが有効か否かを示す変換アドレス設定フラグとを対応付けて記憶する。図4の例では、データ転送方向が「0」の場合は、第1ホスト装置10のPCIメモリ空間のベースアドレス及びサイズと、それに対する変換アドレスとして、第2ホスト装置30が有する記憶装置32内の使用可能な領域の先頭アドレスとが対応付けられて記憶される(つまり、上述の第1アドレス変換情報が記憶される)。一方、データ転送方向が「1」の場合は、第2ホスト装置30のPCIメモリ空間のベースアドレス及びサイズと、それに対する変換アドレスとして、第1ホスト装置10が有する記憶装置12内の使用可能な領域の先頭アドレスとが対応付けられて記憶される(つまり、上述の第2アドレス変換情報が記憶される)。また、変換アドレス設定フラグは、対応するPCIメモリ空間のベースアドレス及びサイズと、変換アドレスとが設定された場合に、「1(有効)」に設定される。
再び図3に戻って説明を続ける。設定部70は、アドレス変換情報を設定する。より具体的には、設定部70は、第2ポート50の初期設定時に、第2ポート50側のベースアドレス/サイズレジスタ53(請求項の「第4記憶部」に対応)に記憶された第3アドレス情報(第2ホスト装置30のPCIメモリ空間のベースアドレスとサイズ)をアドレス変換テーブル60に登録する。そして、設定部70は、第1ポート40の初期設定時に、第1ポート40側の使用可能領域レジスタ44(請求項の「第3記憶部」に対応)に登録された第2アドレス情報(第1ホスト装置10が有する記憶装置12内の使用可能な領域の先頭アドレス)を、アドレス変換テーブル60に登録された第3アドレス情報に対応付けてアドレス変換情報(上述の第2アドレス変換情報)を設定する。
また、設定部70は、第1ポート40の初期設定時に、第1ポート40側のベースアドレス/サイズレジスタ43(請求項の「第1記憶部」に対応)に記憶された第1アドレス情報(第1ホスト装置10のPCIメモリ空間のベースアドレスとサイズ)をアドレス変換テーブル60に登録する。そして、設定部70は、第2ポート50の初期設定時に、第2ポート側の使用可能領域レジスタ54(請求項の「第6記憶部」に対応)に登録された第4アドレス情報(第2ホスト装置30が有する記憶装置32内の使用可能な領域の先頭アドレス)を、アドレス変換テーブル60に登録された第1アドレス情報に対応付けてアドレス変換情報(上述の第1アドレス変換情報)を設定する。
アドレス変換部80は、第1ホストシステム100と第2ホストシステム200との間のデータ転送において、アドレス変換テーブル60を使用して、アドレス変換を行う。詳細な内容については後述する。
次に、第1ホスト装置10の構成例を説明する。なお、図1の説明と重複する部分については、適宜に説明を省略する。図3に示すように、第1ホスト装置10内のCPU11は、第1制御部14と第2制御部15とを有する。第1制御部14は、第1ポート40の初期設定時に、第1ホスト装置10のPCIメモリ空間のベースアドレスとサイズを示す第1アドレス情報を、第1ポート40側のベースアドレス/サイズレジスタ43に登録する制御を行う。
第2制御部15は、第1ポート40の初期設定時に、第1ホスト装置10が有する記憶装置12内の使用可能な領域の先頭アドレスを示す第2アドレス情報を、第1ポート40側の使用可能領域レジスタ44に登録する制御を行う。より具体的には、第2制御部15は、第1ポート40の初期設定時に、第1ポート40側の要求サイズレジスタ45(請求項の「第7記憶部」に対応)をリードする制御を行い、第2ホスト装置30のPCIメモリ空間のサイズを示す第2サイズ情報が要求サイズレジスタ45に登録されている場合は、登録された第2サイズ情報が示すサイズ分の領域を記憶装置12内に確保する制御を行う。そして、第2制御部15は、確保した領域の先頭アドレスを、第2アドレス情報として使用可能領域レジスタ44に登録する制御を行う。以上の第1制御部14および第2制御部15の各々の機能は、CPU11がROM等に格納されたプログラムを実行することにより実現される。
次に、第2ホスト装置30の構成例を説明する。なお、図1の説明と重複する部分については、適宜に説明を省略する。図3に示すように、第2ホスト装置30内のCPU31は、第3制御部34と、第4制御部35とを有する。第3制御部14は、第2ポート50の初期設定時に、第2ホスト装置30のPCIメモリ空間のベースアドレスとサイズを示す第3アドレス情報を、第2ポート50側のベースアドレス/サイズレジスタ53に登録する制御を行う。
第4制御部35は、第2ポート50の初期設定時に、第2ホスト装置30が有する記憶装置32内の使用可能な領域の先頭アドレスを示す第4アドレス情報を、第2ポート50側の使用可能領域レジスタ54に登録する制御を行う。より具体的には、第4制御部35は、第2ポート50の初期設定時に、第2ポート50側の要求サイズレジスタ55(請求項の「第8記憶部」に対応)をリードする制御を行い、第1ホスト装置10のPCIメモリ空間のサイズを示す第1サイズ情報が要求サイズレジスタ55に登録されている場合は、登録された第1サイズ情報が示すサイズ分の領域を記憶装置32内に確保する制御を行う。そして、第4制御部35は、確保した領域の先頭アドレスを、第4アドレス情報として使用可能領域レジスタ54に登録する制御を行う。以上の第3制御部34および第4制御部35の各々の機能は、CPU31がROM等に格納されたプログラムを実行することにより実現される。
次に、第1ホストシステム100及び第2ホストシステム200の立ち上げ時(起動時)、第1ポート40および第2ポート50の初期設定において、PCIメモリ空間のベースアドレスおよびサイズをアドレス変換テーブル60に設定する処理の一例を、図5のフローチャートに従って説明する。
最初に、第1ホスト装置10のPCIメモリ空間のベースアドレスおよびサイズをアドレス変換テーブル60に設定する処理について説明する。第1ホストシステム100の立ち上げ時、第1ポート40の初期設定を開始すると、第1制御部14は、第1ホスト装置10のPCIメモリ空間のベースアドレス及びサイズを、第1アドレス情報としてベースアドレス/サイズレジスタ43に登録する制御を行う(S501)。設定部70は、ベースアドレス/サイズレジスタ43に登録されたベースアドレス及びサイズを、アドレス変換テーブル60に設定する。また、ベースアドレス/サイズレジスタ43に登録されたサイズは、第2ポート50側の要求サイズレジスタ55にも登録される(S502)。ここで、全てのベースアドレス空間に対する設定が完了していれば(S503の結果:YESの場合)、処理は終了する。一方、未設定のベースアドレス空間が存在する場合(S503の結果:NOの場合)は、設定を終了するか否かを選択し(ステップS504)、設定を終了せずに次のベースアドレス空間に対する設定を行う場合(ステップS504の結果:NOの場合)は、上記の処理を繰り返す。一方、設定を終了する場合(ステップS504の結果:YESの場合)は、そのまま処理を終了する。
次に、第2ホスト装置30のPCIメモリ空間のベースアドレスおよびサイズをアドレス変換テーブル60に設定する処理について説明する。第2ホストシステム200の立ち上げ時、第2ポート50の初期設定を開始すると、第3制御部34は、第2ホスト装置30のPCIメモリ空間のベースアドレス及びサイズを、第3アドレス情報としてベースアドレス/サイズレジスタ53に登録する制御を行う(S501)。設定部70は、ベースアドレス/サイズレジスタ53に登録されたベースアドレス及びサイズを、アドレス変換テーブル60に設定する。また、ベースアドレス/サイズレジスタ53に登録されたサイズは、第1ポート側40の要求サイズレジスタ45にも登録される(S502)。ここで、全てのベースアドレス空間に対する設定が完了していれば(S503の結果:YESの場合)、処理は終了する。一方、未設定のベースアドレス空間が存在する場合(S503の結果:NOの場合)は、設定を終了するか否かを選択し(ステップS504)、設定を終了せずに次のベースアドレス空間に対する設定を行う場合(ステップS504の結果:NOの場合)は、上記の処理を繰り返す。一方、設定を終了する場合(ステップS504の結果:YESの場合)は、そのまま処理を終了する。
次に、第1ホストシステム100及び第2ホストシステム200の立ち上げ時(起動時)、第1ポート40および第2ポート50の初期設定において、スイッチ装置20内のアドレス変換テーブル60にアドレス変換情報を設定する処理の一例を、図6のフローチャートに従って説明する。
最初に、第1ポート40の初期設定において、上述の第2アドレス変換情報を設定する処理について説明する。第1ホストシステム100の立ち上げ時、第1ポート40の初期設定を開始すると、第2制御部15は、第1ポート40側の要求サイズレジスタ45をリードして、要求サイズレジスタ45に値が入っているかを確認する制御を行う(S601)。リードした値が「0」以外の場合(ステップS601の結果:YESの場合)、アドレス変換テーブル60に第3アドレス情報(第2ホスト装置30のPCIメモリ空間のベースアドレス及びサイズ)が設定されていると判断し、記憶装置12内に要求サイズ分の使用可能領域を確保する制御を行い(S602)、確保した領域の先頭アドレスを、第1ポート40側の使用可能領域レジスタ44に登録する制御を行う(S603)。一方、要求サイズレジスタに「0」が設定されている場合(ステップS601の結果:NOの場合)、アドレス変換テーブル60に第3アドレス情報が設定されていないと判断し、そのまま処理を終了する。
設定部70は、使用可能領域レジスタ44に登録されたアドレスを、アドレス変換テーブル60の対応するPCI空間ベースアドレス(第2ホスト装置30のPCIメモリ空間のベースアドレス)に対する変換アドレスとして設定し、変換アドレス設定フラグに「1」を設定する(S604)。ここで、全てのベースアドレスに対して変換アドレスの設定が完了していれば(ステップS605の結果:YESの場合)、処理は終了する。一方、変換アドレスが設定されていないベースアドレスが存在する場合(ステップS605の結果:NOの場合)は、設定を終了するか否かを選択し(S606)、設定を終了せずに次のベースアドレスに対する変換アドレスの設定を行う場合(ステップS606の結果:NOの場合)は、上記の処理を繰り返す。一方、設定を終了する場合(ステップS606の結果:YESの場合)は、そのまま処理を終了する。
次に、第2ポート50の初期設定において、上述の第1アドレス変換情報を設定する処理について説明する。第2ホストシステム200の立ち上げ時、第2ポート50の初期設定を開始すると、第4制御部35は、第2ポート50側の要求サイズレジスタ55をリードして、要求サイズレジスタ55に値が入っているかを確認する制御を行う(S601)。リードした値が「0」以外の場合(ステップS601の結果:YESの場合)、アドレス変換テーブル60に第1アドレス情報(第1ホスト装置10のPCIメモリ空間のベースアドレス及びサイズ)が設定されていると判断し、記憶装置32内に要求サイズ分の使用可能領域を確保する制御を行い(S602)、確保した領域の先頭アドレスを、第2ポート50側の使用可能領域レジスタ54に登録する制御を行う(S603)。一方、要求サイズレジスタに「0」が設定されている場合(ステップS601の結果:NOの場合)、アドレス変換テーブル60に第1アドレス情報が設定されていないと判断し、そのまま処理を終了する。
設定部70は、使用可能領域レジスタ54に登録されたアドレスを、アドレス変換テーブル60の対応するPCI空間ベースアドレス(第1ホスト装置10のPCIメモリ空間のベースアドレス)に対する変換アドレスとして設定し、変換アドレス設定フラグに「1」を設定する(S604)。ここで、全てのベースアドレスに対して変換アドレスの設定が完了していれば(ステップS605の結果:YESの場合)、処理は終了する。一方、変換アドレスが設定されていないベースアドレスが存在する場合(ステップS605の結果:NOの場合)は、設定を終了するか否かを選択し(S606)、設定を終了せずに次のベースアドレスに対する変換アドレスの設定を行う場合(ステップS606の結果:NOの場合)は、上記の処理を繰り返す。一方、設定を終了する場合(ステップS606の結果:YESの場合)は、そのまま処理を終了する。
次に、第1ホストシステム100と第2ホストシステム200との間のデータ転送処理の例を、図7のフローチャートに従って説明する。最初に、第1ホストシステム100から第2ホストシステム200の記憶装置32へデータを書き込む処理について説明する。この例では、第1ホストシステム100が転送元ホストとなり、第2ホストシステム200が転送先ホストとなる。CPU11が、第1ホスト装置10のPCIメモリ空間にライトアクセスすると、チップセット(Root Complex)13から、PCI−Expressスイッチであるスイッチ装置20へパケットが送信される。そのパケットを第1ポート40で受信した場合(ステップS700の結果:YESの場合)、アドレス変換部80は、パケットに設定されたライトアドレスを取り出してアドレス変換テーブル60を検索し(ステップS701)、アドレス変換テーブル60に設定されたPCIメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間(ベースアドレスとサイズ)が存在する場合は(ステップS702の結果:YESの場合)、変換アドレス設定フラグを確認する(ステップS703)。変換アドレス設定フラグが「1」に設定されていれば(ステップS703の結果:YESの場合)、アドレス変換部80は、パケット内のライトアドレスを変換アドレスに書き換え(ステップS704)、第2ホストシステム200のチップセット(Root Complex)33へパケットを送信する(ステップS705)。
一方、ステップS702において、ライトアドレスが含まれる空間が存在しない場合(ステップS702の結果:NOの場合)、または、アドレス変換テーブル60に設定されたPCIメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間が存在しても変換アドレス設定フラグが「0(無効)」の場合(ステップS703の結果:NOの場合)、該当アドレスはないと判断し、転送元のチップセット(Root Complex)13に対し、エラーパケットを送信する(ステップS706)。
次に、第2ホストシステム200から第1ホストシステム100の記憶装置12へデータを書き込む処理について説明する。この例では、第2ホストシステム200が転送元ホストとなり、第1ホストシステム100が転送先ホストとなる。CPU31が、第2ホスト装置30のPCIメモリ空間内にライトアクセスすると、チップセット(Root Complex)33から、PCI−Expressスイッチであるスイッチ装置20へパケットが送信される。そのパケットを第2ポート50で受信した場合(ステップS700の結果:YESの場合)、アドレス変換部80は、パケットに設定されたライトアドレスを取り出してアドレス変換テーブル60を検索し(ステップS701)、アドレス変換テーブル60に設定されたPCIメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間が存在する場合は(ステップS702の結果:YESの場合)、変換アドレス設定フラグを確認する(ステップS703)。変換アドレス設定フラグが「1」に設定されていれば(ステップS703の結果:YESの場合)、アドレス変換部80は、パケット内のライトアドレスを変換アドレスに書き換え(ステップS704)、第1ホストシステム100のチップセット(Root Complex)13へパケットを送信する(ステップS705)。
一方、ステップS702において、ライトアドレスが含まれる空間が存在しない場合(ステップS702の結果:NOの場合)、または、アドレス変換テーブル60に設定されたPCIメモリ空間のベースアドレスおよびサイズのうちライトアドレスが含まれる空間が存在しても変換アドレス設定フラグが「0(無効)」の場合(ステップS703の結果:NOの場合)、該当アドレスはないと判断し、転送元のチップセット(Root Complex)33に対し、エラーパケットを送信する(ステップS706)。
以上に説明したように、設定部70は、第2ポート50の初期設定時に、第2ポート50側のベースアドレス/サイズレジスタ53(請求項の「第4記憶部」に対応)に記憶された第3アドレス情報(第2ホスト装置30のPCIメモリ空間のベースアドレスとサイズ)をアドレス変換テーブル60に登録する。そして、設定部70は、第1ポート40の初期設定時に、第1ポート40側の使用可能領域レジスタ44(請求項の「第3記憶部」に対応)に登録された第2アドレス情報(第1ホスト装置10が有する記憶装置12内の使用可能な領域の先頭アドレス)を、アドレス変換テーブル60に登録された第3アドレス情報に対応付けてアドレス変換情報(第2アドレス変換情報)を設定するので、第2ホスト装置30が、第1ホスト装置10内の記憶装置12の使用可能な領域を予め知っておく必要は無い。
また、設定部70は、第1ポート40の初期設定時に、第1ポート40側のベースアドレス/サイズレジスタ43(請求項の「第1記憶部」に対応)に記憶された第1アドレス情報(第1ホスト装置10のPCIメモリ空間のベースアドレスとサイズ)をアドレス変換テーブル60に登録する。そして、設定部70は、第2ポート50の初期設定時に、第2ポート側の使用可能領域レジスタ54(請求項の「第6記憶部」に対応)に登録された第4アドレス情報(第2ホスト装置30が有する記憶装置32内の使用可能な領域の先頭アドレス)を、アドレス変換テーブル60に登録された第1アドレス情報に対応付けてアドレス変換情報(第1アドレス変換情報)を設定するので、第1ホスト装置10が、第2ホスト装置30内の記憶装置32の使用可能な領域を予め知っておく必要は無い。すなわち、本実施形態によれば、スイッチ装置20を介したデータ転送を行う転送元ホストが、転送先ホスト内のメモリの使用可能領域のアドレスを知らなくても、転送元ホストのPCIメモリ空間を、転送先ホストのメモリの使用可能領域のアドレスに対応付けることができる。
以上、本発明の実施形態について説明したが、本発明は上述の実施形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の変形が可能である。
1 システム
10 第1ホスト装置
12 記憶装置
13 チップセット
14 第1制御部
15 第2制御部
20 スイッチ装置
30 第2ホスト装置
32 記憶装置
33 チップセット
34 第3制御部
35 第4制御部
40 第1ポート
41 受信バッファ
42 送信バッファ
43 ベースアドレス/サイズレジスタ
44 使用可能領域レジスタ
45 要求サイズレジスタ
50 第2ポート
51 受信バッファ
52 送信バッファ
53 ベースアドレス/サイズレジスタ
54 使用可能領域レジスタ
55 要求サイズレジスタ
60 アドレス変換テーブル
70 設定部
80 アドレス変換部
100 ホストシステム
200 ホストシステム
特開2008−067242号公報

Claims (10)

  1. 第1装置が接続される第1ポートと、
    第2装置が接続される第2ポートと、
    前記第1装置側のアドレス空間と前記第2装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、
    前記アドレス変換情報を設定する設定部と、を備え、
    前記第1ポートは、
    前記第1ポートの初期設定時に、前記第1装置側のアドレス空間のうちデータ転送処理に用いられる第1空間を指定する第1アドレス情報が登録される第1記憶部と、
    前記第1ポートの初期設定時に、前記第1装置が有する第2記憶部の使用可能な領域を指定する第2アドレス情報が登録される第3記憶部と、を備え、
    前記第2ポートは、
    前記第2ポートの初期設定時に、前記第2装置側のアドレス空間のうちデータ転送処理に用いられる第2空間を指定する第3アドレス情報が登録される第4記憶部と、
    前記第2ポートの初期設定時に、前記第2装置が有する第5記憶部の使用可能な領域を指定する第4アドレス情報が登録される第6記憶部と、を備え、
    前記設定部は、
    前記第2ポートの初期設定時に、前記第4記憶部に登録された前記第3アドレス情報を前記アドレス変換情報記憶部に登録し、
    前記第1ポートの初期設定時に、前記第3記憶部に登録された前記第2アドレス情報を、前記アドレス変換情報記憶部に登録された前記第3アドレス情報に対応付けて前記アドレス変換情報を設定する、
    スイッチ装置。
  2. 前記設定部は、
    前記第1ポートの初期設定時に、前記第1記憶部に登録された前記第1アドレス情報を前記アドレス変換情報記憶部に登録し、
    前記第2ポートの初期設定時に、前記第6記憶部に登録された前記第4アドレス情報を、前記アドレス変換情報記憶部に登録された前記第1アドレス情報に対応付けて前記アドレス変換情報を設定する、
    請求項1のスイッチ装置。
  3. 前記第1ポートは、前記第2ポートの初期設定時に、前記第3アドレス情報に含まれる、前記第2空間のサイズを示す第2サイズ情報が登録される第7記憶部をさらに備え、
    前記第2アドレス情報は、前記第2記憶部の使用可能な領域のうち、前記第7記憶部に登録された前記第2サイズ情報が示すサイズ分の領域を特定可能な情報である、
    請求項1のスイッチ装置。
  4. 前記第2ポートは、前記第1ポートの初期設定時に、前記第1アドレス情報に含まれる、前記第1空間のサイズを示す第1サイズ情報が登録される第8記憶部をさらに備え、
    前記第3アドレス情報は、前記第5記憶部の使用可能な領域のうち、前記第8記憶部に登録された前記第1サイズ情報が示すサイズ分の領域を特定可能な情報である、
    請求項1のスイッチ装置。
  5. 前記第1ポートと前記第1装置とを接続するバスの規格、および、前記第2ポートと前記第2装置とを接続するバスの規格は、PCI−Expressであり、
    前記第2ポートは、ノントランスペアレントポートである、
    請求項1のスイッチ装置。
  6. 前記第1空間および前記第2空間は、PCIメモリ空間である、
    請求項1のスイッチ装置。
  7. 第1装置と、第2装置と、前記第1装置と前記第2装置を接続するスイッチ装置とを備えるシステムであって、
    前記スイッチ装置は、
    前記第1装置が接続される第1ポートと、
    前記第2装置が接続される第2ポートと、
    前記第1装置側のアドレス空間と前記第2装置側のアドレス空間との対応関係を示すアドレス変換情報を記憶するアドレス変換情報記憶部と、
    前記アドレス変換情報を設定する設定部と、を備え、
    前記第1ポートは、
    前記第1ポートの初期設定時に、前記第1装置側のアドレス空間のうちデータ転送処理に用いられる第1空間を指定する第1アドレス情報が登録される第1記憶部と、
    前記第1ポートの初期設定時に、前記第1装置が有する第2記憶部の使用可能な領域を指定する第2アドレス情報が登録される第3記憶部と、を備え、
    前記第2ポートは、
    前記第2ポートの初期設定時に、前記第2装置側のアドレス空間のうちデータ転送処理に用いられる第2空間を指定する第3アドレス情報が登録される第4記憶部と、
    前記第2ポートの初期設定時に、前記第2装置が有する第5記憶部の使用可能な領域を指定する第4アドレス情報が登録される第6記憶部と、を備え、
    前記第1装置は、
    前記第1ポートの初期設定時に、前記第1アドレス情報を前記第1記憶部に登録する制御を行う第1制御部と、
    前記第1ポートの初期設定時に、前記第2アドレス情報を前記第3記憶部に登録する制御を行う第2制御部と、を備え、
    前記第2装置は、
    前記第2ポートの初期設定時に、前記第3アドレス情報を前記第4記憶部に登録する制御を行う第3制御部と、
    前記第2ポートの初期設定時に、前記第4アドレス情報を前記第6記憶部に登録する制御を行う第4制御部と、を備え、
    前記設定部は、
    前記第2ポートの初期設定時に、前記第4記憶部に登録された前記第3アドレス情報を前記アドレス変換情報記憶部に登録し、
    前記第1ポートの初期設定時に、前記第3記憶部に登録された前記第2アドレス情報を、前記アドレス変換情報記憶部に登録された前記第3アドレス情報に対応付けて前記アドレス変換情報を設定する、
    システム。
  8. 前記設定部は、
    前記第1ポートの初期設定時に、前記第1記憶部に登録された前記第1アドレス情報を前記アドレス変換情報記憶部に登録し、
    前記第2ポートの初期設定時に、前記第6記憶部に登録された前記第4アドレス情報を、前記アドレス変換情報記憶部に登録された前記第1アドレス情報に対応付けて前記アドレス変換情報を設定する、
    請求項7のシステム。
  9. 前記第1ポートは、前記第2ポートの初期設定時に、前記第3アドレス情報に含まれる、前記第2空間のサイズを示す第2サイズ情報が登録される第7記憶部をさらに備え、
    前記第1ポートの初期設定時に、前記第2サイズ情報が前記第7記憶部に登録されている場合、前記第2制御部は、前記第7記憶部に登録された前記第2サイズ情報が示すサイズ分の領域を前記第2記憶部内に確保し、確保した領域を特定可能な情報を前記第2アドレス情報として前記第3記憶部に登録する制御を行う、
    請求項7のシステム。
  10. 前記第2ポートは、前記第1ポートの初期設定時に、前記第1アドレス情報に含まれる、前記第1空間のサイズを示す第1サイズ情報が登録される第8記憶部をさらに備え、
    前記第2ポートの初期設定時に、前記第1サイズ情報が前記第8記憶部に登録されている場合、前記第4制御部は、前記第8記憶部に登録された前記第1サイズ情報が示すサイズ分の領域を前記第5記憶部内に確保し、確保した領域を特定可能な情報を前記第4アドレス情報として前記第6記憶部に登録する制御を行う、
    請求項8のシステム。
JP2012153066A 2012-07-06 2012-07-06 スイッチ装置およびシステム Pending JP2014016749A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012153066A JP2014016749A (ja) 2012-07-06 2012-07-06 スイッチ装置およびシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012153066A JP2014016749A (ja) 2012-07-06 2012-07-06 スイッチ装置およびシステム

Publications (1)

Publication Number Publication Date
JP2014016749A true JP2014016749A (ja) 2014-01-30

Family

ID=50111393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012153066A Pending JP2014016749A (ja) 2012-07-06 2012-07-06 スイッチ装置およびシステム

Country Status (1)

Country Link
JP (1) JP2014016749A (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018106547A (ja) * 2016-12-27 2018-07-05 キヤノン株式会社 情報処理装置、及び情報処理方法
CN110622144A (zh) * 2018-04-18 2019-12-27 富士通个人电脑株式会社 中继装置和信息处理系统
JP2021089715A (ja) * 2019-10-21 2021-06-10 ザ・ボーイング・カンパニーThe Boeing Company 複数のプロセッサ間の通信を同期させるためのシステム及び方法
JP2021149190A (ja) * 2020-03-16 2021-09-27 キヤノン株式会社 情報処理装置
JP2022514234A (ja) * 2018-12-14 2022-02-10 テキサス インスツルメンツ インコーポレイテッド 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018106547A (ja) * 2016-12-27 2018-07-05 キヤノン株式会社 情報処理装置、及び情報処理方法
CN110622144A (zh) * 2018-04-18 2019-12-27 富士通个人电脑株式会社 中继装置和信息处理系统
JP2020053089A (ja) * 2018-04-18 2020-04-02 富士通クライアントコンピューティング株式会社 中継装置および情報処理システム
CN110622144B (zh) * 2018-04-18 2023-05-05 富士通个人电脑株式会社 中继装置和信息处理系统
JP2022514234A (ja) * 2018-12-14 2022-02-10 テキサス インスツルメンツ インコーポレイテッド 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)
US11880333B2 (en) 2018-12-14 2024-01-23 Texas Instruments Incorporated Peripheral component interconnect (PCI) backplane connectivity system on chip (SoC)
JP7510935B2 (ja) 2018-12-14 2024-07-04 テキサス インスツルメンツ インコーポレイテッド 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)
JP2024123185A (ja) * 2018-12-14 2024-09-10 日本テキサス・インスツルメンツ合同会社 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)
JP7744469B2 (ja) 2018-12-14 2025-09-25 日本テキサス・インスツルメンツ合同会社 周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)
JP2021089715A (ja) * 2019-10-21 2021-06-10 ザ・ボーイング・カンパニーThe Boeing Company 複数のプロセッサ間の通信を同期させるためのシステム及び方法
JP7735047B2 (ja) 2019-10-21 2025-09-08 ザ・ボーイング・カンパニー 複数のプロセッサ間の通信を同期させるためのシステム及び方法
JP2021149190A (ja) * 2020-03-16 2021-09-27 キヤノン株式会社 情報処理装置

Similar Documents

Publication Publication Date Title
US9411775B2 (en) iWARP send with immediate data operations
US9558146B2 (en) IWARP RDMA read extensions
US10963421B1 (en) Flexible address mapping for a NoC in an integrated circuit
JP4998469B2 (ja) インターコネクション用スイッチおよびシステム
CN105335309B (zh) 一种数据传输方法及计算机
KR101720134B1 (ko) 버스 브리지 장치
CN112912863B (zh) 外围组件互连(PCI)背板连接性芯片上系统(SoC)
JP2014016749A (ja) スイッチ装置およびシステム
CN111338988A (zh) 内存访问方法、装置、计算机设备和存储介质
CN105095139A (zh) 集成电路总线系统及其数据操作和传输方法
CN101751352B (zh) 不同种类处理单元中对绑定和迁移硬件设备的芯片组支持
WO2016074619A1 (zh) 基于PCIe总线的数据传输方法和装置
WO2014086219A1 (zh) 一种基于外设部件互联总线的内容查找芯片及系统
CN101539899A (zh) Usb控制器以及缓冲存储器控制方法
WO2014202003A1 (zh) 数据存储系统的数据传输方法、装置及系统
JP4696199B2 (ja) 転送ディスクリプタ用メモリを備えるusbホストコントローラ
US9116836B2 (en) Tunneling transaction packets
KR20110120094A (ko) 통합 입출력 메모리 관리 유닛을 포함하는 시스템 온 칩
CN1209711C (zh) 用于计算机系统的双模式总线桥
US20150177985A1 (en) Information processing device
JP2010198171A (ja) Usbホストコントローラ、及びusbホストコントローラの制御方法
JP2017156924A (ja) 情報処理装置、データ転送装置、データ転送装置の制御方法、及びプログラム
CN110399322B (zh) 一种数据传输方法及乒乓dma架构
WO2007080718A1 (ja) ブリッジ、情報処理装置、情報処理システムおよびグローバルアドレス管理方法
CN105446914B (zh) Plc模块中产生到上位cpu的中断/事件的方法及装置