JP2019128696A - 通信支援装置及び通信支援プログラム - Google Patents

通信支援装置及び通信支援プログラム Download PDF

Info

Publication number
JP2019128696A
JP2019128696A JP2018008660A JP2018008660A JP2019128696A JP 2019128696 A JP2019128696 A JP 2019128696A JP 2018008660 A JP2018008660 A JP 2018008660A JP 2018008660 A JP2018008660 A JP 2018008660A JP 2019128696 A JP2019128696 A JP 2019128696A
Authority
JP
Japan
Prior art keywords
data
processor
communication
communication device
register
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
JP2018008660A
Other languages
English (en)
Inventor
加藤 哲朗
Tetsuro Kato
哲朗 加藤
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2018008660A priority Critical patent/JP2019128696A/ja
Publication of JP2019128696A publication Critical patent/JP2019128696A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】プロセッサの動作中にPCIデバイスを削除または追加ができ、ダイナミックなシステム構成の変更が可能であり、プロセッサと、元々存在しているデバイスとの通信への影響の少ない、通信支援装置及び通信支援プログラムを提供する。【解決手段】ホットアッド制御回路21は、メモリ23、検出部22a及び書き込み部22bを有する。検出部22aは、プロセッサの動作中に、PCIeデバイスが接続されるポートへのPCIeデバイスの接続を検出した場合、PCIeデバイスのコンフィグレーションレジスタに格納されているデータを読み出し、そのデータをメモリ23に格納する。書き込み部22bは、格納されたデータを用いることによりプロセッサが生成したPCIeデバイスの設定値をプロセッサから取得し、設定値をコンフィグレーションレジスタに書き込む。【選択図】図2

Description

