(57)【要約】【課題】ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合であっても、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのレーン数の縮退が発生した場合に適切な対処をおこなうことができる情報処理装置およびシステムバス制御方法を提供すること。【解決手段】ＭＭＢ４００は、システムの初期化完了時に、Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃの値を参照し、この値を自身が有する記憶手段であるＲＡＭ４２０に記憶しておく。そして、ＯＳやハードウェアから何らかの装置の異常の通知を受けた場合には、再度Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃの値を参照して、ＲＡＭ４２０に記憶しておいた値と比較する。そして、両者の値が異なっていた場合には、レーン数の縮退が発生した旨のメッセージをコンソールに送信し、デバイスを切り離す等の所定の対応を実施する。【選択図】        図４
2006201881.tif 000002
【特許請求の範囲】
【請求項１】
複数のレーンからなるＰＣＩ  Ｅｘｐｒｅｓｓインターフェースを有する情報処理装置であって、
前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの制御をおこない、このインターフェースの動作状態を保持するコントローラと、
情報処理装置の初期処理完了時に前記コントローラから前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの動作状態を取得して記憶し、故障発生の通知をうけた場合に、記憶している動作状態と前記コントローラが保持している動作状態を比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうシステム管理装置と
を備えたことを特徴とする情報処理装置。
【請求項２】
ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに接続されたデバイスが本来接続されるべきレーン数を記憶する記憶手段をさらに備え、
前記システム管理装置は、情報処理装置の初期処理完了時に、前記コントローラから前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの動作状態を取得し、この情報に含まれる接続レーン数と前記記憶手段に記憶されているレーン数とを比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記コントローラは、制御対象のＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに係る故障が発生した場合に、前記システム管理装置に故障が発生した旨を通知する手段を備えたことを特徴とする請求項１または２のいずれか一つに記載の情報処理装置。
【請求項４】
プロセッサと前記コントローラの接続を動的に組替えることができるスイッチをさらに備え、
前記システム管理装置は、レーン数の縮退が発生していることを検出した場合に、前記スイッチを制御してレーン数の縮退が発生したコントローラを動的に切り離し、プロセッサの稼動状態を継続させることを特徴とする請求項１、２または３のいずれか一つに記載の情報処理装置。
【請求項５】
前記システム管理装置は、レーン数の縮退により切り離したコントローラの代替となるコントローラが実装された旨の通知を受信した場合に、プロセッサの稼動状態を継続させたままで、前記スイッチを制御して前記代替となるコントローラの組込み処理をおこなうことを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記システム管理装置は、プロセッサの稼動状態を継続させたままで代替となるコントローラの組込み処理をおこなう場合に、前記コントローラから前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの動作状態を取得し、この情報に含まれる接続レーン数と前記記憶手段に記憶されているレーン数とを比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうことを特徴とする請求項５に記載の情報処理装置。
【請求項７】
必要な伝送速度に応じて複数のシリアル接続回線を束ねてデバイスを接続するシステムバスインターフェースを有する情報処理装置であって、
前記システムバスインターフェースの制御をおこない、このインターフェースの動作状態を保持するコントローラと、
情報処理装置の初期処理完了時に前記コントローラから前記システムバスインターフェースの動作状態を取得して記憶し、故障発生の通知をうけた場合に、記憶している動作状態と前記コントローラが保持している動作状態を比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうシステム管理装置と
を備えたことを特徴とする情報処理装置。
【請求項８】
必要な伝送速度に応じて複数のシリアル接続回線を束ねてデバイスを接続するシステムバスインターフェースを制御するシステムバス制御方法であって、
情報処理装置の初期処理完了時に、前記システムバスインターフェースの制御をおこなうコントローラからインターフェースの動作状態を取得して記憶する工程と、
故障発生の通知をうけた場合に、記憶している動作状態と前記コントローラが保持している動作状態を比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなう工程と
を含んだことを特徴とするシステムバス制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、情報処理装置およびシステムバス制御方法に関し、特に、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合であっても、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのレーン数の縮退が発生した場合に適切な対処をおこなうことができる情報処理装置およびシステムバス制御方法に関するものである。
【背景技術】
【０００２】
近年、プロセッサの急速な高速化にともなって、プロセッサに関連する各種インターフェースも強く高速化が求められている。たとえば、パソコン等においてプロセッサと各種デバイスとを接続するために利用されてきたＰＣＩは、１３３ＭＢ／秒程度の転送速度を有しているが、この速度ではプロセッサの性能を生かすことができなくなってきている。そこで、より高速な転送速度を得ることができるＰＣＩ  Ｅｘｐｒｅｓｓと呼ばれる新しいインターフェースへの移行が進みつつある。
【０００３】
ＰＣＩ  Ｅｘｐｒｅｓｓでは、転送速度を向上させるため、従来のパラレルインターフェースに替わってシリアルインターフェースが採用されている。シリアルインターフェースは、パラレルインターフェースのように信号間で同期をとる必要がなく、ノイズ等の影響も受け難いため、高速化に適している。ＰＣＩ  Ｅｘｐｒｅｓｓは、５００ＭＢ／秒程度の転送速度を有し、また、複数のインターフェースを束ねて利用することで、さらに高速な転送速度を得ることができるようになっている。
【０００４】
図１は、ＰＣＩ  Ｅｘｐｒｅｓｓにおけるデバイスの接続方式を説明するための説明図である。同図に示すように、ＰＣＩ  Ｅｘｐｒｅｓｓにおいては、コントローラとＰＣＩ  Ｅｘｐｒｅｓｓデバイス間の上下１対のインターフェースをレーンと呼ぶ。そして、コントローラとＰＣＩ  Ｅｘｐｒｅｓｓデバイス間を、１ないし複数のレーンで接続する構成をとる。
【０００５】
ＰＣＩ  Ｅｘｐｒｅｓｓの仕様については、たとえば、非特許文献１に詳しく記載されている。ＰＣＩ  Ｅｘｐｒｅｓｓは、従来のＰＣＩとソフトウェア上の互換性を確保しており、ＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能を必要としない限りは、従来のＰＣＩに対応したドライバやＯＳ（Operating System）をそのまま利用できることも特徴になっている。
【０００６】
【非特許文献１】“PCI Express Base Specification 1.0a”、［online］、PCI-SIG、平成１７年１月５日検索］、インターネット＜URL：http://www.pcisig.com/specifications/pciexpress/base/＞
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、従来のＰＣＩに対応したドライバやＯＳをそのまま利用した場合、ＰＣＩ  Ｅｘｐｒｅｓｓ経由で接続したデバイスが期待通りに動作しない場合がある。既に説明した通り、ＰＣＩ  Ｅｘｐｒｅｓｓでは、コントローラとＰＣＩ  Ｅｘｐｒｅｓｓデバイス間を複数のレーンで接続して伝送速度を向上させることができるが、たとえば、本来２レーンを使って接続すべきＰＣＩ  Ｅｘｐｒｅｓｓデバイスが、インターフェースの故障などにより１レーンで接続されてしまったとしても、従来のＰＣＩに対応したドライバやＯＳはそのまま動作してしまう。
【０００８】
従来のＰＣＩでは、複数のレーンを束ねて利用するという概念が存在しないため、一部のレーンが動作せず、レーン数が縮退した状態であっても、従来のＰＣＩに対応したドライバやＯＳはそのことを検出することができない。ストレージデバイスのような高速性を要求されるデバイスにおいてこのような事態が発生すると、本来の性能が得られないままシステムが動作し続けることになる。また、このように一部の故障を検出できないままシステムが動作し続けることは、故障の連鎖により大規模な障害を招く可能性もある。
【０００９】
この発明は、上述した従来技術による問題点を解消するためになされたものであり、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合であっても、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのレーン数の縮退が発生した場合に適切な対処をおこなうことができる情報処理装置およびシステムバス制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上述した課題を解決し、目的を達成するため、本発明は、複数のレーンからなるＰＣＩ  Ｅｘｐｒｅｓｓインターフェースを有する情報処理装置であって、前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの制御をおこない、このインターフェースの動作状態を保持するコントローラと、情報処理装置の初期処理完了時に前記コントローラから前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの動作状態を取得して記憶し、故障発生の通知をうけた場合に、記憶している動作状態と前記コントローラが保持している動作状態を比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうシステム管理装置とを備えたことを特徴とする。
【００１１】
また、本発明は、必要な伝送速度に応じて複数のシリアル接続回線を束ねてデバイスを接続するシステムバスインターフェースを有する情報処理装置であって、前記システムバスインターフェースの制御をおこない、このインターフェースの動作状態を保持するコントローラと、情報処理装置の初期処理完了時に前記コントローラから前記システムバスインターフェースの動作状態を取得して記憶し、故障発生の通知をうけた場合に、記憶している動作状態と前記コントローラが保持している動作状態を比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうシステム管理装置とを備えたことを特徴とする。
【００１２】
また、本発明は、必要な伝送速度に応じて複数のシリアル接続回線を束ねてデバイスを接続するシステムバスインターフェースを制御するシステムバス制御方法であって、情報処理装置の初期処理完了時に、前記システムバスインターフェースの制御をおこなうコントローラからインターフェースの動作状態を取得して記憶する工程と、故障発生の通知をうけた場合に、記憶している動作状態と前記コントローラが保持している動作状態を比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなう工程とを含んだことを特徴とする。
【００１３】
この発明によれば、レーン数の縮退を監視し、レーン数の縮退が発生した場合に対応処理をおこなう仕組みをハードウェアに設けたので、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合でも、レーン数の縮退が発生した場合に適切な対応をおこなうことができる。
【００１４】
また、本発明は、上記の発明において、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに接続されたデバイスが本来接続されるべきレーン数を記憶する記憶手段をさらに備え、前記システム管理装置は、情報処理装置の初期処理完了時に、前記コントローラから前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの動作状態を取得し、この情報に含まれる接続レーン数と前記記憶手段に記憶されているレーン数とを比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうことを特徴とする。
【００１５】
この発明によれば、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに接続されたデバイスが本来接続されるべきレーン数を記憶しておき、システム起動時にその通りのレーン数で接続がおこなわれたかを確認するように構成したので、レーン数が縮退したままシステムが起動することを防止することができる。
【００１６】
また、本発明は、上記の発明において、前記コントローラは、制御対象のＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに係る故障が発生した場合に、前記システム管理装置に故障が発生した旨を通知する手段を備えたことを特徴とする。
【００１７】
この発明によれば、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのコントローラからシステム管理装置に対して故障発生の通知をおこなうように構成したので、ドライバやＯＳから故障の通知がない場合でも、レーン数の縮退等のＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの故障をシステム管理装置が検知することができる。
【００１８】
また、本発明は、上記の発明において、プロセッサと前記コントローラの接続を動的に組替えることができるスイッチをさらに備え、前記システム管理装置は、レーン数の縮退が発生していることを検出した場合に、前記スイッチを制御してレーン数の縮退が発生したコントローラを動的に切り離し、プロセッサの稼動状態を継続させることを特徴とする。
【００１９】
この発明によれば、レーン数の縮退が発生した場合でもシステムが継続動作できるように構成したので、システムの運用と保守を柔軟におこなうことができる。
【００２０】
また、本発明は、上記の発明において、前記システム管理装置は、レーン数の縮退により切り離したコントローラの代替となるコントローラが実装された旨の通知を受信した場合に、プロセッサの稼動状態を継続させたままで、前記スイッチを制御して前記代替となるコントローラの組込み処理をおこなうことを特徴とする。
【００２１】
この発明によれば、システムが継続動作したままの状態で、レーン数が縮退したコントローラの代替コントローラを組み込むことができるように構成したので、システムの運用と保守を柔軟におこなうことができる。
【００２２】
また、本発明は、上記の発明において、前記システム管理装置は、プロセッサの稼動状態を継続させたままで代替となるコントローラの組込み処理をおこなう場合に、前記コントローラから前記ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの動作状態を取得し、この情報に含まれる接続レーン数と前記記憶手段に記憶されているレーン数とを比較し、レーン数が縮退していることを検出したならば、予め決められた所定の対応処理をおこなうことを特徴とする。
【００２３】
この発明によれば、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに接続されたデバイスが本来接続されるべきレーン数を記憶しておき、代替コントローラの組み込み時にその通りのレーン数で接続がおこなわれたかを確認するように構成したので、レーン数が縮退したままシステムが動作することを防止することができる。
【発明の効果】
【００２４】
本発明によれば、レーン数の縮退を監視し、レーン数の縮退が発生した場合に対応処理をおこなう仕組みをハードウェアに設けたので、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合でも、レーン数の縮退が発生した場合に適切な対応をおこなうことができるという効果を奏する。
【００２５】
また、本発明によれば、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに接続されたデバイスが本来接続されるべきレーン数を記憶しておき、システム起動時にその通りのレーン数で接続がおこなわれたかを確認するように構成したので、レーン数が縮退したままシステムが起動することを防止することができるという効果を奏する。
【００２６】
また、本発明によれば、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのコントローラからシステム管理装置に対して故障発生の通知をおこなうように構成したので、ドライバやＯＳから故障の通知がない場合でも、レーン数の縮退等のＰＣＩ  Ｅｘｐｒｅｓｓインターフェースの故障をシステム管理装置が検知することができるという効果を奏する。
【００２７】
また、本発明によれば、レーン数の縮退が発生した場合でもシステムが継続動作できるように構成したので、システムの運用と保守を柔軟におこなうことができるという効果を奏する。
【００２８】
また、本発明によれば、システムが継続動作したままの状態で、レーン数が縮退したコントローラの代替コントローラを組み込むことができるように構成したので、システムの運用と保守を柔軟におこなうことができるという効果を奏する。
【００２９】
また、本発明によれば、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースに接続されたデバイスが本来接続されるべきレーン数を記憶しておき、代替コントローラの組み込み時にその通りのレーン数で接続がおこなわれたかを確認するように構成したので、レーン数が縮退したままシステムが動作することを防止することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３０】
以下に添付図面を参照して、この発明に係る情報処理装置およびシステムバス制御方法の好適な実施の形態を詳細に説明する。
【実施例】
【００３１】
まず、本実施例に係るシステムバス制御方式を適用する情報処理装置について説明する。図２は、本実施例に係るシステムバス制御方式を適用する情報処理装置の構成を示すブロック図である。同図に示すように、情報処理装置１０は、システムボード１００〜１０３とＩ／Ｏユニット２００〜２０３をクロスバースイッチ（ＸＢ）３００を介して接続した構成をとる。また、システムボード１００〜１０３、Ｉ／Ｏユニット２００〜２０３およびクロスバースイッチ３００には、これらの接続状態を制御するＭＭＢ（Management Board）４００も接続される。
【００３２】
システムボード１００〜１０３は、プロセッサ及びメモリを搭載したボードである。Ｉ／Ｏユニット２００〜２０３は、ＰＣＩ  Ｅｘｐｒｅｓｓデバイスなどの各種デバイスを接続するための装置である。クロスバースイッチ３００は、システムボード１００〜１０３とＩ／Ｏユニット２００〜２０３とを接続するためのスイッチである。ＭＭＢ４００は、情報処理装置１０に係る各種管理処理をおこなうシステム管理装置であり、システムボード１００〜１０３とＩ／Ｏユニット２００〜２０３との接続状態の制御もおこなう。
【００３３】
クロスバースイッチ３００を介して接続されたシステムボードとＩ／Ｏユニットの組合せは、パーティションと呼ばれ、それぞれのパーティションは、独立したシステムのように動作する。たとえば、図２の例では、システムボード１００と、Ｉ／Ｏユニット２００とが一つのパーティションを構成し、システムボード１０１〜１０２と、Ｉ／Ｏユニット２０１〜２０２とがもう一つののパーティションを構成している。これらのパーティションは独立しているので、それぞれ別のＯＳを動作させることもできる。
【００３４】
なお、クロスバースイッチ３００に接続されるシステムボードやＩ／Ｏユニットの数は何台であっても構わない。
【００３５】
次に、Ｉ／Ｏユニットの構成について説明する。ここでは、Ｉ／Ｏユニット２００を例にとって説明するが、Ｉ／Ｏユニット２０１〜２０３も同様の構成を有する。
【００３６】
図３は、図２に示したＩ／Ｏユニット２００の構成を示すブロック図である。同図に示すように、Ｉ／Ｏユニット２００は、Ｉ／Ｏブリッジ２１０を有し、Ｉ／Ｏブリッジ２１０配下に各種のＰＣＩ  Ｅｘｐｒｅｓｓデバイスを接続する。Ｉ／Ｏブリッジ２１０は、ＰＣＩ  Ｅｘｐｒｅｓｓデバイスとクロスバースイッチ３００の間で信号の変換をおこなう装置であり、接続されるＰＣＩ  Ｅｘｐｒｅｓｓデバイスごとに制御レジスタを有する。また、Ｉ／Ｏブリッジ２１０は、クロスバースイッチ３００との接続状態の制御を受けるためにＭＭＢ４００とも接続される。
【００３７】
図３の例では、Ｉ／Ｏブリッジ２１０配下にオンボードデバイス２２０と、ＰＣＩブリッジ２３０と、スロット２４０とが接続されており、これらに対応した制御レジスタ２１１〜２１３が設けられている。オンボードデバイス２２０は、Ｉ／Ｏユニット２００にオンボードで供えられたＰＣＩ  Ｅｘｐｒｅｓｓデバイスであり、たとえば、ネットワークインターフェース装置などがこれに相当する。ＰＣＩブリッジ２３０は、従来のＰＣＩデバイスを接続するためのブリッジである。スロット２４０は、拡張ボードとして提供されるＰＣＩ  Ｅｘｐｒｅｓｓデバイスを接続するためのスロットである。
【００３８】
Ｉ／Ｏブリッジ２１０は、図１のコントローラに相当し、Ｉ／Ｏブリッジ２１０とオンボードデバイス２２０の間と、Ｉ／Ｏブリッジ２１０とＰＣＩブリッジ２３０の間と、Ｉ／Ｏブリッジ２１０とスロット２４０の間とが、それぞれＰＣＩ  Ｅｘｐｒｅｓｓによって接続される構成となっている。それぞれの接続は、ポートと呼ばれ、１ないし複数のレーンからなっている。なお、Ｉ／Ｏブリッジ２１０配下に接続されるデバイスやスロットは、この例の通りである必要はなく、どのようなデバイスやスロットがいくつ接続されていても構わない。
【００３９】
次に、制御レジスタの構成について説明する。ここでは、制御レジスタ２１１を例にとって説明するが、制御レジスタ２１２〜２１３も同様の構成を有する。
【００４０】
図４は、図３に示した制御レジスタ２１１の構成を示すブロック図である。同図に示すように、制御レジスタ２１１は、ＰＣＩ  Ｅｘｐｒｅｓｓの制御をおこなうための各種レジスタを有する。制御レジスタ２１１が有するレジスタは、大別して２種類存在する。一つは、ＰＣＩ  Ｅｘｐｒｅｓｓの仕様を実現するためのものであり、もう一つは、レーン数の縮退を監視するためのものである。そして、これらのレジスタは、ＭＭＢ４００から参照および／もしくは設定が可能になっている。
【００４１】
Ｌｉｎｋ  Ｓｔａｔｕｓレジスタ２１１ａと、Ｌｉｎｋ  Ｓｐｅｅｄレジスタ２１１ｂと、Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃは、ＰＣＩ  Ｅｘｐｒｅｓｓの仕様を実現するためのレジスタの一部である。Ｌｉｎｋ  Ｓｔａｔｕｓレジスタ２１１ａは、デバイスの接続状態を保持する。Ｌｉｎｋ  Ｓｐｅｅｄレジスタ２１１ｂは、デバイスとの間の転送速度を保持する。Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃは、デバイスとの接続レーン数を保持する。
【００４２】
ＭＭＢ４００は、システムの初期化完了時に、Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃの値を参照し、この値を自身が有する記憶手段であるＲＡＭ４２０に記憶しておく。そして、ＯＳやハードウェアから何らかの装置の異常の通知を受けた場合には、再度Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃの値を参照して、ＲＡＭ４２０に記憶しておいた値と比較する。そして、両者の値が異なっていた場合には、レーン数の縮退が発生した旨のメッセージをコンソールに送信し、デバイスを切り離す等の所定の対応を実施する。
【００４３】
このように、ＭＭＢ４００にレーン数の縮退の監視と対応をおこなう機能をもたせることにより、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合でも、レーン数の縮退が発生した場合に適切な処理をおこなうことが可能になる。また、ＭＭＢ４００は、もともと各種の制御管理機能を備えているので、わずかな機能追加によってレーン数の縮退の監視と対応をおこなう機能を実現することができる。
【００４４】
Ａｖａｉｌａｂｌｅ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｄと、Ｍａｘ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｅと、割込Ｍａｓｋレジスタ２１１ｆと、Ｅｒｒｏｒ  Ｓｔａｔｕｓレジスタ２１１ｇは、レーン数の縮退を監視するためのレジスタである。Ａｖａｉｌａｂｌｅ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｄには、接続されているデバイスが仕様上利用可能なレーン数が保持される。Ｍａｘ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｅには、Ｉ／Ｏユニット側で物理的に接続可能なレーン数が保持される。
【００４５】
ＭＭＢ４００は、システムの初期化完了時に、Ａｖａｉｌａｂｌｅ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｄとＭａｘ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｅの値のうち小さい方の値と、Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃの値とを比較し、値が一致しない場合は、レーン数の縮退が発生した旨のメッセージをコンソールに送信し、システムの起動を停止させる等の対処をおこなう。
【００４６】
このように、本来接続されるべきレーン数をレジスタに保持しておき、システムの初期化時に本来のレーン数でデバイスが接続されたかをＭＭＢ４００が確認するように構成することにより、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合でも、レーン数が縮退した状態でシステムが起動することを防止することができる。なお、Ａｖａｉｌａｂｌｅ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｄとＭａｘ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｅの値は、システムの管理者が設定するものとしてもよいし、ＭＭＢ４００等が自動で設定するものとしてもよい。
【００４７】
割込Ｍａｓｋレジスタ２１１ｆは、当該のポートにおいて検出したエラーをＭＭＢ４００に割り込みとして通知するか否かを設定するためのマスクである。Ｅｒｒｏｒ  Ｓｔａｔｕｓレジスタ２１１ｇは、当該のポートにおいてエラーが発生した場合に、エラーの内容に応じたビットが設定されるレジスタである。ポートにおいて何らかのエラーが検出されると、そのエラーの内容に応じたビットがＥｒｒｏｒ  Ｓｔａｔｕｓレジスタ２１１ｇに立てられる。この値は、割込Ｍａｓｋレジスタ２１１ｆの値と論理積をとられ、何らかのビットが立ったままであれば、ＭＭＢ４００に対して割り込みが通知される仕組みとなっている。
【００４８】
割り込みが通知されると、ＭＭＢ４００は、前述のように、Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ２１１ｃの値とＲＡＭ４２０に記憶しておいた値と比較してレーン数の縮退が発生しているか否かを確認する。そして、レーン数の縮退が発生している場合には、そのポートに接続されているデバイスの切り離し等の対応をおこなう。
【００４９】
レーン数の縮退によりデバイスの切り離しをおこなった場合、そのデバイスがシステムの稼動に必須のものでない限り、システムは稼動を続ける。そして、正常なポートに正常なデバイスを接続し、ＭＭＢ４００を設定して、そのポートを含むＩ／Ｏユニットをパーティションに参加させることにより、システムは元の状態に復元される。このように、システムの稼動を継続したまま、システムを再構成することをダイナミックリコンフィギュレーションと呼ぶ。
【００５０】
ダイナミックリコンフィギュレーション実行時には、システム起動時と同様に制御レジスタが初期設定され、ＭＭＢ４００によってレーン数が縮退していないかどうかの確認がおこなわれる。
【００５１】
次に、ＭＭＢの構成について説明する。図５は、図２に示したＭＭＢ４００の構成を示すブロック図である。同図に示すように、ＭＭＢ４００は、ＣＰＵ４１０と、ＲＡＭ４２０と、ネットワークコントローラ４３０と、フラッシュメモリー４４０と、リアルタイムクロック（ＲＴＣ）４５０と、ＳＭＢＵＳコントローラ４６０ａ〜４６０ｅとを接続して構成される。
【００５２】
ＣＰＵ４１０は、フラッシュメモリー４４０に記憶されたファームウェア（プログラム）を実行することで各種処理を実現するプロセッサである。ＲＡＭ４２０は、ＣＰＵ４１０が各種処理において利用するデータ等を一時的に記憶する記憶装置である。ネットワークコントローラ４３０は、ネットワークを介してコンソールと各種情報のやりとりをおこなうためのネットワークインターフェース装置である。
【００５３】
フラッシュメモリー４４０は、ＣＰＵ４１０が実行するファームウェアや各種設定を固定的に記憶する記憶装置である。リアルタイムクロック４５０は、各種制御に必要な計時をおこなうための装置である。ＳＭＢＵＳコントローラ４６０ａ〜４６０ｅは、ＭＭＢ４００が制御をおこなう対象であるシステムボード１００〜１０３と、Ｉ／Ｏユニット２００〜２０３と、クロスバースイッチ３００と信号のやりとりをおこなうためのインターフェース装置である。
【００５４】
ＭＭＢ４００は、フラッシュメモリー４４０に記憶されたファームウェアを実行し、必要に応じてデータをＲＡＭ４２０に記憶させたり、ＲＡＭ４２０に記憶させたデータを読み出したりしながら各種処理を実行する。そして、ＳＭＢＵＳコントローラ４６０ａ〜４６０ｅを介してシステムボードやＩ／Ｏユニットやクロスバースイッチと信号のやりとりをおこなって、これらの装置の接続状態を制御する。
【００５５】
図６は、ＭＭＢ４００上で動作するファームウェアの構成を示すブロック図である。同図に示すように、ファームウェア５００は、ＩＰＭＩ（Intelligent Platform Management Initiative）５１０と、ＯＥＭ拡張部５２０とからなる。ＩＰＭＩ５１０は、サーバ装置等の情報処理装置を管理するための標準的なファームウェアである。ＯＥＭ拡張部５２０は、ＩＰＭＩ５１０の機能を補充／拡張するために情報処理装置のベンダーが追加したファームウェアである。
【００５６】
ＯＥＭ拡張部５２０は、パーティション制御部５２１や、スケジュール制御部５２２や、ファームウェア更新部５２３などの複数のモジュールからなる。スケジュール制御部５２２は、事前に設定されたスケジュールに従って各種処理を自動起動するためのモジュールである。ファームウェア更新部５２３は、ファームウェアの書き換えをおこなうためのモジュールである。
【００５７】
パーティション制御部５２１は、クロスバーを介してシステムボードとＩ／Ｏユニットを接続してパーティションを構成するためのモジュールである。このモジュールは、さらに、ＰＣＩ  Ｅｘｐｒｅｓｓのポートのレーン数の縮退の監視と、縮退が発生した場合の対応の処理もおこなう。
【００５８】
次に、レーン数の縮退に関連して情報処理装置１０がどのように動作するのかについて説明する。図７〜８は、図２に示した情報処理装置１０の処理手順を示すフローチャートである。図７に示すように、システムの立上げがおこなわれると（ステップＳ２０１）、システムではＢＩＯＳ（Basic Input/Output System）が起動された後（ステップＳ２０２）、診断プログラムによるＰＯＳＴ（Power On Self Test）が実行される（ステップＳ２０３）。そして、ＰＯＳＴが正常に完了すると、ＯＳが起動され（ステップＳ２０４）、通常のシステム運用状態となる（ステップＳ２０５）。
【００５９】
ＭＭＢ４００は、システム起動後（ステップＳ１０１）、ＰＯＳＴの完了を待機する（ステップＳ１０２）。そして、システムからＰＯＳＴの結果が通知されると、ＰＣＩ  Ｅｘｐｒｅｓｓポートの初期化状態を確認する。ここで、初期化が正常に完了せずにレーン数が縮退したポートを発見した場合は（ステップＳ１０３否定）、コンソールにその旨のメッセージを送信した後、システムを停止させる。
【００６０】
ＰＣＩ  Ｅｘｐｒｅｓｓポートの初期化が正常に完了している場合（ステップＳ１０３肯定）、ＭＭＢ４００は、各ポートの接続レーン情報を制御レジスタから読出して内部の記憶手段に保持し（ステップＳ１０４）、システム監視状態に入る（ステップＳ１０５）。
【００６１】
システム監視状態に入ったＭＭＢ４００は、Ｉ／Ｏユニット等のハードウェアやＯＳ等のソフトウェアから故障が発生した旨の通知を受けると（ステップＳ１０６肯定）、各ポートの接続レーン情報を制御レジスタから読出し、内部に保持しているレーン数との比較をおこなう（ステップＳ１０７）。ここで、いずれかのポートにおいてレーン数の変化を発見した場合は（ステップＳ１０８肯定）、そのポートの切り離しをおこない、システムに対して当該のポートを切り離した旨を通知する（ステップ１０９）。そして、コンソールにエラー情報を送信した後（ステップＳ１１０）、システム監視状態に復帰する。
【００６２】
通知を受けたシステム側は、ポートの切り離しを認識して必要な処理をおこない（ステップＳ２０６）、運用状態を継続する。
【００６３】
図８は、ダイナミックリコンフィギュレーションにより、システムが復旧する場面の動作を示している。システムは、ポートが縮退したまま稼動している状態となっている（ステップＳ４０１）。管理者が代替のＩ／Ｏユニットを筐体に実装し、コンソールからＭＭＢ４００に対してポートの組込み指示をおこなうことでダイナミックリコンフィギュレーションが実行される。
【００６４】
オペレータからの指示を受けたＭＭＢ４００は、新規Ｉ／Ｏユニットの電源を投入し、システム起動時と同様の初期処理をおこなう（ステップＳ３０１）。そして、新規Ｉ／Ｏユニットとクロスバースイッチ３００にパーティション番号を設定した後（ステップＳ３０２）、クロスバースイッチ３００の設定をおこなって新規Ｉ／Ｏユニットからのデータ受付けを有効にし（ステップＳ３０３）、新規Ｉ／Ｏユニットの設定をおこなってクロスバースイッチ３００へのデータ発行を有効にする（ステップＳ３０４）。
【００６５】
続いて、ＭＭＢ４００は、ＯＳに対して新規Ｉ／Ｏユニットを組み込んだことを通知する（ステップＳ３０５）。通知を受けたＯＳは、ポート組込み処理をおこない、新規Ｉ／Ｏユニットを稼動状態にする（ステップＳ４０２）。こうして、システムは、ポートが復旧した状態で稼動する状態となる（ステップＳ４０３）。
【００６６】
上述してきたように、本実施例では、レーン数の縮退を監視し、レーン数の縮退が発生した場合に対応処理をおこなう仕組みをハードウェアに設けたので、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合でも、レーン数の縮退が発生した場合に適切な対応をおこなうことができる。
【産業上の利用可能性】
【００６７】
以上のように、本発明にかかる情報処理装置およびシステムバス制御方法は、ＰＣＩ  Ｅｘｐｒｅｓｓの制御に有用であり、特に、ドライバやＯＳがＰＣＩ  Ｅｘｐｒｅｓｓ特有の機能に対応していない場合であっても、ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースのレーン数の縮退が発生した場合に適切な対処をおこなうことが必要な場合に適している。
【図面の簡単な説明】
【００６８】
【図１】ＰＣＩ  Ｅｘｐｒｅｓｓにおけるデバイスの接続方式を説明するための説明図である。
【図２】本実施例に係るシステムバス制御方式を適用する情報処理装置の構成を示すブロック図である。
【図３】図２に示したＩ／Ｏユニットの構成を示すブロック図である。
【図４】図３に示した制御レジスタの構成を示すブロック図である。
【図５】図２に示したＭＭＢの構成を示すブロック図である。
【図６】ＭＭＢ上で動作するファームウェアの構成を示すブロック図である。
【図７】図２に示した情報処理装置の処理手順を示すフローチャートである。
【図８】図２に示した情報処理装置の処理手順を示すフローチャートである。
【符号の説明】
【００６９】
１０    情報処理装置
１００、１０１、１０２、１０３    システムボード
２００、２０１、２０２、２０３    Ｉ／Ｏユニット
２１０    Ｉ／Ｏブリッジ
２１１、２１２、２１３    制御レジスタ
２１１ａ  Ｌｉｎｋ  Ｓｔａｔｕｓレジスタ
２１１ｂ  Ｌｉｎｋ  Ｓｐｅｅｄレジスタ
２１１ｃ  Ｎｅｇｏｔｉａｔｅｄ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ
２１１ｄ  Ａｖａｉｌａｂｌｅ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ
２１１ｅ  Ｍａｘ  Ｌｉｎｋ  Ｗｉｄｔｈレジスタ
２１１ｆ  割込Ｍａｓｋレジスタ
２１１ｇ  Ｅｒｒｏｒ  Ｓｔａｔｕｓレジスタ
２２０    オンボードデバイス
２３０    ＰＣＩブリッジ
２４０    スロット
３００    クロスバースイッチ（ＸＢ）
４００    ＭＭＢ
４１０    ＣＰＵ
４２０    ＲＡＭ
４３０    ネットワークコントローラ
４４０    フラッシュメモリー
４５０    リアルタイムクロック（ＲＴＣ）
４６０ａ、４６０ｂ、４６０ｃ、４６０ｄ、４６０ｅ  ＳＭＢＵＳコントローラ
５００    ファームウェア
５１０    ＩＰＭＩ（２．０）
５２０    ＯＥＭ拡張部
５２１    パーティション制御部
５２２    スケジュール制御部
５２３    ファームウェア更新部
【図１】
2006201881.tif 000003
【図２】
2006201881.tif 000004
【図３】
2006201881.tif 000005
【図４】
2006201881.tif 000006
【図５】
2006201881.tif 000007
【図６】
2006201881.tif 000008
【図７】
2006201881.tif 000009
【図８】
2006201881.tif 000010