JP2018147254A - 通信機器 - Google Patents
通信機器 Download PDFInfo
- Publication number
- JP2018147254A JP2018147254A JP2017041940A JP2017041940A JP2018147254A JP 2018147254 A JP2018147254 A JP 2018147254A JP 2017041940 A JP2017041940 A JP 2017041940A JP 2017041940 A JP2017041940 A JP 2017041940A JP 2018147254 A JP2018147254 A JP 2018147254A
- Authority
- JP
- Japan
- Prior art keywords
- configuration
- space
- address
- pcie
- configuration space
- 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
Links
Images
Landscapes
- Bus Control (AREA)
- Information Transfer Systems (AREA)
Abstract
【課題】外部機器によるコンフィグレーション空間へのアクセスを可能にする。【解決手段】第1の機器100は、メモリ空間とコンフィグレーション空間とが区別されて管理されている。NTポート140は、第2の機器200と接続されている。PCIeスイッチ#1(104)は、メモリ空間内の一部のアドレスをコンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理し、第2の機器200からNTポート140を介して、コンフィグレーションポインタアドレスが指定されたメモリ空間へのメモリコマンドを受信した場合に、第2の機器200によるコンフィグレーション空間内のアドレスへのアクセスを中継する。【選択図】図1
Description
本発明は、通信機器に関する。
計算機システムや通信システムなど様々な装置において、CPU(Central Processing Unit)や通信インタフェースを搭載したLSI(Large−Scale Integration)デバイスなどを相互に接続する場合、従来はPCI(Peripheral Component Interconnect)等に代表されるパラレルバスが用いられてきた。しかしながら、通信の高速化に伴い、基板上の配線パターンに対する制約、例えば信号の遅延を均一化するための等長または等遅延配線などの許容範囲が厳しくなってきたため、最近では高速なシリアルバスが主流になってきている。その中でPCI Express(登録商標)(以下、PCIeという)は、パーソナルコンピュータを中心として標準的な規格として様々な分野の装置で利用されている。
PCIeでは、1つのルートコンプレックスを頂点としたデバイスツリー構造であることが前提であり、1組のデバイスツリーの中に複数のルートコンプレックスを存在させることを想定していない。そこで、従来からPCIeスイッチのノントランスペアレントポート(以下、NTポートともいう)を介して接続する方法が利用されている。NTポートではPCIeスイッチ内部の特定のアドレスと、当該NTポートへ接続された別のPCIeデバイスツリー側の特定のアドレスとの間でアドレス変換を行い、メモリ空間へのアクセスを可能としている。
更に、上記の特許文献1では、異なるデバイスツリー内にあるPCIeスイッチのNTポート同士を結合する構成が提案されている。このような構成とすることで、第1の機器のメモリ空間と第2の機器のメモリ空間を変換する際にNT空間を介することとなり、NT空間のアドレスはそれぞれの機器の影響を受けることなく自由なアドレス、例えば0番地を使用することができる。このため、それぞれの機器は自身のメモリ空間内の特定のアドレスと、NT空間の0番地とを変換接続する設定を行うだけで、容易に第1の機器と第2の機器間での設定を完了でき、設定の煩雑さを大幅に緩和することが可能となる。
更に、上記の特許文献1では、異なるデバイスツリー内にあるPCIeスイッチのNTポート同士を結合する構成が提案されている。このような構成とすることで、第1の機器のメモリ空間と第2の機器のメモリ空間を変換する際にNT空間を介することとなり、NT空間のアドレスはそれぞれの機器の影響を受けることなく自由なアドレス、例えば0番地を使用することができる。このため、それぞれの機器は自身のメモリ空間内の特定のアドレスと、NT空間の0番地とを変換接続する設定を行うだけで、容易に第1の機器と第2の機器間での設定を完了でき、設定の煩雑さを大幅に緩和することが可能となる。
しかしながら、特許文献1で示された方法であっても相互に通信できるのはメモリ空間内に限られる。NTポートはメモリ空間アクセス用のトランザクションについてはアドレス変換して透過させるが、各種設定やエラー等のステータス確認が可能なコンフィグレーション空間アクセス用のトランザクションについては常に非透過となる。
以上の通り、コンフィグレーション空間については、両機器間で共有することはできないため、どちらかの機器に異常が発生した場合に、他の機器から状況を確認したり、構成を変更したりすることができないという課題がある。
以上の通り、コンフィグレーション空間については、両機器間で共有することはできないため、どちらかの機器に異常が発生した場合に、他の機器から状況を確認したり、構成を変更したりすることができないという課題がある。
この発明は、このような課題を解決することを主な目的の一つとしている。具体的には、外部機器によるコンフィグレーション空間へのアクセスを可能にすることを主な目的とする。
本発明に係る通信機器は、
メモリ空間とコンフィグレーション空間とが区別されて管理されている通信機器であって、
外部機器と接続されているノントランスペアレントポートと、
前記メモリ空間内の一部のアドレスを前記コンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理し、前記外部機器から前記ノントランスペアレントポートを介して、前記コンフィグレーションポインタアドレスが指定された前記メモリ空間へのメモリコマンドを受信した場合に、前記外部機器による前記コンフィグレーション空間内のアドレスへのアクセスを中継する中継部とを有する。
メモリ空間とコンフィグレーション空間とが区別されて管理されている通信機器であって、
外部機器と接続されているノントランスペアレントポートと、
前記メモリ空間内の一部のアドレスを前記コンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理し、前記外部機器から前記ノントランスペアレントポートを介して、前記コンフィグレーションポインタアドレスが指定された前記メモリ空間へのメモリコマンドを受信した場合に、前記外部機器による前記コンフィグレーション空間内のアドレスへのアクセスを中継する中継部とを有する。
本発明によれば、外部機器は通信機器のコンフィグレーション空間にアクセスすることができる。
実施の形態1.
図1は、本実施の形態に係る通信システムの構成例を示す。
図1に示すように、本実施の形態に係る通信システムは、第1の機器100と第2の機器200で構成される。
図1では、第1の機器100は通信機器に相当し、第2の機器200は外部機器に相当する。
図1は、本実施の形態に係る通信システムの構成例を示す。
図1に示すように、本実施の形態に係る通信システムは、第1の機器100と第2の機器200で構成される。
図1では、第1の機器100は通信機器に相当し、第2の機器200は外部機器に相当する。
第1の機器100は、プロセッサ101、ブリッジ102、ルートコンプレックス103、PCIeスイッチ#1(104)、PCIeスイッチ#2(105)、PCIeデバイス#1(106)、PCIeデバイス#2(107)及びPCIeデバイス#3(108)で構成される。
ブリッジ102は、プロセッサ101をPCIeスイッチへ接続する。
ルートコンプレックス103は、PCIeバスの構成制御を処理する。
PCIeスイッチ#1(104)及びPCIeスイッチ#2(105)は、それぞれ、PCIeバスを拡張する。PCIeスイッチ#1(104)は、中継部に相当する。
PCIeデバイス#1(106)〜PCIeデバイス#3(108)は、それぞれ、PCIeのエンドポイントデバイスとなる。
PCIeデバイス#1(106)は、メモリ空間レジスタ1061とコンフィグレーション空間レジスタ1062を備える。
メモリ空間レジスタ1061は、メモリ空間を構成するレジスタである。コンフィグレーション空間レジスタ1062は、コンフィグレーション空間を構成するレジスタである。
図示を省略しているが、PCIeデバイス#2(107)及びPCIeデバイス#3(108)でも、メモリ空間レジスタ1061に相当するメモリ空間レジスタが含まれており、コンフィグレーション空間レジスタ1062に相当するコンフィグレーション空間レジスタが含まれている。
このように、第1の機器100では、メモリ空間とコンフィグレーション空間とが区別されている。
ブリッジ102は、プロセッサ101をPCIeスイッチへ接続する。
ルートコンプレックス103は、PCIeバスの構成制御を処理する。
PCIeスイッチ#1(104)及びPCIeスイッチ#2(105)は、それぞれ、PCIeバスを拡張する。PCIeスイッチ#1(104)は、中継部に相当する。
PCIeデバイス#1(106)〜PCIeデバイス#3(108)は、それぞれ、PCIeのエンドポイントデバイスとなる。
PCIeデバイス#1(106)は、メモリ空間レジスタ1061とコンフィグレーション空間レジスタ1062を備える。
メモリ空間レジスタ1061は、メモリ空間を構成するレジスタである。コンフィグレーション空間レジスタ1062は、コンフィグレーション空間を構成するレジスタである。
図示を省略しているが、PCIeデバイス#2(107)及びPCIeデバイス#3(108)でも、メモリ空間レジスタ1061に相当するメモリ空間レジスタが含まれており、コンフィグレーション空間レジスタ1062に相当するコンフィグレーション空間レジスタが含まれている。
このように、第1の機器100では、メモリ空間とコンフィグレーション空間とが区別されている。
また、第2の機器200は、プロセッサ201、ブリッジ202、ルートコンプレックス203、PCIeスイッチ#1(204)、PCIeスイッチ#2(205)、PCIeデバイス#1(206)、PCIeデバイス#2(207)及びPCIeデバイス#3(208)で構成される。
プロセッサ201はプロセッサ101と同様である。ブリッジ202はブリッジ102と同様である。ルートコンプレックス203はルートコンプレックス103と同様である。PCIeスイッチ#1(204)はPCIeスイッチ#1(104)と同様である。PCIeスイッチ#2(205)はPCIeスイッチ#2(105)と同様である。PCIeデバイス#1(206)はPCIeデバイス#1(106)と同様である。PCIeデバイス#2(207)はPCIeデバイス#2(107)と同様である。PCIeデバイス#3(208)はPCIeデバイス#3(108)と同様である。
なお、図示を省略しているが、PCIeデバイス#1(206)、PCIeデバイス#2(207)及びPCIeデバイス#3(208)にも、それぞれ、メモリ空間レジスタ1061に相当するメモリ空間レジスタが含まれており、コンフィグレーション空間レジスタ1062に相当するコンフィグレーション空間レジスタが含まれている。
プロセッサ201はプロセッサ101と同様である。ブリッジ202はブリッジ102と同様である。ルートコンプレックス203はルートコンプレックス103と同様である。PCIeスイッチ#1(204)はPCIeスイッチ#1(104)と同様である。PCIeスイッチ#2(205)はPCIeスイッチ#2(105)と同様である。PCIeデバイス#1(206)はPCIeデバイス#1(106)と同様である。PCIeデバイス#2(207)はPCIeデバイス#2(107)と同様である。PCIeデバイス#3(208)はPCIeデバイス#3(108)と同様である。
なお、図示を省略しているが、PCIeデバイス#1(206)、PCIeデバイス#2(207)及びPCIeデバイス#3(208)にも、それぞれ、メモリ空間レジスタ1061に相当するメモリ空間レジスタが含まれており、コンフィグレーション空間レジスタ1062に相当するコンフィグレーション空間レジスタが含まれている。
第1の機器100のPCIeスイッチ#1(104)と第2の機器200のPCIeスイッチ#1(204)は接続されている。PCIeスイッチ#1(104)の接続ポートは、NTポート140である。
通常、複数の独立したPCIe機器同士を接続する場合、NTポートを備えたPCIeスイッチを介して接続する方法が行われる。NTポートにおいて各PCIe機器のメモリ空間のどのアドレスとどのアドレスを対応付けるかの設定を行って、各機器間での通信を実現する。
例えば第1の機器100のPCIeメモリ空間の1000番地と第2の機器200の2000番地とを対応付けた場合、第2の機器200内での2000番地に対するリードまたはライトのアクセスが発生した場合、NTポート140内で第1の機器100内のアドレス1000番地へのアクセスとして変換されることで、第2の機器200側か第1の機器100内のPCIeデバイスへアクセスすることが可能となる。
例えば第1の機器100のPCIeメモリ空間の1000番地と第2の機器200の2000番地とを対応付けた場合、第2の機器200内での2000番地に対するリードまたはライトのアクセスが発生した場合、NTポート140内で第1の機器100内のアドレス1000番地へのアクセスとして変換されることで、第2の機器200側か第1の機器100内のPCIeデバイスへアクセスすることが可能となる。
図5は、従来手法によるPCIeのメモリ空間とコンフィグレーション空間の関係を示す図である。
PCIeデバイスの各種設定やエラーステータスなどを確認するためのコンフィグレーション空間はメモリ空間とは独立している。PCIeのNTポートは、メモリ空間へアクセスするためのメモリコマンドを通過させることができるが、コンフィグレーション空間へアクセスするためのコンフィグレーションコマンドは通過させることができないよう規格で定められている。このため、前記の方法では第2の機器200側から第1の機器100内のPCIeデバイスのコンフィグレーション空間を参照することはできない。
また、同様に第1の機器100側から第2の機器200内のPCIeデバイスのコンフィグレーション空間も参照することはできない。なお、コンフィグレーション空間はメモリ空間のように各デバイス間で共有されておらず、デバイスごとにも独立しているという特徴をもつ。
PCIeデバイスの各種設定やエラーステータスなどを確認するためのコンフィグレーション空間はメモリ空間とは独立している。PCIeのNTポートは、メモリ空間へアクセスするためのメモリコマンドを通過させることができるが、コンフィグレーション空間へアクセスするためのコンフィグレーションコマンドは通過させることができないよう規格で定められている。このため、前記の方法では第2の機器200側から第1の機器100内のPCIeデバイスのコンフィグレーション空間を参照することはできない。
また、同様に第1の機器100側から第2の機器200内のPCIeデバイスのコンフィグレーション空間も参照することはできない。なお、コンフィグレーション空間はメモリ空間のように各デバイス間で共有されておらず、デバイスごとにも独立しているという特徴をもつ。
なお、他方のルートコンプレックスに、コンフィグレーション空間へのアクセスを発行するための特殊なメッセージを送出し、ソフトウェア的に必要なリクエストを生成するという実装を行っている例もあるが、相手側のルートコンプレックスを制御するためにはプロセッサの介入が必須であり、プロセッサが応答できないような異常時にはこの方法は利用することができない。
図3は、本実施の形態に係るPCIeのメモリ空間とコンフィグレーション空間の関係を示す図である。
本実施の形態では、通常独立した空間として存在する各デバイスのコンフィグレーション空間のレジスタ群を、各デバイスのPCIeメモリ空間の特定のアドレスオフセット位置からも参照できる。
本実施の形態では、通常独立した空間として存在する各デバイスのコンフィグレーション空間のレジスタ群を、各デバイスのPCIeメモリ空間の特定のアドレスオフセット位置からも参照できる。
例えば図3では第1の機器100内のデバイス#2(107)のメモリ空間を第2の機器200側からも参照できるよう設定した例を示している。また、各デバイスのコンフィグレーション空間は各デバイスのメモリ空間の先頭位置に表示される構成としている。
つまり、本実施の形態では、PCIeスイッチ#1(104)は、メモリ空間内の一部のアドレス(図3の例では先頭位置のアドレス)をコンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理している。図3において、ハッチングを施している領域がコンフィグレーションポインタアドレスである。そして、PCIeスイッチ#1(104)は、第2の機器200からNTポート140を介して、コンフィグレーションポインタアドレスが指定されたメモリ空間へのメモリコマンドを受信した場合に、第2の機器200によるコンフィグレーション空間内のアドレスへのアクセスを中継する。
なお、図3では図示していないが、他のデバイスについても同様に第2の機器200がコンフィグレーション空間を参照できるように設定することも可能である。
また、コンフィグレーションポインタアドレスの位置はメモリ空間の先頭ではなくてもよく、任意の位置でよい。
つまり、本実施の形態では、PCIeスイッチ#1(104)は、メモリ空間内の一部のアドレス(図3の例では先頭位置のアドレス)をコンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理している。図3において、ハッチングを施している領域がコンフィグレーションポインタアドレスである。そして、PCIeスイッチ#1(104)は、第2の機器200からNTポート140を介して、コンフィグレーションポインタアドレスが指定されたメモリ空間へのメモリコマンドを受信した場合に、第2の機器200によるコンフィグレーション空間内のアドレスへのアクセスを中継する。
なお、図3では図示していないが、他のデバイスについても同様に第2の機器200がコンフィグレーション空間を参照できるように設定することも可能である。
また、コンフィグレーションポインタアドレスの位置はメモリ空間の先頭ではなくてもよく、任意の位置でよい。
なお、図3に示すように第2の機器200がメモリ空間を経由してコンフィグレーション空間にアクセスできる構成としたことは、図7に示すように、コンフィグレーション空間に置かれているレジスタをデュアルポート化して、各デバイスのメモリ空間の先頭領域にもマッピング(物理的に繋げる)することに相当する。
このように構成することで、第2の機器200側から第1の機器内のデバイス#2(107)のメモリ空間を参照すると、その先頭位置にデバイス#2のコンフィグレーション空間レジスタが常に表示される。このため、第1の機器100内のプロセッサ101に異常が発生したような場合であっても、第2の機器200側から第1の機器100側の各デバイスのコンフィグレーション空間を参照できるため、第2の機器200が第1の機器100の動作状態を把握することが可能となる。また、第2の機器200が、動作不要なデバイスについては停止するように設定したりといったことも可能となるメリットが生じる。
なお上記の機能はPCIeの規格で定められた内容から逸脱するものでは無い。つまり、上記の構成は、NTポートを通過できるのは設定されたアドレス変換範囲に合致したメモリコマンドのみで、その他のメモリコマンドおよび、コンフィグレーションコマンドは通過できないというPCIeの規格を逸脱するものでは無い。このため、上記の機能を有しない通常のPCIeデバイスと混在させても問題は生じないというメリットもある。
このように、本実施の形態によれば、各デバイスのコンフィグレーション空間内のアドレスを、各デバイスのメモリ空間からもアクセスできるようすることで、NTポート経由で接続された別のデバイスツリー側からも、メモリ空間アクセス用トランザクションによりアクセスすることができる。
実施の形態2.
図2は、実施の形態2に係る通信システムの構成例を示す。
本実施の形態では、第2の機器200内のPCIeスイッチ#1(204)の第1の機器と接続するために使用しているポートもNTポート240である。
この構成では第1の機器100と第2の機器200のPCIe空間が直接接続されず、間にNT空間を挟む形となるため、PCIeスイッチ#1(104)とPCIeスイッチ#1(204)の各ポートの設定を行う際に、双方のメモリ空間のアドレスを意識することなく設定が行えるとのメリットが生じる。
なお、図2では、作図上の理由から、PCIeデバイス#1(106)には、メモリ空間レジスタ1061とコンフィグレーション空間レジスタ1062を図示していないが、図1と同様に、PCIeデバイス#1(106)にはメモリ空間レジスタ1061とコンフィグレーション空間レジスタ1062が含まれる。また、実施の形態1で説明したように、PCIeデバイス#2(107)、PCIeデバイス#3(108)、PCIeデバイス#1(206)、PCIeデバイス#2(207)、PCIeデバイス#3(208)にも、メモリ空間レジスタ1061に相当するメモリ空間レジスタが含まれており、コンフィグレーション空間レジスタ1062に相当するコンフィグレーション空間レジスタが含まれている。
図2は、実施の形態2に係る通信システムの構成例を示す。
本実施の形態では、第2の機器200内のPCIeスイッチ#1(204)の第1の機器と接続するために使用しているポートもNTポート240である。
この構成では第1の機器100と第2の機器200のPCIe空間が直接接続されず、間にNT空間を挟む形となるため、PCIeスイッチ#1(104)とPCIeスイッチ#1(204)の各ポートの設定を行う際に、双方のメモリ空間のアドレスを意識することなく設定が行えるとのメリットが生じる。
なお、図2では、作図上の理由から、PCIeデバイス#1(106)には、メモリ空間レジスタ1061とコンフィグレーション空間レジスタ1062を図示していないが、図1と同様に、PCIeデバイス#1(106)にはメモリ空間レジスタ1061とコンフィグレーション空間レジスタ1062が含まれる。また、実施の形態1で説明したように、PCIeデバイス#2(107)、PCIeデバイス#3(108)、PCIeデバイス#1(206)、PCIeデバイス#2(207)、PCIeデバイス#3(208)にも、メモリ空間レジスタ1061に相当するメモリ空間レジスタが含まれており、コンフィグレーション空間レジスタ1062に相当するコンフィグレーション空間レジスタが含まれている。
図6は、図2に示した構成における、従来手法によるPCIeのメモリ空間とコンフィグレーション空間の関係を示す図である。
図5を用いて説明した場合と同様に、図6の場合も、第2の機器200側から第1の機器100内のPCIeデバイスのコンフィグレーション空間を参照することはできない。同様に第1の機器100側から第2の機器200内のPCIeデバイスのコンフィグレーション空間も参照することはできない。
図5を用いて説明した場合と同様に、図6の場合も、第2の機器200側から第1の機器100内のPCIeデバイスのコンフィグレーション空間を参照することはできない。同様に第1の機器100側から第2の機器200内のPCIeデバイスのコンフィグレーション空間も参照することはできない。
図4は、図2に示した構成におけるPCIeのメモリ空間とコンフィグレーション空間の関係を示す図である。
本実施の形態では、第1の機器100のメモリ空間及び第2の機器200のメモリ空間のいずれにも、コンフィグレーション空間へのパスとなるコンフィグレーションポインタアドレスが設定されている。図4において、ハッチングを施している領域がコンフィグレーションポインタアドレスである。
本実施の形態では、実施の形態1で説明したように第2の機器200が第1の機器100のメモリ空間を経由して第1の機器100のコンフィグレーション空間にアクセスできることに加えて、第1の機器100も第2の機器200のメモリ空間を経由して第2の機器200のコンフィグレーション空間にアクセスすることができる。
第1の機器100のPCIeスイッチ#1(104)は、第2の機器200のコンフィグレーション空間内のアドレスにアクセスする場合は、第2の機器200のメモリ空間内のコンフィグレーションポインタアドレスを指定するメモリコマンドを第2の機器200に送信する。
なお、第1の機器100のメモリ空間と第2の機器200のメモリ空間のアドレス変換を行う際に、どちらからも独立したNT空間を経由するところが実施の形態1の図3で示したアドレス変換方法と異なっている。他の事項は基本的に図3と同じである。
本実施の形態では、第1の機器100のメモリ空間及び第2の機器200のメモリ空間のいずれにも、コンフィグレーション空間へのパスとなるコンフィグレーションポインタアドレスが設定されている。図4において、ハッチングを施している領域がコンフィグレーションポインタアドレスである。
本実施の形態では、実施の形態1で説明したように第2の機器200が第1の機器100のメモリ空間を経由して第1の機器100のコンフィグレーション空間にアクセスできることに加えて、第1の機器100も第2の機器200のメモリ空間を経由して第2の機器200のコンフィグレーション空間にアクセスすることができる。
第1の機器100のPCIeスイッチ#1(104)は、第2の機器200のコンフィグレーション空間内のアドレスにアクセスする場合は、第2の機器200のメモリ空間内のコンフィグレーションポインタアドレスを指定するメモリコマンドを第2の機器200に送信する。
なお、第1の機器100のメモリ空間と第2の機器200のメモリ空間のアドレス変換を行う際に、どちらからも独立したNT空間を経由するところが実施の形態1の図3で示したアドレス変換方法と異なっている。他の事項は基本的に図3と同じである。
実施の形態3.
本実施の形態では、実施の形態1及び実施の形態2に示す構成において、第1の機器100内にコンフィグレーション空間レジスタへのアクセスを制限するためのアクセス制限設定部を設ける例を説明する。
このアクセス制限設定部は、コンフィグレーション空間内のアドレスにアクセス制限を設定する。アクセス制限設定部は、例えば、プロセッサ101である。
プロセッサ101は、例えば、各デバイス106〜108の設定を行う際に、アクセス制限設定部として、コンフィグレーション空間レジスタへのアクセス制限を設定する。プロセッサ101は、コンフィグレーション空間に、例えばリードとライトの両方が可能、リードのみが可能、いずれも不可能といった設定を行う。プロセッサ101が設定したアクセス制限は、例えば、アクセス制限用レジスタで記憶される。
PCIeスイッチ#1(104)は、第2の機器200からのコンフィグレーション空間へのアクセスを要求するメモリコマンドを受信した際に、アクセス制限用レジスタで記憶されているアクセス制限の内容を参照して、コンフィグレーション空間に、対応するアクセス制限を実施する。
本実施の形態では、実施の形態1及び実施の形態2に示す構成において、第1の機器100内にコンフィグレーション空間レジスタへのアクセスを制限するためのアクセス制限設定部を設ける例を説明する。
このアクセス制限設定部は、コンフィグレーション空間内のアドレスにアクセス制限を設定する。アクセス制限設定部は、例えば、プロセッサ101である。
プロセッサ101は、例えば、各デバイス106〜108の設定を行う際に、アクセス制限設定部として、コンフィグレーション空間レジスタへのアクセス制限を設定する。プロセッサ101は、コンフィグレーション空間に、例えばリードとライトの両方が可能、リードのみが可能、いずれも不可能といった設定を行う。プロセッサ101が設定したアクセス制限は、例えば、アクセス制限用レジスタで記憶される。
PCIeスイッチ#1(104)は、第2の機器200からのコンフィグレーション空間へのアクセスを要求するメモリコマンドを受信した際に、アクセス制限用レジスタで記憶されているアクセス制限の内容を参照して、コンフィグレーション空間に、対応するアクセス制限を実施する。
このように構成することで、コンフィグレーション空間レジスタを他の機器からのアクセスから保護することができる。
実施の形態2の構成において、第2の機器200内に、上記と同様のアクセス制限設定部を設けてもよい。この場合も、例えばプロセッサ201がアクセス制限設定部として機能することが考えられる。
実施の形態4.
実施の形態3で説明したアクセス制限設定部は、コンフィグレーション空間内の複数のアドレス(デバイス#1〜デバイス#Nのコンフィグレーション空間)に一括で共通のアクセス制限を設定するようにしてもよい。
このようにすることで、容易に実施の形態1又は実施の形態2の構成と従来方式による構成とを切り替えることができる。
実施の形態3で説明したアクセス制限設定部は、コンフィグレーション空間内の複数のアドレス(デバイス#1〜デバイス#Nのコンフィグレーション空間)に一括で共通のアクセス制限を設定するようにしてもよい。
このようにすることで、容易に実施の形態1又は実施の形態2の構成と従来方式による構成とを切り替えることができる。
実施の形態5.
実施の形態3で説明したアクセス制限設定部は、コンフィグレーション空間内の複数のアドレス(デバイス#1〜デバイス#Nのコンフィグレーション空間)に一括で、メモリ空間からの全てのリードアクセスのみを許可するアクセス制限を設定することができる。
このようにすることで、一方の機器に異常が発生し、意図しないコンフィグレーション空間へのライト命令を発行したような場合でも、他方の機器のコンフィグレーション空間全てを保護することが可能となるため、信頼性の高いシステムを容易に構築できるメリットが生じる。
実施の形態3で説明したアクセス制限設定部は、コンフィグレーション空間内の複数のアドレス(デバイス#1〜デバイス#Nのコンフィグレーション空間)に一括で、メモリ空間からの全てのリードアクセスのみを許可するアクセス制限を設定することができる。
このようにすることで、一方の機器に異常が発生し、意図しないコンフィグレーション空間へのライト命令を発行したような場合でも、他方の機器のコンフィグレーション空間全てを保護することが可能となるため、信頼性の高いシステムを容易に構築できるメリットが生じる。
実施の形態6.
実施の形態3で説明したアクセス制限設定部は、コンフィグレーション空間内の複数のアドレス(デバイス#1〜デバイス#Nのコンフィグレーション空間)の各々に個別にアクセス制限を設定することができる。
このようにすることで、コンフィグレーション空間レジスタに対して最適なアクセス制限を設定することができる。
実施の形態3で説明したアクセス制限設定部は、コンフィグレーション空間内の複数のアドレス(デバイス#1〜デバイス#Nのコンフィグレーション空間)の各々に個別にアクセス制限を設定することができる。
このようにすることで、コンフィグレーション空間レジスタに対して最適なアクセス制限を設定することができる。
以上、本発明の実施の形態について説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。
あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。
なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
100 第1の機器、101 プロセッサ、102 ブリッジ、103 ルートコンプレックス、104 PCIeスイッチ#1、105 PCIeスイッチ#2、106 PCIeデバイス#1、107 PCIeデバイス#2、108 PCIeデバイス#3、140 NTポート、200 第2の機器、201 プロセッサ、202 ブリッジ、203 ルートコンプレックス、204 PCIeスイッチ#1、205 PCIeスイッチ#2、206 PCIeデバイス#1、207 PCIeデバイス#2、208 PCIeデバイス#3、240 NTポート、1061 メモリ空間レジスタ、1062 コンフィグレーション空間レジスタ。
Claims (8)
- メモリ空間とコンフィグレーション空間とが区別されて管理されている通信機器であって、
外部機器と接続されているノントランスペアレントポートと、
前記メモリ空間内の一部のアドレスを前記コンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理し、前記外部機器から前記ノントランスペアレントポートを介して、前記コンフィグレーションポインタアドレスが指定された前記メモリ空間へのメモリコマンドを受信した場合に、前記外部機器による前記コンフィグレーション空間内のアドレスへのアクセスを中継する中継部とを有する通信機器。 - 前記ノントランスペアレントポートは、
メモリ空間とコンフィグレーション空間とが区別され、前記メモリ空間内の一部のアドレスを前記コンフィグレーション空間内のアドレスを指し示すコンフィグレーションポインタアドレスとして管理している前記外部機器と、前記外部機器内のノントランスペアレントポートを介して接続されており、
前記中継部は、
前記外部機器の前記コンフィグレーション空間内のアドレスにアクセスする場合に、前記外部機器の前記メモリ空間内の前記コンフィグレーションポインタアドレスを指定するメモリコマンドを前記外部機器に送信する請求項1に記載の通信機器。 - 前記中継部は、
前記外部機器から受信した前記コマンドで指定されている前記コンフィグレーションポインタアドレスが指し示す前記コンフィグレーション空間内のアドレスにアクセス制限が設定されている場合に、当該アドレスに設定されているアクセス制限を実施する請求項1に記載の通信機器。 - 前記通信機器は、更に、
前記コンフィグレーション空間内のアドレスにアクセス制限を設定するアクセス制限設定部を有する請求項1に記載の通信機器。 - 前記アクセス制限設定部は、
前記コンフィグレーション空間内の複数のアドレスに一括で共通のアクセス制限を設定する請求項4に記載の通信機器。 - 前記アクセス制限設定部は、
前記コンフィグレーション空間内の複数のアドレスに一括で、リードアクセスのみを許可するアクセス制限を設定する請求項4に記載の通信機器。 - 前記アクセス制限設定部は、
前記コンフィグレーション空間内の複数のアドレスの各々に個別にアクセス制限を設定する請求項4に記載の通信機器。 - 前記中継部が、PCI Expressの規格に準拠したスイッチである請求項1に記載の通信機器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017041940A JP2018147254A (ja) | 2017-03-06 | 2017-03-06 | 通信機器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017041940A JP2018147254A (ja) | 2017-03-06 | 2017-03-06 | 通信機器 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2018147254A true JP2018147254A (ja) | 2018-09-20 |
Family
ID=63591262
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017041940A Pending JP2018147254A (ja) | 2017-03-06 | 2017-03-06 | 通信機器 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2018147254A (ja) |
-
2017
- 2017-03-06 JP JP2017041940A patent/JP2018147254A/ja active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6790015B2 (ja) | 拡張周辺コンポーネント相互接続エクスプレスファブリックのためのシステムおよび方法 | |
US10789196B2 (en) | Storage system | |
US10241951B1 (en) | Device full memory access through standard PCI express bus | |
US7934033B2 (en) | PCI-express function proxy | |
US8412863B2 (en) | Storage apparatus and virtual port migration method for storage apparatus | |
US7062594B1 (en) | Root complex connection system | |
KR102255216B1 (ko) | Pci 장치와 이를 포함하는 pci 시스템 | |
US8683108B2 (en) | Connected input/output hub management | |
US9219695B2 (en) | Switch, information processing apparatus, and communication control method | |
US10176137B2 (en) | Selectively transparent bridge for peripheral component interconnect express bus system | |
US10162780B2 (en) | PCI express switch and computer system using the same | |
US20130179722A1 (en) | Ring topology for compute devices | |
JP2006244123A (ja) | データストレージシステム及びデータストレージ制御装置 | |
JP2016516228A (ja) | システムオンチップ内のスレーブユニットへの、コントロール下でのアクセス方法および回路装置 | |
JPS61199155A (ja) | デ−タ処理装置 | |
US20140372660A1 (en) | Packet Routing Based on Packet Type in Peripheral Component Interconnect Express Bus Systems | |
JP6734824B2 (ja) | ストレージシステム | |
JP2018147254A (ja) | 通信機器 | |
US20200327091A1 (en) | Device communication control module and device communication control method | |
JP2012163995A (ja) | 情報処理装置 | |
JP2019053617A (ja) | システムlsiおよびシステムlsiの故障検出方法 | |
JP5483020B2 (ja) | 通信制御装置、ネットワーク、及びネットワークシステム | |
CN117097576B (zh) | 一种面向功能安全的axi总线防火墙 | |
JP6052089B2 (ja) | 複合型コンピュータシステム | |
KR19990031220A (ko) | 브이.엠.이 버스 시스템에서 브이.엠.이 버스 제어장치 |