本発明は、プロセッサとデバイスとの通信確立を支援する、通信支援装置及び通信支援プログラムに関する。
従来、計算機システム及び通信システムでは、CPU(Central Processing Unit)及び通信インタフェースを搭載したLSI(Large Scale Integration)デバイスを相互に接続する場合、PCI(Peripheral Component Interconnect)に代表されるパラレルバスが使用された。
しかし、通信高速化に伴い、信号遅延を均一化するための等長または等遅延の配線のような、基板の配線パターンに対する制約が高まっている。このため、最近では高速なシリアルバスが主流である。その中でPCI Express(登録商標)(PCI Expressは、以下PCIeと記す)は、パーソナルコンピュータを中心として、標準的な規格として広く利用されている(例えば特許文献1)。
特開2008−225577号公報
PCIまたはPCIeでは、プロセッサの動作中にペリフェラルカードが故障した場合は、Hot PlugまたはHot Swap機能を利用することで、システム全体の電源をオフせずに、動作続行の状態で、故障カードを正常カードに交換できる。但し、このHot Plug/Hot Swap機能は、正常動作していたペリフェラルカードを同一仕様の正常品に交換することが前提である。このため、システム起動時には存在しなかった機能を新たに追加するような処理はできない。また、システム起動時にファームウエアまたはOS、ドライバソフトウエア、アプリケーションプログラムなどから、正常と認識されてた実績が必須である。
従って、例えばUSB(Universal Serial Bus)のように、プロセッサの動作中に任意のPCIデバイスを削除または追加し、ダイナミックなシステム構成の変更ができない。
これに対して特許文献1では、動作中に任意のPCIデバイスを追加する提案がある。この提案は、以下の(1)から(3)の特徴を持つ。
(1)サウスブリッジ(以降SBと略す、CPUに接続されるI/O拡張用のチップセットでPCIまたはPCIeの制御用インタフェースを搭載)から、直接ファームウエアにPCIデバイスの新規追加を通知する。これにより、標準OSまたはデバイスドライバの修正が不要になる。
(2)SBが、追加されたPCIデバイスに、コンフィグレーションサイクルを発行する。この発行によってVID(ベンダーID、PCIデバイスの製造メーカを示すコード)とDID(デバイスID、PCIデバイスの型名を示すコード)との値を取得し保持する。
ファームウエアにSB内に保持された値を読み出させることで、追加されたPCIデバイスへ直接アクセスすることなく設定すべき内容を決定する。
(3)SBからのコンフィグレーションサイクルが終了するまでは、CPUから発行されるコンフィグレーションサイクルはリトライ応答して待たせておく。そしてSBからのアクセス完了後に、CPUからのアクセスを許可する。
しかし、特許文献1の内容を最近の主流であるPCIeに適用した場合、以下のような課題が予想される。
PCIeの場合は、スイッチを介してバスを拡張するシリアル伝送方式である。このため、SB内のPCI制御回路はツリー状のPCIeバスの頂点に位置するルートコンプレックス(RC)に相当する。PCI/PCIeの場合は基本的にRCの先に接続されるCPUが各デバイスに対してリード及びライトを行い、各デバイスへデータを書き込んだり各デバイスからのリードデータを受信する。また、各周辺デバイスが自発的にCPUに対してデータ転送を行う場合もある。従ってルートコンプレックスとスイッチとの間の配線に通信負荷が集中し易いという特徴がある。さらに、PCIeがパケット通信方式のシリアルインタフェースであるため、通信オーバヘッドが、従来のパラレル伝送方式のPCIに比べて大きい。このため、新規追加されたデバイスに対してRCからコンフィグレーションサイクルを発行することにより、元々存在していたデバイスに対する通常アクセスが阻害される。または、コンフィグレーションサイクルでは特にデータ長が短いパケットを多発するため、通信オーバヘッドの顕在化する。
この発明は、プロセッサの動作中にPCIデバイスを削除または追加ができ、ダイナミックなシステム構成の変更が可能であり、プロセッサと、元々存在しているデバイスとの通信への影響の少ない、通信支援装置及び通信支援プログラムを提供する。
この発明の通信支援装置は、
プロセッサと、レジスタを有するとともに前記プロセッサと通信する通信装置との、通信確立を支援する通信支援装置であって、
記憶部と、
前記プロセッサの動作中に、前記通信装置が接続される接続部への前記通信装置の接続を検出した場合、前記通信装置の前記レジスタに格納されているデータを前記通信装置から読み出し、前記データを前記記憶部に格納する検出部と、
前記記憶部に格納されている前記データを用いることにより前記プロセッサが生成した前記通信装置の設定値を前記プロセッサから取得し、取得した前記設定値を前記レジスタに書き込む書き込み部と
を備える。
この発明により、プロセッサの動作中にPCIデバイスを削除または追加ができ、ダイナミックなシステム構成の変更が可能であり、プロセッサと、元々存在しているデバイスとの通信への影響の少ない、通信支援装置及び通信支援プログラムを提供できる。
実施の形態1の図で、通信システム1の構成図。 実施の形態1の図で、ホットアッド制御回路21のハードウェア構成図。 実施の形態1の図で、通信システム1の動作を示すシーケンス図。 実施の形態1の図で、ホットアッド制御回路21のハードウェア構成の変形例を示す図。 実施の形態2の図で、通信システム1の構成図。 実施の形態5の図で、メモリ23のデータ配置を示す図。 実施の形態5の図で、検出部22aの動作を示すフローチャート。
以下、本発明の実施の形態について、図を用いて説明する。なお、各図中、同一または相当する部分には、同一符号を付している。実施の形態の説明において、同一または相当する部分については、説明を適宜省略または簡略化する。
実施の形態1.
***構成の説明***
図1は、実施の形態1の通信システム1のシステム構成図である。通信システム1は、プロセッサ9、ブリッジ10、PCIeスイッチ20、PCIeスイッチ30、PCIeデバイス40、PCIeデバイス41を備えている。PCIeデバイス42は、プロセッサ9の動作中にホットアッドされるPCIeデバイスである。
PCIeデバイスは、レジスタであるコンフィグレーションレジスタを有し、プロセッサ9と通信する通信装置92である。また、PCIeスイッチはスイッチ装置94である。図1にはコンフィグレーションレジスタ42aを示した。コンフィグレーションレジスタ42aはレジスタ1からレジスタNを持つ。
プロセッサ9は、ブリッジ10に接続される。ブリッジ10にはPCIeの構成制御を処理する、ルートコンプレックス11が搭載されている。ブリッジ10は、PCIeバスを拡張するためのPCIeスイッチ20と接続される。
PCIeスイッチ20は、スイッチ本来の処理を行うためのルーティング処理回路20aと、新規追加デバイスに対する処理を行うためのホットアッド制御回路21とを備えている。また、PCIeスイッチ20は、PCIeデバイス及びPCIeスイッチのようなデバイスが接続されるポート26を備えている。ポート26は接続部90である。ホットアッド制御回路21は、プロセッサ9と通信装置92であるPCIeデバイスとの通信確立を支援する通信支援装置である。また、ホットアッド制御回路21はメモリ23を備えているコンピュータである。
PCIeスイッチ20には、プロセッサ9との通信がすでに確立しているデバイスとして、PCIeスイッチ30、PCIeデバイス41が接続されている。PCIeスイッチ30にはPCIeデバイス40が接続している。PCIeデバイス42は、プロセッサ9の動作中にホットアッドされるPCIeデバイスである。
***構成の説明***
図2は、コンピュータであるホットアッド制御回路21のハードウェア構成図である。ホットアッド制御回路21は、CPU(Central Processing Unit)22、メモリ23、入出力インタフェース25といったハードウェアを備える。CPU22は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
ホットアッド制御回路21は、機能要素として、検出部22a及び書き込み部22bを備える。検出部22a及び書き込み部22bの機能は、ソフトウェアにより実現される。
CPU22は、通信支援プログラムを実行する。通信支援プログラムは、検出部22a及び書き込み部22bの機能を実現するプログラムである。通信支援プログラムは、検出部22a及び書き込み部22bの「部」を「処理」、「手順」あるいは「工程」に読み替えた各処理、各手順あるいは各工程をコンピュータに実行させるプログラムである。また、通信支援方法は、コンピュータであるホットアッド制御回路21が通信支援プログラムを実行することにより行われる方法である。通信支援プログラムは、コンピュータ読取可能な記録媒体に格納されて提供されてもよいし、プログラムプロダクトとして提供されてもよい。
メモリ23は、記憶部93であり、記憶装置である。入出力インタフェース25は、CPU22が他の装置または他の回路と通信するために使用される。
***動作の説明***
図3は、通信システム1の動作を示すシーケンス図である。図3を参照して、通信システム1の動作を説明する。
(1)プロセッサ9の通常動作中に、装置が接続されていなかったPCIeスイッチ20の空きポート26に、PCIeデバイス42が新規に接続されたとする。
(2)この場合、新規に追加されたPCIeデバイス42からの新規追加されたことを通知する接続通知信号を、PCIeスイッチ20が受信する。接続通知信号はホットアッド信号である。
ステップS11において、接続通知信号による通知は、PCIeスイッチ20内のホットアッド制御回路21へ通知される。検出部22aは、入出力インタフェース25を介して接続通知信号を取得し、接続されたPCIeデバイス42を検出する。検出部22aは、新規追加されたPCIeデバイス42に対してコンフィグレーションサイクルを発行する。
ステップS12において、検出部22aは、コンフィグレーションサイクルの発行によって、PCIeデバイス42の有する、設定が必要なコンフィグレーションレジスタ42aからデータを読み出す。
ステップS13において、検出部22aは、読み出したデータをメモリ23に保存する。このステップS12及びステップS13の処理は、プロセッサ9と、PCIeデバイス40あるいはPCIeデバイス41のような既存デバイスとの間の通信処理とは完全に独立して行われる。
このように、検出部22aは、プロセッサ9の動作中に、PCIeデバイスが接続されるポート26へのPCIeデバイスの接続を検出する。検出部22aは、この接続を検出した場合、PCIeデバイスのコンフィグレーションレジスタ42aに格納されているデータをPCIeデバイスから読み出し、読み出したデータをメモリ23に格納する。このため、ステップS12及びステップS13によって、システム全体の動作へのPCIeデバイス42の処理の影響が防止できる。
検出部22aは、コンフィグレーションレジスタ42aから取得したデータをメモリ23に保存した場合、ステップS14を実行する。
ステップS14において、検出部22aは、
(1)新規追加デバイスの検出の終了、
及び
(2)新規追加デバイスからのコンフィグレーション情報の取得終了、
の通知を、入出力インタフェース25を介してプロセッサ9に送信する。
ステップS15において、プロセッサ9は、PCIeスイッチ20のメモリ23から、新規追加PCIeデバイス42のデータを取得する。この取得では、プロセッサ9は、メモリサイクルを利用する。コンフィグレーションサイクルは、パケット内のデータ長が短く、通信効率が悪いが、メモリサイクルはパケット内のデータ長が長く効率が良い。
ステップS16において、プロセッサ9は、取得した新規追加PCIeデバイス42のコンフィグレーションレジスタ情報の、VID及びDIDの値を確認する。この確認によって、プロセッサ9は、デバイスのメーカおよび型名を特定する。
ステップS17において、プロセッサ9は、追加されたPCIeデバイス42のPCIメモリ空間内の割り当てを決定するとともに、コンフィグレーションレジスタ42aの各種レジスタ1からレジスタNの設定値を決定する。
ステップS18において、プロセッサ9は、決定した各種レジスタの設定値を、効率の良いメモリサイクルを使用して、PCIeスイッチ20内のメモリ23へ書き込む。
ステップS19において、書き込み部22bは、メモリ23に書き込まれた新規追加されたPCIeデバイス42の各種レジスタの設定値を、PCIeデバイス42のコンフィグレーションレジスタ42aへ書き込み、初期化を実施する。
なお、この書込み処理は、ステップS12の読み出し処理と同様に、プロセッサ9とPCIeデバイス40、41のような既存デバイスとの間の通信処理とは完全に独立して行われる。このため、ステップS19がシステム全体の動作へ影響することを防止できる。
各種レジスタの設定値の書き込みによるコンフィグレーションレジスタ42aの初期化が完了した場合、ステップS20において、書き込み部22bは、初期化完了通知を、入出力インタフェース25を介してプロセッサ9へ送信する。
また、このプロセッサ9への送信とともに、書き込み部22bは、新規追加されたPCIeデバイス42へのルーティングを有効にし、すでに接続されている既存デバイスと同じように、PCIeデバイス42を通信可能な状態にする。
ステップS19のように、書き込み部22bは、メモリ23に格納されているデータを用いることによりプロセッサ9が生成したPCIeデバイス42の設定値をプロセッサ9から取得し、この設定値をコンフィグレーションレジスタ42aに書き込む。
***実施の形態1の効果の説明***
以上のように、新規追加されたPCIeデバイス42への初期化処理の大半をPCIeスイッチ20のホットアッド制御回路21が代行する。また、プロセッサ9が行う処理は、効率の悪いコンフィグレーションサイクルではなく、高効率なメモリサイクルが使用される。このため、新規追加されるPCIeデバイス42の初期化処理が、プロセッサ9と既存デバイスとの通信処理に影響することを、大幅に低減できる。
また、PCIeデバイスは物理的にはPCIeスイッチと1対1で接続する。多数のPCIeデバイスを接続する必要がある場合はPCIeスイッチを多段接続する必要があるという課題がある。この課題の解決方法として、PCIeスイッチ内にホットアッド制御回路を設け、ポート毎に、独立したホットアッド処理ができるような構成とした。この構成によって、通常動作中であるプロセッサ9と既存PCIeデバイスとの間の通信へのホットアッド処理の影響を回避できる。
また、ホットアッド処理中のPCIeバス通信の性能低下を防止できる。
なお、実施の形態1の内容は、現行のPCIe規格から逸脱することは無い。このため、実施の形態1に係る発明を実装したデバイスと、実施の形態1に係る発明を実装していないデバイスとを混在させて、デバイスツリーを構成可能である効果もある。
<変形例>
実施の形態1では、ホットアッド制御回路21の機能がソフトウェアで実現されるが、変形例として、ホットアッド制御回路21の機能がハードウェアで実現されてもよい。
図4は、実施の形態1の変形例に係るホットアッド制御回路21の構成を示す。ホットアッド制御回路21は、電子回路99、入出力インタフェース25を備える。電子回路99は、検出部22a、書き込み部22b及びメモリ23の機能を実現する記憶部22cを有する専用の電子回路である。電子回路99は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサのような回路である。ホットアッド制御回路21の構成要素の機能は、1つの電子回路で実現されてもよいし、複数の電子回路に分散して実現されてもよい。別の変形例として、ホットアッド制御回路21の構成要素の一部の機能が電子回路で実現され、残りの機能がソフトウェアで実現されてもよい。
プロセッサと電子回路の各々は、プロセッシングサーキットリとも呼ばれる。つまり、ホットアッド制御回路21において、検出部22a及び書き込み部22bの機能は、プロセッシングサーキットリにより実現される。
実施の形態2.
図5は、実施の形態2の通信システム1を示す構成図である。システム構成は実施の形態1と同じである。図5では、ホットアッドするデバイスがPCIeスイッチ31である。PCIeスイッチ31には、配下にPCIeデバイス43及びPCIeデバイス44が接続されている。
実施の形態2では、ポート26に、PCIeデバイスが接続可能なPCIeスイッチが接続される。検出部22aは、プロセッサ9の動作中に、ポート26へのPCIeスイッチの接続を検出し、かつ、PCIeスイッチに接続されたPCIeデバイスを検出した場合、PCIeスイッチに接続されているPCIeデバイスのコンフィグレーションレジスタに格納されているデータを読み出してメモリ23に格納する。
具体的な処理は以下のようである。
検出部22aは、PCIeスイッチ20の空きポート26に新規追加されたデバイスであるPCIeスイッチ31から送信されるホットアッド信号からPCIeスイッチ31の接続を検出する。検出部22aは、PCIeスイッチ31に対して実施の形態1のPCIeデバイス42の場合と同様に、コンフィグレーション空間の読み出し処理を行い、読み出したデータをメモリ23に格納する。また、検出部22aは、新規追加されたPCIeスイッチ31のデバイスタイプの情報を確認する。検出部22aは、確認したデバイスタイプの情報がエンドポイントデバイスではなくスイッチデバイスであった場合には、以下の処理を実施する。検出部22aは、PCIeスイッチ31の先に接続されているPCIeデバイス43及びPCIeデバイス44に対しても、実施の形態1で述べた処理と同様の「コンフィグレーション空間の読み出し処理」(ステップS12)を実施する。検出部22aは、ステップS13と同様に、メモリ23に、PCIeデバイス43及びPCIeデバイス44のそれぞれのコンフィグレーションレジスタから取得したデータを格納する。なお、図5ではPCIeデバイスは2つであるが3つ以上でも同様である。また、PCIeスイッチ31に一つのPCIeデバイスが接続されている場合も、以上に説明したPCIeデバイスが2つの場合と同様である。
**実施の形態2の効果の説明***
実施の形態2によれば、PCIeスイッチ31に一つあるいは複数のPCIeデバイスが接続されている場合も、各PCIeデバイスの初期化処理を、プロセッサ9に負荷を与えずに実施することができる。
実施の形態3.
実施の形態3では、実施の形態1に対して、書き込み部22bは、PCIeメモリ空間の割り当て状態及びPCIeデバイス42の各種レジスタの設定値も決定する。実施の形態3では、実施の形態1のステップS17でプロセッサ9が決定していたPCIメモリ空間の割り当てと、各種レジスタとの決定値を、書き込み部22bが決定する。つまり、書き込み部22bは、メモリ23に格納されているデータを用いることによりPCIeデバイス42の設定値を生成し、この設定値をコンフィグレーションレジスタ42aに書き込む。この処理により、プロセッサ9とは完全に独立したデバイス初期化とメモリ空間割り当てとの追加設定の処理が可能となる。
デバイス初期化とメモリ空間割り当てとの追加設定の処理の完了後、書き込み部22b
は、入出力インタフェース25を介して、プロセッサ9へ割り込みで完了通知を送信する。プロセッサ9は、メモリ空間の設定変更結果をフィードバックする。また、プロセッサ9は、新規追加デバイスを有効にするため、新規追加デバイスの情報をアプリケーションソフトウェアへ送信する。
***実施の形態3の効果の説明***
書き込み部22bの処理の結果、新規追加PCIeデバイス42の初期化処理の中で、プロセッサ9が行う処理を、更に削減できる。
実施の形態4.
実施の形態4は実施の形態2に実施の形態3を適用した内容である。実施の形態4では、実施の形態2に対して、書き込み部22bは、PCIeメモリ空間の割り当て状態(ステップS17に対応)及びPCIeデバイス42の各種レジスタの設定値も決定する。これにより、プロセッサ9とは完全に独立したデバイス初期化とメモリ空間割り当てとの追加設定の処理が可能となる。
デバイス初期化とメモリ空間割り当てとの追加設定の処理の完了後、書き込み部22bは、入出力インタフェース25を介して、プロセッサ9へ割り込みで完了通知を送信する。プロセッサ9は、メモリ空間の設定変更結果をフィードバックする。また、プロセッサ9は、新規追加デバイスを有効にするため、新規追加デバイスの情報をアプリケーションソフトウェアへ送信する。
この結果、新規追加PCIeデバイス42の初期化処理の中で、プロセッサ9が行う処理を更に削減することができる。
***実施の形態4の効果の説明***
書き込み部22bの処理の結果、新規追加PCIeデバイスの初期化処理の中で、プロセッサ9が行う処理を、更に削減できる。実施の形態4では複数の新規追加PCIeデバイスに対して対応が可能であるので、実施の形態3に対して、さらに、プロセッサ9の負荷軽減の効果が大きい。
実施の形態5.
図6は、実施の形態1から実施の形態4における、メモリ23内の構成例を示す。メモリ23の内部は、タグ領域100とデータ領域200とに分けられる。タグ領域100とデータ領域200とは、複数分のデバイス毎の領域に分けられる。図6において、タグ領域100では領域101が第1のデバイス用の領域であり、以降、領域102が第2のデバイス用の領域、領域103が第N番目のデバイス用の領域である。
データ領域200も同様に、領域201が第1のデバイス用の領域であり、以降、領域202が第2のデバイス用の領域、領域203が第N番目のデバイス用の領域である。
更に、タグ領域の内部は、ステータスフラグ111、バス番号112、デバイス番号113、レジスタ先頭アドレス114、データ領域のアドレス115、データ領域のサイズ116に区分けされている。
次に各領域の機能について、第1のデバイスの領域の場合を例に説明する。なお、第2〜第Nのデバイスの場合も同様である。
図7は、検出部22aの動作を示すフローチャートである。図7を参照して、ステータスフラグ111からデータ領域のサイズ116を説明する。
<ステータスフラグ111>
検出部22aは、検出したデバイスのデータをメモリ23内に格納する際(ステップS13に対応)に、ステータスフラグ111を更新する。ステータスフラグ111には、タグ領域100における第1のデバイスの領域101が有効であるか無効であるかを示すフラグがある。
ステップS31において、検出部22aは、このフラグを有効にする。
<バス番号112、デバイス番号113>
ステップS32において、検出部22aは、検出したデバイスが接続されているPCIeバスのバス番号と、検出したデバイスのデバイス番号とを、バス番号112およびデバイス番号113に格納する。バス番号112及びデバイス番号113はデバイスを識別する識別データである。ステータスフラグ111、バス番号112、デバイス番号113の3つの領域を使用することにより、プロセッサ9は、検出部22aによって検出されたデバイスを特定すること(ステップS15及びS16に対応)が可能となる。
<先頭アドレス114、データ領域のサイズ116>
ステップS33において、検出部22aは、検出されたデバイスのコンフィグレーション空間の先頭アドレスをレジスタ先頭アドレス114に格納し、検出されたデバイスのコンフィグレーション空間のサイズをデータ領域のサイズ116に格納する。通常、PCIのコンフィグレーション空間については、00h〜3Fhが規格で規定された領域である。このため、この部分については、デバイス種別に関わらず、先頭アドレスは0番地であり、サイズは3Fhとなる。3Fh以降の40h〜FFFhの領域には、各種デバイスの必要に応じて、独自に規定されて拡張された、デバイス毎に固有な設定及びステータスを表示するレジスタが規定されている場合がある。また、これらの拡張されたレジスタが置かれるアドレスも、各デバイス毎に独自規定されている。デバイスによってはアドレスが不連続に複数箇所に分散している場合もある。よって、コンフィグレーション空間の先頭アドレスをレジスタ先頭アドレス114に格納することで、アドレスが不連続に複数箇所に分散しているデバイスにも対応できる。
<データ領域のアドレス115>
ステップS34において、データ領域のアドレス115に、検出部22aは、検出されたデバイスから読み出したレジスタ値を保存した領域の先頭アドレスを格納する。前述の通り、コンフィグレーション空間のサイズはデバイスに依存するため、データ領域200のコンフィグレーション空間のサイズは可変である必要がある。つまり、PCIeデバイスの有するコンフィグレーションレジスタから読み出されるデータは可変長データである。この可変長データはデバイスを識別する識別データを含む。
例えば、検出したデバイスの、規格標準のコンフィグレーション空間レジスタ(アドレス00h〜3Fh)の情報を第1のデバイスの領域に格納する場合には、以下のようになる。
レジスタ先頭アドレス:00h
データ領域のアドレス:X1
データ領域のサイズ:X2(この例では3Fh)
なお、第2のデバイスの領域に格納する場合は、データ領域のアドレス及びサイズは、Y1およびY2となる。
以上のように、検出部22aが読み出すデータは、PCIeデバイスを識別する識別データを含む可変長データの場合がある。検出部22aは、その可変長データからPCIeデバイスの識別データを抽出して、識別データと可変長データとをメモリ23に格納する。また、検出部22aは、可変長データの格納場所を示す格納場所データをメモリ23に格納する。
***実施の形態5の効果***
実施の形態5では、コンフィグレーションレジスタから読みだした情報をタグ領域100とデータ領域とに分けているので、必要な情報の参照が容易である。
また、データ領域のアドレス115と、データ領域のサイズ116とがタグ領域100に含まれるので、読み出すべきデータが可変長データである場合も対応が可能であるので、種々のデバイスに対応可能である。
実施の形態6.
実施の形態5ではコンフィグレーション空間の例を示したが、コンフィグレーション空間に加え、メモリ空間内にも、各種の設定を行うためのレジスタが搭載されているデバイスもある。
このようなデバイスに対応するため、検出部22aは、デバイスから読み出してメモリ23に格納したデータ(ステップS13に対応)が、コンフグレーション空間のデータかメモリ空間のデータかを示すフラグを、ステータスフラグ111内に追加する。このフラグはデータ識別情報である。メモリ空間のデータをメモリ23に格納する場合、バス番号112とデバイス番号113とは特に変更することなく、デバイスを一意に特定することができる。
レジスタの先頭アドレスについては、メモリ空間内のアドレスを格納することで、前述のコンフグレーション空間の場合と同様に処理が可能である。
以上のように、実施の形態6では、可変長データは、コンフィグレーション空間のデータと、メモリ空間のデータとのいずれかである。検出部22aは、メモリ23に、可変長データがコンフィグレーション空間のデータとメモリ空間のデータとのどちらのデータであるかを示すデータ識別情報を格納する。
***実施の形態6の効果***
実施の形態6ではデータ識別情報であるフラグを採用するので、コンフィグレーション空間に限らずメモリ空間のレジスタの設定も可能になる効果がある。
以上、本発明の実施の形態1から6を説明したが、これらの実施の形態のうち、2つ以上を組み合わせて実施しても構わない。あるいは、これらの実施の形態のうち、1つを部分的に実施しても構わない。あるいは、これらの実施の形態のうち、2つ以上を部分的に組み合わせて実施しても構わない。なお、本発明は、これらの実施の形態に限定されるものではなく、必要に応じて種々の変更が可能である。
1 通信システム、9 プロセッサ、10 ブリッジ、11 ルートコンプレックス、20 PCIeスイッチ、21 ホットアッド制御回路、22 CPU、22a 検出部、22b 書き込み部、23 メモリ、25 入出力インタフェース、26 ポート、20a ルーティング処理回路、30 PCIeスイッチ、31 PCIeスイッチ、40 PCIeデバイス、41 PCIeデバイス、42 PCIeデバイス、42a コンフィグレーションレジスタ、43 PCIeデバイス、44 PCIeデバイス、100 タグ領域、101 第1のデバイス、102 第2のデバイス、103 第Nのデバイス、111 ステータスフラグ、112 バス番号、113 デバイス番号、114 レジスタ先頭アドレス、115 データ領域のアドレス、116 データ領域のサイズ、200 データ領域、201 第1のデバイス、202 第2のデバイス、203 第Nのデバイス。

