以下、図面を用いて実施形態を説明する。
図1は、情報処理装置、情報処理システムおよび通信装置の一実施形態を示す。図1に示す情報処理システムSYSは、複数のレーンL1および複数のレーンL2を介して互いに接続される複数の情報処理装置PDEV(PDEV1、PDEV2)を有する。情報処理装置PDEV1、PDEV2は、レーンL1、L2を介してデータを互いに送受信する。なお、情報処理システムSYSが有する情報処理装置PDEVの数は、2台に限定されない。情報処理装置PDEV1、PDEV2は、互いに同一または同様の構成を有する。このため、以下では、情報処理装置PDEV1の構成および機能が説明される。
情報処理装置PDEV1は、演算処理装置10、記憶装置20および通信装置30を有する。記憶装置20は、演算処理装置10が処理するデータを記憶する。通信装置30は、検出部40と縮退制御部50とを有し、複数のレーンL1を介して他の情報処理装置PDEV2からデータを受信し、受信したデータを演算処理装置10に出力する。通信装置30は、演算処理装置10から出力されるデータを、レーンL2を介して他の情報処理装置PDEV2に送信する機能を有する。
検出部40は、レーンL1の障害を検出し、障害の発生を示すエラー情報ERRを縮退制御部50に出力する。縮退制御部50は、縮退要求に基づいて、レーンL1のいずれかの使用を停止する縮退処理を実行し、復帰要求に基づいて、使用を停止したレーンL1の使用を再開する復帰処理を実行する。ここで、縮退要求に基づいて使用が停止されるレーンL1は、障害が発生していない正常なレーンである。復帰処理は、使用を再開したレーンL1を用いてデータの正常な伝送が確認されたことに基づいて完了する。
なお、情報処理装置PDEV1は、縮退要求に基づいて、レーンL1のいずれかの使用を停止する縮退要求情報を、レーンL2を介して情報処理装置PDEV2に送信してもよい。情報処理装置PDEV2は、情報処理装置PDEV1から縮退要求情報を受信した場合、レーンL1のいずれかの使用を停止する縮退処理を実行する。また、情報処理装置PDEV1は、復帰要求に基づいて、使用を停止したレーンL1の使用を再開する復帰要求情報を、レーンL2を介して情報処理装置PDEV2に送信してもよい。情報処理装置PDEV2は、情報処理装置PDEV1から復帰要求情報を受信した場合、使用を停止したレーンL1の使用を再開する復帰処理を実行する。
さらに、縮退制御部50は、復帰処理中に、使用を再開したレーンL1の障害の発生を示すエラー情報ERRを検出部40から受けた場合、使用を再開したレーンL1の使用を停止する縮退処理を実行する。この場合、縮退制御部50は、使用を再開したレーンL1の使用を停止させる縮退要求情報を、レーンL2を介して情報処理装置PDEV2に送信してもよい。情報処理装置PDEV2は、情報処理装置PDEV1から縮退要求情報を受信した場合、使用を再開したレーンL1の使用を停止する。なお、レーンL1の障害は、レーンL1の断線、またはレーンL1にデータを送信する回路の故障等により発生する。縮退制御部50は、縮退要求に基づいて縮退処理を実行し、復帰要求に基づいて復帰処理を実行し、復帰処理中における検出部による検出に基づいて、使用を再開したレーンL1の使用を停止する縮退処理を実行する制御部の一例である。
例えば、縮退要求は、情報処理装置PDEV1または情報処理システムSYSの動作モードを通常動作モードから低電力モードに移行させるときに生成される。復帰要求は、情報処理装置PDEV1または情報処理システムSYSの動作モードを低電力モードから通常動作モードに移行させるときに生成される。縮退要求および復帰要求は、動作モードの変更に基づいて、演算処理装置10から供給されてもよく、情報処理装置PDEV1の外部(情報処理装置PDEV2等)から供給されてもよい。
なお、縮退制御部50は、縮退要求に基づいて、レーンL1のいずれかの使用を停止するとともに、レーンL2のいずれかの使用を停止する縮退処理を実行してもよい。この場合、使用を停止するレーンL1、L2の数は、互いに等しいことが望ましい。また、縮退制御部50は、縮退要求に基づいて、レーンL1、L2の縮退処理を実行する場合、復帰要求に基づいて、使用を停止したレーンL1、L2の使用を再開する復帰処理を実行する。
図1に示す情報処理システムSYSでは、レーンL1の復帰処理中に、使用の再開が指示されたレーンL1に障害が検出された場合、情報処理装置PDEV1は、レーンL1のいずれかの使用が停止された元の縮退状態に戻る。この場合、情報処理装置PDEV2から情報処理装置PDEV1への通信は遮断されることなく正常に実行され、情報処理システムSYSは、正常に動作する。これに対して、レーンの復帰処理により、障害があるレーンL1の使用が再開された場合、情報処理装置PDEV2から情報処理装置PDEV1への通信は正常に実行されず、情報処理システムSYSは、正常に動作しなくなる。
以上、図1に示す実施形態では、縮退により使用を停止しているレーンL1に障害が発生した場合、レーンL1の復帰が指示されても、レーンL1の縮退状態を維持することで、情報処理装置PDEV1、PDEV2間の通信の遮断を抑止することができる。この結果、情報処理システムSYSの信頼性が低下することを抑止することができる。
図2は、情報処理装置、情報処理システムおよび通信装置の別の実施形態を示す。図2に示す情報処理システムSYS1は、複数の伝送路PHL(以下、物理レーンPHLとも称される)を含むリンクを介して接続される複数の情報処理装置PDEV(PDEV1、PDEV2)を有する。情報処理装置PDEV1、PDEV2は、複数の物理レーンPHLを用いて、データを相互に伝送する機能を有する。情報処理装置PDEV1、PDEV2を相互に接続するリンクは、光伝送方式または電気伝送方式が適用される。
情報処理装置PDEV1、PDEV2は、情報処理システムSYS1のノードにそれぞれ対応するため、以下では、情報処理装置PDEV1、PDEV2はノードとも称される。各情報処理装置PDEV1、PDEV2は、物理層(physical layer)の機能を実現するインタフェース部PHY、フレーム転送部FTR、CPU(Central Processing Unit)およびメインメモリMMを有する。インタフェース部PHYおよびフレーム転送部FTRは、複数の物理レーンPHLを介して他の情報処理装置PDEVからデータを受信し、受信したデータをCPUに出力する通信装置の一例である。
なお、情報処理システムSYS1は、3以上の情報処理装置PDEVを有してもよく、この場合、各情報処理装置PDEVは、物理レーンPHLを介して所定数の他の情報処理装置PDEVに接続される。また、情報処理装置PDEVは、インタフェース部PHYとフレーム転送部FTRとの組を1つのCPUに対して複数有してもよい。
CPUは、メインメモリMMに格納されたプログラムに基づいて動作し、演算処理を実行する。CPUは、演算処理を実行する演算処理装置の一例である。CPUは、フレーム転送部FTRにデータSDATAを送信し、フレーム転送部FTRからデータRDATAを受信する。データRDATAは、CPUが実行する演算に用いるデータを含んでもよく、データSDATAは、CPUが実行した演算の結果を含んでもよい。
なお、情報処理システムSYS1は、複数の物理レーンPHLの所定数の使用を停止することで、消費電力を削減する低電力モードを有している。CPUは、情報処理システムSYS1の動作モードを通常動作モードから低電力モードに移行する場合、および情報処理システムSYS1の動作モードを低電力モードから通常動作モードに移行する場合、切り替え通知GRDをフレーム転送部FTRに出力する。
メインメモリMMは、メモリモジュール等の記憶装置であり、CPUが実行するプログラムおよびCPUが処理するデータ等を記憶する。メインメモリMMは、CPUで処理するデータおよびプログラムを記憶し、CPUによりアクセスされる記憶装置の一例である。
フレーム転送部FTRは、インタフェース部PHYに対応する物理層より上位の層(例えば、データリンク層)に相当する回路ブロックである。フレーム転送部FTRは、CPUからデータSDATAを受信し、受信したデータSDATAを含むフレームデータSFRAMを生成し、生成したフレームデータSFRAMをインタフェース部PHYに転送する。また、フレーム転送部FTRは、インタフェース部PHYからフレームデータRFRAMを受信し、受信したフレームデータRFRAMに含まれるデータRDATAをCPUに転送する。フレームデータSFRAM、RFRAMの各々は、データの伝送単位である所定数のパケットを含む。フレームデータSFRAM、RFRAMの各々が含むパケットの数は、パケットに含まれるデータの大きさに応じて変化する。
さらに、フレーム転送部FTRは、CPUからの切り替え通知GRDに基づいて、複数の物理レーンPHLの所定数の使用を停止する制御を実行し、または、停止した物理レーンPHLの使用を再開する制御を実行する。以降の説明では、物理レーンPHLの使用を停止することは、縮退またはレーン縮退とも称され、停止した物理レーンPHLの使用を再開することは、レーンの復帰またはレーン縮退の解除とも称される。フレーム転送部FTRは、レーンの復帰処理において、縮退中のレーンの故障等の要因により、縮退中のレーンの解除が困難な場合、縮退状態を維持する。
フレーム転送部FTRは、インタフェース部PHYによるデータの送受信機能の起動または停止を指示する指示通知SINFおよび有効な物理レーンPHLを示すイネーブル信号LENをインタフェース部PHYに出力する。フレーム転送部FTRは、インタフェース部PHYの起動が完了したことを示す起動完了通知CINF、およびインタフェース部PHYが受信したデータのエラーを検出したことを示すエラー情報EINFをインタフェース部PHYから受信する。また、フレーム転送部FTRは、インタフェース部PHYがアライメントマーカを検出したことを示すアライメントマーカ検出情報AINFをインタフェース部PHYから受信する。アライメントマーカは、物理レーンPHL上に転送されるデータのスキューを吸収するとともに、データのビットエラーを検出する誤り検出情報を伝送するために所定数のデータブロック毎に挿入される。起動完了通知CINF、エラー情報EINFおよびアライメントマーカ検出情報AINFの仕様は、図3で説明する。フレーム転送部FTRの例は、図4に示す。
インタフェース部PHYは、OSI(Open Systems Interconnection)参照モデルの物理層に相当する物理層デバイスの一例であり、IEEE802.3ba規格のLayer1(物理層)に準拠した機能を有する。インタフェース部PHYは、フレーム転送部FTRから受信したフレームデータSFRAMを複数のデータに分配して複数の物理レーンPHLにそれぞれ送信する。また、インタフェース部PHYは、複数の物理レーンPHLを介して受信した複数のデータをフレームデータRFRAMにまとめ、まとめたフレームデータRFRAMをフレーム転送部FTRに出力する。
インタフェース部PHYは、フレーム転送部FTRからの指示通知SINFに基づいて、データの送受信機能を起動または停止する。指示通知SINFが起動の指示を示す場合、インタフェース部PHYは、相手の情報処理装置PDEVのインタフェース部PHYとの間で通信が可能な状態にするリンクアップ等の起動処理を実行する。インタフェース部PHYは、起動が完了した場合、起動完了通知CINFをフレーム転送部FTRに出力する。指示通知SINFが停止の指示を示す場合、インタフェース部PHYは、リンクの切断等、送受信機能を停止するための停止処理を実行する。
インタフェース部PHYは、フレーム転送部FTRからのイネーブル信号LENに基づいて複数の物理レーンPHLの所定数を有効または無効にする。有効にされた物理レーンPHLは、情報の伝送に使用され、無効にされた物理レーンPHLは、情報の伝送に使用されない。インタフェース部PHYは、物理レーンPHLを介して受信したデータのエラーを検出した場合、エラー情報EINFをフレーム転送部FTRに出力する。また、インタフェース部PHYは、物理レーンPHLを介して受信したデータに含まれるアライメントマーカを検出した場合、アライメントマーカ検出情報AINFをフレーム転送部FTRに出力する。以下、アライメントマーカ検出情報はAM(Alignment Marker)検出情報とも称される。インタフェース部PHYの例は、図3に示す。なお、以下では、説明を分かりやすくするため、物理レーンPHLを介して受信したデータのエラーは、情報処理装置PDEV1、PDEV2の両方で同時に発生しないものとする。
ノード1のCPUが通常動作モードから低電力モードへの移行を示す切り替え通知GRDを出力する場合、ノード1のフレーム転送部FTRは、インタフェース部PHYにイネーブル信号LENを出力する。インタフェース部PHYは、イネーブル信号LENに基づいて、送信側の所定数の物理レーンPHLを縮退し、受信側の所定数の物理レーンPHLを縮退する。また、フレーム転送部FTRは、ノード2の物理レーンPHLの縮退を指示する制御パケットを、インタフェース部PHYを介してノード2に送信する。ノード2のフレーム転送部FTRは、ノード1から受信する制御パケットに基づいて、インタフェース部PHYにイネーブル信号LENを出力する。そして、ノード2のインタフェース部PHYは、イネーブル信号LENに基づいて、送信側の所定数の物理レーンPHLを縮退し、受信側の所定数の物理レーンPHLを縮退する。
一方、ノード1のCPUが低電力モードから通常動作モードへの移行を示す切り替え通知GRDを出力する場合、ノード1のフレーム転送部FTRは、インタフェース部PHYにイネーブル信号LENを出力する。インタフェース部PHYは、イネーブル信号LENに基づいて、縮退していた送信側の所定数の物理レーンPHLを復帰し、縮退していた受信側の所定数の物理レーンPHLを復帰する。また、フレーム転送部FTRは、ノード2の物理レーンPHLの縮退の解除を指示する制御パケットを、インタフェース部PHYを介してノード2に送信する。ノード2のフレーム転送部FTRは、ノード1から受信する制御パケットに基づいて、インタフェース部PHYにイネーブル信号LENを出力する。そして、ノード2のインタフェース部PHYは、イネーブル信号LENに基づいて、縮退していた送信側の所定数の物理レーンPHLを復帰し、縮退していた受信側の所定数の物理レーンPHLを復帰する。
なお、物理レーンPHLの復帰処理中に、復帰させた物理レーンPHLを用いたデータ伝送が正常に実行されない場合、フレーム転送部FTRは、復帰処理を中断し、元の縮退状態に戻す縮退処理を実行する。復帰処理を中断する例は、図23から図26に示す。
ノード2のCPUが切り替え通知GRDを出力する場合も、上述したノード1の動作と同様の動作がノード2により実行される。また、切り替え通知GRDは、ノード1またはノード2のいずれかのCPUのみから出力されてもよい。さらに、物理レーンPHLの縮退および縮退の解除は、一方向(ノード1からノード2にデータを送信する送信経路、またはノード2からノード1にデータを送信する送信経路)の物理レーンPHLのみで実行されてもよい。この場合、切り替え通知GRDは、送信方向または受信方向のいずれの物理レーンPHLを縮退または縮退を解除させるかを示す情報を含む。
図3は、図2に示すインタフェース部PHYの一例を示す。インタフェース部PHYは、PCS(Physical Coding Sublayer)およびPMA(Physical Medium Attachment)を有する。PCSは、フレーム転送部FTRから受信したデータを複数のPCSレーンPLs(PLs0−PLs19)に分配し、PCSレーンPLsに分配したデータを各物理レーンPHLに対応して集約し、出力する。また、PCSは、物理レーンPHLを介して受信したデータを複数のPCSレーンPLr(PLr0−PLr19)に分配し、PCSレーンPLrに分配したデータを集約してフレーム転送部FTRに出力する。
図3では、説明を分かりやすくするために、PCSレーンPLs0−PLs4は、物理レーンPHLs0に集約され、PCSレーンPLr0−PLr4は、物理レーンPHLr0に集約される。PCSレーンPLs5−PLs9は、物理レーンPHLs1に集約され、PCSレーンPLr5−PLr9は、物理レーンPHLr1に集約される。PCSレーンPLs10−PLs14は、物理レーンPHLs2に集約され、PCSレーンPLr10−PLr14は、物理レーンPHLr2に集約される。PCSレーンPLs15−PLs19は、物理レーンPHLs3に集約され、PCSレーンPLr15−PLr19は、物理レーンPHLr3に集約される。なお、PCSレーンPLsと物理レーンPHLsとの対応関係およびPCSレーンPLrと物理レーンPHLrとの対応関係は、アライメントマーカ等の伝送される情報に付加されてもよい。
PCSは、データ分割部DIVS、DIVR、AM挿入部AINS、BIP挿入部BINS、データ集約部AGGS、AGGR、AM検出部ADET、BIP検出部BDET、エラー通知部EREPおよび起動制御部SUCLTを有する。
PMAは、パラレルシリアル変換部PSおよびシリアルパラレル変換部SPを有する。AM挿入部AINS(AINS0−AINS19)およびBIP挿入部BINS(BINS0−BINS19)は、PCSレーンPLs0−PLs19毎に設けられる。AM検出部ADET(ADET0−ADET19)およびBIP検出部BDET(BDET0−BDET19)は、PCSレーンPLr0−PLr19毎に設けられる。
データ分割部DIVSは、フレーム転送部FTRから受信するイネーブル信号LENにより示される有効な物理レーンPHLsに対応するPCSレーンPLsを選択する。イネーブル信号LENにより選択されるPCSレーンPLsは、データが転送される有効レーンであり、イネーブル信号LENにより選択されないPCSレーンPLsは、データが転送されない無効レーンである。
例えば、データ分割部DIVSは、フレーム転送部FTRから受信したフレームデータSFRAMを64ビット毎に66ビットのデータに符号化する(64B/66B符号化)。そして、データ分割部DIVSは、符号化された66ビットのブロックを、ブロック単位で有効なPCSレーンPLsに振り分けることで、PCSレーンPLsに対応するAM挿入部AINSに出力する。
各AM挿入部AINSは、データ分割部DIVSから受信した所定数のブロック毎にアライメントマーカを挿入し、ブロックおよびアライメントマーカを、対応するBIP挿入部BINS(BINS0−BINS19)に出力する。例えば、各AM挿入部AINSは、16383個のブロック毎にアライメントマーカを挿入する。すなわち、各AM挿入部AINSは、所定の周期でアライメントマーカを挿入する。なお、データ分割部DIVSが受信するイネーブル信号LENにより選択されないPCSレーンPLsに対応するAM挿入部AINSは、動作を停止してもよい。
各BIP挿入部BINSは、アライメントマーカおよび16383個のブロックに含まれるデータのパリティBIP(Bit Interleaved Parity)を算出し、算出したパリティBIPをアライメントマーカ内の所定の領域に格納する。そして、各BIP挿入部BINSは、パリティBIPを格納したアライメントマーカおよびブロックをデータ集約部AGGSに出力する。なお、アライメントマーカは、PCSレーンの識別子を格納する領域を有しており、データの送信先の情報処理装置PDEVは、アライメントマーカを解読することで、データの送信元の情報処理装置PDEVのPCSレーンとの対応を認識可能である。なお、データ分割部DIVSが受信するイネーブル信号LENにより選択されないPCSレーンPLsに対応するBIP挿入部BINSは、動作を停止してもよい。
データ集約部AGGSは、5つのPCSレーンPLs(例えば、PLs0−PLs4)毎に、BIP挿入部BINSから受信したデータをデータ群に集約し、集約したデータ群のそれぞれをPMAのパラレルシリアル変換部PSに出力する。なお、データ集約部AGGSにおいて、データ分割部DIVSが受信するイネーブル信号LENにより選択されないPCSレーンPLsに対応する回路は、動作を停止してもよい。
PMAのパラレルシリアル変換部PSは、データ集約部AGGSから受信した4つのデータ群のそれぞれをシリアルデータに変換する。例えば、データ群の各々のビット幅が32ビットの場合、パラレルシリアル変換部PSは、32ビットのパラレルデータを1ビットのシリアルデータに変換する。そして、パラレルシリアル変換部PSは、変換したシリアルデータのそれぞれを、物理レーンPHLs0−PHLs3を介して、データの送信先の情報処理装置PDEVに送信する。
物理レーンPHLs0−PHLs3は、データの送信先の情報処理装置PDEVでは物理レーンPHLr0−PHLr3と称される。なお、パラレルシリアル変換部PSにおいて、データ分割部DIVSが受信するイネーブル信号LENにより選択されないPCSレーンPLsに対応する回路は、動作を停止してもよい。また、物理レーンPHLs0−PHLs3を介して光信号が伝送される場合、電気信号を光信号に変換する光電変換部が、パラレルシリアル変換部PSと各物理レーンPHLs0−PHLs3との間に配置される。
PMAのシリアルパラレル変換部SPは、物理レーンPHLr0−PHLr3のそれぞれを介して、データの送信元の情報処理装置PDEVからシリアルデータを受信する。物理レーンPHLr0−PHLr3は、データの送信元の情報処理装置PDEVでは物理レーンPHLs0−PHLs3と称される。シリアルパラレル変換部SPは、シリアルデータのそれぞれをパラレルデータに変換して4つのデータ群を生成し、生成したデータ群のそれぞれをデータ分割部DIVRに出力する。
例えば、データ群の各々のビット幅が32ビットの場合、シリアルパラレル変換部SPは、1ビットのシリアルデータを32ビットのパラレルデータに変換する。なお、シリアルパラレル変換部SPにおいて、データ集約部AGGRが受信するイネーブル信号LENにより選択されないPCSレーンPLrに対応する回路は、動作を停止してもよい。また、物理レーンPHLs0−PHLs3を介して光信号が伝送される場合、光信号を電気信号に変換する光電変換部が、各物理レーンPHLr0−PHLr3とシリアルパラレル変換部SPとの間に配置される。
データ分割部DIVRは、シリアルパラレル変換部SPから受信した各データ群を5つのPCSレーンPLr(例えば、PLr0−PLr4)に分配する。データ分割部DIVRは、PCSレーンPLr0−PLr19のそれぞれに分配したデータを、対応するAM検出部ADET(ADET0−ADET19)に出力する。なお、データ分割部DIVRにおいて、データ集約部AGGRが受信するイネーブル信号LENにより選択されないPCSレーンPLrに対応する回路は、動作を停止してもよい。
各AM検出部ADETは、データ分割部DIVRから受信したデータおよびアライメントマーカを各BIP検出部BDET(BDET0−BDET19)に出力する。また、各AM検出部ADETは、データ分割部DIVRから受信したデータからアライメントマーカを検出した場合、アライメントマーカを検出したことを示すAM検出情報AINFを、起動制御部SUCLTに出力する。なお、データ集約部AGGRが受信するイネーブル信号LENにより選択されないPCSレーンPLrに対応するAM検出部ADETは、動作を停止してもよい。
各BIP検出部BDETは、AM検出部ADETから受信したデータをデータ集約部AGGRに出力する。また、各BIP検出部BDETは、アライメントマーカに含まれるパリティBIPを用いて、各AM検出部ADETから受信したデータの符号誤りを検出する。そして、各BIP検出部BDETは、符号誤りの検出結果をエラー情報EINFとして、エラー通知部EREPに出力する。なお、データ集約部AGGRが受信するイネーブル信号LENにより選択されないPCSレーンPLrに対応するBIP検出部BDETは、動作を停止してもよい。
データ集約部AGGRは、フレーム転送部FTRから受信するイネーブル信号LENに基づいて、複数のPCSレーンPLr(PLr0−PLr19)から有効な物理レーンPHLに対応するPCSレーンPLrを選択する。ここで、イネーブル信号LENに基づいて有効な物理レーンPHLの数およびPCSレーンPLrの数が減ることは、レーン縮退と称される。イネーブル信号LENに基づいて有効な物理レーンPHLの数およびPCSレーンPLrの数が増えることは、縮退した物理レーンPHLの復帰、物理レーンPHLの縮退の解除、または使用を停止した物理レーンPHLの再開とも称される。
また、データ集約部AGGRは、送信元の情報処理装置PDEVが64B/66B符号化したデータを、有効なPCSレーンPLr毎に復号する。そして、データ集約部AGGRは、PCSレーンPLr毎に復号したデータを集約してフレームデータRFRAMを生成し、生成したフレームデータRFRAMを図2に示すフレーム転送部FTRに出力する。
起動制御部SUCLTは、データの送受信機能の起動の指示を示す指示通知SINFを受信した場合、インタフェース部PHYを起動させる起動処理を実行する。起動制御部SUCLTは、起動処理の実行後、イネーブル信号LENにより選択される有効なPCSレーンPLrの全てで、アライメントマーカが検出された場合、起動完了を示す起動完了通知CINFをフレーム転送部FTRに出力する。
また、起動制御部SUCLTは、AM検出部ADETからそれぞれ受信したPCSレーンPLrのAM検出情報AINFを、フレーム転送部FTRに出力する。起動制御部SUCLTは、AM検出部ADETからそれぞれ受信したAM検出情報AINFを保持するレジスタ等を有する。
フレーム転送部FTRは、アライメントマーカの検出を示すAM検出情報AINFをPCSレーンPLr毎に受信することで、物理レーンPHLr0−PHLr3を介して受信するデータ間のスキューを検出することが可能になる。そして、フレーム転送部FTRは、検出したスキューに基づいて、データの受信タイミングを揃えることができる(デスキュー処理)。
エラー通知部EREPは、BIP検出部BDETからそれぞれ受信したPCSレーンPLrのエラー情報EINFをフレーム転送部FTRに出力する。エラー通知部EREPは、BIP検出部BDETからそれぞれ受信したエラー情報EINFを保持するレジスタ等を有する。
PCSは、フレーム転送部FTRから停止信号PCSSTPを受信した場合、データの送信動作およびデータの受信動作を停止する。また、PCSは、フレーム転送部FTRから開始信号PCSSTTを受信した場合、データの送信動作およびデータの受信動作を開始する。
なお、インタフェース部PHYの構成は、図3に示す例に限定されない。例えば、起動制御部SUCLTがフレーム転送部FTRにAM検出情報AINFを出力するのではなく、各AM検出部ADETがフレーム転送部FTRにAM検出情報AINFを出力してもよい。また、例えば、エラー情報EINFは、各BIP検出部BDETからフレーム転送部FTRに直接出力されてもよい。さらに、PCSレーンPL(PLs、PLr)の数は、20個に限定されず、物理レーンPHL(PHLs、PHLr)の数は、4個に限定されない。
図2で説明したように、フレーム転送部FTRが生成するイネーブル信号LENに基づいて、インタフェース部PHYは、レーンPHLを縮退し、あるいは縮退した物理レーンPHLを復帰する。これにより、故障した物理レーンを特定する機能(以下、故障レーン特定機能とも称する)を含まないインタフェース部PHYを使用する場合においても、物理レーンPHLの縮退を制御することができる。したがって、情報処理システムSYS1は、故障した物理レーンPHLを縮退することでリンクを維持でき、故障した物理レーンPHLを含むノード(情報処理装置PDEV)を使用した並列計算等の処理を実行できる。
なお、情報処理システムSYS1は、通常モードから低電力モードへの切り替えの指示に基づいて物理レーンPHLの所定数を縮退し、低電力モードから通常モードへの切り替えの指示に基づいて縮退した物理レーンPHLを復帰する。低電力モードが複数種類ある場合、縮退する物理レーンPHLの数は、低電力モードの種類に応じて設定されてもよい。
図4は、図2に示すフレーム転送部FTRの一例を示す。フレーム転送部FTRは、フレーム生成部FGEN、フレーム送信部FSEN、再送制御部RTCLT、フレーム受信部FREC、バッファ部RBUF、フロー制御部FCLTおよびリンク制御部LCLTを有する。
フレーム生成部FGENは、CPUから受信したデータSDATAまたはリンク制御部LCLTから受信した縮退情報DINFS等の情報をフレームの形式に変換してフレームデータSFRAMを生成する。フレーム生成部FGENは、生成したフレームデータSFRAMをフレーム送信部FSENおよび再送制御部RTCLTに出力する。また、フレーム生成部FGENは、フレームデータSFRAMのデータ長を示す情報DLをフロー制御部FCLTに出力する。
フレーム送信部FSENは、フレーム生成部FGENから受信したフレームデータSFRAM、または再送制御部RTCLTから受信したフレームデータSFRAMを保持するバッファを有する。フレーム送信部FSENは、バッファに保持したフレームデータSFRAMをインタフェース部PHYに送信する。
なお、フレーム転送部FTRで使用するクロックとインタフェース部PHYで使用するクロックとが異なる場合がある。この場合、フレーム送信部FSENのバッファは、フレーム転送部FTRで使用するクロックに同期して受けたフレームデータSFRAMを、インタフェース部PHYで使用するクロックに同期してインタフェース部PHYに出力する。すなわち、フレーム送信部FSENは、フレーム転送部FTRとインタフェース部PHYとで互いに非同期のクロックの乗り換え等を実行する。
フレーム受信部FRECは、インタフェース部PHYからフレームデータRFRAMを受信したフレームデータRFRAMを保持するバッファを有する。フレーム受信部FRECは、受信したフレームデータRFRAMをバッファ部RBUFに出力する。フレーム受信部FRECが受信するフレームデータRFRAMは、送信元の情報処理装置PDEVのフレーム転送部FTRから送信されるフレームデータSFRAMに対応する。
フレーム受信部FRECのバッファは、フレーム送信部FSENのバッファと同様に、インタフェース部PHYで使用するクロックに同期して受けたフレームデータRFRAMを、フレーム転送部FTRで使用するクロックに同期してバッファ部RBUFに出力する。すなわち、フレーム受信部FRECは、フレーム転送部FTRとインタフェース部PHYとで互いに非同期のクロックの乗り換え等を実行する。
フレーム受信部FRECは、制御用のパケットDLLP(Data Link Layer Packet)の検出機能を有する。フレーム受信部FRECは、データの送信先の情報処理装置PDEVにおけるバッファ部RBUFの空き容量を示すフロー制御情報FINFがパケットDLLP内に含まれることを検出した場合、検出したフロー制御情報FINFをフロー制御部FCLTに出力する。ここで、フロー制御情報FINFは、フロー制御フレームを用いて伝送される。例えば、データの送信先の情報処理装置PDEVのバッファ部RBUFが空いていることを示すクレジット解放通知は、フロー制御情報FINFに含まれる。
フレーム受信部FRECは、データリンク層のリンクアップ、リンクダウン、および物理レーンPHLの縮退に関する縮退情報DINFR等を示すリンク制御情報がパケットDLLP内に含まれることを検出する。フレーム受信部FRECは、リンク制御情報がパケットDLLP内に含まれる場合、検出したリンク制御情報を縮退情報DINFRとしてリンク制御部LCLTに出力する。なお、リンクダウンは、データを送受信する情報処理装置PDEVのインタフェース部PHY間で通信を遮断させることを示す。縮退情報DINFRは、データの送信元の情報処理装置PDEVのリンク制御部LCLTから送信される縮退情報DINFSに対応する。
また、フレーム受信部FRECは、フレーム送信部FSENが送信したフレームデータSFRAMに応答する肯定応答信号ACKまたは否定応答信号NACKをパケットDLLPが含むことを検出する。フレーム受信部FRECは、肯定応答信号ACKまたは否定応答信号NACKをパケットDLLPが含む場合、検出した肯定応答信号ACKまたは否定応答信号NACKを再送制御部RTCLTに出力する。
バッファ部RBUFは、フレーム受信部FRECから受信したフレームデータRFRAMを順次記憶し、記憶したフレームデータRFRAMをデータRDATAとしてCPUに順次に出力する。
フロー制御部FCLTは、エラー検出部EDETを有する。フロー制御部FCLTは、データの送信先の情報処理装置PDEVにおけるバッファ部RBUFの空き容量およびフレームデータSFRAMのデータ長DLに基づいて、フレームデータSFRAMの送信時期を調整するフロー制御を実行する。例えば、フロー制御部FCLTは、通信先の情報処理装置PDEVのバッファ部RBUFに空きがないことを示すフロー制御情報FINFを受信した場合、フレームデータSFRAMの送信を抑制するようにフレーム生成部FGENを制御する。
また、フロー制御部FCLTは、バッファ部RBUFの空き状態を示す情報をバッファ部RBUFから定期的に受信する。フロー制御部FCLTは、受信した空き状態を示す情報を、フレーム生成部FGENおよびフレーム送信部FSENを介して、相手の情報処理装置PDEVのフロー制御部FCLTに定期的に送信する。相手の情報処理装置PDEVのフレーム受信部FRECは、バッファ部RBUFの空き状態を示す情報を、フロー制御情報FINFとして検出する。
フロー制御部FCLTのエラー検出部EDETは、フロー制御情報FINFを受信しない期間が閾値(例えば、200マイクロ秒)を超えた場合、すなわち、フロー制御情報FINFを定期的に受信しない場合、フロー制御で異常が発生したと判定する。この場合、エラー検出部EDETは、伝送路PHL等に異常が発生したことを示すフロー制御プロトコルエラー通知FERRをリンク制御部LCLTに出力する。以下、フロー制御プロトコルエラー通知FERRを、FCPE(Flow Control Protocol Error)通知FERRとも称する。
再送制御部RTCLTは、異常検出部FDETおよびバッファBUFを有する。バッファBUFは、フレーム生成部FGENから受信したフレームデータSFRAMを保持する。再送制御部RTCLTは、フレーム受信部FRECから肯定応答信号ACKおよび否定応答信号NACKを受信する。肯定応答信号ACKは、送信したデータの受信処理が送信先の情報処理装置PDEVにより正常に完了した場合、送信先の情報処理装置PDEVのフレーム転送部FTRからパケットDLLPとして出力される。否定応答信号NACKは、送信したデータの受信処理が送信先の情報処理装置PDEVにより正常に完了しなかった場合、送信先の情報処理装置PDEVのフレーム転送部FTRからパケットDLLPとして出力される。
再送制御部RTCLTは、否定応答信号NACKを受信した場合、バッファBUFに保持したフレームデータSFRAMを、フレーム送信部FSENに出力し、フレーム送信部FSENにフレームデータSFRAMの再送信を実行させる。
異常検出部FDETは、フレーム受信部FRECからの肯定応答信号ACKおよび否定応答信号NACKに基づいて、ビットエラーレートの悪化、リトライアウト等を検出した場合、再送信に関する処理で異常が発生したと判定する。ビットエラーレートの悪化は、所定時間内の再送回数が閾値を超えた場合(例えば、24秒間に255回以上の再送要求(すなわち、否定応答信号NACK)が発生した場合)に検出される。リトライアウトは、送信したフレームデータSFRAMに対する肯定応答信号ACKおよび否定応答信号NACKがない場合と、連続した再送の回数が閾値を超えた場合に検出される。例えば、フレームデータSFRAMが送信されてから12.62ミリ秒が経過するまでに、肯定応答信号ACKあるいは否定応答信号NACKを受信しなかった場合、リトライアウトが判定される。また、連続した再送の回数が255回を超えた場合、リトライアウトが判定される。
異常検出部FDETは、ビットエラーレートの悪化を検出した場合、再送信エラー通知RERR1をリンク制御部LCLTに出力し、リトライアウトを検出した場合、再送信エラー通知RERR2をリンク制御部LCLTに出力する。
リンク制御部LCLTは、情報取得部ACQおよび選択部SELを有する。情報取得部ACQは、データの送信元の情報処理装置PDEVから送信されたアライメントマーカを検出したことを示すAM検出情報AINFを、PCSレーン毎にインタフェース部PHYから受信する。また、情報取得部ACQは、例えば、データの送信元の情報処理装置PDEVから送信されたデータに対する符号誤り検出の結果を示すエラー情報EINFを、PCSレーン毎にインタフェース部PHYから受信する。
選択部SELは、情報取得部ACQを介して受信するAM検出情報AINFおよびエラー情報EINFのいずれかに基づいて縮退対象の物理レーンPHLを特定する。縮退対象の物理レーンPHLは、故障したPCSレーンに対応する物理レーンPHLまたは故障した物理レーンPHL等である。
選択部SELは、インタフェース部PHYのリンクアップ前の起動処理中に、情報取得部ACQを介して受信するAM検出情報AINFに基づいて、PCSレーンおよび物理レーンPHLのいずれかの経路上(経路上の部品を含む)に故障が発生したことを検出する。選択部SELは、インタフェース部PHYのリンクアップ後に、情報取得部ACQを介して受信するエラー情報EINFに基づいて、PCSレーンおよび物理レーンPHLのいずれかの経路上に故障が発生したことを検出する。
また、選択部SELは、インタフェース部PHYのリンクアップ後に、FCPE通知FERRおよび再送信エラー通知RERR1、REER2に基づいて、PCSレーンおよび物理レーンPHLのいずれかの経路上に故障が発生したことを検出する。
そして、選択部SELは、故障の検出結果に基づいて、縮退する物理レーンPHLを特定し、特定した物理レーンPHLに対応するイネーブル信号LENを出力する。また、選択部SELは、インタフェース部PHYのリンクアップ前またはインタフェース部PHYのリンクアップ後に、CPUからの切り替え通知GRDに基づいて、縮退する物理レーンPHLまたは縮退を解除する物理レーンPHLを特定する。そして、選択部SELは、特定した物理レーンPHLに対応するイネーブル信号LENを出力する。なお、選択部SELは、イネーブル信号LENを出力する前(物理レーンPHLの切り替え前)に、停止信号PCSSTPをインタフェース部PHYに出力し、インタフェース部PHYの動作を停止させる。そして、選択部SELは、イネーブル信号LENを出力した後(物理レーンPHLの切り替え後)に、開始信号PCSSTTをインタフェース部PHYに出力し、インタフェース部PHYの動作を再開させる。
リンク制御部LCLTは、インタフェース部PHYの制御、リンクの制御、物理レーンPHLの縮退の制御等を実行する。例えば、インタフェース部PHYの制御に関して、リンク制御部LCLTは、インタフェース部PHYの起動を指示する指示通知SINFをインタフェース部PHYに出力する。また、リンク制御部LCLTは、インタフェース部PHYの起動が完了したことを示す起動完了通知CINFをインタフェース部PHYから受信する。さらに、リンク制御部LCLTは、インタフェース部PHYの動作の停止を指示する指示通知SINFをインタフェース部PHYに出力する。
図5は、図4に示すリンク制御部LCLTの一例を示す。リンク制御部LCLTは、起動指示部SCLT、情報取得部ACQおよび選択部SELを有する。情報取得部ACQは、エラー情報受信部ERECおよびAM検出情報受信部ARECを有する。選択部SELは、タイマTM1、タイムアウト判定部TJG、エラーカウンタECT、故障判定部BJG、縮退指示部DCLT、タイマTM2、レーン選択部LSELおよび縮退情報生成部DGENを有する。縮退指示部DCLTは、ステートマシンSMによる状態遷移にしたがって動作する。ステートマシンSMの一例は、図7に示す。
起動指示部SCLTは、インタフェース部PHYの起動を指示するユーザ指示OPINFをCPUから受信する。CPUは、情報処理装置PDEVの操作部等を操作するユーザにより、インタフェース部PHYの起動または停止が指示されたことを検出した場合、フレーム転送部FTRにユーザ指示OPINFを出力する。起動指示部SCLTは、ユーザ指示OPINFに基づいて、インタフェース部PHYの起動を指示する指示通知SINFをインタフェース部PHYに出力する。さらに、起動指示部SCLTは、インタフェース部PHYの起動の指示が、例えば、情報処理装置PDEVの電源を立ち上げた後の最初の指示である場合、タイマTM1を起動する。インタフェース部PHYの起動が完了した場合、起動指示部SCLTは、起動の完了を示す起動完了通知CINFをインタフェース部PHYから受信する。
また、起動指示部SCLTは、インタフェース部PHYの停止を指示するユーザ指示OPINFをCPUから受信した場合、インタフェース部PHYの停止を指示する指示通知SINFをインタフェース部PHYに出力する。
起動指示部SCLTは、インタフェース部PHYの再起動を指示する通知を縮退指示部DCLTから受信する。この場合、起動指示部SCLTは、例えば、インタフェース部PHYの停止を指示する指示通知SINFをインタフェース部PHYに出力した後、インタフェース部PHYの起動を指示する指示通知SINFをインタフェース部PHYに出力する。なお、起動指示部SCLTは、再起動時にタイマTM1を有効にしない。
AM検出情報受信部ARECは、各PCSレーンPLrのAM検出情報AINFをインタフェース部PHYから受信する。AM検出情報受信部ARECは、例えば、アライメントマーカを検出したことを示すAM検出情報AINFを1つ以上受信したとき、タイマTM1に計測を開始させる開始指示信号をタイマTM1に出力する。また、AM検出情報受信部ARECは、AM検出情報AINFに基づいて、有効に設定されたPCSレーンPLrの全てに対応するアライメントマーカAMの検出を確認した場合、デスキュー信号DSKを縮退指示部DCLTおよびタイマTM2に出力する。
AM検出情報受信部ARECは、各PCSレーンPLrのAM検出情報AINFをレーン選択部LSELに出力する。なお、AM検出情報受信部ARECは、例えば、IEEE802.3ba規格で規定されているアライメント検出情報通知機能を用いて、定期的にAM検出情報AINFをインタフェース部PHYから読み出してもよい。
タイマTM1は、例えば、AM検出情報受信部ARECからの開始指示信号を受信したとき、所定時間(例えば、4ミリ秒)の計測を開始する。タイマTM1は、インタフェース部PHYから受信する起動完了通知CINFに応じて計測を停止する。タイマTM1は、所定時間の計測が終了したとき、所定時間が経過したことを示す情報をタイムアウト判定部TJGに出力する。
タイムアウト判定部TJGは、所定時間が経過するまでに、起動完了通知CINFをインタフェース部PHYから受信しなかった場合、物理レーンPHLの故障が発生していると判定する。そして、タイムアウト判定部TJGは、物理レーンPHLの故障が発生していることを示す情報を、縮退指示部DCLTに出力する。
エラー情報受信部ERECは、各PCSレーンPLrのエラー情報EINFをインタフェース部PHYから受信する。そして、エラー情報受信部ERECは、各PCSレーンPLrのエラー情報EINFをレーン選択部LSELおよびエラーカウンタECTに出力する。なお、エラー情報受信部ERECは、例えば、IEEE802.3ba規格で規定されているBIPエラー数通知機能を用いて、パリティBIPから求められるエラーの数をインタフェース部PHYから定期的に読み出してもよい。
エラーカウンタECTは、エラー情報受信部ERECから受信した各PCSレーンPLrのエラー情報EINFに基づいて、所定期間(例えば、80ミリ秒)に発生したパリティBIPのエラー数を物理レーンPHL毎に計算する。そして、エラーカウンタECTは、各物理レーンPHLのパリティBIPのエラー数を示す情報を、故障判定部BJGおよびレーン選択部LSELに出力する。
故障判定部BJGは、所定期間内に発生した各物理レーンPHLのパリティBIPのエラー数を示す情報に基づいて、物理レーンPHL等に故障(以下、レーン故障とも称される)が発生しているか否かを判定する。故障判定部BJGは、レーン故障が発生していると判定した場合、レーン故障が発生していることを示す情報を、縮退指示部DCLTに出力する。
縮退指示部DCLTは、切り替え通知GRDを図2に示すCPUから受信し、縮退情報DINFRを図4に示すフレーム受信部FRECから受信し、再送信エラー通知RERR1、RERR2を図4に示す再送制御部RTCLTの異常検出部FDETから受信する。切り替え通知GRDは、物理レーンPHLの使用の停止を指示する縮退要求または使用を停止した物理レーンPHLの使用の再開を指示する復帰要求の一例である。また、縮退指示部DCLTは、FCPE通知FERRを、図4に示すフロー制御部FCLTのエラー検出部EDETから受信し、レーン故障が発生していることを示す情報を、タイムアウト判定部TJGおよび故障判定部BJGのそれぞれから受信する。そして、縮退指示部DCLTは、例えば、レーン縮退を実行するか否かを示す情報およびレーン縮退を解除するか否かを示す情報等を、レーン選択部LSELに出力する。
情報処理装置PDEVが通信先の情報処理装置PDEVからレーン縮退の要求を受信した場合、要求を受信した情報処理装置PDEVの縮退指示部DCLTは、タイマTM2を起動する開始指示信号TSTTを出力する。また、レーン縮退の要求を送信する情報処理装置PDEVは、レーン縮退の要求を送信する状態に遷移した場合(図7のD_REQ0)、タイマTM2を起動する開始指示信号TSTTを出力する。
また、レーン縮退を解除する切り替え通知GRDを出力したCPUを有する情報処理装置PDEVの縮退指示部DCLTは、切り替え通知GRDに基づいてタイマTM2を起動する開始指示信号TSTTを出力する。縮退指示部DCLTは、開始指示信号TSTTの出力後、通信先の情報処理装置PDEVからレーン縮退の解除の完了を示す情報(例えば、図22に示すコマンドDGRD_ACK)を受信した場合、タイマTM2の動作を停止する停止信号TSTPを出力する。なお、縮退指示部DCLTは、AM検出情報受信部ARECからデスキュー信号DSKを受信しない場合、すなわち、有効なPCSレーンPLの少なくともいずれかのアライメントマーカAMが正常に受信されない場合、停止信号TSTPの出力を抑止する。
また、縮退指示部DCLTは、開始指示信号TSTTを出力後、タイマTM2からタイムアウト信号TOUTを受信した場合、縮退を解除する物理レーンPHLの故障の発生を判定し、レーン縮退の復帰処理を中断し、元の縮退状態に戻す縮退処理を実行する。開始指示信号TSTTおよび停止信号TSTPに基づいて制御されるタイマTM2と、タイマTM2からのタイムアウト信号TOUTに基づいて物理レーンPHLの故障を検出する縮退指示部DCLTは、障害検出部の一例である。
レーン縮退の復帰処理を中断し、元の縮退状態に戻す縮退処理の例は、図23から図26に示す。なお、物理レーンPHLの故障は、物理レーンPHL自体が故障した場合、またはインタフェース部PHYの故障により、物理レーンPHLを介したデータ転送が正常に実行されない場合に判定される。
さらに、情報処理装置PDEVが通信先の情報処理装置PDEVからレーン縮退を解除する復帰要求を受信した場合、復帰要求を受信した情報処理装置PDEVの縮退指示部DCLTは、タイマTM2を起動する開始指示信号TSTTを出力する。例えば、通信先の情報処理装置PDEVから受信するレーン縮退を解除する復帰要求は、図22に示すコマンドDGRD_REQである。縮退指示部DCLTは、開始指示信号TSTTの出力後、通信先の情報処理装置PDEVからレーン縮退の解除の完了を示す情報(例えば、図22に示すコマンドDGRD_COMP)を受信した場合、タイマTM2の動作を停止する停止信号TSTPを出力する。なお、縮退指示部DCLTは、AM検出情報受信部ARECからデスキュー信号DSKを受信しない場合、停止信号TSTPの出力を抑止する。また、縮退指示部DCLTは、開始指示信号TSTTを出力後、タイマTM2からタイムアウト信号TOUTを受信した場合、縮退を解除する物理レーンPHLの故障の発生を判定し、レーン縮退の復帰処理を中断し、元の縮退状態に戻す縮退処理を実行する。レーン縮退の復帰処理を中断し、元の縮退状態に戻す復帰処理を実行する例は、図23から図26に示す。
タイマTM2は、開始指示信号TSTTの受信に基づいて所定時間T2(例えば、数秒)の計測を開始し、停止信号TSTPの受信に基づいて所定時間の計測を停止する。タイマTM2は、開始指示信号TSTTに基づいて計測を開始した後、所定時間T2が経過するまでに停止信号TSTPを受信しない場合、タイムアウトを判定し、タイムアウト信号TOUTを縮退指示部DCLTに出力する。
AM検出情報受信部ARECおよびタイマTM2は、物理レーンPHLrの障害を検出する検出部の一例である。縮退指示部DCLTおよび縮退情報生成部DGENは、縮退要求に基づいて、物理レーンPHLの使用を停止する縮退処理を実行し、復帰要求に基づいて、使用を停止した物理レーンPHLの使用を再開する復帰処理を実行する制御部の一例である。また、縮退指示部DCLTおよび縮退情報生成部DGENは、復帰処理中に、使用を再開した物理レーンPHLの障害が検出された場合、使用を再開した物理レーンPHLの使用を停止する縮退処理を実行する制御部の一例である。
なお、縮退指示部DCLTは、切り替え通知GRDに基づいて出力する開始指示信号TSTTと、レーン縮退を解除する復帰要求の受信に基づいて出力する開始指示信号TSTTとを物理的に別の信号としてタイマTM2に出力してもよい。この場合、タイマTM2は、2つの開始指示信号TSTTのそれぞれに基づいて互いに異なる所定時間T21、T22(図24)を計測してもよい。さらに、レーン縮退の実行時にタイマTM2が計測する所定時間T2と、レーン縮退の解除の実行時にタイマTM2が計測する所定時間T2とは、互いに相違してもよい。
なお、縮退指示部DCLTは、データを受信する物理レーンPHLrのいずれかの故障が検出された場合、縮退する物理レーンPHLrを示す情報とともに、データを送信する物理レーンPHLsのいずれかを縮退する情報をレーン選択部LSELに出力してもよい。この場合、例えば、物理レーンPHLr2−PHLr3とともに、物理レーンPHLr2−PHLr3に対応する物理レーンPHLs2-PHLs3が縮退される。縮退する物理レーンPHLsを示す情報は、縮退する物理レーンPHLrを示す情報とともに、通信先の情報処理装置PDEVに制御パケットとして送信される。そして、通信先の情報処理装置PDEVは、物理レーンPHLs、PHLrの縮退を実行する。
同様に、縮退指示部DCLTは、データを送信する物理レーンPHLsのいずれかを縮退する場合、縮退する物理レーンPHLsを示す情報とともに、データを受信する物理レーンPHLrのいずれかを縮退する情報をレーン選択部LSELに出力してもよい。物理レーンPHLsの縮退は、通信先の情報処理装置PDEVから受信する制御パケットに含まれる縮退の指示に基づいて実行される。すなわち、物理レーンPHLsの縮退は、通信相手のノードから受信する制御用のパケットDLLPに縮退情報DINFRが含まれる場合(すなわち、通信相手のノードがデータを受信する物理PHLrの故障を検出した場合)に実行される。この場合、例えば、物理レーンPHLs2−PHLs3とともに、物理レーンPHLs2−PHLs3に対応する物理レーンPHLr2-PHLr3が縮退される。なお、通信先の情報処理装置PDEVは、エラーの検出に基づく物理レーンPHLrの縮退とともに、物理レーンPHLsを縮退する。
これにより、物理レーンPHLrを介して受信するデータのエラーの検出に基づいて、情報処理装置PDEV1、PDEV2の双方において、物理レーンPHLr、PHLsの所定数の使用が停止される。
縮退指示部DCLTは、CPUからの切り替え通知GRDの受信に基づいて、レーン縮退を実行する情報またはレーン縮退を解除する情報をレーン選択部LSELに出力する。また、縮退指示部DCLTは、通信先の情報処理装置PDEVに送信する縮退情報DINFSを生成するための情報を、縮退情報生成部DGENに出力する。
レーン選択部LSELは、物理レーンPHLs0−PHLs3、PHLr0−PHLr3毎に、レーンの縮退または復帰を示す情報を格納する領域を含むレジスタREGを有する。レーン選択部LSELは、縮退指示部DCLTから受信するレーン縮退を実行する情報およびレーン縮退を解除する情報に基づいてレジスタREGを設定する。すなわち、レジスタREGは、インタフェース部PHYからのエラー情報EINF、AINF、FCPE通知FERR、再送信エラー通知RERR1、RERR2およびCPUからの切り替え通知GRDに基づいて設定される。
特に限定されないが、レジスタREGにおいて、データ転送に使用する(縮退しない)物理レーンPHLに対応する領域は、論理1に設定され、データ転送に使用しない(縮退する)物理レーンPHLに対応する領域は、論理0に設定される。そして、レーン選択部LSELは、レジスタREGに設定した情報に基づいて、通信先の情報処理装置PDEVとのデータ転送に使用する物理レーンPHLを有効または無効にするイネーブル信号LENを生成し、インタフェース部PHYに出力する。なお、レーン選択部LSELは、イネーブル信号LENを生成するためにレジスタREGを変更する前に停止信号PCSSTPをPCSに出力し、PCSにデータの送信動作およびデータの受信動作を停止させる。また、レーン選択部LSELは、レジスタREGを変更後に開始信号PCSSTTをPCSに出力し、PCSにデータの送信動作およびデータの受信動作を開始させる。
縮退情報生成部DGENは、縮退指示部DCLTから受信した情報に基づいて、通信先の情報処理装置PDEVに、レーン縮退を指示する縮退情報DINFS、または物理レーンPHLの故障の判定を指示する縮退情報DINFSを生成する。そして、縮退情報生成部DGENは、縮退情報DINFSを図4に示すフレーム生成部FGENに出力する。これにより、縮退情報DINFSは、通信先の情報処理装置PDEVに縮退情報DINFRとして転送される。
なお、リンク制御部LCLTの構成は、図5に示す例に限定されない。例えば、起動指示部SCLTは、再起動時にも、タイマTM1を有効にしてもよい。
図6は、レーン縮退の契機およびレーン縮退の解除の契機の一例を示す。
レーン縮退は、情報処理装置PDEVのリンクアップ前の起動処理中において、PCSレーンPLおよび物理レーンPHLの故障の検出を契機に実行される。
レーン縮退は、情報処理装置PDEVのリンクアップ後において、単位時間内の再送回数が閾値を超え、異常検出部FDETが、ビットエラーの悪化の検出に基づいて再送信エラー通知RERR1を出力したことを契機に実行される。また、レーン縮退は、情報処理装置PDEVのリンクアップ後において、連続した再送回数が閾値を超え、異常検出部FDETが、リトライアウトの検出に基づいて再送信エラー通知RERR2を出力したことを契機に実行される。リトライアウトは、例えば、送信したフレームデータSFRAMに対する応答(肯定応答信号ACK、否定応答信号NACK)がない場合や連続した再送の回数が閾値を超えた場合に検出される。
また、レーン縮退は、情報処理装置PDEVのリンクアップ後において、フロー制御フレームが所定の期間以上受信されず、フロー制御部FCLTが、フロー制御プロトコルエラーの検出に基づいてFCPE通知FERRを出力したことを契機に実行される。さらに、レーン縮退は、情報処理装置PDEVのリンクアップ後において、所定期間内のパリティBIPのエラー数が閾値を超えたことを契機に実行される。
また、レーン縮退は、情報処理装置PDEVのリンクアップ前およびリンクアップ後において、情報処理装置PDEVを通常動作モードから低電力モードへの切り替える切り替え通知GRDがCPU(ファームウェア)から出力されたことを契機に実行される。
一方、縮退した物理レーンPHLの解除は、情報処理装置PDEVのリンクアップ前およびリンクアップ後において、情報処理装置PDEVを低電力モードから通常動作モードへの切り替える切り替え通知GRDがCPUから出力されたことを契機に実行される。
なお、物理レーンPHLまたはPCSレーンPL等の故障によりレーン縮退が実行された場合、故障した部品が交換された後、情報処理システムSYS1が再起動される。再起動された情報処理システムSYS1は、全ての物理レーンPHLを使用してリンクアップの処理を実行する。このため、縮退した物理レーンPHLの解除の契機は、情報処理装置PDEVの低電力モードから通常動作モードへの切り替え時のみである。
図7は、図5に示す縮退指示部DCLTを動作させるステートマシンSMによる状態制御の一例を示す。二重線の長円で示す符号NORMは、レーン縮退の実行前の通常状態を示し、二重線の長円で示す符号DGRDは、レーン縮退を実行中の縮退状態を示す。
通常状態NORM中に受信側の物理レーンPHLrの故障を検出した場合、ステートマシンSMは、情報処理装置PDEVを、レーン縮退用のコマンドDGRD_REQを出力するリクエスタREQとして動作させるため、状態D_SUSPに移行する。例えば、受信側の物理レーンPHLrの故障は、フロー制御プロトコルエラーが検出された場合(図6のNo.4)または所定期間内のパリティBIPのエラー数が閾値を超えた場合(図6のNo.5)に判定される。あるいは、ステートマシンSMは、CPUからレーン縮退を実行する切り替え通知GRDを受信した場合(図6のNo.6)、情報処理装置PDEVをリクエスタREQとして動作させるため、状態D_SUSPに移行する。
一方、ステートマシンSMは、縮退する物理レーンPHLsの特定を通信先の情報処理装置PDEVに依頼する場合、情報処理装置PDEVを、縮退依頼DGRD_PUSHを出力するレスポンダRESとして動作させるため、状態D_SUSPに移行する。レスポンダRESは、レーン縮退用のコマンドDGRD_REQを受信する情報処理装置PDEVである。縮退する物理レーンPHLの特定の依頼は、例えば、ビットエラーレートの悪化が検出された場合(図6のNo.2)またはリトライアウトが検出された場合(図6のNo.3)に判定される。
リクエスタREQは、状態D_SUSPから状態D_REQ0に移行し、通信先の情報処理装置PDEVに、レーン縮退を指示するコマンドDGRD_REQ(縮退要求)を繰り返し送信し、所定時間T1の経過後、状態D_REQ1に移行する。コマンドDGRD_REQは、図18で説明するように、使用を停止する物理レーンPHLの情報を含む。リクエスタREQは、状態D_REQ1において、所定の物理レーンPHLの使用を停止するレーン縮退を実行し、通信先の情報処理装置PDEVからのレーン縮退の完了を示すコマンドDGRD_ACKの受信に基づいて、状態D_REQ2に移行する。
リクエスタREQは、状態D_REQ1において、所定時間T2内にコマンドDGRD_ACKを受信しない場合、タイムアウトを判定する。所定時間T2は、状態D_REQ0に遷移してから計測される時間であり、図5に示すタイマTM2により計測される。タイムアウトが判定された場合、図2に示す情報処理システムSYS1はタイムアウト処理を実行し、物理レーンPHLを用いた通信を停止し、通信エラーが発生したことを上位の装置等に通知する。すなわち、情報処理装置PDEV1、PDEV2間のリンクが切断され、情報処理装置PDEV1、PDEV2間の通信機能は停止する。
リクエスタREQは、状態D_REQ2において、通信先の情報処理装置PDEVに、レーン縮退の完了を示すコマンドDGRD_COMPを繰り返し送信し、所定時間T3の経過後、縮退状態DGRDに移行する。そして、リクエスタREQ側における物理レーンPHLの縮退処理が完了する。
一方、レスポンダRESは、通信先の情報処理装置PDEVに、縮退する物理レーンPHLsの特定を依頼するコマンドDGRD_PUSH(縮退依頼)を送信する場合、状態D_SUSPから状態D_RES0に移行する。状態D_RES0において、レスポンダRESは、通信先の情報処理装置PDEVに、コマンドDGRD_PUSH(縮退依頼)を繰り返し送信する。レスポンダRESは、状態D_RES0において、通信先の情報処理装置PDEVからレーン縮退用のコマンドDGRD_REQ(縮退要求)を受信した場合、状態D_RES1に移行する。状態D_RES1では、コマンドDGRD_REQで指示された物理レーンPHLの使用を停止するレーン縮退が実行される。
レーン縮退を実行したレスポンダRESは、状態D_RES1において、有効なPCSレーンPLの全てのアライメントマーカAMを正常に検出した場合、状態D_REQ2に移行してコマンドDGRD_ACKを通信先の情報処理装置PDEVに送信する。一方、レスポンダRESは、状態D_RES1において、所定時間T2内に有効なPCSレーンPLの少なくともいずれかのアライメントマーカAMが正常に受信されない場合、タイムアウトを判定する。所定時間T2は、状態D_RES0に遷移してからの時間(例えば、5秒)であり、図5に示すタイマTM2により計測される。
なお、アライメントマーカAMは、16384個の64B/66B符号ブロック毎に伝送されるため、アライメントマーカAMの伝送間隔は、例えば、約210マイクロ秒である。アライメントマーカAMは、物理レーンPHLの各々を介して他の情報処理装置PDEVから第1の時間間隔で送信される制御情報の一例である。図4に示すAM検出部ADETおよび図5に示すAM検出情報受信部ARECは、物理レーンPHLの各々を介して他の情報処理装置PDEVから第1の時間間隔で送信される制御情報(すなわち、アライメントマーカAM)を検出する制御情報検出部の一例である。
レスポンダRESは、状態D_RES2において、通信先の情報処理装置PDEVからレーン縮退の完了を示すコマンドDGRD_COMPを受信した場合、縮退状態DGRDに移行し、レスポンダRES側の物理レーンPHLの縮退処理を完了する。レスポンダRESは、状態D_RES2において、状態D_RES0に遷移してから所定時間T2内にコマンドDGRD_COMPを受信しない場合、タイムアウトを判定する。
一方、縮退状態DGRD中に、CPUからレーン縮退を解除する切り替え通知GRDを受信した場合(図6のNo.7)、ステートマシンSMは、状態R_SUSPに移行する。切り替え通知GRDに基づく状態R_SUSPへの移行により、情報処理装置PDEVは、コマンドDGRD_REQを出力するリクエスタREQとして動作する。なお、縮退状態DGRDから通常状態NORMへの移行処理において、コマンドRGRD_REQは、レーン縮退の解除を指示するコマンド(復帰要求)である。また、縮退状態DGRD中、通信先の情報処理装置PDEVからレーン縮退を解除するコマンドDGRD_REQを受信した場合、ステートマシンSMは、情報処理装置PDEVをレスポンダRESとして動作させるため、状態R_SUSPに移行する。
リクエスタREQは、状態R_SUSPから状態R_REQ0に移行し、通信先の情報処理装置PDEVに、レーン縮退の解除用のコマンドDGRD_REQを繰り返し送信し、所定時間T1の経過後、状態R_REQ1に移行する。コマンドDGRD_REQは、図18で説明するように、使用を再開する物理レーンPHLの情報を含む。
リクエスタREQは、状態R_REQ1において、所定の物理レーンPHLの使用を再開するレーン縮退の復帰処理を実行する。リクエスタREQは、通信先の情報処理装置PDEVからのレーン縮退の解除の完了を示すコマンドDGRD_ACKの受信に基づいて、状態R_REQ2に移行する。なお、状態R_REQ2への移行は、図8で説明するように、所定時間T2内に、有効な全てのPCSレーンのアライメントマーカAMを検出し、かつレーン縮退の解除の完了を示すコマンドDGRD_ACKを受信した場合に実行される。
リクエスタREQは、状態R_REQ1において、所定時間T2内にアライメントマーカAMを検出しないPCSレーンがある場合、レーン縮退の解除用のコマンドDGRD_ACKを受信に拘わらず、レーン縮退の復帰処理を中断する。所定時間T2は、状態R_REQ0に遷移してからの時間であり、図5に示すタイマTM2により計測される。レーン縮退の復帰処理の中断は、タイマTM2から縮退指示部DCLTへのタイムアウト信号TOUTの出力を契機に実行される。そして、リクエスタREQは、元の縮退状態に戻すために、状態D_REQ0に移行する。
また、リクエスタREQは、状態R_REQ1において、所定時間T2内に、有効な全てのPCSレーンのアライメントマーカAMを検出したが、レーン縮退の解除用のコマンドDGRD_ACKを受信しない場合、レーン縮退の復帰処理を中断する。そして、リクエスタREQは、物理レーンPHLを元の縮退状態に戻すために、状態D_RES0に移行する。さらに、リクエスタREQは、状態R_REQ1において、物理レーンPHLを元の縮退状態に戻すコマンドDGRD_REQを通信先の情報処理装置PDEVから受信した場合、レーン縮退の復帰処理を中断し、状態D_RES1に移行する。
リクエスタREQは、状態R_REQ2において、通信先の情報処理装置PDEVに、レーン縮退の解除の完了を示すコマンドDGRD_COMPを繰り返し送信し、所定時間T3の経過後、通常状態NORMに移行する。そして、リクエスタREQ側における物理レーンPHLの縮退の復帰処理が完了する。
一方、レスポンダRESは、状態R_SUSPから状態R_RES1に移行し、コマンドDGRD_REQで指示された物理レーンPHLの使用を再開するレーン縮退の復帰処理を実行する。この後、レスポンダRESは、所定時間T2内に有効なPCSレーンPLの全てのアライメントマーカAMを正常に検出した場合、状態R_RES2に移行してコマンドDGRD_ACKを通信先の情報処理装置PDEVに送信する。
レスポンダRESは、状態R_RES1において、所定時間T2内に有効なPCSレーンPLの少なくともいずれかのアライメントマーカAMが正常に受信されない場合、レーン縮退の復帰処理を中断し、状態D_REQ0に移行する。さらに、レスポンダRESは、状態R_RES1において、物理レーンPHLを元の縮退状態に戻すコマンドDGRD_REQを通信先の情報処理装置PDEVから受信した場合、レーン縮退の復帰処理を中断し、状態D_RES1に移行する。
レスポンダRESは、状態D_RES2において、通信先の情報処理装置PDEVからレーン縮退の完了を示すコマンドDGRD_COMPを受信した場合、縮退状態DGRDに移行し、レスポンダRES側の物理レーンPHLの縮退処理を完了する。レスポンダRESは、状態R_RES2において、所定時間T2内に有効な全てのPCSレーンのアライメントマーカAMを検出したが、コマンドDGRD_COMPを受信しない場合、レーン縮退の復帰処理を中断し、状態D_RES0に移行する。また、レスポンダRESは、状態R_RES2において、物理レーンPHLを元の縮退状態に戻すコマンドDGRD_REQを通信先の情報処理装置PDEVから受信した場合、レーン縮退の復帰処理を中断し、状態D_RES1に移行する。
図8は、図7に示すステートマシンSMによる状態遷移の一例を示す。図7で説明した状態の遷移については、詳細な説明は省略する。
状態NORMおよび状態DGRDは、情報処理装置PDEV間でデータの送受信を実行する状態である。状態NORMにある各情報処理装置PDEVは、レーンの縮退処理の実行が決定されるまで状態NORMを維持する。レーンの縮退処理の実行が決定された場合、ステートマシンSMの状態は、状態NORMから状態D_SUSPに遷移される。状態D_SUSPでは、レーンの縮退処理の前処理が実行される。状態D_SUSPにおいて、情報処理装置PDEVがレスポンダRESとして動作し、かつレーンの縮退依頼が通信先の情報処理装置PDEVに送信される場合、ステートマシンSMの状態は、状態D_RES0に遷移される。一方、状態D_SUSPにおいて、情報処理装置PDEVがレスポンダRESとして動作し、かつレーンの縮退要求が通信先の情報処理装置PDEVから受信される場合、ステートマシンSMの状態は、状態D_RES1に遷移される。状態D_SUSPにおいて、情報処理装置PDEVがリクエスタREQとして動作する場合、状態D_REQ0に遷移される。
一方、状態DGRDにある各情報処理装置PDEVは、レーンの復帰処理の実行が決定されるまで状態DGRDを維持する。レーンの復帰処理の実行が決定された場合、ステートマシンSMの状態は、状態DGRDから状態R_SUSPに遷移される。状態R_SUSPでは、レーンの復帰処理の前処理が実行される。状態R_SUSPにおいて、情報処理装置PDEVがレスポンダRESとして動作する場合、ステートマシンSMの状態は、状態R_RES1に遷移される。状態R_SUSPにおいて、情報処理装置PDEVがリクエスタREQとして動作する場合、ステートマシンSMの状態は、状態R_REQ0に遷移される。
リクエスタREQまたはレスポンダRESとしてレーンの復帰処理を実行中の情報処理装置PDEVが所定時間T2によるタイムアウト(TOUT)を検出した場合、ステートマシンSMの状態は、状態D_REQ0または状態D_RES0に遷移する(図7)。また、リクエスタREQまたはレスポンダRESとしてレーンの復帰処理を実行中の情報処理装置PDEVが、通信先の情報処理装置PDEVからコマンドDGRD_REQを受信した場合、ステートマシンSMの状態は、状態D_RES1に遷移する。これにより、故障等により物理レーンPHLの復帰が困難な場合、情報処理システムSYS1をタイムアウトにより停止させることなく、物理レーンPHLを元の縮退状態DGRDに戻すことができる。この結果、情報処理装置PDEV間での通信が遮断されることを抑止することができ、情報処理システムSYS1の信頼性を向上することができる。
図9は、図2に示す情報処理装置PDEVのリンクアップ前の動作の一例を示す。なお、図9は、図4に示すフレーム転送部FTRおよび図5に示すリンク制御部LCLTの動作の一例を示す。
図9に示す動作は、図2に示す情報処理装置PDEV1、PDEV2の双方でそれぞれ実行される。図9に示す動作は、図2に示すCPUからユーザ指示OPINFを受信したときに、図4および図5に示すリンク制御部LCLTにより実行される。なお、図9に示す動作は、ハードウエアで実現されてもよく、フレーム転送部FTRに搭載されるCPUが実行する制御プログラム等のソフトウエアにより実現されてもよい。
ステップS100では、起動指示部SCLTは、インタフェース部PHYの起動を指示するユーザ指示OPINFに応じて、インタフェース部PHYに起動を指示する。起動が指示されたインタフェース部PHYは、起動処理を実行し、インタフェース部PHY間でリンクアップ用のフレームの送受信を開始する。
次に、ステップS110では、AM検出情報受信部ARECは、リンクアップ用のフレームとともに受信するアライメントマーカを検出したことを示すAM検出情報AINFを、1つ以上受信したか否かを判定する。すなわち、AM検出情報受信部ARECは、1個以上のPCSレーンPLでAM検出情報AINFが観測されたか否かを判定する。
AM検出情報AINFを1つ以上受信した場合、動作はステップS120に移る。一方、AM検出情報AINFを1つも受信していない場合、動作はステップS110に戻る。
ステップS120では、タイマTMは、アライメントマーカを含むデータが1個以上のPCSレーンPLが観測されたことに基づいて所定時間(例えば、4ミリ秒)の計測を開始する。
次に、ステップS130では、タイムアウト判定部TJGは、所定時間が経過するまでに起動完了通知CINFをインタフェース部PHYから受信したか否かを判定する。すなわち、タイムアウト判定部TJGは、アライメントマーカが最初に検出されてから所定時間が経過するまでに全てのPCSレーンPLでアライメントマーカが検出されたか否かを判定する。
所定時間が経過するまでに起動完了通知CINFを受信した場合、リンク制御部LCLTの動作は、ステップS140に移る。一方、所定時間が経過するまでに起動完了通知CINFを受信していない場合、動作はステップS150に移る。
ステップS140では、リンク制御部LCLTは、全てのPCSレーンPLでアライメントマーカが検出されたため、故障レーンがないと判定し、レーン縮退を実行することなく、レーン縮退に関する処理(以下、レーン縮退処理とも称する)を終了する。
一方、ステップS150では、レーン選択部LSELは、AM検出情報AINFを観測したPCSレーンPLの数が、正規の数(図3では1つの物理レーンPHLに対応する5個)より少ない物理レーンPHLを、縮退するレーンと特定する。例えば、縮退が特定される物理レーンPHLは、データを受信する受信側の物理レーンPHLr0−PHLr3のいずれかである。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。
次に、ステップS155では、フレーム転送部FTRは、ステップS150で特定した物理レーンPHL(縮退する物理レーンPHL)を示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。通信先の情報処理装置PDEVのフレーム転送部FTRは、縮退情報DINFSを含む縮退要求パケットDLLPを受信する。通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFS(受信側では、DINFR)が示す物理レーンPHLの使用を停止するイネーブル信号LENを出力する。例えば、通信先の情報処理装置PDEVが使用を停止する物理レーンPHLは、データを送信する送信側の物理レーンPHLs0−PHLs3のいずれかである。なお、通信先の情報処理装置PDEVは、送信側の物理レーンPHLsのいずれかとともに、縮退する送信側の物理レーンPHLsに対応する受信側の物理レーンPHLrの使用を停止してもよい。ステップS155により、通信先の情報処理装置PDEVに物理レーンPHLを縮退させる動作の一例は、図14に示す。
次に、ステップS160では、レーン選択部LSELは、ステップS150で特定した物理レーンPHL(縮退する物理レーンPHL)を使用しないように、レーン縮退を実行する。レーン選択部LSELは、ステップS150で特定した物理レーンPHL(縮退する物理レーンPHL)の使用を停止するイネーブル信号LENを出力する。また、レーン選択部LSELは、特定した物理レーンPHLを除く物理レーンPHLから、通信先の情報処理装置PDEVとのデータ転送に使用する物理レーンPHLを選択し、選択した物理レーンPHLを使用するイネーブル信号LENを出力する。そして、通信先の情報処理装置PDEVのインタフェース部PHYは再起動される。
縮退指示部DCLTは、インタフェース部PHYの再起動を指示する通知を起動指示部SCLTに出力する。起動指示部SCLTは、縮退指示部DCLTからの指示に基づいて、インタフェース部PHYに再起動を指示する。
なお、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動では、物理レーンPHLのイネーブルの設定(イネーブル信号LENの値)は、ステップS160で設定した内容が引き継がれる。また、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動後のリンクアップでは、縮退する物理レーンPHLが再起動前に判定されているため、図9に示す動作は、実行されない。
以上より、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、AM検出情報AINF等を参照することにより、縮退する物理レーンPHLをリンクアップ前に特定することができる。なお、情報処理装置PDEVは、インタフェース部PHYの再起動時にも、図9に示すレーン縮退処理を実行してもよい。
図10は、図9に示すリンクアップ前の動作において、縮退する物理レーンPHLの特定方法の一例を示す。
図10に示す例では、物理レーンPHLr0では、全てのPCSレーンPLr0−PLr4でアライメントマーカが検出され、アライメントマーカが検出されたPCSレーンPLrの数は、”5”と判定される。物理レーンPHLr1では、全てのPCSレーンPLr5−PLr9でアライメントマーカが検出されたため、アライメントマーカが検出されたPCSレーンPLrの数は、”5”と判定される。物理レーンPHLr2では、全てのPCSレーンPLr10−PLr14でアライメントマーカが検出されたため、アライメントマーカが検出されたPCSレーンPLrの数は、”5”と判定される。
物理レーンPHLr3では、PCSレーンPLr15、PLr17−PLr19でアライメントマーカが検出され、PCSレーンPLr16でアライメントマーカが検出されない。このため、アライメントマーカが検出されたPCSレーンPLrの数は、”4”と判定される。
したがって、図9に示すステップS150において、レーン選択部LSELは、アライメントマーカが検出されたPCSレーンPLrの数が正規の数”5”より少ない物理レーンPHLr3を、縮退する物理レーンPHLと特定する。一方、アライメントマーカが検出されたPCSレーンPLrの数が正規の数”5”である物理レーンPHLr0−PHLr2は、正常な物理レーンPHLrと判定される。このように、レーン選択部LSELは、縮退するレーンPHLをAM検出情報AINFに基づいて特定する。
なお、例えば、図10において、物理レーンPHLr2に対応するPCSレーンPLr10−PLr14の少なくともいずれかでアライメントマーカが検出されない場合、レーン選択部LSELは、物理レーンPHLr2を、縮退するレーンと特定する。すなわち、レーン選択部LSELは、アライメントマーカが検出されなかったPCSレーンPLrを含む物理レーンPHLrを縮退対象とする。また、レーン選択部LSELは、アライメントマーカが検出されなかったPCSレーンPLrを含む物理レーンPHLrが複数存在する場合、複数の物理レーンPHLrを、縮退する物理レーンPHLと判定する。
図11は、図2に示す情報処理装置PDEVのリンクアップ後の動作の一例を示す。図11に示す動作では、レーン縮退は、所定期間内のパリティBIPのエラー数が閾値を超えたことを契機として実行される(例えば、図6に示す所定期間内のパリティBIPのエラー数の閾値超え)。
図11に示す動作は、図2に示す情報処理装置PDEV1、PDEV2の双方が互いに独立に実行する。図11に示す動作は、図4に示すフレーム転送部FTRがインタフェース部PHYからエラー情報EINFを受信したことに基づいて開始される。なお、図11に示す動作は、ハードウエアのみで実現されてもよくフレーム転送部FTRに搭載されるCPUが実行する制御プログラム等のソフトウエアにより実現されてもよい。
ステップS200では、図5に示すエラー情報受信部ERECは、各PCSレーンPLのエラー情報EINFをインタフェース部PHYから受信する。
次に、ステップS202では、図5に示すエラーカウンタECTは、過去80ミリ秒のパリティBIPのエラー数を物理レーンPHL毎に計測する。例えば、エラーカウンタECTは、エラー情報EINFの受信を基準として過去80ミリ秒の間に発生した各物理レーンPHLのパリティBIPのエラーを計数し、計数値を約20ミリ秒毎に更新する。
次に、ステップS204では、図5に示す故障判定部BJGは、ステップS202で算出されたパリティBIPのエラー数が閾値(例えば、”255”)を超えた物理レーンPHLrが存在するか否かを判定する。パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在する場合(レーン縮退の契機が検出された場合)、リンク制御部LCLTの動作は、ステップS206に移る。
一方、ステップS204において、パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在しない場合、リンク制御部LCLTの動作は、ステップS200に戻る。すなわち、過去80ミリ秒間のパリティBIPのエラー数が全ての物理レーンPHLrで閾値以下の場合、リンク制御部LCLTの動作は、ステップS200に戻る。
ステップS206では、図5に示すレーン選択部LSELは、過去80ミリ秒間のパリティBIPのエラー数が閾値を超えた物理レーンPHLrを、縮退するレーンと特定する。例えば、縮退が特定される物理レーンPHLは、データを受信する受信側の物理レーンPHLr0−PHLr3のいずれかである。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。
故障判定部BJGは、縮退する物理レーンPHLが存在することを縮退指示部DCLTに通知する。これにより、縮退指示部DCLTは、パリティBIPのエラー数が閾値を超えた物理レーンPHLを縮退するように、レーン選択部LSELに指示する。
そして、レーン選択部LSELは、例えば、エラーカウンタECTがステップS202で算出したパリティBIPのエラー数に基づいて、縮退する物理レーンPHLを決定する。なお、レーン選択部LSELは、過去80ミリ秒間のパリティBIPのエラー数が閾値を超えた物理レーンPHLを示す情報を、故障判定部BJGから受信してもよい。
次に、ステップS208では、フレーム転送部FTRは、ステップS206で特定した物理レーンPHL(縮退するレーンPHL)を示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。通信先の情報処理装置PDEVのフレーム転送部FTRは、縮退情報DINFSを含む縮退要求パケットDLLPを受信する。通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFS(受信側では、DINFR)が示す送信側の物理レーンPHLの使用を停止するイネーブル信号LENを出力する。例えば、通信先の情報処理装置PDEVが使用を停止する物理レーンPHLは、データを送信する送信側の物理レーンPHLs0−PHLs3のいずれかである。なお、通信先の情報処理装置PDEVは、送信側の物理レーンPHLsのいずれかとともに、縮退する送信側の物理レーンPHLsに対応する受信側の物理レーンPHLrの使用を停止してもよい。ステップS208により、通信先の情報処理装置PDEVに物理レーンPHLを縮退させる動作の一例は、図14に示す。
ステップS210では、図9に示すステップS160と同様に、リンク制御部LCLTは、レーン縮退を実行し、インタフェース部PHYに再起動を指示する。すなわち、レーン選択部LSELは、ステップS206で特定した物理レーンPHLr(縮退する物理レーンPHLr)の使用を停止するイネーブル信号LENを出力する。また、レーン選択部LSELは、縮退する物理レーンPHLrを除く物理レーンPHLrの中から、通信先の情報処理装置PDEVからデータを受信する物理レーンPHLrを選択し、選択した物理レーンPHLrを有効にするイネーブル信号LENを出力する。そして、フレーム転送部FTRは、インタフェース部PHYを再起動する。
なお、図11に示す動作が、物理レーンPHLの縮退を既に実行した後に実行された場合、図11に示す動作が実行される前に使用が停止された物理レーンPHLは、選択対象の物理レーンPHLに含まれない。この場合、選択対象の物理レーンPHLは、図11に示す動作が実行される前に使用されていた物理レーンPHLからステップS206で特定した物理レーンPHL(縮退する物理レーンPHL)を除いた物理レーンPHLである。
また、レーン縮退により実行されるインタフェース部PHYの再起動では、物理レーンPHLのイネーブルの設定(イネーブル信号LENの値)は、ステップS210で設定した内容が引き継がれる。レーン縮退時に実行されるインタフェース部PHYの再起動後のリンクアップでは、縮退する物理レーンPHLが再起動前に判定されているため、図9に示す動作は、実行されない。
図11に示す動作では、レーン選択部LSELは、通信先の情報処理装置PDEVからインタフェース部PHYに転送されたデータに誤りがあることを示すエラー情報EINFに基づいて、縮退する物理レーンPHLを特定する。したがって、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、エラー情報EINF等を参照することにより、縮退する物理レーンPHLをリンクアップ後に特定することができる。
図12は、図2に示す情報処理装置PDEVのリンクアップ後の動作の別の例を示す。図12に示す動作では、レーン縮退は、再送処理での異常の検出(例えば、図6に示すビットエラーレートの悪化、リトライアウトの検出)を契機として実行される。
図12に示す動作は、図2に示す情報処理装置PDEV1、PDEV2の双方が互いに独立に実行する。図12に示す動作は、図4に示すフレーム転送部FTRにより実行される。なお、図12に示す動作は、ハードウエアのみで実現されてもよく、フレーム転送部FTRに搭載されるCPUが実行する制御プログラム等のソフトウエアにより実現されてもよい。
図12において、ステップS302、S304は、レーン縮退の契機の検出処理に対応し、リンクアップ後に異常検出部FDETにより繰り返し実行される。ステップS310−S322は、異常検出部FDETが再送処理での異常を検出したことに基づいてリンク制御部LCLTより実行される。
ステップS302では、図4に示す異常検出部FDETは、フレーム受信部FRECが通信先の情報処理装置PDEVから受信するパケットDLLPに基づいて、再送信に関する処理(再送処理)で異常が発生したか否かを判定する。例えば、異常検出部FDETは、例えば、ビットエラーレートの悪化やリトライアウトを検出した場合、再送処理で異常が発生したと判定する。
例えば、異常検出部FDETは、所定時間(例えば、24秒間)に閾値(例えば、255回)以上の回数の再送要求(NACK)を通信先の情報処理装置PDEVから受信した場合、ビットエラーレートの悪化を判定する。また、異常検出部FDETは、フレームデータSFRAMが送信されてから所定時間(例えば、12.62ミリ秒)が経過するまでに、肯定応答信号ACKおよび否定応答信号NACKのいずれも受信しなかった場合、リトライアウトを判定する。あるいは、異常検出部FDETは、再送要求の連続回数が閾値(例えば、255回)を超えた場合、リトライアウトを判定する。
再送処理で異常が発生した場合、異常検出部FDETの動作は、ステップS304に移り、再送処理で異常が発生していない場合、異常検出部FDETの動作は、ステップS302に戻る。すなわち、異常検出部FDETは、再送処理で異常が発生していない場合、ステップS302において、再送処理での異常を検出する処理を継続する。
ステップS304では、異常検出部FDETは、ビットエラーレートの悪化を判定した場合、再送信エラー通知RERR1をリンク制御部LCLTに送信し、リトライアウトを判定した場合、再送信エラー通知RERR2をリンク制御部LCLTに送信する。
一方、ステップS310では、リンク制御部LCLTの縮退指示部DCLTは、再送信エラー通知RERR1、REER2のいずれかを異常検出部FDETから受信する。これにより、リンク制御部LCLTは、再送処理で異常が発生した場合のレーン縮退処理を開始する。
次に、ステップS312では、図5に示す故障判定部BJGは、図11に示すステップS204と同様に、通信先の情報処理装置PDEVから受信したデータのパリティBIPのエラー数が、所定期間内に閾値を超えた物理レーンPHLが存在するか否かを判定する。すなわち、再送処理で発生した異常が、通信先の情報処理装置PDEVからデータを受信する物理レーンPHLr側に起因するのか、通信先の情報処理装置PDEVにデータを送信する物理レーンPHLs側に起因するのかが識別される。なお、リンク制御部LCLTは、例えば、図12に示す動作と並列して、所定期間内のパリティBIPのエラー数を物理レーンPHL毎にエラーカウンタECTを用いて計数する。例えば、所定期間内の各物理レーンPHLのパリティBIPのエラー数は、図11のステップS202で算出される。
パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在する場合、通信先の情報処理装置PDEVからのデータを受信する物理レーンPHLr等に故障が存在する可能性が高いと判断され、リンク制御部LCLTの動作は、ステップS314に移る。一方、パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在しない場合、通信先の情報処理装置PDEVにデータを送信する物理レーンPHLs等に故障が存在する可能性が高いと判断され、リンク制御部LCLTの動作は、ステップS318に移る。なお、ステップS312の閾値は、図11のステップS204の閾値と同じ値でもよいし、異なる値でもよい。
ステップS314では、図5に示すレーン選択部LSELは、所定期間内のパリティBIPのエラー数が最も多い物理レーンPHLrを、縮退する物理レーンPHLと特定する。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。例えば、レーン選択部LSELは、故障の検出に基づいて縮退する物理レーンPHLを、所定期間内(例えば、過去80ミリ秒の間)のパリティBIPのエラー数に基づいて特定する。すなわち、レーン選択部LSELは、再送信に関する処理での異常が検出された場合、縮退する物理レーンPHLを、所定期間分のエラー情報EINFに基づいて特定する。
この場合、レーン選択部LSELは、縮退する物理レーンPHLを再送処理での異常が検出された直前のパリティBIPに基づいて特定する場合に比べて、ノイズ等による影響を排除して、故障に基づいて縮退する物理レーンPHLを精度よく特定することができる。以下、故障に基づいて縮退する物理レーンPHLを特定する際の特定精度を、縮退するレーンの特定精度とも称する。
次に、ステップS316では、図11に示すステップS208と同様に、フレーム転送部FTRは、ステップS314で特定した物理レーンPHLを示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。そして、通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFSを含むパケットDLLP(縮退要求)が示す送信側の物理レーンPHLの使用を停止するイネーブル信号LENを出力する。ここで、通信先の情報処理装置PDEVが使用を停止する物理レーンPHLは、データを送信する送信側の物理レーンPHLs0−PHLs3のいずれかである。なお、通信先の情報処理装置PDEVは、送信側の物理レーンPHLsのいずれかとともに、縮退する送信側の物理レーンPHLsに対応する受信側の物理レーンPHLrの使用を停止してもよい。ステップS316の後、動作はステップS322に移る。
一方、ステップS318では、リンク制御部LCLTは、通信先の情報処理装置PDEVにデータを送信する物理レーンPHLs等の故障を判断する縮退依頼を通信先の情報処理装置PDEVに送信する。例えば、縮退情報生成部DGENは、縮退する物理レーンPHLsの特定を通信先の情報処理装置PDEVに依頼するための縮退情報DINFSを、フレーム生成部FGENに出力する。ここで、通信先の情報処理装置PDEVにデータを送信する物理レーンPHLsは、通信先の情報処理装置PDEVでは、データを受信する物理レーンPHLrである。
縮退依頼を受信した通信先の情報処理装置PDEVは、縮退する物理レーンPHLrを特定する処理を実行する。そして縮退する物理レーンPHLrを特定した通信先の情報処理装置PDEVは、縮退する物理レーンPHLrを示す縮退情報DINFSを含む縮退要求パケットDLLPを、レーン縮退処理の依頼元の情報処理装置PDEVに送信する。レーン縮退処理の依頼元の情報処理装置PDEVは、縮退依頼パケットDLLPを送信した情報処理装置PDEVである。これにより、図4に示すフレーム受信部FRECは、縮退依頼パケットDLLPに対する応答である縮退要求パケットDLLPを、通信先の情報処理装置PDEVから受信する。なお、縮退依頼を受信した通信先の情報処理装置PDEVは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。
次に、ステップS320では、縮退指示部DCLTは、ステップS318で通信先の情報処理装置PDEVに依頼したレーン縮退処理の結果として、縮退を要求する縮退情報DINFS(縮退要求)を受信する。これにより、レーン選択部LSELは、データ転送に使用する物理レーンPHL等を選択できる。
次に、ステップS322では、リンク制御部LCLTは、レーン縮退を実行し、インタフェース部PHYに再起動を指示する。例えば、レーン選択部LSELは、ステップS314で特定した物理レーンPHLr(縮退する物理レーンPHLr)の使用を停止するイネーブル信号LENを出力する。また、レーン選択部LSELは、縮退する物理レーンPHLrを除く物理レーンPHLrの中から、通信先の情報処理装置PDEVからデータを受信する物理レーンPHLrを選択し、選択した物理レーンPHLrを有効にするイネーブル信号LENを出力する。なお、レーン選択部LSELは、物理レーンPHLrの使用を停止するイネーブル信号LENとともに、縮退する物理レーンPHLsの使用を停止するイネーブル信号LENを出力してもよい。
あるいは、レーン選択部LSELは、ステップS320で受信した縮退情報DINFSに含まれる縮退する物理レーンPHLsの使用を停止するイネーブル信号LENを出力する。この場合、レーン選択部LSELは、物理レーンPHLsの使用を停止するイネーブル信号LENとともに、物理レーンPHLrの使用を停止するイネーブル信号LENを出力してもよい。
なお、図12に示す動作が、物理レーンPHLの縮退を既に実行した後に実行された場合、図12の動作が実行される前に使用が停止された物理レーンPHLは、選択対象の物理レーンPHLに含まれない。この場合、選択対象の物理レーンPHLは、図12の動作が実行される前に使用されていた物理レーンPHLからステップS314で特定した物理レーンPHL(縮退する物理レーンPHL)を除いた物理レーンPHLである。
また、縮退指示部DCLTは、インタフェース部PHYの再起動を指示する通知を起動指示部SCLTに出力する。そして、起動指示部SCLTは、縮退指示部DCLTからの再起動の指示に応じて、インタフェース部PHYに対して再起動を指示する。
なお、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動では、物理レーンPHLのイネーブルの設定(イネーブル信号LENの値)は、ステップS322で設定した内容が引き継がれる。また、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動後のリンクアップでは、縮退する物理レーンPHLが再起動前に判定されているため、図9に示す動作は、実行されない。
以上より、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、再送処理での異常を検出した場合に、エラー情報EINF等に基づいて、縮退する物理レーンPHLをリンクアップ後に特定できる。
なお、情報処理装置PDEVのリンクアップ後の動作は、この例に限定されない。例えば、レーン選択部LSELは、再送処理での異常が検出された時点、直前または直後のパリティBIPのエラー数に基づいて、縮退する物理レーンPHLを特定してもよい。
図13は、図2に示す情報処理装置PDEVのリンクアップ後の動作の別の例を示す。図13に示す動作では、レーン縮退は、通信先の情報処理装置PDEVにデータを転送するためのフロー制御での異常の検出(例えば、図6に示すフロー制御プロトコルエラーの検出)を契機として実行される。
図13に示す動作は、図2に示す情報処理装置PDEV1、PDEV2の双方が互いに独立に実行する。図13に示す動作は、図4に示すフレーム転送部FTRにより実行される。なお、図13に示す動作は、ハードウエアのみで実現されてもよく、フレーム転送部FTRに搭載されるCPUが実行する制御プログラム等のソフトウエアにより実現されてもよい。
図13において、ステップS402、S404は、レーン縮退の契機の検出処理に対応し、エラー検出部EDETにより実行される。また、ステップS410−S422は、リンク制御部LCLTより実行される。
ステップS402では、図4に示すエラー検出部EDETは、FCPEを検出したか否かを判定する。例えば、エラー検出部EDETは、フロー制御フレーム(フロー制御情報FINF)を受信していない期間の長さが閾値(例えば、200マイクロ秒)を超えた場合、FCPEの発生を検出する。
FCPEが検出された場合、エラー検出部EDETの動作は、ステップS404に移る。一方、FCPEが検出されない場合、エラー検出部EDETの動作は、ステップS402に戻る。すなわち、エラー検出部EDETは、フロー制御で異常が発生していない場合、フロー制御での異常を検出する処理を継続する。
ステップS404では、エラー検出部EDETは、フロー制御で異常が発生したことを示すFCPE通知FERRをリンク制御部LCLTに出力する。これにより、リンク制御部LCLTは、ステップS410において、FCPE通知FERRを受信する。
ステップS410では、図5に示すリンク制御部LCLTの縮退指示部DCLTは、FCPE通知FERRをエラー検出部EDETから受信し、フロー制御で異常が発生した場合のレーン縮退処理を開始する。
次に、ステップS412では、図12に示すステップS312と同様に、図5に示す故障判定部BJGは、通信先の情報処理装置PDEVからのデータのパリティBIPのエラー数が、所定期間内に閾値を超えた物理レーンPHLrが存在するか否かを判定する。パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在する場合、通信先の情報処理装置PDEVからのデータを受信する物理レーンPHLr等の故障に基づいてFCPEの発生が判断され、リンク制御部LCLTの動作は、ステップS414に移る。一方、パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在しない場合にも、通信先の情報処理装置PDEVからのデータを受信する物理レーンPHLr等の故障に基づいてFCPEが発生した可能性が高いと判断される。この場合、リンク制御部LCLTの動作は、ステップS418に移る。なお、ステップS412の閾値は、図11のステップS204の閾値と同じ値でもよいし、異なる値でもよい。
ステップS414では、図12に示すステップS314と同様に、レーン選択部LSELは、所定期間内のパリティBIPのエラー数が最も多い物理レーンPHLrを、縮退するレーンと特定する。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。ここで、FCPEの検出時間間隔(例えば、4.5マイクロ秒)は、パリティBIPのエラーの検出時間間隔(例えば、210マイクロ秒)に比べて短い。このため、固定故障によりFCPEが検出された場合、パリティBIPのエラーの履歴(所定期間内のパリティBIPのエラー数)は、FCPEの検出に至るまでの状況を十分に反映していないおそれがある。したがって、縮退する物理レーンPHLrをパリティBIPのエラーの履歴に基づいて特定した場合、縮退する物理レーンPHLrの特定精度が低下するおそれがある。このため、レーン選択部LSELは、例えば、ステップS412、S414の処理を実行する際に、FCPEが検出された時点、直前または直後のパリティBIPのエラーの検出情報(エラー情報EINF)を参照する。ステップS414の後、動作はステップS416に移る。
一方、ステップS418では、データを受信する物理レーンPHLr間で、パリティBIPのエラーの数の差がないため、レーン選択部LSELは、特定の物理レーンPHLrを、縮退するレーンと特定する。例えば、特定の物理レーンPHLrは、予め決められた順序にしたがって選択される。なお、ステップS418において、レーン選択部LSELは、所定期間内のパリティBIPのエラー数が1以上で閾値以下の場合、所定期間内のパリティBIPのエラー数が最も多い物理レーンPHLrを、縮退するレーンと特定してもよい。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。
図13に示す動作後、FCPEが再度検出された場合、前回の動作におけるステップS418で選択した物理レーンPHLrの縮退は解除され、ステップS418で、新たな物理レーンPHLrが選択される。すなわち、FCPEが検出されたにも拘わらず、パリティBIPのエラーの数に差がない場合、FCPEが検出されなくなるまで、物理レーンPHLrが交互に選択される。
次に、ステップS416では、フレーム転送部FTRは、ステップS414またはステップS418で特定した物理レーンPHL(縮退する物理レーンPHL)を示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。ステップS416の動作は、図11に示すステップS208の動作と同様である。縮退レーンを通知された通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFSを含むパケットDLLP(縮退要求)が示す物理レーンPHLの使用を停止するイネーブル信号LENを出力する。
次に、ステップS422では、図11に示すステップS210と同様に、リンク制御部LCLTは、レーン縮退を実行し、インタフェース部PHYに再起動を指示する。例えば、レーン選択部LSELは、ステップS414あるいはステップS418で特定した物理レーンPHLr(縮退する物理レーンPHLr)の使用を停止するイネーブル信号LENを出力する。また、レーン選択部LSELは、縮退する物理レーンPHLrを除く物理レーンPHLrの中から、通信先の情報処理装置PDEVからデータを受信する物理レーンPHLrを選択し、選択した物理レーンPHLrを有効にするイネーブル信号LENを出力する。そして、フレーム転送部FTRは、インタフェース部PHYを再起動する。
なお、例えば、図13に示す動作が、物理レーンPHLの縮退を既に実行した後に実行された場合、図13の動作が実行される前に使用が停止された物理レーンPHLは、選択対象の物理レーンPHLに含まれない。この場合、選択対象の物理レーンPHLは、図13の動作が実行される前に使用されていた物理レーンPHLからステップS414またはステップS418で特定した物理レーンPHL(縮退する物理レーンPHL)を除いた物理レーンPHLである。
また、縮退指示部DCLTは、インタフェース部PHYの再起動を指示する通知を起動指示部SCLTに出力する。そして、起動指示部SCLTは、例えば、縮退指示部DCLTからの再起動の指示に応じて、インタフェース部PHYに対して再起動を指示する。
このように、例えば、レーン選択部LSELは、フロー制御での異常が検出された場合、外部の装置とのデータ転送に使用する物理レーンPHLを、エラー情報EINFに基づいて選択する。
なお、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動では、物理レーンPHLのイネーブルの設定(イネーブル信号LENの値)は、ステップS422で設定した内容が引き継がれる。また、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動後のリンクアップでは、縮退する物理レーンPHLが再起動前に判定されているため、図9に示す動作は、実行されない。
以上より、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、フロー制御での異常を検出した場合に、エラー情報EINF等に基づいて、縮退する物理レーンPHLをリンクアップ後に特定できる。
なお、情報処理装置PDEVのリンクアップ後の動作は、この例に限定されない。例えば、ステップS418の処理は、省かれてもよい。この場合、例えば、ステップS412は、パリティBIPのエラーが検出されるまで繰り返されてもよい。また、ステップS412において、パリティBIPのエラー数が閾値を超えた物理レーンPHLが存在しない場合、フレーム転送部FTRは、ステップS418の代わりに、図12に示すステップS318、S320と同じ動作を実行してもよい。
図14は、図2に示す情報処理装置PDEVのリンクアップ後の動作の別の例を示す。図14に示す動作では、物理レーンPHLsの縮退は、物理レーンPHLrの縮退の契機を検出した通信先の情報処理装置PDEVからの物理レーンPHLsの縮退要求の受信を契機として実行される。あるいは、物理レーンPHLrの縮退は、通信先の情報処理装置PDEVからの故障した物理レーンPHLrの縮退を要求する縮退依頼の受信を契機として実行される。
図14に示す動作は、図2に示す情報処理装置PDEV1、PDEV2の双方が互いに独立に実行する。図14において、ステップS502、S504は、レーン縮退の契機の検出処理に対応し、図4に示すフレーム受信部FRECにより実行される。また、ステップS510−S522は、図4および図5に示すリンク制御部LCLTより実行される。なお、図14に示す動作は、ハードウエアのみで実現されてもよく、フレーム転送部FTRに搭載されるCPUが実行する制御プログラム等のソフトウエアにより実現されてもよい。
ステップS502では、フレーム受信部FRECは、縮退情報DINFRを含む制御用パケットDLLPを受信したか否かを判定する。制御用パケットDLLPに含まれる縮退情報DINFRは、縮退する物理レーンPHLを指示する縮退要求パケットDLLPまたは縮退する物理レーンPHLの検出を指示する縮退依頼パケットDLLPである。
縮退要求パケットDLLPまたは縮退依頼パケットDLLPを受信した場合、フレーム受信部FRECの動作は、ステップS504に移る。一方、縮退要求パケットDLLPおよび縮退依頼パケットDLLPのいずれも受信していない場合、フレーム受信部FRECの動作は、ステップS502に戻る。
ステップS504では、フレーム受信部FRECは、ステップS502で受信した縮退要求パケットDLLPまたは縮退依頼パケットDLLPに含まれる縮退情報DINFRを、図4に示すリンク制御部LCLTに出力する。これにより、リンク制御部LCLTは、ステップS510において、縮退情報DINFRを受信する。
ステップS510では、リンク制御部LCLTの縮退指示部DCLTは、縮退情報DINFRをフレーム受信部FRECから受信する。これにより、リンク制御部LCLTは、通信先の情報処理装置PDEVでレーン縮退の契機が検出された場合のレーン縮退処理を開始する。
次に、ステップS511では、縮退指示部DCLTは、ステップS510で受信した縮退情報DINFRが、縮退する物理レーンPHLrの検出を指示する縮退依頼を示すか否かを判定する。縮退情報DINFRが縮退依頼を示す場合、リンク制御部LCLTの動作は、ステップS512に移る。一方、縮退情報DINFRが縮退依頼でない場合(すなわち、縮退する物理レーンPHLを指示する縮退要求の場合)、リンク制御部LCLTの動作は、ステップS522に移る。
次に、ステップS512では、故障判定部BJGは、図11に示すステップS204と同様に、通信先の情報処理装置PDEVから受信したデータのパリティBIPのエラー数が、所定期間内に閾値を超えた物理レーンPHLrが存在するか否かを判定する。なお、リンク制御部LCLTは、例えば、図14に示す動作と並列して、所定期間内のパリティBIPのエラー数を物理レーンPHL毎にエラーカウンタECTを用いて計測する。例えば、所定期間内の各物理レーンPHLのパリティBIPのエラー数は、図11のステップS202で算出される。
パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在する場合、リンク制御部LCLTの動作は、ステップS514に移る。一方、パリティBIPのエラー数が閾値を超えた物理レーンPHLrが存在しない場合、リンク制御部LCLTの動作は、ステップS518に移る。なお、ステップS512の閾値は、図11のステップS204の閾値と同じ値でもよいし、異なる値でもよい。
ステップS514では、図12に示すステップS314と同様に、図5に示すレーン選択部LSELは、所定期間内のパリティBIPのエラー数が最も多い物理レーンPHLrを、縮退するレーンと特定する。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。ステップS514の後、動作はステップS520に移る。
一方、ステップS518では、図13に示すステップS418と同様に、データを受信する物理レーンPHLr間で、パリティBIPのエラーの数の差がないため、レーン選択部LSELは、特定の物理レーンPHLrを、縮退するレーンと特定する。例えば、特定の物理レーンPHLrは、予め決められた順序にしたがって選択される。なお、ステップS518において、レーン選択部LSELは、所定期間内のパリティBIPのエラー数が1以上で閾値以下の場合、所定期間内のパリティBIPのエラー数が最も多い物理レーンPHLrを、縮退するレーンと特定してもよい。なお、レーン選択部LSELは、縮退する受信側の物理レーンPHLrとともに、縮退する物理レーンPHLrに対応する送信側の物理レーンPHLsを縮退対象として特定してもよい。
次に、ステップS520では、フレーム転送部FTRは、ステップS514またはステップS518で特定した物理レーンPHL(縮退する物理レーンPHL)を示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。ステップS520の動作は、図11に示すステップS208の動作と同様である。縮退レーンを通知された通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFSを含むパケットDLLP(縮退要求)が示す物理レーンPHLの使用を停止するイネーブル信号LENを出力する。
次に、ステップS522では、図11に示すステップS210と同様に、リンク制御部LCLTは、レーン縮退を実行し、インタフェース部PHYに再起動を指示する。例えば、レーン選択部LSELは、ステップS514あるいはステップS518で特定した物理レーンPHL(縮退する物理レーンPHL)の使用を停止するイネーブル信号LENを出力する。また、レーン選択部LSELは、縮退する物理レーンPHLを除く物理レーンPHLrの中から、データを受信または送信する物理レーンPHLを選択し、選択した物理レーンPHLを有効にするイネーブル信号LENを出力する。
あるいは、レーン選択部LSELは、ステップS510で受信した縮退要求パケットDLLPに含まれる縮退を支持された物理レーンPHLの使用を停止するイネーブル信号LENを出力する。また、レーン選択部LSELは、縮退する物理レーンPHLを除く物理レーンPHLの中から、通信先の情報処理装置PDEVにデータを送信または受信する物理レーンPHLを選択し、選択した物理レーンPHLを有効にするイネーブル信号LENを出力する。そして、フレーム転送部FTRは、インタフェース部PHYを再起動する。
なお、例えば、図14に示す動作が、物理レーンPHLの縮退を既に実行した後に実行された場合、図14の動作が実行される前に使用が停止された物理レーンPHLは、選択対象の物理レーンPHLに含まれない。この場合、選択対象の物理レーンPHLは、図14の動作が実行される前に使用されていた物理レーンPHLからステップS514またはステップS518で特定した物理レーンPHL(縮退する物理レーンPHL)を除いた物理レーンPHLである。
また、縮退指示部DCLTは、インタフェース部PHYの再起動を指示する通知を起動指示部SCLTに出力する。そして、起動指示部SCLTは、例えば、縮退指示部DCLTからの再起動の指示に応じて、インタフェース部PHYに対して再起動を指示する。
なお、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動では、物理レーンPHLのイネーブルの設定(イネーブル信号LENの値)は、ステップS522で設定した内容が引き継がれる。また、物理レーンPHLの縮退時に実行されるインタフェース部PHYの再起動後のリンクアップでは、縮退する物理レーンPHLが再起動前に判定されているため、図9に示す動作は、実行されない。
以上より、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、縮退依頼の受信に基づいて、縮退する物理レーンPHLrをリンクアップ後に特定することができる。また、縮退を特定した物理レーンPHLrを示す情報を、依頼元の情報処理装置PDEVに通知することができる。あるいは、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、縮退要求の受信に基づいて、物理レーンPHLsをリンクアップ後に縮退することができる。
なお、情報処理装置PDEVのリンクアップ後の動作は、この例に限定されない。例えば、ステップS518の処理は、省かれてもよい。この場合、例えば、ステップS512は、パリティBIPのエラーが検出されるまで繰り返されてもよい。また、ステップS512において、パリティBIPのエラー数が閾値を超えた物理レーンPHLが存在しない場合、フレーム転送部FTRは、ステップS518の代わりに、図12に示すステップS318、S320と同じ動作を実行してもよい。
以上より、フレーム転送部FTRは、故障レーンを特定する機能を含まないインタフェース部PHYを使用する場合においても、受信データのエラーを示すエラー情報EINF等を参照することにより、物理レーンPHLをリンクアップ後に縮退することができる。
例えば、フレーム転送部FTRは、図11のステップS200−S204、図12のステップS302−S304、図13のステップS402−S404、図14のステップS502−S504等のレーン縮退の契機の検出処理を、並列に実行する。この場合、フレーム転送部FTRは、複数のレーン縮退の契機のうちのいずれかを検出した場合に縮退する物理レーンPHLを特定するため、縮退する物理レーンPHLの特定を効率よく実行できる。
なお、フレーム転送部FTRは、図11から図14に示すレーン縮退の契機の検出処理の一部を省略してもよい。例えば、フレーム転送部FTRは、図6に示す所定期間内のパリティBIPのエラー数の閾値超えをレーン縮退の契機から省いてもよい。あるいは、図6に示すビットエラーの悪化、リトライアウトの検出、フロー制御プロトコルエラーの検出および低電力モードへの切り替えをレーン縮退の契機から省いてもよい。
図15は、図11から図14に示すリンクアップ後の動作において、縮退する物理レーンPHLの特定方法の例を示す。図15に示すパリティBIPのエラーの領域に示される”有り”、”無し”は、所定期間(例えば、80ミリ秒)のうちの一部の期間を抜粋した場合のパリティBIPのエラーの検出結果の一例を示す。また、縮退する物理レーンPHLか否かを判定するための閾値は、例えば、”3”である。
図15に示す例では、過去80ミリ秒の間に検出された5つのPCSレーンPLrの各々のパリティBIPのエラーの総数は、物理レーンPHLr0、PHLr1、PHLr2、PHLr3のそれぞれで、”5”、”1”、”2”、”4”である。このため、例えば、図11に示すステップS206において、レーン選択部LSELは、所定期間でのパリティBIPのエラーの数が閾値(=”3”)を超えた物理レーンPHLr0、PHLr3を、縮退するレーンと特定する。物理レーンPHLr1−PHLr2は、正常な物理レーンPHLrと判定される。あるいは、図12に示すステップS314、図13に示すステップS414および図14に示すステップS514において、レーン選択部LSELは、所定期間でのパリティBIPのエラーの数が最も多い物理レーンPHLr0を、縮退するレーンと特定する。物理レーンPHLr1−PHLr3は、正常な物理レーンPHLrと判定される。このように、レーン選択部LSELは、通信先の情報処理装置PDEVからインタフェース部PHYに転送されたデータに誤りがあることを示すエラー情報EINFに基づいて、縮退する物理レーンPHLを特定する。
図16は、図2に示す情報処理装置PDEVの動作の別の例を示す。図16に示す動作では、レーン縮退またはレーン縮退の解除は、CPUからの切り替え通知GRDの受信を契機として実行される。
図16に示す動作は、図2に示す情報処理装置PDEV1、PDEV2の双方が互いに独立に実行する。図16に示す動作は、図4および図5に示すリンク制御部LCLTにより実行される。なお、図16に示す動作は、ハードウエアのみで実現されてもよく、フレーム転送部FTRに搭載されるCPUが実行する制御プログラム等のソフトウエアにより実現されてもよい。
ステップS602では、縮退指示部DCLTは、フレーム転送部FTRとともに情報処理装置PDEVに搭載されるCPUから切り替え通知GRDを受信したか否かを判定する。切り替え通知GRDを受信した場合、動作はステップS604に移り、切り替え通知GRDを受信していない場合、動作はステップS602に戻る。
ステップS604では、縮退指示部DCLTは、縮退する物理レーンPHLを示す情報が切り替え通知GRDに含まれるか否かを判定する。縮退する物理レーンPHLを示す情報が切り替え通知GRDに含まれる場合、縮退指示部DCLTは、縮退する物理レーンPHLを示す情報をレーン選択部LSELに通知し、動作はステップS606に移る。縮退する物理レーンPHLを示す情報が切り替え通知GRDに含まれない場合、縮退した物理レーンPHLの解除の指示を示す情報が切り替え通知GRDに含まれる。このため、縮退指示部DCLTは、縮退した物理レーンPHLの解除の指示を示す情報をレーン選択部LSELに通知する。そして、動作はステップS612に移る。
なお、切り替え通知GRDに含まれる情報は、通信先の情報処理装置PDEVからデータを受信する物理レーンPHLrまたは通信先の情報処理装置PDEVにデータを送信する物理レーンPHLsを示す。なお、切り替え通知GRDに含まれる情報は、物理レーンPHLr、PHLsの両方を示してもよい。切り替え通知GRDに含ませる情報は、低電力モード中に縮退する物理レーンPHLr、PHLsの仕様に応じて決められる。また、切り替え通知GRDを出力するCPUは、図2に示す情報処理装置PDEV1、PDEV2の一方のCPUでもよい。
ステップS606では、レーン選択部LSELは、切り替え通知GRDに含まれる物理レーンPHLを縮退する物理レーンPHLと特定する。
次に、ステップS608では、フレーム転送部FTRは、ステップS606で特定した物理レーンPHLを示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFSを含むパケットDLLP(縮退要求)が示す物理レーンPHLの使用を停止するイネーブル信号LENを出力する。
次に、ステップS610では、図9に示すステップS160と同様に、リンク制御部LCLTは、イネーブル信号LENを出力することで、インタフェース部PHYにレーン縮退を実行させ、インタフェース部PHYに再起動を指示し、動作を終了する。
一方、ステップS612では、レーン選択部LSELは、切り替え通知GRDに含まれる物理レーンPHLを、縮退を解除するレーンと特定する。
次に、ステップS614では、フレーム転送部FTRは、ステップS612で特定した縮退を解除する物理レーンPHLを示す縮退情報DINFSをパケットDLLPとして、通信先の情報処理装置PDEVに送信する。通信先の情報処理装置PDEVのリンク制御部LCLTは、縮退情報DINFSを含むパケットDLLP(縮退要求)が示す物理レーンPHLの使用を再開するイネーブル信号LENを出力する。通信先の情報処理装置PDEVが物理レーンPHLの使用を再開する一例(すなわち、物理レーンPHLの縮退の解除)は、図17に示す。
次に、ステップS616では、リンク制御部LCLTは、イネーブル信号LENを出力することで、物理レーンPHLの縮退を解除する処理をインタフェース部PHYに実行させる。また、リンク制御部LCLTは、図9に示すステップS160と同様に、インタフェース部PHYに再起動を指示し、動作を終了する。
なお、図7および図8で説明したように、レーン縮退の復帰処理を実行中の情報処理装置PDEVがアライメントマーカAMの非検出によるタイムアウト等を検出した場合、復帰処理は中断され、物理レーンPHLを元の縮退状態に戻す縮退処理が実行される。
図17は、図2に示す情報処理装置PDEVの動作の別の例を示す。図17は、通信先の情報処理装置PDEVが、縮退を解除する物理レーンPHLを示す縮退情報DINFSを含むパケットDLLPを受信し、縮退している物理レーンPHLを復帰する動作を示す。
まず、ステップS702において、フレーム受信部FRECは、縮退を解除する縮退解除情報DINFRを含む制御用パケットDLLP(図7に示すコマンドDGRD_REQ)を受信したか否かを判定する。縮退解除情報DINFRを含む制御用パケットDLLPを受信した場合、フレーム受信部FRECの動作は、ステップS704に移る。一方、縮退解除情報DINFRを含む制御用パケットDLLPを受信していない場合、フレーム受信部FRECの動作は、ステップS702に戻る。
ステップS704では、フレーム受信部FRECは、ステップS702で受信した制御用パケットDLLPを、図4に示すリンク制御部LCLTに出力する。これにより、リンク制御部LCLTは、ステップS710において、縮退解除情報DINFRを含む制御用パケットDLLPを受信する。リンク制御部LCLTは、縮退している物理レーンPHLの使用を再開する処理を開始する。
次に、ステップS712では、リンク制御部LCLTは、縮退解除情報DINFRに基づいて、縮退されている物理レーンPHLの縮退を解除し、インタフェース部PHYに再起動を指示する。例えば、レーン選択部LSELは、縮退を解除する物理レーンPHLに対応するイネーブル信号LENを出力する。そして、物理レーンPHLの縮退を解除する動作は終了する。
なお、図7および図8で説明したように、レーン縮退の復帰処理を実行中の情報処理装置PDEVがアライメントマーカAMの非検出によるタイムアウト等を検出した場合、復帰処理は中断され、物理レーンPHLを元の縮退状態に戻す縮退処理が実行される。
図18は、レーン縮退および縮退レーンの解除に使用する縮退制御用パケットDLLPの一例を示す。縮退制御用パケットDLLPは、パケットDLLPのタイプ、送信側の物理レーンPHLsの縮退情報、受信側の物理レーンPHLrの縮退情報、およびバッファ部RBUFの空きを示すクレジット情報を格納する領域を有する。
送信側の物理レーンPHLsの縮退情報および受信側の物理レーンPHLrの縮退情報は、縮退制御用パケットDLLPを送信する情報処理装置PDEVを基準にして決められる。例えば、情報処理装置PDEVがデータを受信する物理レーンPHLrの縮退を指示する縮退制御用パケットDLLPを、通信先の情報処理装置PDEVに送信する場合、受信側の物理レーンPHLrの領域に縮退情報が格納される。
パケットDLLPのタイプの領域は、図19等に示すコマンドDGRD_PUSH、DGRD_REQ、DGRD_ACK、DGRD_COMPを識別する情報のいずかが格納される。コマンドDGRD_PUSHは、縮退する物理レーンPHLsの特定を通信先の情報処理装置PDEVに依頼する場合(縮退依頼)に使用される。コマンドDGRD_REQは、物理レーンPHLrの縮退を通信先の情報処理装置PDEVに要求する場合(縮退要求)に使用される。また、コマンドDGRD_REQは、通常動作モードから低電力モードへの切り替えのために、通信先の情報処理装置PDEVに物理レーンPHLの縮退を要求する場合に使用される(縮退要求)。さらに、コマンドDGRD_REQは、低電力モードから通常動作モードへの切り替えのために、通信先の情報処理装置PDEVに物理レーンPHLの縮退の解除を要求する場合に使用される(復帰要求)。
コマンドDGRD_ACKは、物理レーンPHLの縮退の完了または縮退の解除の完了を、コマンドDGRD_REQの発行元の情報処理装置PDEVに通知する場合に使用される。コマンドDGRD_COMPは、コマンドDGRD_ACKの受信の応答を、コマンドDGRD_ACKの発行元の情報処理装置PDEVに通知する場合に使用される。コマンドDGRD_PUSH、DGRD_REQ、DGRD_ACK、DGRD_COMPの使用例は、図19から図26に示す。
物理レーンPHLsの縮退情報の領域は、物理レーンPHLの故障を要因とするレーン故障用の縮退情報の領域と、動作モード(低電力モード)を要因とする動作モード用の縮退情報の領域とを含む。各縮退情報の領域は、縮退する場合に論理0が設定され、縮退しない場合に論理1が設定されるフラグ領域を、物理レーンPHLs0−PHLs3毎に有する。
受信側の物理レーンPHLrの縮退情報の領域は、物理レーンPHLの故障を要因とするレーン故障用の縮退情報の領域と、動作モード(低電力モード)を要因とする動作モード用の縮退情報の領域とを含む。各縮退情報の領域は、縮退する場合に論理0が設定され、縮退しない場合に論理1が設定されるフラグ領域を、物理レーンPHLr0−PHLr3毎に有する。物理レーンPHLの故障の要因は、物理レーンPHL自体の故障に加えて、各物理レーンPHLに対応するPCSレーンPLの故障と、物理レーンPHLまたはPCSレーンPLに接続される回路および部品の故障とを含む。
なお、送信側の物理レーンPHLsの縮退情報の領域および受信側の物理レーンPHLrの縮退情報の領域において、物理レーンPHLの故障を要因とする縮退情報の領域と、動作モード(低電力モード)を要因とする縮退情報の領域とは、共用されてもよい。また、縮退制御用パケットDLLPは、クレジット情報を格納する領域を含まなくてもよい。
図19は、縮退する物理レーンPHLsの特定を通信先の情報処理装置PDEVに依頼する場合(縮退依頼)の情報処理システムSYS1の動作の一例を示す。図19では、図2に示す情報処理装置PDEV1が情報処理装置PDEV2に縮退依頼を発行する。すなわち、情報処理装置PDEV1は、レスポンダRESとして動作し、情報処理装置PDEV2は、リクエスタREQとして動作する。情報処理装置PDEV1、PDEV2を示す枠内には、図7および図8で説明したステートマシンSMの状態が示される。図19では、情報処理装置PDEV1、PDEV2間でのコマンドDGRD_PUSH、DGRD_REQ、DGRD_ACK、DGRD_COMPの送受信の様子が示され、アライメントマーカAMの送受信の様子は省略される。
なお、情報処理装置PDEV2が、レスポンダRESとして動作し、情報処理装置PDEV1に縮退依頼(DGRD_PUSH)を発行する場合の動作は、符号PDEV1、PDEV2を互いに入れ換えることで実現される。以下の説明では、コマンドDGRD_PUSH、DGRD_REQ、DGRD_ACKまたはDGRD_COMPを用いた縮退制御用パケットDLLPは、コマンドDGRD_PUSH、DGRD_REQ、DGRD_ACKまたはDGRD_COMPと称される。
例えば、情報処理装置PDEV1は、ビットエラーレートの悪化またはリトライアウトを判定したが、BIPエラーの数が閾値を超えておらず、エラーの要因が見つからない場合に、情報処理装置PDEV2にコマンドDGRD_PUSHを送信する。情報処理装置PDEV1のタイマTM2(図5)は、状態D_RES1に遷移したときに、所定時間T2の計測を開始する。情報処理装置PDEV2のタイマTM2は、状態D_REQ0に遷移したときに、所定時間T2の計測を開始する。
例えば、コマンドDGRD_PUSHのパケットDLLP(図18)に含まれる物理レーンPHLsの縮退情報の領域と、物理レーンPHLrの縮退情報の領域とは、ダミーの値(例えば、論理1)が格納される。コマンドDGRD_PUSHは、情報処理装置PDEV2からコマンドDGRD_PUSHを受信するまで、繰り返し送信される。例えば、コマンドDGRD_PUSHは、図12に示すステップS318で送信される。
次に、コマンドDGRD_PUSHを受信した情報処理装置PDEV2は、情報処理装置PDEV1からデータを受信する物理レーンPHLrのパリティBIPのエラー数を閾値と比較することで、例えば、物理レーンPHLr2−PHLr3の故障を検出する。コマンドDGRD_PUSHを受信した情報処理装置PDEV2の動作の例は、図14のステップS512、S514、S518(縮退依頼の処理)に示される。なお、情報処理装置PDEV2は、2回目以降のコマンドDGRD_PUSHの受信を無視する。
情報処理装置PDEV2は、検出した物理レーンPHLr2−PHLr3を示す情報を、コマンドDGRD_REQを用いて情報処理装置PDEV1に通知する。コマンドDGRD_REQは、所定時間T1が経過するまで、繰り返し送信される。例えば、コマンドDGRD_REQのパケットDLLP(図18)に含まれる物理レーンPHLrの縮退情報の領域には、物理レーンPHLr0−PHLr1を示す領域に、縮退しないことを示す論理”1”が格納される。物理レーンPHLr2−PHLr3を示す領域に、縮退することを示す論理”0”が格納される。一方、コマンドDGRD_REQのパケットDLLP(図18)に含まれる物理レーンPHLsの縮退情報の領域には、ダミー(例えば、現在の縮退状況を示す情報)が格納される。
情報処理装置PDEV2は、コマンドDGRD_REQの送信を所定時間T1が経過するまで繰り返した後、故障を検出した物理レーンPHLr2−PHLr3に対応するイネーブル信号LENを生成する。そして、情報処理装置PDEV2は、故障を検出した物理レーンPHLr2−PHLr3の使用を停止する縮退処理を実行する。なお、図5で説明したように、情報処理装置PDEV2のレーン選択部LSELは、イネーブル信号LENを生成するためにレジスタREGを変更する前に停止信号PCSSTPをPCSに出力し、PCSにデータの送信動作およびデータの受信動作を停止させる。そして、レーン選択部LSELは、レジスタREGを変更して物理レーンPHLr2−PHLr3の使用を停止した後に開始信号PCSSTTをPCSに出力し、PCSにデータの送信動作およびデータの受信動作を開始させる。
例えば、情報処理装置PDEV2は、コマンドDGRD_PUSHの受信に基づいて、図11に示す動作を実行し、物理レーンPHLrの故障の検出、物理レーンPHLrの縮退および縮退した物理レーンPHLrの情報処理装置PDEV1への通知を実行する。図11のステップS208は、コマンドDGRD_REQを用いて実行される。
コマンドDGRD_REQを受信した情報処理装置PDEV1は、コマンドDGRD_PUSHの送信を終了する。情報処理装置PDEV1は、情報処理装置PDEV2が使用を停止した物理レーンPHLr2−PHLr3を、コマンドDGRD_REQに含まれる情報から検出する。そして、情報処理装置PDEV1は、情報処理装置PDEV2が使用を停止した物理レーンPHLr2−PHLr3に対応する物理レーンPHLs2−PHLs3の使用を停止する縮退処理を実行する。なお、図5で説明したように、情報処理装置PDEV1のレーン選択部LSELは、イネーブル信号LENを生成するためにレジスタREGを変更する前に停止信号PCSSTPをPCSに出力し、PCSにデータの送信動作およびデータの受信動作を停止させる。そして、レーン選択部LSELは、レジスタREGを変更して物理レーンPHLr2−PHLr3の使用を停止した後に開始信号PCSSTTをPCSに出力し、PCSにデータの送信動作およびデータの受信動作を開始させる。
情報処理装置PDEV1は、縮退処理後にインタフェース部PHYを再起動し、再起動の完了後、使用を継続している物理レーンPHLr0−PHLr1を用いて、縮退処理の完了を示すコマンドDGRD_ACKを情報処理装置PDEV2に送信する。コマンドDGRD_ACKは、情報処理装置PDEV2からコマンドDGRD_COMPを受信するまで、繰り返し送信される。なお、図19に示す例では、情報処理装置PDEV1は、状態D_RES1において、所定時間T2が経過する前に全てのPCSに対応するアライメントマーカAMを正常に検出するため、図7に示すタイムアウトは発生しない。
例えば、コマンドDGRD_ACKのパケットDLLP(図18)に含まれる物理レーンPHLsの縮退情報の領域と、物理レーンPHLrの縮退情報の領域とは、ダミーの値(例えば、現在の縮退状況を示す情報)が格納される。情報処理装置PDEV1による物理レーンPHLrの縮退処理およびインタフェース部PHYの再起動処理は、図14に示すステップS522により実行される。
コマンドDGRD_ACKを受信した情報処理装置PDEV2は、縮退処理の完了を示すコマンドDGRD_COMPを情報処理装置PDEV1に送信する。ここで、図19に示す例では、情報処理装置PDEV2は、状態D_REQ1において、所定時間T2が経過する前にコマンドDGRD_ACKを受信するため、図7に示すタイムアウトは発生しない。
なお、情報処理装置PDEV2から情報処理装置PDEV1へデータを送信する物理レーンPHLs0−PHLs3は、故障が検出されていない。このため、情報処理装置PDEV2は、全ての物理レーンPHLs0−PHLs3を用いて、コマンドDGRD_COMPを送信する。コマンドDGRD_COMPは、所定時間T3が経過するまで、繰り返し送信される。例えば、コマンドDGRD_COMPのパケットDLLP(図18)に含まれる物理レーンPHLsの縮退情報の領域と、物理レーンPHLrの縮退情報の領域とは、ダミーの値(例えば、現在の縮退状況を示す情報)が格納される。
コマンドDGRD_COMPの送信を完了した情報処理装置PDEV2は、通常のパケットTLP(Transaction Layer Packet)および制御用のパケットDLLPの送信を再開する。同様に、コマンドDGRD_COMPを受信した情報処理装置PDEV1は、通常のパケットTLPおよび制御用のパケットDLLPの送信を再開する。ここで、情報処理装置PDEV1は、状態D_RES2において、所定時間T2が経過する前にコマンドDGRD_COMPを受信するため、図7に示すタイムアウトは発生しない。
なお、情報処理装置PDEV2は、所定時間T1の経過後、故障を検出した物理レーンPHLr2−PHLr3とともに、物理レーンPHLr2−PHLr3に対応する送信側の物理レーンPHLs2−PHLs3の使用を停止する縮退処理を実行してもよい。この場合、コマンドDGRD_REQを受信した情報処理装置PDEV1は、使用を停止した物理レーンPHLs2−PHLs3に対応する物理レーンPHLr2−PHLr3の使用を停止する縮退処理を実行する。そして、コマンドDGRD_COMPは、縮退された物理レーンPHL2−PHL3を除く物理レーンPHL0-PHL1を使用して伝送される。
図20は、物理レーンPHLrの故障を検出した情報処理装置PDEVが、通信先の情報処理装置PDEVに縮退する物理レーンPHLrを通知する場合(縮退要求)の情報処理システムSYS1の動作の一例を示す。図19と同一または同様の動作については、詳細な説明は省略する。
図20では、図2に示す情報処理装置PDEV2がBIPエラーの数の閾値超えを検出し、情報処理装置PDEV1に物理レーンPHLsの縮退要求を発行する。すなわち、情報処理装置PDEV1は、レスポンダRESとして動作し、情報処理装置PDEV2は、リクエスタREQとして動作する。なお、情報処理装置PDEV1が、リクエスタREQとして動作し、情報処理装置PDEV2に縮退要求(DGRD_REQ)を発行する場合の動作は、符号PDEV1、PDEV2を互いに入れ換えることで実現される。
図20に示す動作は、情報処理装置PDEV2が、例えば、物理レーンPHLr2−PHLr3の故障を検出することで開始される。物理レーンPHLr2−PHLr3の故障を検出は、図11に示すステップS206、図12に示すステップS314および図13に示すステップS414、S418により実行される。図20に示す動作は、図19に示す動作からコマンドDGRD_PUSHを除いた動作と同様である。
なお、図20においても、図19と同様に、情報処理装置PDEV2は、所定時間T1の経過後、故障を検出した物理レーンPHLr2−PHLr3に対応する送信側の物理レーンPHLs2−PHLs3の使用を停止する縮退処理を実行してもよい。この場合、コマンドDGRD_REQを受信した情報処理装置PDEV1は、使用を停止した物理レーンPHLs2−PHLs3に対応する受信側の物理レーンPHLr2−PHLr3の使用を停止する縮退処理を実行する。そして、コマンドDGRD_COMPは、縮退された物理レーンPHL2−PHL3を除く物理レーンPHL0-PHL1を使用して伝送される。
図21は、低電力モードへの切り替えを示す切り替え通知GRDの受信に基づいて物理レーンPHLを縮退する情報処理システムSYS1の動作の一例を示す。図19と同一または同様の動作については、詳細な説明は省略する。
図21では、図2に示す情報処理装置PDEV2のCPUが切り替え通知GRDを出力する。すなわち、情報処理装置PDEV1は、レスポンダRESとして動作し、情報処理装置PDEV2は、リクエスタREQとして動作する。なお、情報処理装置PDEV1が、リクエスタREQとして動作し、情報処理装置PDEV2に縮退要求(DGRD_REQ)を発行する場合の動作は、符号PDEV1、PDEV2を互いに入れ換えることで実現される。この場合、情報処理装置PDEV1のCPUが、低電力モードへの切り替えを示す切り替え通知GRDを出力する。
図21に示す動作は、情報処理装置PDEV2が、通常動作モードから低電力モードへの切り替えを示す切り替え通知GRDをCPUから受信することにより開始される。例えば、切り替え通知GRDは、通信先の情報処理装置PDEVからデータを受信する物理レーンPHLr2−PHLr3の使用を停止する情報を含む。図21に示す動作は、図16に示すステップS606からステップS610より実行される。図21に示す動作は、物理レーンPHLの縮退が、故障ではなく動作モードの切り替えに基づいて実行されることを除き、図19に示す動作からコマンドDGRD_PUSHを除いた動作と同様である。
情報処理装置PDEV2は、切り替え通知GRDに基づいて、縮退する物理レーンPHLr2−PHLr3、PHLs2−PHLs3を示す情報を、コマンドDGRD_REQを用いて情報処理装置PDEV1に通知する。また、情報処理装置PDEV2は、切り替え通知GRDに基づいて、物理レーンPHLr2−PHLr3、PHLs2−PHLs3の使用を停止する縮退処理を実行する。情報処理装置PDEV1は、コマンドDGRD_REQに基づいて、物理レーンPHLr2−PHLr3、PHLs2−PHLs3の使用を停止する縮退処理を実行する。コマンドDGRD_COMPは、縮退された物理レーンPHL2−PHL3を除く物理レーンPHL0-PHL1を使用して伝送される。
図21に示す例では、情報処理装置PDEVの動作モードの変更(低電力モードへの切り替え)に基づいて、物理レーンPHLを介して相互に接続される複数の情報処理装置PDEV1、PDEV2の双方で物理レーンPHLの縮退を実行することができる。これにより、動作モードの変更に応じて縮退する物理レーンPHLを、複数の情報処理装置PDEV1、PDEV2で一致させることができる。この結果、縮退する物理レーンPHLの不一致により情報処理装置PDEV1、PDEV2間で通信エラーが発生することを抑止することができる。
図22は、通常動作モードへの切り替えを示す切り替え通知GRDの受信に基づいて物理レーンPHLの縮退を解除する情報処理システムSYS1の動作の一例を示す。図19と同一または同様の動作については、詳細な説明は省略する。図22においても、情報処理装置PDEV1、PDEV2間でのコマンドDGRD_REQ、DGRD_ACK、DGRD_COMPの送受信の様子が示され、アライメントマーカAMの送受信の様子は省略される。
情報処理装置PDEV2は、切り替え通知GRDに基づいて、状態R_REQ0において、縮退を解除する物理レーンPHLr2−PHLr3、PHLs2−PHLs3を示す情報を、コマンドDGRD_REQを用いて情報処理装置PDEV1に通知する。縮退を解除する物理レーンPHLを指示するコマンドDGRD_REQは、使用を停止した物理レーンPHLの使用の再開を他の情報処理装置PDEVに実行させる復帰要求情報の一例である。また、情報処理装置PDEV2は、切り替え通知GRDに基づいて、状態R_REQ1において、物理レーンPHLr2−PHLr3、PHLs2−PHLs3の使用を再開する復帰処理を実行する。
情報処理装置PDEV1は、コマンドDGRD_REQに基づいて、状態R_RES1において、物理レーンPHLr2−PHLr3、PHLs2−PHLs3の使用を再開する復帰処理を実行する。すなわち、情報処理装置PDEV2で生成される切り替え通知GRDに基づいて、物理レーンPHLを介して相互に接続される複数の情報処理装置PDEV1、PDEV2の双方で物理レーンPHLの縮退を解除することができる。これにより、動作モードの変更に応じて縮退を解除する物理レーンPHLを、複数の情報処理装置PDEV1、PDEV2で一致させることができる。この結果、縮退を解除する物理レーンPHLの不一致により情報処理装置PDEV1、PDEV2間で通信エラーが発生することを抑止することができる。
情報処理装置PDEV1は、縮退していた物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開したことに基づいて、状態R_RES2において、コマンドDGRD_ACKを情報処理装置PDEV1に出力する。コマンドDGRD_ACKを受信した情報処理装置PDEV2は、縮退の復帰処理の完了に基づいて、状態R_REQ2において、コマンドDGRD_COMPを情報処理装置PDEV1に出力する。
図22では、図2に示す情報処理装置PDEV2のCPUが切り替え通知GRDを出力する。すなわち、情報処理装置PDEV1は、レスポンダRESとして動作し、情報処理装置PDEV2は、リクエスタREQとして動作する。なお、情報処理装置PDEV1が、リクエスタREQとして動作し、情報処理装置PDEV2に復帰要求(DGRD_REQ)を発行する場合の動作は、符号PDEV1、PDEV2を互いに入れ換えることで実現される。この場合、情報処理装置PDEV1のCPUが、通常動作モードへの切り替えを示す切り替え通知GRDを出力する。
図22に示す動作は、情報処理装置PDEV2が、低電力モードから通常動作モードへの切り替えを示す切り替え通知GRDをCPUから受信することにより開始される。例えば、切り替え通知GRDは、縮退されている物理レーンPHLr2−PHLr3の使用を再開する情報を含む。このため、情報処理装置PDEV2は、状態R_REQ1において、縮退していた物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開する復帰処理を実行する。情報処理装置PDEV1は、状態R_RES1において、縮退していた物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開する復帰処理を実行する。
図22に示す動作は、図16に示すステップS612からステップS616より実行される。図22に示す動作は、使用する物理レーンPHLと使用を停止する物理レーンPHLとが異なることを除き、図19に示す動作からコマンドDGRD_PUSHを除いた動作と同様である。
なお、図21で情報処理装置PDEV2が、切り替え通知GRDの受信に基づいて物理レーンPHLsの使用を停止した場合、図22において、情報処理装置PDEV2は、切り替え通知GRDに基づいて使用を停止した物理レーンPHLsの使用を再開してもよい。また、図21で情報処理装置PDEV2が、切り替え通知GRDの受信に基づいて物理レーンPHLr、PHLsの両方の使用を停止する仕様であるとする。この場合、図22に示すように、情報処理装置PDEV2は、切り替え通知GRDに基づいて、使用を停止した物理レーンPHLr、PHLsの両方の使用を再開する。
図23は、縮退を解除する物理レーンPHLに故障が検出された場合の情報処理システムSYS1の動作の一例を示す。図19および図22と同一または同様の動作については、詳細な説明は省略する。図23では、情報処理装置PDEV2から情報処理装置PDEV1にデータを伝送する物理レーンPHL3が故障した状態で、図22と同様に、情報処理装置PDEV2からレーン縮退を解除するコマンドDGRD_REQが発行される。情報処理装置PDEV1から情報処理装置PDEV2にデータを伝送する物理レーンPHL0−PHL3は、故障していない。
情報処理装置PDEV2からコマンドDGRD_REQを受信した情報処理装置PDEV1は、状態R_RES1において、縮退していた物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開する復帰処理を実行する。しかし、情報処理装置PDEV2から情報処理装置PDEV1にデータを伝送する物理レーンPHL3が故障しているため、情報処理装置PDEV1は、物理レーンPHLr3に対応するPCSレーンのアライメントマーカAMを検出しない。このため、物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開した情報処理装置PDEV1は、図22に示す状態R_RES2に遷移せず、状態R_RES1を維持する。
情報処理装置PDEV1では、物理レーンPHLr3に対応するPCSレーンのアライメントマーカAMを検出することなく所定時間T2が経過し(タイムアウト)、使用を再開した物理レーンPHLr3に障害が発生したことが検出される。そして、情報処理装置PDEV1の状態は、状態R_RES1から状態D_REQ0に遷移する。すなわち、復帰処理を実行している情報処理装置PDEV1は、アライメントマーカAMの非検出に基づいて、元の縮退状態に戻す縮退処理を開始する。このように、情報処理装置PDEV間で定期的に伝送されるアライメントマーカAMを利用して、使用を再開した物理レーンPHLrに障害が発生したことを検出することで、復帰処理を中断して縮退処理を開始することができる。
また、情報処理装置PDEV1は、図22に示す状態R_RES2に遷移しないため、コマンドDGRD_ACKを情報処理装置PDEV2に送信しない。情報処理装置PDEV1から情報処理装置PDEV2にデータを伝送する物理レーンPHL0−PHL3は、故障していないため、情報処理装置PDEV2は、有効なPCSレーンPLの全てのアライメントマーカAMを正常に検出する。しかし、情報処理装置PDEV2は、コマンドDGRD_ACKを受信することなく所定時間T2が経過するため(タイムアウト)、状態R_REQ1から状態D_RES0に遷移する。
情報処理装置PDEV2は、アライメントマーカAMを正常に検出しているにも拘わらずタイムアウトが発生した場合に、状態D_RES0に遷移することで、情報処理装置PDEV1からのコマンドDGRD_REQを待つことができる。これにより、情報処理システムSYS1は、物理レーンPHLを元の縮退状態に戻すための以降の縮退処理を正常に実行することができる。
情報処理装置PDEV1は、物理レーンPHLr3に対応するPCSレーンのアライメントマーカAMを検出することなく所定時間T2が経過し(タイムアウト)、状態R_RES1から状態D_REQ0に遷移する。そして、情報処理装置PDEV1は、レスポンダRESからリクエスタREQに切り替わり、物理レーンPHLの縮退を要求するコマンドDGRD_REQを情報処理装置PDEV1に出力する。使用を再開した物理レーンPHLの使用を停止させるコマンドDGRD_REQは、縮退要求情報の一例である。情報処理装置PDEV2は、リクエスタREQからレスポンダRESに切り替わり、状態D_RES0においてコマンドDGRD_REQを受信する。
この後、図21と同様に、情報処理装置PDEV2は、状態D_RES1において、物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を停止する縮退処理を実行し、縮退状態DGRDに戻る。情報処理装置PDEV1は、状態D_REQ1において、物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を停止する縮退処理を実行し、縮退状態DGRDに戻る。
このように、所定時間T2が経過してもアライメントマーカAMを検出しない情報処理装置PDEV1は、物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を停止させる縮退指示を情報処理装置PDEV2に送信する。縮退指示を情報処理装置PDEV1から受信した情報処理装置PDEV2は、使用を再開した物理レーンPHLの使用を停止する縮退処理を実行する。これにより、使用を再開した物理レーンPHLの使用を停止する縮退処理を、情報処理装置PDEV1、PDEV2の双方で実行することができ、物理レーンPHLの縮退状態を、情報処理装置PDEV1、PDEV2の双方で一致させることができる。この結果、情報処理システムSYS1を正常に動作させることができる。
なお、復帰処理中に物理レーンPHLの故障が検出され、物理レーンPHLを元の縮退状態に戻す場合、コマンドDGRD_REQは、故障がない物理レーンPHLを使用して情報処理装置PDEV1、PDEV2間で伝送されることが望ましい。このため、受信側の物理レーンPHLr3の故障を検出した情報処理装置PDEV1は、コマンドDGRD_REQを発行するリクエスタREQに変更され、情報処理装置PDEV2はレスポンダRESに変更される。リクエスタREQとレスポンダRESを入れ替えることにより、レーン縮退の復帰処理中に、物理レーンPHLの故障が検出された場合にも、物理レーンPHLを元の縮退状態に戻すことができる。
図24は、縮退を解除する物理レーンPHLに故障が検出された場合の情報処理システムSYS1の動作の別の例を示す。図19、図22および図23と同一または同様の動作については、詳細な説明は省略する。図24では、情報処理装置PDEV2から情報処理装置PDEV1にデータを伝送する物理レーンPHL3が故障した状態で、図22と同様に、情報処理装置PDEV2からレーン縮退を解除するコマンドDGRD_REQが発行される。図23と同様に、情報処理装置PDEV1から情報処理装置PDEV2にデータを伝送する物理レーンPHL0−PHL3は、故障していない。情報処理装置PDEV1が状態R_RES1に遷移するまでの動作および情報処理装置PDEV2が状態R_REQ1に遷移するまでの動作は、図23と同様である。
図24では、状態R_RES1への遷移に基づいて情報処理装置PDEV1のタイマTM2が計測する所定時間T22は、状態R_REQ0への遷移に基づいて情報処理装置PDEV2のタイマTM2が計測する所定時間T21に比べて短い。このため、情報処理装置PDEV1は、情報処理装置PDEV2の所定時間T21によるタイムアウトが発生する前に、物理レーンPHL3の故障に起因するアライメントマーカAMの非検出によるタイムアウトを検出する。この後、情報処理装置PDEV1は、図23と同様に、状態D_REQ0に遷移し、レーン縮退を解除するコマンドDGRD_REQを情報処理装置PDEV2に出力する。この後の情報処理装置PDEV1の動作は、図23と同様である。
一方、情報処理装置PDEV2は、状態R_REQ1中にレーン縮退を解除するコマンドDGRD_REQを受信するため、コマンドDGRD_REQの受信を待つ状態D_RES0に遷移することなく、状態D_RES1に遷移する。状態R_REQ1中にコマンドDGRD_REQを受信した場合、状態D_RES0を介することなく状態D_RES1に遷移することで、情報処理システムSYS1は、物理レーンPHLを元の縮退状態に戻すための以降の処理を正常に実行することができる。この後の情報処理装置PDEV2の動作は、図23と同様である。
図25は、縮退を解除する物理レーンPHLに故障が検出された場合の情報処理システムSYS1の動作のさらなる別の例を示す。図19、図22および図23と同一または同様の動作については、詳細な説明は省略する。図25では、情報処理装置PDEV1から情報処理装置PDEV2にデータを伝送する物理レーンPHL3が故障した状態で、図22と同様に、情報処理装置PDEV2からレーン縮退を解除するコマンドDGRD_REQが発行される。情報処理装置PDEV2から情報処理装置PDEV1にデータを伝送する物理レーンPHL0−PHL3は、故障していない。情報処理装置PDEV1が状態R_RES1に遷移するまでの動作および情報処理装置PDEV2が状態R_REQ1に遷移するまでの動作は、図23と同様である。
情報処理装置PDEV1は、状態R_RES1に遷移した後、レーン縮退の解除を指示するコマンドDGRD_REQの受信に基づいて、縮退していた物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開する復帰処理を実行する。情報処理装置PDEV1は、所定時間T2が経過する前に、有効なPCSレーンPLの全てのアライメントマーカAMを正常に検出し、状態R_RES2に遷移する。
情報処理装置PDEV2は、状態R−REQ1に遷移した後、縮退していた物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を再開する復帰処理を実行する。そして、情報処理装置PDEV2は、情報処理装置PDEV1からレーン縮退の解除の完了を示すコマンドDGRD_ACKの受信を待つ。ここで、情報処理装置PDEV1から情報処理装置PDEV2にデータを伝送する物理レーンPHL3が故障しているため、情報処理装置PDEV2は、物理レーンPHLr3に対応するPCSレーンのアライメントマーカAMを検出しない。
そして、情報処理装置PDEV2は、アライメントマーカAMの非検出によるタイムアウトを発生し、状態D_REQ0に遷移する。なお、情報処理装置PDEV2は、レーン縮退の解除の完了を示すコマンドDGRD_ACKの受信した場合にも、アライメントマーカAMの非検出によるタイムアウトの発生に基づいて状態D_REQ0に遷移する。状態D_REQ0に遷移した情報処理装置PDEV2は、物理レーンPHLを元の縮退状態に戻すために、状態D_REQ0において物理レーンPHLの縮退を要求するコマンドDGRD_REQを出力した後、状態D_REQ1に遷移する。
一方、状態R_RES2に遷移した情報処理装置PDEV1は、レーン縮退の解除の完了を示すコマンドDGRD_ACKを送信し、情報処理装置PDEV2からレーン縮退の解除の完了を示すコマンドDGRD_COMPの受信を待つ。しかしながら、情報処理装置PDEV2は、タイムアウトにより状態D_REQ0に遷移しており、レーン縮退の解除の完了を示すコマンドDGRD_COMPを送信しない。このため、情報処理装置PDEV1は、コマンドDGRD_COMPの未受信によるタイムアウトを発生し、状態D_RES0に遷移する。状態D_RES0の遷移により、情報処理装置PDEV1は、情報処理装置PDEV2から物理レーンPHLの縮退を要求するコマンドDGRD_REQを待つことができる。
状態D_RES0に遷移した情報処理装置PDEV1は、物理レーンPHLの縮退を要求するコマンドDGRD_REQの受信に基づいて状態D_RES1に遷移する。そして、情報処理装置PDEV1は、使用を再開した物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を停止する縮退処理を実行後、状態D_RES2に遷移し、縮退処理の完了を示すコマンドDGRD_ACKを出力する。
情報処理装置PDEV2は、状態D_REQ1中にコマンドDGRD_ACKの受信に基づいて、状態D_REQ2に遷移する。そして、情報処理装置PDEV2は、物理レーンPHLs2−PHLs3、PHLr2−PHLr3の使用を停止した縮退処理の完了を示すコマンドDGRD_COMPを出力し、縮退状態DGRDに戻る。情報処理装置PDEV1は、コマンドDGRD_COMPの受信に基づいて縮退状態DGRDに戻る。
ここで、図23と同様に、故障がない物理レーンPHLを使用してレーン縮退を要求するコマンドDGRD_REQを伝送するために、受信側の物理レーンPHLr3の故障を検出した情報処理装置PDEV2は、リクエスタREQに維持される。情報処理装置PDEV1はレスポンダRESに維持される。これにより、レーン縮退の復帰処理中に、物理レーンPHLの故障が検出された場合にも、物理レーンPHLを元の縮退状態に戻すことができる。
図26は、縮退を解除する物理レーンPHLに故障が検出された場合の情報処理システムSYS1の動作のさらなる別の例を示す。図19、図22、図23および図25と同一または同様の動作については、詳細な説明は省略する。図26では、図25と同様に、情報処理装置PDEV1から情報処理装置PDEV2にデータを伝送する物理レーンPHL3が故障した状態で、図22と同様に、情報処理装置PDEV2からレーン縮退を解除するコマンドDGRD_REQが発行される。情報処理装置PDEV2から情報処理装置PDEV1にデータを伝送する物理レーンPHL0−PHL3は、故障していない。情報処理装置PDEV2の動作および情報処理装置PDEV1が状態R_RES2に遷移するまでの動作は、図25と同様である。
図26では、情報処理装置PDEV1は、状態R_RES2において、所定時間T2が経過する前に物理レーンPHLの縮退を要求するコマンドDGRD_REQを受信し、状態D_RES1に遷移する。この後の情報処理装置PDEV1の動作は、図26と同様である。
ここで、情報処理装置PDEV1は、状態R_RES2中にレーン縮退を要求するコマンドDGRD_REQを情報処理装置PDEV2から受信するため、コマンドDGRD_REQの受信を待つ状態D_RES0に遷移することなく、状態D_RES1に遷移する。状態R_RES2中にコマンドDGRD_REQを受信した場合、状態D_RES0を介することなく状態D_RES1に遷移することで、情報処理システムSYS1は、物理レーンPHLを元の縮退状態に戻すための以降の処理を正常に実行することができる。
図26においても、図25と同様に、故障がない物理レーンPHLを使用してレーン縮退を要求するコマンドDGRD_REQを伝送するために、情報処理装置PDEV2はリクエスタREQに維持され、情報処理装置PDEV1はレスポンダRESに維持される。これにより、レーン縮退の復帰処理中に、物理レーンPHLの故障が検出された場合にも、元の縮退状態に戻すことができる。
図27は、縮退を解除する物理レーンPHLの故障を考慮しない場合のステートマシンSMの一例を示す。縮退を解除する物理レーンPHLの故障を考慮しない場合、状態R_REQ1、R_RES1、R_RES2でタイムアウトが発生すると、図2に示す情報処理システムSYS1はタイムアウト処理を実行する。これにより、情報処理システムSYS1は、物理レーンPHLを用いた通信を停止し、通信エラーが発生したことを上位の装置等に通知する。すなわち、情報処理装置PDEV1、PDEV2間のリンクが遮断され、通信は停止してしまう。これに対して、図7では、物理レーンPHLを元の縮退状態に戻す縮退処理を実行するために、ステートマシンSMは、状態R_REQ1、R_RES1、R_RES2から状態D_RES0、D_RES1またはD_REQ0のいずれかに遷移する。
以上、図2から図26に示す実施形態においても、図1に示す実施形態と同様の効果を得ることができる。すなわち、縮退により使用を停止している物理レーンPHLに障害が発生した場合、物理レーンPHLの復帰が指示されても、物理レーンPHLの縮退状態は維持される。これにより、故障した物理レーンPHLが復帰要求に基づいて使用されることを抑止することができ、情報処理装置PDEV1、PDEV2間の通信が遮断されることを抑止することができる。この結果、情報処理システムSYS1の信頼性が低下することを抑止することができる。
さらに、図2から図26に示す実施形態では、情報処理装置PDEV1、PDEV2の一方で動作モードを変更する切り替え通知GRDが生成された場合、情報処理装置PDEV1、PDEV2の他方にも動作モードの変更が指示される。これにより、情報処理装置PDEV1、PDEV2の双方で物理レーンPHLの縮退処理または復帰処理を実行することができ、動作モードの変更に応じて縮退または復帰する物理レーンPHLを、情報処理装置PDEV1、PDEV2で一致させることができる。この結果、縮退する物理レーンPHLの不一致により情報処理装置PDEV1、PDEV2間で通信エラーが発生することを抑止することができる。
情報処理装置PDEV1、PDEV2間で定期的に伝送される制御情報であるアライメントマーカAMを利用して、使用を再開した物理レーンPHLrに障害が発生したことを検出することで、復帰処理を中断して縮退処理を開始することができる。この際、物理レーンPHLの障害を検出した情報処理装置PDEVが、復帰要求情報(コマンドDGRD_REQ)を発行するリクエスタREQとして動作することで、物理レーンPHLを元の縮退状態に戻すための縮退処理を正常に実行することができる。
以上の実施形態において説明した発明を整理して、付記として開示する。
(付記1)
演算処理装置と、前記演算処理装置が処理するデータを記憶する記憶装置と、複数の第1のレーンを介して他の情報処理装置からデータを受信し、受信したデータを前記演算処理装置に出力する通信装置とを有する情報処理装置において、
前記通信装置は、
前記複数の第1のレーンの障害を検出する検出部と、
縮退要求に基づいて、前記複数の第1のレーンのいずれかの使用を停止する第1の縮退処理を実行し、復帰要求に基づいて、使用を停止した第1のレーンの使用を再開する復帰処理を実行し、前記復帰処理中に、使用を再開した第1のレーンの障害を前記検出部が検出した場合、使用を再開した第1のレーンの使用を停止する第2の縮退処理を実行する制御部を有することを特徴とする情報処理装置。
(付記2)
前記制御部は、前記第2の縮退処理を前記検出部による前記障害の検出に基づいて実行する場合、使用を再開した第1のレーンの使用を停止させる縮退要求情報を、複数の第2のレーンを介して前記他の情報処理装置に送信することを特徴とする付記1記載の情報処理装置。
(付記3)
前記制御部は、使用を再開した第1のレーンの使用を停止する縮退要求情報を前記他の情報処理装置から受信した場合、使用を再開した第1のレーンの使用を停止することを特徴とする付記1記載の情報処理装置。
(付記4)
前記縮退要求および前記復帰要求は、前記情報処理装置の動作モードの変更に基づいて前記演算処理装置から出力され、
前記制御部は、前記演算処理装置から前記縮退要求を受けた場合、前記第1の縮退処理を前記他の情報処理装置に実行させる縮退要求情報を前記他の情報処理装置に送信することを特徴とする付記1ないし付記3のいずれか1項記載の情報処理装置。
(付記5)
前記制御部は、前記演算処理装置から前記復帰要求を受けた場合、使用を停止したレーンの使用を再開する復帰処理を前記他の情報処理装置に実行させる復帰要求情報を前記他の情報処理装置に送信することを特徴とする付記4記載の情報処理装置。
(付記6)
前記検出部は、
前記複数の第1のレーンの各々を介して前記他の情報処理装置から第1の時間間隔で送信される制御情報を検出する制御情報検出部と、
前記復帰要求から前記第1の時間間隔より長い所定時間が経過するまでに、前記制御情報検出部により前記制御情報が検出されない場合、前記障害が発生したことを検出する障害検出部を有することを特徴とする付記1ないし付記5のいずれか1項記載の情報処理装置。
(付記7)
前記障害検出部は、前記復帰要求に基づいて時間の計測を開始し、前記制御情報の検出に基づいて計測を停止し、前記制御情報を検出することなく計測の開始から前記所定時間が経過した場合にタイムアウトを判定する計測部を有し、前記計測部による前記タイムアウトの判定に基づいて、前記障害が発生したことを検出することを特徴とする付記6記載の情報処理装置。
(付記8)
データを互いに送受信する複数の情報処理装置を有する情報処理システムにおいて、
前記複数の情報処理装置の各々は、
演算処理装置と、前記演算処理装置が処理するデータを記憶する記憶装置と、複数の第1のレーンを介して他の情報処理装置からデータを受信し、受信したデータを前記演算処理装置に出力する通信装置とを有し、
前記通信装置は、
前記複数の第1のレーンの障害を検出する検出部と、
縮退要求に基づいて、前記複数の第1のレーンのいずれかの使用を停止する第1の縮退処理を実行し、復帰要求に基づいて、使用を停止した第1のレーンの使用を再開する復帰処理を実行し、前記復帰処理中に、使用を再開した第1のレーンの障害を前記検出部が検出した場合、使用を再開した第1のレーンの使用を停止する第2の縮退処理を実行する制御部を有することを特徴とする情報処理システム。
(付記9)
演算処理装置と、前記演算処理装置が処理するデータを記憶する記憶装置とを含む情報処理装置に搭載され、複数の第1のレーンを介して他の情報処理装置からデータを受信し、受信したデータを前記演算処理装置に出力する通信装置において、
前記複数の第1のレーンの障害を検出する検出部と、
縮退要求に基づいて、前記複数の第1のレーンのいずれかの使用を停止する第1の縮退処理を実行し、復帰要求に基づいて、使用を停止した第1のレーンの使用を再開する復帰処理を実行し、前記復帰処理中に、使用を再開した第1のレーンの障害を前記検出部が検出した場合、使用を再開した第1のレーンの使用を停止する第2の縮退処理を実行する制御部を有することを特徴とする通信装置。
以上の詳細な説明により、実施形態の特徴点および利点は明らかになるであろう。これは、特許請求の範囲がその精神および権利範囲を逸脱しない範囲で前述のような実施形態の特徴点および利点にまで及ぶことを意図するものである。また、当該技術分野において通常の知識を有する者であれば、あらゆる改良および変更に容易に想到できるはずである。したがって、発明性を有する実施形態の範囲を前述したものに限定する意図はなく、実施形態に開示された範囲に含まれる適当な改良物および均等物に拠ることも可能である。