(57)【要約】【課題】拡張デバイスの構成に応じた自由度の高い運用を行なうことができるようにする。【解決手段】拡張デバイス５０を取り付け可能な接続ポート４２と、拡張デバイス５０に備えられた記憶部５１からその拡張デバイス５０のバス構成を示すバス構成情報５１１を取得する取得部１１と、取得したバス構成情報５１１に基づいて、接続ポート４２のバス構成を設定する設定部１２とを備える。【選択図】図１
2014137614.tif 000002
【特許請求の範囲】
【請求項１】
拡張デバイスを取り付け可能な接続ポートと、
前記拡張デバイスに備えられた記憶部から当該拡張デバイスのバス構成を示すバス構成情報を取得する取得部と、
取得した前記バス構成情報に基づいて、前記接続ポートのバス構成を設定する設定部とを備えることを特徴とする、情報処理装置。
【請求項２】
前記接続ポートのバス構成の設定状態を示す状態情報を記憶可能な状態情報記憶部を備え、
前記設定部が、前記状態情報と前記取得部によって取得された前記バス構成情報とを比較して、前記状態情報が示すバス構成と前記バス構成情報が示すバス構成とが不一致である場合に、前記前記接続ポートのバス構成を、前記バス構成情報に合わせて変更することを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記設定部が前記前記接続ポートの前記バス構成の設定を行なった前記接続ポートをリセットさせるリセット処理部を備えることを特徴とする、請求項１又は２記載の情報処理装置。
【請求項４】
前記取得部が、前記記憶部からサイドバンドバスを介して前記バス構成情報を取得することを特徴とする、請求項１〜３のいずれか１項に記載の情報処理装置。
【請求項５】
情報処理装置の接続ポートに接続可能な接続部と、
当該デバイス装置のバス構成を示すバス構成情報を格納する記憶部と、
を備えることを特徴とする、デバイス装置。
【請求項６】
拡張デバイスを取り付け可能な接続ポートを備えたコンピュータに、
前記拡張デバイスに備えられた記憶部から当該拡張デバイスのバス構成を示すバス構成情報を取得し、
取得した前記バス構成情報に基づいて、前記接続ポートのバス構成を設定する、
処理を実行させることを特徴とする、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、デバイス装置及びプログラムに関する。
【背景技術】
【０００２】
図７及び図８は従来のPeripheral Component Interconnect Express（PCIe）バス拡張装置のハードウェア構成を示す図、図９〜図１１はそれぞれ従来のPCIeデバイスのハードウェア構成を示す図である。
図７に例示するPCIeインタフェースを備えたバス拡張装置は、PCIeスイッチ（もしくはPCIeルートポート）５０１を備える。
【０００３】
PCIeスイッチ５０１は、複数（図７に示す例では４つ）のポート（Port）を備え、これらのポートにはそれぞれPCIeスロット５０２が接続されている。又、これらのPCIeスロット５０２には、図９に示すようなPCIeデバイス５３が活性挿入される。
PCIeデバイス５３は、ＬＳＩ５３１を備え、このＬＳＩ５３１に予め設定された各種機能を実現する。又、PCIeデバイス５３は、PCIeバスを介してPCIeスイッチ５０１と通信可能に接続される。
【０００４】
PCIeにおいては、レーンと称される物理伝送路を束ねて使用することでデータの伝送効率を向上させることができる。
単一レーンを含むリンクをｘ１リンクという。同様に、２つのレーンを含むリンクを×２リンクといい、４つのレーンを含むリンクを×４リンクという。PCIeは、×１、×２、×４、×８、×１２、×１６、および×３２等の異なる幅のインタフェースをあらかじめ考慮しておくことで、様々な周辺デバイスの異なる帯域幅要件を満足させる。
【０００５】
すなわち、PCIeにおいては、PCIeデバイス５３は、×１，×２，×４，×８，×１６及び×３２のいずれかのレーン数（レーン幅）のインタフェースでPCIeスイッチ５０１に接続される。図９に示す例においては、×８のPCIeデバイス５３が示されている。
また、PCIeスイッチ５０１においては、ポートを構成するレーン数を設定可能なポートバイファケーション（Port Bifurcation）機能が知られている。このポートバイファケーション機能によれば、例えば、８レーンを備える１つのポート（以下、×８のポート）を４レーンを備える２つのポート（以下、×４のポート）に分割して使用することが可能となる。
【０００６】
図８に示す例においては、図７における×８のポート０（Port0）を、ポート０（Port0）とポート１（Port1）との２つの×４のポートに分割し、又、図７における×８のポート４（Port4）をポート４（Port4）とポート５（Port5）との２つの×４のポートに分割している。
各ポートには、一般にそのポートのレーン数と同数以下のレーン数を有するPCIeデバイス５３を挿入する。例えば、×４のポートには、×４のPCIeデバイス５３を挿入し、×８のポートには×８のPCIeデバイス５３を挿入する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平９−２５９０６８号公報
【特許文献２】特開２００８−１７１２９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、このような従来のバス拡張装置においては、例えば、図１０に示すような、２つのＬＳＩ５３１を備えるとともに、各ＬＳＩ５３１がそれぞれ×４のPCIeバスに接続されたPCIeデバイス５３を、×８のPCIeスロット５０２に活性挿入したとしても、PCIeの仕様上、いずれか一方の×４のバスに接続されたＬＳＩ５３１しか認識されない。
このような、同一のPCIeデバイス５３上に備えられた２つのＬＳＩ５３１をPCIeスイッチ５０１側に認識させるには、例えば、図１１に示すように、PCIeデバイス５３上にPCIeスイッチ回路５３２を備えて、このPCIeスイッチ回路５３２を介して接続させる。
【０００９】
しかしながら、PCIeデバイス５３にPCIeスイッチ回路５３２を搭載することにより製造コストが上昇し、又、PCIeスイッチ回路５３２のレイテンシが発生するのでアクセス性能が低下する。
１つの側面では、本発明は、拡張デバイスの構成に応じた自由度の高い運用を行なうことができる情報処理装置を提供することを目的とする。
【００１０】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１１】
このため、この情報処理装置は、拡張デバイスを取り付け可能な接続ポートと、前記拡張デバイスに備えられた記憶部から当該拡張デバイスのバス構成を示すバス構成情報を取得する取得部と、取得した前記バス構成情報に基づいて、前記接続ポートのバス構成を設定する設定部とを備える。
【発明の効果】
【００１２】
一実施形態によれば、拡張デバイスの構成に応じた自由度の高い運用を行なうことができる。
【図面の簡単な説明】
【００１３】
【図１】実施形態の一例としての情報処理装置の構成を模式的に示す図である。
【図２】実施形態の一例としての情報処理装置に接続されるＩ／Ｏデバイスの構成を示す図である。
【図３】実施形態の一例としての情報処理装置に接続されるＩ／Ｏデバイスの構成を示す図である。
【図４】実施形態の一例としての情報処理装置におけるポート分割例を示す図である。
【図５】実施形態の一例としての情報処理装置におけるポート分割例を示す図である。
【図６】実施形態の一例としての情報処理装置におけるＩ／Ｏデバイスの活性取付け時の処理を示すシーケンス図である。
【図７】従来のPCIeバス拡張装置のハードウェア構成を示す図である。
【図８】従来のPCIeバス拡張装置のハードウェア構成を示す図である。
【図９】従来のPCIeデバイスのハードウェア構成を示す図である。
【図１０】従来のPCIeデバイスのハードウェア構成を示す図である。
【図１１】従来のPCIeデバイスのハードウェア構成を示す図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本情報処理装置、デバイス装置及びプログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態及び各変形例を組み合わせる等）して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１５】
図１は実施形態の一例としての情報処理装置１の構成を模式的に示す図である。
実施形態の一例としての情報処理装置１は、図１に示すように、ＣＰＵ（Central Processing Unit）１０，メモリ２０，信号中継部３０，PCIeスイッチ（入出力制御スイッチ）４０及び１以上（図１に示す例では４つ）のスロット４１−０〜４１−３を備える。
スロット４１−０〜４１−３は、後述するPCIeスイッチ４０の物理ポート４２−０〜４２−３と図示しないPCIeバス（メインバンドバス）を介して通信可能に接続されている。
【００１６】
また、スロット４１−０〜４１−３は、それぞれPRSNT信号線６２及びサイドバンドバス６１を介して信号中継部３０に接続されている。サイドバンドバス６１は、SM（System Management）バスやI2C（Inter-Integrated Circuit）バス等のPCIeバスとは異なるバスである。
そして、スロット４１−０〜４１−３には、後述するＩ／Ｏデバイス（ボード，拡張デバイス）５０−１，５０−２が脱着自在に取り付けられる。スロット４１−０〜４１−３は、それぞれ図示しないコネクタ（メスコネクタ，ホストコネクタ）を備え、このコネクタにＩ／Ｏデバイス５０−１，５０−２のコネクタ（オスコネクタ；接続部）５４（図２，３参照）を挿入可能に構成されている。
【００１７】
一般に、PCIeのスロットは、提供する帯域幅によって大きさが異なる。又、PCIeにおいては、一般に、幅の狭いコネクタ５４を搭載したＩ／Ｏデバイスは、マザーボード上の幅の広いホストコネクタ（スロット）に接続が可能である。例えば、×８リンクのホストコネクタに×１リンクや×４リンクのデバイスのコネクタ５４を挿入して使用することができる。すなわち、PCIeのスロットにおいては、下位互換性を有している。
【００１８】
図２，図３はそれぞれ実施形態の一例としての情報処理装置１に接続されるＩ／Ｏデバイス５０の構成を示す図であり、図２はＩ／Ｏデバイス５０−１を、又、図３はＩ／Ｏデバイス５０−２を示す。
Ｉ／Ｏデバイス５０−１は、図２に示すように、ＲＯＭ５１とコネクタ５４と１つのＬＳＩ５２とを備え、コネクタ５４がスロット４１に挿入され取り付けられることにより、PCIeスイッチ４０の物理ポート４２に接続される。又、Ｉ／Ｏデバイス５０−１は、ＬＳＩ５２が×８リンクのPCIeバス（メインバンドバス）でPCIeスイッチ４０等の外部機器と接続される構成（バス構成）を有する。
【００１９】
一方、Ｉ／Ｏデバイス５０−２は、図３に示すように、ＲＯＭ５１とコネクタ５４と２つのＬＳＩ５２とを備え、コネクタ５４がスロット４１に挿入され取り付けられることにより、PCIeスイッチ４０の物理ポート４２に接続される。又、Ｉ／Ｏデバイス５０−２は、各ＬＳＩ５２が×４リンクのPCIeバスでそれぞれPCIeスイッチ４０等の外部機器と接続されるバス構成を有する。
【００２０】
なお、これらのＩ／Ｏデバイス５０−１のコネクタ５４とＩ／Ｏデバイス５０−２のコネクタ５４とは同じ形状を有する。
以下、Ｉ／Ｏデバイスを示す符号としては、複数のＩ／Ｏデバイスのうち１つを特定する必要があるときには符号５０−１，５０−２を用いるが、任意のＩ／Ｏデバイスを指すときには符号５０を用いる。
【００２１】
Ｉ／Ｏデバイス５０においては、PCIeリセット（PERST＃）信号が入力可能に構成されている。Ｉ／Ｏデバイス５０は、PERST＃信号が入力されている状態で、電位的にリセット入力が行なわれている状態（アサート状態）となる。なお、Ｉ／Ｏデバイス５０において、PERST＃信号の入力が解除された状態をネゲート状態となる。PCIeリセット（PERST＃）信号は、例えば、Ｉ／Ｏデバイス５０をスロット４１に取り付けた状態で、このスロット４１を介して入力される。
【００２２】
また、Ｉ／Ｏデバイス５０は、PRSNT#信号を出力する機能を備え、スロット４１に接続された状態において、当該Ｉ／Ｏデバイス５０の実装状態をPCIeスイッチ４０に通知する。
PRSNT#信号は、各スロット４１からPRSNT信号線６２を介して信号中継部３０に入力される。
【００２３】
また、Ｉ／Ｏデバイス５０はＲＯＭ５１を備える。ＲＯＭ５１にはボード情報５１１が格納されている。
ボード情報５１１は、そのＩ／Ｏデバイス５０のバス構成を示す情報である。具体的には、ボード情報５１１は、当該Ｉ／Ｏデバイス５０を特定する識別情報と、当該Ｉ／Ｏデバイス５０に備えられたPCIeバスのリンクのレーン数を示す情報とを備える。
【００２４】
また、Ｉ／Ｏデバイス５０は、スロット４１−０〜４１−３のいずれかに接続された状態において、サイドバンドバス６１を介して、信号中継部３０に接続される。
そして、Ｉ／Ｏデバイス５０がスロット４１−０〜４１−３のいずれかに接続された状態において、ＲＯＭ５１のボード情報５１は、このサイドバンドバス６１及び信号中継部３０を介して、ＣＰＵ１０のボード情報取得部１０によって読み出される。
【００２５】
また、スロット４１−０〜４１−３は後述するPCIeスイッチ４０の物理ポート４２−０〜４２−３に対応して備えられ、これらの物理ポート４２−０〜４２−３と同数備えられる。そして、各スロット４１−０〜４１−３はそれぞれ対応する物理ポート４２−０〜４２−３とPCIeバス（メインバンドバス）を介して通信可能に接続されている。すなわち、物理ポート４２−０に対してスロット４１−０がPCIeバスを介して接続されており、同様に、物理ポート４２−１〜４２−３に、スロット４１−１〜４１−３がそれぞれPCIeバスを介して接続されている。
【００２６】
そして、スロット４１−０〜４１−３にＩ／Ｏデバイス５０−１，５０−２を挿入することにより、これらのＩ／Ｏデバイス５０−１，５０−２が物理ポート４２−０〜４２−３に通信可能に接続され、PCIeの規格に従って通信を行なうことができる。
各スロット４１−０〜４１−３は互いに同様の構成を備える。以下、スロットを示す符号としては、複数のスロットのうち１つを特定する必要があるときには符号４１−０〜４１−３を用いるが、任意のスロットを指すときには符号４１を用いる。又、スロット４１−０〜４１−３をスロット＃０〜＃３と示す場合もある。
【００２７】
後述の如く、スロット４１にＩ／Ｏデバイス５０が接続された状態で、ＣＰＵ１０のボード情報取得部１１が、信号中継部３０及びサイドバンドバス６１を介して、Ｉ／Ｏデバイス５０のＲＯＭ５１に格納されているボード情報５１１を読み出す。
PCIeスイッチ４０は、図示しないPCIeバスを信号を複数に分配するファンアウト（fan-out）機能を実現するスイッチである。PCIeスイッチ４０は、図１に示すように、１以上（図１に示す例では４つ）の物理ポート（接続ポート）４２−０〜４２−３及びポート設定レジスタ４３を備える。
【００２８】
物理ポート４２−０〜４２−３は、PCIeのリンクの一端を形成するトランスミッタ（図示省略）及びレシーバ（図示省略）の集合であり、リンクを構成するレーン数（例えば８本）に応じたトランスミッタ及びレシーバを備える。
また、物理ポート４２−０〜４２−３も互いに同様の構成を備える。以下、物理スロットを示す符号としては、複数の物理ポートのうち１つを特定する必要があるときには符号４２−０〜４２−３を用いるが、任意の物理ポートを指すときには符号４２を用いる。
【００２９】
物理ポート４２におけるトランスミッタは、当該物理ポート４２に対応するスロット４１にＩ／Ｏデバイス５０を接続した際に、このＩ／Ｏデバイス５０のレシーバに接続される。同様に、物理ポート４２におけるレシーバは、当該物理ポート４２に対応するスロット４１にＩ／Ｏデバイス５０を接続した際に、このＩ／Ｏデバイス５０のトランスミッタに接続される。これにより、スロット４１に接続したＩ／Ｏデバイス５０と物理ポート４２とが通信可能に接続される。
【００３０】
そして、物理ポート４２とＩ／Ｏデバイス５０とは複数（例えば８本）のレーンを介して接続される。
また、本情報処理装置においては、PCIeスイッチ４０において、各物理ポート４２を、複数の論理ポート（以下、単にポートという）に分割するポート分割機能（ポートバイファケーション機能）を備える。
【００３１】
図４及び図５は、それぞれ実施形態の一例としての情報処理装置におけるポート分割例を示す図である。図４は８本のラインを備えた物理ポート４２のポート分割例を示す図、図５は１６本のラインを備えた物理ポート４２のポート分割例を示す図である。
ポート分割機能においては、物理ポート４２に備えられた複数のラインを、所定数毎に束ねて分割することで、複数のポートとして取り扱うことを可能とする。例えば、ポート分割機能においては、図４に例示するような物理ポート４２に備えられた８本のラインを、例えば、ｘ２もしくはｘ４のラインの複数のポートに分割することができる。又、物理ポート４２が１６本のラインを備える場合には、例えば、図５に例示するような、×２，×４，×８のラインの複数のポートに分割することができる。
【００３２】
図１に示す例においては、物理ポート４２−１をポート０，１の２つのポートに分割するとともに、物理ポート４２−３をポート４，５の２つのポートに分割している。
このような物理ポート４２の分割は、後述するＣＰＵ１０のポート設定部１２が、物理ポート４２の分割状態をレジスタ設定値としてポート設定レジスタ４３に設定・登録することにより実現される。
【００３３】
ポート設定レジスタ４３は、ポート分割機能を実現するための設定値を格納する記憶装置であり、図示しないメモリ等によって実現される。後述するポート設定部１２が、このポート設定レジスタ４３の値に基づいて、各物理ポート４２についてポートの設定を行なう。
信号中継部３０は、ＣＰＵ１０，スロット４１及びPCIeスイッチ４０の間においてデータの中継を行なう。例えば、信号中継部３０は、サイドバンドバス６１を介してＩ／Ｏデバイス５０のＲＯＭ５１から読み出されたボード情報５１１をＣＰＵ１０に受け渡す。又、信号中継部３０は、PRSNT信号線６２を介してＩ／Ｏデバイス５０から入力されたPRSNT#信号をＣＰＵ１０に受け渡す。更に、信号中継部３０は、サイドバンドバス６３を介してPCIeスイッチ４０に接続されている。
【００３４】
信号中継部３０は、後述の如く、ＣＰＵ１０から出力されるレジスタ設定値をサイドバンドバス６３を介してポート設定レジスタ４３に格納（登録）する処理を行なう。又、信号中継部３０は、後述の如く、ＣＰＵ１０のリセット処理部１３の指示に従って出力されるポート個別リセット指示を、PCIeスイッチ４０の対応するポートに対して入力する。
なお、信号中継部３０は、例えば、上述したデータ転送機能を実現する回路を備えたチップとして構成される。
【００３５】
メモリ２０は、ＲＯＭ及びＲＡＭを含む記憶装置である。メモリ２０のＲＯＭには、後述するポート構成制御に係るソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ２０上のソフトウェアプログラムは、ＣＰＵ１０に適宜読み込まれて実行される。又、メモリ２０のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００３６】
また、メモリ２０には、ポート構成情報（状態情報）２１が格納される。ポート構成情報２１は、各ポートの分割状態を示す情報である。ポート構成情報２１としては、例えば、各物理ポート４２について、分割の有無や分割されたポートを構成するレーンの情報（レーン数等）が格納される。
ＣＰＵ１０は、種々の制御や演算を行なう処理装置であり、メモリ２０等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。すなわち、ＣＰＵ１０は、図１に示すように、ボード情報取得部（取得部）１１，ポート設定部（設定部）１２及びリセット処理部１３として機能する。
【００３７】
そして、情報処理装置１のＣＰＵ１０が、ポート設定プログラムを実行することにより、これらのボード情報取得部１１，ポート設定部１２及びリセット処理部１３として機能する。
なお、これらのボード情報取得部１１，ポート設定部１２及びリセット処理部１３としての機能を実現するためのプログラム（ポート設定プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００３８】
ボード情報取得部１１，ポート設定部１２及びリセット処理部１３としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ２０）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００３９】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置１がコンピュータとしての機能を有しているのである。
【００４０】
ボード情報取得部１１は、信号中継部３０及びサイドバンドバス６１を介して、Ｉ／Ｏデバイス５０のＲＯＭ５１からボード情報５１１を読み出す。ボード情報取得部１１は、未実装のスロット４１にＩ／Ｏデバイス５０が挿入され、PRSNT#信号が入力されると、そのスロット４１に挿入されたＩ／Ｏデバイス５０のＲＯＭ５１からボード情報５１１を読み出す。
【００４１】
また、このボード情報取得部１１によって読み出されたボード情報５１１は、例えば、メモリ２０の所定の領域に格納される。
ポート設定部１２は、PCIeスイッチ４０のポートの設定を行なう。ポート設定部１２は、ボード情報取得部１１がＩ／Ｏデバイス５０から取得した当該Ｉ／Ｏデバイス５０のボード情報５１１と、メモリ２０から取得したそのＩ／Ｏデバイス５０が接続されている物理ポート４２についてのポート構成情報２１とを比較する。
【００４２】
ポート設定部１２は、これらの比較結果に基づき、ポート構成（ポートバイファケーション）の変更が必要であるか否かを判断する。すなわち、ボード情報５１１とポート構成情報２１とが同じ状態を示すものではない場合には、そのポートのポート構成の変更が必要であると判断する。又、ボード情報５１１とポート構成情報とが同じ状態を示す場合には、そのポートのポート構成の変更が不要であると判断する。
【００４３】
具体的には、Ｉ／Ｏデバイス５０から取得したボード情報５１１が示す当該Ｉ／Ｏデバイス５０のレーン数（例えば、×８もしくは×４，×４）と、ボード構成情報２１が示すそのボードのレーン数（例えば、×４，×４またはその他）とを比較する。
この比較の結果、例えば、ポート構成情報２１がレーン数＝８、すなわち、１つの×８リンクを備えることを示す一方で、そのＩ／Ｏデバイス５０が挿入されているスロット４１に対応する物理ポート４２が、２つの×４リンク（×４，×４）に分割されていることを示す場合を考える。このような場合には、ボード情報５１１とポート構成情報２１とが同じ状態を示すものではなく、ポート設定部１２は、ポート構成の変更が必要であると判断する。
【００４４】
また、ポート構成情報２１が２つの×４リンク（×４，×４）を備えることを示し、又、そのＩ／Ｏデバイス５０が挿入されているスロット４１に対応する物理ポート４２も、２つの×４リンクであることを示す場合には、ボード情報５１１とポート構成情報２１とが同じ状態を示す。そこで、ポート設定部１２は、ポート構成の変更が不要であると判断する。
【００４５】
ポート設定部１２は、比較の結果、ポート構成の変更が必要であると判断した場合には、ボード情報５１１に合わせて、そのＩ／Ｏデバイス５０が接続されている物理ポート４２のポート構成を変更する。ポート構成の変更は、例えば、信号中継部３０を介してポート設定レジスタ４３の値を変更することで行なう。なお、このPCIeのポート構成の変更手法は既知の手法を用いて行なうことができ、その詳細な説明は省略する。
【００４６】
リセット処理部１３は、ポートのリセットを行なう。リセット処理部１３は、例えば、PCIeリセット（PERST＃）信号を各ポートに入力させることによりポートのリセットを行なう。
リセット処理部１３は、ポート設定部１２により構成変更が行なわれたポートに対してリセット指示（ポート個別リセット指示）を行なうことで、そのポートを個別にリセットさせる。このリセット指示は、各ポートに対応する物理ポート４２にリセット信号を入力することにより行なってもよい。又、リセット処理部１３が、例えば、ソフトウェア制御によりポート設定レジスタ４３等の記憶装置にポートのリセットを示す特定値を設定することで行なってもよく、種々変形して実施することができる。
【００４７】
上述の如く構成された実施形態の一例としての情報処理装置１におけるＩ／Ｏデバイス５０の活性取付け時の処理を、図６に示すシーケンス図（タイミングＴ１〜Ｔ１２）を用いて説明する。
PCIeスイッチ４０において、Ｉ／Ｏデバイス５０が取り付けられていない未実装の状態であるスロット４１は、ＣＰＵ１０の指示によりアサート状態が維持されている（タイミングＴ１）。又、各ポートも、リセット処理部１３の指示によりアサート状態が維持されている（タイミングＴ２）。
【００４８】
また、メモリ２０にはPCIeスイッチ４０の各ポートの現状の構成状態を示すポート構成情報２１が格納される（タイミングＴ３）。なお、これらのスロット４１及びポートのアサート状態の設定やポート構成情報２１の格納の実行は、上述した順番に限られるものではなく、適宜入れ替えもしくは少なくとも一部の処理を並行して行なってもよい。
タイミグＴ４において、未実装であったスロット４１にＩ／Ｏデバイス５０が挿入されると、Ｉ／Ｏデバイス５０からPRSNT#信号がPRSNT信号線６２及び信号中継部３０を介してＣＰＵ１０に入力される。このPRSNT#信号に基づき、タイミングＴ５において、ＣＰＵ１０がスロット４１にＩ／Ｏデバイス５０が挿入されたことを認識する。
【００４９】
タイミングＴ６において、ボード情報取得部１１が、信号集計部３０及びサイドバンドバス６１を介してＩ／Ｏデバイス５０のＲＯＭ５１からボード情報５１１を読み出して取得する。ポート設定部１２は、取得したボード情報５１１からＩ／Ｏデバイス５０のPCIeの種別（レーン数）を識別する。
タイミングＴ７において、ポート設定部１２は、ボード情報５１１から取得したＩ／Ｏデバイス５０のレーン数と、メモリ２０に格納されているポート構成情報２１に示されている当該ポートのレーン数とに基づき、ポート構成の変更が必要であるか否かを判断する。すなわち、ポート設定部１２は、ボード情報５１１から取得したＩ／Ｏデバイス５０のレーン数と、ポート構成情報２１に示されている当該ポートのレーン数とが一致するか否かを判断する。
【００５０】
ボード情報５１１から取得したＩ／Ｏデバイス５０のレーン数と、ポート構成情報２１に示されている当該ポートのレーン数とが一致しない場合、すなわち、ポート構成の変更が必要であると判断される場合には（タイミングＴ７のＹＥＳルート参照）、タイミングＴ８において、ポート設定部１２は、PCIeスイッチ４０のポートの構成を変更する。具体的には、例えば、ポート設定部１２は、サイドバンドバス６１を経由してポート設定レジスタ４３の値を変更する。例えば、１つの×８リンクの物理ポート４２を２つの×４リンクのポート（×４，×４）に分割する。ポート設定部１２は、ポート構成の変更を行なった後に、ポート設定レジスタ４３の値を読み出して（レジスタリード）、変更が正しく行なわれたことを確認する。
【００５１】
また、リセット処理部１３は、ポート設定部１２によりポート構成の変更が行なわれたポートをリセットし、アサート（リセットキープ）状態にする。
その後、タイミングＴ９において、そのＩ／Ｏデバイス５０が挿入されたスロット４１及びポートのアサートを解除する。又、タイミングＴ７においてポート構成の変更が不要であると判断される場合も（タイミングＴ７のＮＯルート参照）、このタイミングＴ９において、そのＩ／Ｏデバイス５０が挿入されたスロット４１及びポートのアサートを解除する。
【００５２】
タイミングＴ１０において、当該スロット４１及びポートのPCIeリンクトレーニングを開始する。これらのスロット４１及びポートのPCIeリンクトレーニングは、PCIeスイッチ４０の機能により自律的に行なわれる。ＣＰＵ１０はPCIeリンクトレーニングの完了を待つ。なお、PCIeリンクトレーニングは、PCIeの規約上、１秒以内に完了する。
タイミングＴ１１において、スロット４１及びポートにおいて、バス（bus）／デバイス（device）／ファンクション（Function）番号の付与やベースアドレス（Base Address）の設定等、PCIeデバイスとしての一般的な初期化処理が実行される。
【００５３】
そして、タイミングＴ１２において、ＣＰＵ１０がスロット４１やポートに対して初期化処理が完了したことを確認し、処理を終了する。
このように、実施形態の一例としての情報処理装置１によれば、ボード情報取得部１１が、スロット４１に接続されたＩ／Ｏデバイス５０のＲＯＭ５１から、当該Ｉ／Ｏデバイス５０のレーン数を示すボード情報５１１を取得する。そして、ポート設定部１２が、このボード情報５１１と、メモリ２０に格納されている、PCIeスイッチ４０のポートのレーン数を示すポート構成情報２１とを比較して、ポート構成の変更の必要の有無を判断する。ポート設定部１２は、この判断の結果、ポート構成の変更が必要であると判断した場合に、ボード情報５１１に合わせてポート構成を変更させる。
【００５４】
Ｉ／Ｏデバイス５０のレーン数に併せてポートのレーン数を変更することで、レーン構成が異なるＩ／Ｏデバイス５０をスロット４１に取り付けて使用することができ、利便性が高い。例えば、スロット４１に、図２に示すような、１つのＬＳＩ５２を備え、×８の１本のリンクを備えるＩ／Ｏデバイス５０−１と、図３に示すような、ＬＳＩ５２を複数備え、×４リンクの複数のリンクを備えるＩ／Ｏデバイス５０−２とのいずれを接続しても使用することができる。又、特に、この際、本情報処理装置１においては、Ｉ／Ｏデバイス５０−２に備えられた複数のＬＳＩ５２の両方を認識することができる。
【００５５】
すなわち、バス構成が異なるＩ／Ｏデバイス５０をPCIeスイッチ４０のポートに付けて使用することができ、利便性が高い。Ｉ／Ｏデバイス５０の構成に応じた自由度の高い運用を行なうことができる。
また、この際、Ｉ／Ｏデバイス５０にレーン数を変換させるスイッチ回路等を備える必要がなく、このようなスイッチ回路を備えることによるレイテンシや製造コストの増大を防止することができる。
【００５６】
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上述した実施形態においては、×８リンクの物理ポート４２に×８リンクのＩ／Ｏデバイス５０−１と、×４リンクを２つ備えたＩ／Ｏデバイス５０−２とを任意に選択して取り付ける例について示しているが、これに限定されるものではない。
【００５７】
すなわち、物理ポート４２は、×８リンク以外の構成を備えてもよい。又、Ｉ／Ｏデバイス５０は、×４リンクを２つ備える以外の構成を備えてもよい。
また、上述した実施形態においては、情報処理装置１にPCIeスイッチ４０が備えられた例について示しているが、これに限定されるものではなく、PCIeスイッチ４０に代えてPCIeのルートポートであってもよい。
【００５８】
さらに、上述した実施形態においては、PCIeの規格に基づくPCIeスイッチ４０を備えた情報処理装置について示しているが、これに限定されるものではなく、PCIe以外の規格に則ったバス装置であってもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【００５９】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
拡張デバイスを取り付け可能な接続ポートと、
前記拡張デバイスに備えられた記憶部から当該拡張デバイスのバス構成を示すバス構成情報を取得する取得部と、
取得した前記バス構成情報に基づいて、前記接続ポートのバス構成を設定する設定部とを備えることを特徴とする、情報処理装置。
【００６０】
（付記２）
前記接続ポートのバス構成の設定状態を示す状態情報を記憶可能な状態情報記憶部を備え、
前記設定部が、前記状態情報と前記取得部によって取得された前記バス構成情報とを比較して、前記状態情報が示すバス構成と前記バス構成情報が示すバス構成とが不一致である場合に、前記前記接続ポートのバス構成を、前記バス構成情報に合わせて変更することを特徴とする、付記１記載の情報処理装置。
【００６１】
（付記３）
前記設定部が前記前記接続ポートの前記バス構成の設定を行なった前記接続ポートをリセットさせるリセット処理部を備えることを特徴とする、付記１又は２記載の情報処理装置。
（付記４）
前記取得部が、前記記憶部からサイドバンドバスを介して前記バス構成情報を取得することを特徴とする、付記１〜３のいずれか１項に記載の情報処理装置。
【００６２】
（付記５）
情報処理装置の接続ポートに接続可能な接続部と、
当該デバイス装置のバス構成を示すバス構成情報を格納する記憶部とを備えることを特徴とする、デバイス装置。
（付記６）
拡張デバイスを取り付け可能な接続ポートを備えたコンピュータに、
前記拡張デバイスに備えられた記憶部から当該拡張デバイスのバス構成を示すバス構成情報を取得し、
取得した前記バス構成情報に基づいて、前記接続ポートのバス構成を設定する、
処理を実行させることを特徴とする、プログラム。
【００６３】
（付記７）
前記接続ポートのバス構成の設定状態を示す状態情報を記憶可能な状態情報記憶部から取得した前記状態情報と、前記記憶部から取得した前記バス構成情報とを比較して、前記状態情報が示すバス構成と前記バス構成情報が示すバス構成とが不一致である場合に、前記前記接続ポートのバス構成を、前記バス構成情報に合わせて変更する、
処理を前記コンピュータに実行させることを特徴とする、付記６記載のプログラム。
【００６４】
（付記８）
前記前記接続ポートの前記バス構成の設定を行なった前記接続ポートをリセットさせる、
処理を前記コンピュータに実行させることを特徴とする、付記６又は７記載のプログラム。
【００６５】
（付記９）
拡張デバイスを取り付け可能な接続ポートを備えたコンピュータに、
前記拡張デバイスに備えられた記憶部から当該拡張デバイスのバス構成を示すバス構成情報を取得し、
取得した前記バス構成情報に基づいて、前記接続ポートのバス構成を設定する、
処理を実行させることを特徴とする、プログラムを記録したコンピュータ読取可能な記録媒体。
【００６６】
（付記１０）
前記接続ポートのバス構成の設定状態を示す状態情報を記憶可能な状態情報記憶部から取得した前記状態情報と、前記記憶部から取得した前記バス構成情報とを比較して、前記状態情報が示すバス構成と前記バス構成情報が示すバス構成とが不一致である場合に、前記前記接続ポートのバス構成を、前記バス構成情報に合わせて変更する、
処理を前記コンピュータに実行させることを特徴とする、付記９記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【００６７】
（付記１１）
前記前記接続ポートの前記バス構成の設定を行なった前記接続ポートをリセットさせる、
処理を前記コンピュータに実行させることを特徴とする、付記９又は１０記載のプログラムを記録したコンピュータ読取可能な記録媒体。
【符号の説明】
【００６８】
１    情報処理装置
１０    ＣＰＵ
１１    ボード情報取得部（取得部）
１２    ポート設定部（設定部）
１３    リセット処理部
２０    メモリ（状態情報記憶部）
２１    ポート構成情報（状態情報）
３０    信号中継部
４０    PCIeスイッチ
４１，４１−０〜４１−３    スロット
４２，４２−０〜４２−３    物理ポート（接続ポート）
４３    ポート設定レジスタ
５０，５０−１，５０−２    Ｉ／Ｏデバイス（拡張デバイス）
５１    ＲＯＭ
５４    コネクタ（接続部）
５１１    ボード情報（バス構成情報）
６１，６３    サイドバンドバス
６２    PRSNT信号線
【図１】
2014137614.tif 000003
【図２】
2014137614.tif 000004
【図３】
2014137614.tif 000005
【図４】
2014137614.tif 000006
【図５】
2014137614.tif 000007
【図６】
2014137614.tif 000008
【図７】
2014137614.tif 000009
【図８】
2014137614.tif 000010
【図９】
2014137614.tif 000011
【図１０】
2014137614.tif 000012
【図１１】
2014137614.tif 000013