Claims (7)

  1. プロセッサと、レジスタを有するとともに前記プロセッサと通信する通信装置との、通信確立を支援する通信支援装置であって、
    記憶部と、
    前記プロセッサの動作中に、前記通信装置が接続される接続部への前記通信装置の接続を検出した場合、前記通信装置の前記レジスタに格納されているデータを前記通信装置から読み出し、前記データを前記記憶部に格納する検出部と、
    前記記憶部に格納されている前記データを用いることにより前記プロセッサが生成した前記通信装置の設定値を前記プロセッサから取得し、取得した前記設定値を前記レジスタに書き込む書き込み部と
    を備える通信支援装置。
  2. プロセッサと、レジスタを有するとともに前記プロセッサと通信する通信装置との、通信の確立を支援する通信支援装置であって、
    記憶部と、
    前記プロセッサの動作中に、前記通信装置が接続される接続部への前記通信装置の接続を検出した場合、前記通信装置の前記レジスタに格納されているデータを前記通信装置から読み出し、前記データを前記記憶部に格納する検出部と、
    前記記憶部に格納されている前記データを用いることにより前記通信装置の設定値を生成し、前記設定値を前記レジスタに書き込む書き込み部と
    を備える通信支援装置。
  3. 前記接続部には、
    前記通信装置が接続可能なスイッチ装置が接続され、
    前記検出部は、
    前記プロセッサの動作中に、前記接続部への前記スイッチ装置の接続を検出し、かつ、前記スイッチ装置に接続された前記通信装置を検出した場合、前記スイッチ装置に接続されている前記通信装置の前記レジスタに格納されているデータを読み出し、前記データを前記記憶部に格納する請求項1または請求項2に記載の通信支援装置。
  4. 前記検出部が読み出す前記データは、
    前記通信装置を識別する識別データを含む可変長データであり
    前記検出部は、
    前記可変長データからから前記識別データを抽出して、前記識別データと前記可変長データとを前記記憶部に格納するとともに、前記可変長データの格納場所を示す格納場所データを前記記憶部に格納する請求項1から請求項3のいずれか一項に記載の通信支援装置。
  5. 前記可変長データは、
    コンフィグレーション空間のデータと、メモリ空間のデータとのいずれかであり、
    前記検出部は、
    前記記憶部に、前記可変長データが前記コンフィグレーション空間のデータと前記メモリ空間のデータとのどちらのデータであるかを示すデータ識別情報を格納する請求項4に記載の通信支援装置。
  6. プロセッサと、レジスタを有するとともに前記プロセッサと通信する通信装置との、通信確立を支援する通信支援プログラムであって、
    コンピュータに、
    前記プロセッサの動作中に、前記通信装置が接続される接続部への前記通信装置の接続を検出した場合、前記通信装置の前記レジスタに格納されているデータを前記通信装置から読み出し、前記データを記憶部に格納する処理と、
    前記記憶部に格納されている前記データを用いることにより前記プロセッサが生成した前記通信装置の設定値を前記プロセッサから取得し、取得した前記設定値を前記レジスタに書き込む処理と
    を実行させる通信支援プログラム。
  7. プロセッサと、レジスタを有するとともに前記プロセッサと通信する通信装置との、通信の確立を支援する通信支援プログラムであって、
    コンピュータに、
    前記プロセッサの動作中に、前記通信装置が接続される接続部への前記通信装置の接続を検出した場合、前記通信装置の前記レジスタに格納されているデータを前記通信装置から読み出し、前記データを記憶部に格納する処理と、
    前記記憶部に格納されている前記データを用いることにより前記通信装置の設定値を生成し、前記設定値を前記レジスタに書き込む処理と
    を実行させる通信支援プログラム。
JP2018008660A 2018-01-23 2018-01-23 通信支援装置及び通信支援プログラム Pending JP2019128696A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2018008660A JP2019128696A (ja) 2018-01-23 2018-01-23 通信支援装置及び通信支援プログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018008660A JP2019128696A (ja) 2018-01-23 2018-01-23 通信支援装置及び通信支援プログラム

Publications (1)

Publication Number Publication Date
JP2019128696A true JP2019128696A (ja) 2019-08-01

Family

ID=67473091

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018008660A Pending JP2019128696A (ja) 2018-01-23 2018-01-23 通信支援装置及び通信支援プログラム

Country Status (1)

Country Link
JP (1) JP2019128696A (ja)

Similar Documents

Publication Publication Date Title
TWI679539B (zh) 主從式系統、指令執行方法與資料存取方法
CN107423169B (zh) 用于测试高速外围设备互连设备的方法和系统
US8898358B2 (en) Multi-protocol communication on an I2C bus
US7529862B2 (en) System for providing access of multiple data buffers to a data retaining and processing device
US9684530B2 (en) System and method for assigning virtual functions and management host thereof
JP3403284B2 (ja) 情報処理システム及びその制御方法
US20130246680A1 (en) Hot plug process in a distributed interconnect bus
US11995019B2 (en) PCIe device with changeable function types and operating method thereof
US11983136B2 (en) PCIe device and operating method thereof
US11928070B2 (en) PCIe device
US20220327228A1 (en) PCIe FUNCTION AND OPERATING METHOD THEREOF
WO2024103829A1 (zh) 一种端口配置方法、组件及硬盘扩展装置
KR20060130664A (ko) Pci 익스프레스 장치, pci 익스프레스 시스템 및정보 통신 방법
CN103412838A (zh) 一种扩展系统、通信方法、地址配置方法、设备及装置
CN112988637A (zh) 促进与i2c的向后兼容性的i3c集线器
TWI245222B (en) Accessing configuration registers by automatically changing an index
CN110795373A (zh) 一种i2c总线到并行总线的转换方法、终端及存储介质
JP3477306B2 (ja) 拡張入出力インターフェイス
JP2019128696A (ja) 通信支援装置及び通信支援プログラム
CN115061884A (zh) 基于飞腾服务器的NVMe硬盘的点灯方法和点灯系统
JP4257358B2 (ja) バス制御方法および装置
JP3836485B2 (ja) デバイスコントローラ
JP2004029963A (ja) デバイス接続用インタフェース装置
US20230318606A1 (en) Interface device and method of operating the same
JP2009026165A (ja) コントローラ、電子機器及び電子機器の制御方法