(57)【要約】      （修正有）【課題】ＰＣＩ  Ｅｘｐｒｅｓｓインターフェースで接続されたＩＣ間のリンクエラーを検出し自動的に復旧させる。【解決手段】リセット解除からＰＣＩ  Ｅｘｐｒｅｓｓインターフェース間がリンクアップするまでの時間を設定するレジスタ（２４または２５）と、リンクアップシーケンスのリンクエラーを検出するリンクエラー検出部２６と、リンク復旧制御部２９を有する。リンク復旧制御部２９は、リンクエラー検出部により、リンクアップシーケンスのポーリング状態においてリンクエラーが検出されると、検出状態に状態を戻して再度リンクアップを試行し、試行した繰り返し回数が、最初に異常検出した時からＸ回以上になると、リンクエラーが発生しているリンクに対してリンク・リセットを施して再度リンクアップを試行し、試行した繰り返し回数が、最初にリンク・リセットを実施した時からＹ回以上になると、装置全体にリセットをかける、制御動作を実行する。【選択図】図２
2011248814.tif 000002
【特許請求の範囲】
【請求項１】
PCI Expressリンクアップ方法において、
リンクアップシーケンスにおけるリンク状態を監視し、異常が無ければコンフィギュレーション状態、L0状態に遷移してリンクアップし、
リンクアップシーケンスのポーリング状態においてリンクエラー検出時、検出状態に状態を戻して再度リンクアップを試行し、
試行した繰り返し回数が、最初に異常検出した時からX回以上になると、PCI Expressのリンクエラーが発生しているリンクに対してリンク・リセットを施して再度リンクアップを試行し、
試行した繰り返し回数が、最初にリンク・リセットを実施した時からY回以上になると、装置全体にリセットをかける、
ことを特徴とするPCI Expressリンクアップ方法。
【請求項２】
請求項１に記載のPCI Expressリンクアップ方法において、
電源ONあるいはリセットに続いて、リセット解除からPCI Expressインターフェース間がリンクアップするまでの時間を設定し、
その設定時間に基づいて前記繰り返し回数X及びYを算出することを特徴とするPCI Expressリンクアップ方法。
【請求項３】
PCI Expressインターフェースで接続されるデバイスであって、
リセット解除からPCI Expressインターフェース間がリンクアップするまでの時間を設定するレジスタと、リンクアップシーケンスのリンクエラーを検出するリンクエラー検出手段と、リンク復旧制御手段と、を有し、
前記リンク復旧制御手段は、
前記リンクエラー検出手段により、リンクアップシーケンスのポーリング状態においてリンクエラーが検出されると、検出状態に状態を戻して再度リンクアップを試行し、
試行した繰り返し回数が、最初に異常検出した時からX回以上になると、PCI Expressのリンクエラーが発生しているリンクに対してリンク・リセットを施して再度リンクアップを試行し、
試行した繰り返し回数が、最初にリンク・リセットを実施した時からY回以上になると、装置全体にリセットをかける、制御動作を実行することを特徴とするPCI Expressリンクエラー検出及び自動復旧機能を備えたデバイス。
【請求項４】
請求項３に記載のデバイスにおいて、前記復旧制御手段は、前記レジスタによる設定時間に基づいて、リンクアップシーケンスのポーリング状態にて通信異常が検出された際に検出状態に戻ってリンクを取り直す繰り返し回数X及び、X回繰り返してもリンクが異常である場合にPCI Expressのリンクにリンク・リセットを施す繰り返し回数Yを自動的に算出する機能を有することを特徴とするPCI Expressリンクエラー検出及び自動復旧機能を備えたデバイス。
【請求項５】
請求項３又は４に記載のデバイスにおいて、該デバイスは、装置基板にPCI Expressインターフェースで接続されて搭載されるものであることを特徴とするPCI Expressリンクエラー検出及び自動復旧機能を備えたデバイス。
【請求項６】
請求項３又は４に記載のデバイスにおいて、該デバイスは、PCI Expressケーブルを介して接続された装置に搭載されるものであることを特徴とするPCI Expressリンクエラー検出及び自動復旧機能を備えたデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はPCI Expressリンクエラー検出及び自動復旧機能を備えたデバイス並びにPCI Expressリンクアップ方法に関する。
【背景技術】
【０００２】
近年、広帯域幅シリアル通信規格であるPCI Express（Peripheral Component Interconnect Express）は、ネットワークや通信など幅広く利用されている。PCI Express Generation 1規格ではデータ転送速度が2.5Gbps、Generation 2規格では5.0Gbps、Generation 3規格では8.0Gbpsに処理能力が向上している。
【０００３】
PCI Expressの構造は、トランザクション層、データリンク層、物理層から成る。このうち、物理層の役割はデータリンク層からデータを受け取り、物理的な電気信号を送信する役割を持ち、また、通信相手から信号を受信してデータリンク層へデータを渡す役割を担っている。この物理層は、さらに論理サブブロック、電気サブブロックの２つのサブレイヤから構成されている。
【０００４】
電気サブブロックは、信号伝送路の特性劣化を軽減して伝送誤りの少ない安定した伝送が行えるように信号を送り出す役割を担う。
【０００５】
論理サブブロックは、データリンク層から届いたデータパケットを物理層に渡す準備をするとともに、物理層の動作を制御する。その制御動作は、LTSSM(Link Training Status State Machine)と呼ばれるステートマシンによって制御される。LTSSMによって通信確立やリンクの初期化、エラーからの復旧といったステータス管理、電力管理を行う。一般的なLTSSMの概念図を図１に示す。
【０００６】
図１において、Detect State（検出状態）１１では通信相手の検出を行い、通信相手が検出されるとPolling State（ポーリング状態）１２に移行する。Polling State１２では、通信相手とトレーニングシーケンス・オーダードセットを送受信する。トレーニングシーケンスとはPCI Expressのリンクを使用可能な状態にするための初期化手順のことで、ソフトウェアの介入はなくLTSSMにより自動的に実行される。
【０００７】
Polling State１２に続くConfiguration State（コンフィギュレーション状態）１３では、トレーニングシーケンスを送受信することによってリンクのレーン構成を確立し、正常状態である場合にはL0 State（L0状態）１４へ移行する。L0 State１４は、通常の通信可能状態であり、パケット(制御・データ)の送受信が可能である。
【０００８】
なお、図１に示す他のState（状態）はここでは触れないため説明は省略する。電源投入(またはリセット)時の通常のリンクアップシーケンスは、図１に示すように、Detect State １１→ Polling State １２→ Configuration State １３→ L0 State１４の順に遷移する（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特表２００８−５４７３６２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
しかしながら、従来のLTSSMにおけるリンクアップまでのシーケンスには次のような課題がある。
【００１１】
それは、電源投入後、PCI Express間インターフェースがリンクアップする過程を想定した場合に、Detect Stateまでは正常に完了しPolling Stateに遷移したが、Polling StateでTS1パケットの交換に失敗したためにConfiguration State まで遷移できず、リンクエラー状態に陥るということである。
【００１２】
Stateの遷移状態としては、Detect State → Polling State →(リンクエラー発生後、Electrical Idle状態) → Detect State → Polling State →・・・を延々と繰り返しリンクアップすることができない。
【００１３】
原因の一例として、Polling StateでTS1パケットの送受信時に電気サブブロックでの制御(8b/10b変換)に失敗したために、論理サブブロックでTS1パケットの交換に失敗しConfiguration Stateまで進めずIdle状態となっていることが挙げられる。
【００１４】
Idle状態(Detect State)から再度、Ser Des(Serializer/Deserializer)処理に遷移(Polling State)する際、シリアル信号の遷移が開始された時点でCDR(Clock Data Recovery)を再度実施して同期を取る必要があるが、このCDRの再同期に毎回失敗して同期が外れたことにより上記のようにDetect State<=>Polling Stateを繰り返す。
【００１５】
そこで、本発明の目的は、PCI Expressインターフェースで接続されたデバイスIC間のリンクエラーを検出し自動的に復旧させることで、リンクエラーが発生しない、または軽減できるようにすることにある。
【課題を解決するための手段】
【００１６】
本発明の第１の態様によれば、PCI Expressリンクアップ方法であって、リンクアップシーケンスにおけるリンク状態を監視し、異常が無ければコンフィギュレーション状態、L0状態に遷移してリンクアップし、リンクアップシーケンスのポーリング状態においてリンクエラー検出時、検出状態に状態を戻して再度リンクアップを試行し、試行した繰り返し回数が、最初に異常検出した時からX回以上になると、PCI Expressのリンクエラーが発生しているリンクに対してリンク・リセットを施して再度リンクアップを試行し、試行した繰り返し回数が、最初にリンク・リセットを実施した時からY回以上になると、装置全体にリセットをかける、ことを特徴とするPCI Expressリンクアップ方法が提供される。
【００１７】
上記の態様によるPCI Expressリンクアップ方法においては、電源ONあるいはリセットに続いて、リセット解除からPCI Expressインターフェース間がリンクアップするまでの時間を設定し、その設定時間に基づいて前記繰り返し回数X及びYを算出するようにされる。
【００１８】
本発明の第２の態様によれば、PCI Expressインターフェースで接続されるデバイスであって、リセット解除からPCI Expressインターフェース間がリンクアップするまでの時間を設定するレジスタと、リンクアップシーケンスのリンクエラーを検出するリンクエラー検出手段と、リンク復旧制御手段と、を有し、前記リンク復旧制御手段は、前記リンクエラー検出手段により、リンクアップシーケンスのポーリング状態においてリンクエラーが検出されると、検出状態に状態を戻して再度リンクアップを試行し、試行した繰り返し回数が、最初に異常検出した時からX回以上になると、PCI Expressのリンクエラーが発生しているリンクに対してリンク・リセットを施して再度リンクアップを試行し、試行した繰り返し回数が、最初にリンク・リセットを実施した時からY回以上になると、装置全体にリセットをかける、制御動作を実行することを特徴とするPCI Expressリンクエラー検出及び自動復旧機能を備えたデバイスが提供される。
【００１９】
上記の態様によるデバイスにおいては、前記復旧制御手段は、前記レジスタによる設定時間に基づいて、リンクアップシーケンスのポーリング状態にて通信異常が検出された際に検出状態に戻ってリンクを取り直す繰り返し回数X及び、X回繰り返してもリンクが異常である場合にPCI Expressのリンクにリンク・リセットを施す繰り返し回数Yを自動的に算出する機能を有する。
【発明の効果】
【００２０】
本発明によれば、PCI Express規格に基づいて接続されているデバイスを搭載した装置において、起動（電源ON）時またはリセット実行時にPCI Express インターフェース間がリンクアップするまでの過程でリンクエラーが発生することがない、または軽減することができる。
【図面の簡単な説明】
【００２１】
【図１】LTSSM(Link Training Status State Machine)の一般的な概念を説明するための図である。
【図２】本発明の第１の実施例を説明するための図である。
【図３】第１の実施例の動作を説明するためのフローチャート図である。
【図４】本発明の第２の実施例を説明するための図である。
【発明を実施するための形態】
【００２２】
はじめに、本発明の概念について説明する。
【００２３】
PCI Expressインターフェースで接続されたデバイス(IC)は、起動（電源ON）時またはリセット実行時に、リセット解除からPCI Expressインターフェースで接続されたデバイス間がリンクアップするまでの時間を装置仕様に合わせてユーザーが自由に設定変更できるレジスタを有する。デバイス(IC)はまた、レジスタを通して設定変更された時間に基づいて、通常のLTSSMによるリンクアップシーケンスでリンクアップしなかった場合に施すDetect StateへのState down処理回数(Retryあるいは繰り返し回数)及び、PCI Express間をリンク・リセットする処置回数(Retryあるいは繰り返し回数)を自動的に算出する機能（自動計算部）を有する。
【００２４】
このようにして、本発明では、PCI Expressインターフェース間のリンク状態を監視し、異常を検出した場合には自動的にリンクの復旧を試みるので、リンクエラーの発生を未然に防ぐことができる。
【００２５】
具体的には以下の通りである。
【００２６】
［発明が解決しようとする課題］の欄で説明した、CDRの同期が外れる要因として、CDRが正しくクロックを再生するにあたって十分なエッジを検出できていないことが挙げられる。つまり”０”または”１”のbitが連続していたことが原因と考えられる。データ信号に十分なエッジが現れることを保証するために8b/10b変換を実施しているが、この変換部で伝送する信号品質の劣化など何らかの要因が発生し失敗している。そこで、Polling Stateで異常を検出した場合には以下の１）〜３）を実施する。
【００２７】
１）8b/10b変換はPolling Stateで行っているから、Detect StateにStateを戻して再度リンクアップを試みる。繰り返し回数は、最初に異常検出した時からX回とする。
【００２８】
２）上記１)を繰り返しても失敗した場合は、PCI Expressのリンクエラーが発生しているリンクに対して自動的にリンク・リセットを施してステートマシンを正常に初期化して復旧を試みる。繰り返し回数は、最初にリンク・リセットを実施した時からY回とする。
【００２９】
３）上記２)を繰り返しても失敗した場合は、自動的に装置全体にリセットをかけて復旧させる。
【００３０】
このために、本発明においては、PCI Expressインターフェースで接続されたデバイス（IC）の内部に、リセット解除からPCI Expressインターフェース間がリンクアップするまでの時間を任意に設定可能なレジスタを有すると共に、設定された時間に基づいて自動的に繰り返し回数XおよびYを算出する自動計算部を有する。
【００３１】
［第１の実施例］
（構成）
図２を参照して、本発明の第１の実施例について説明する。以下では、本発明を、２つのデバイス（IC）間をPCI Expressインターフェースで接続した構成を持つ装置に適用する場合について説明するが、これは説明を簡単にするためであり、本発明はこのような構成に制限されるものではない。
【００３２】
図２において、装置基板２１は、PCI Expressインターフェースで相互に接続された２つのデバイス（IC）２２、２３を搭載している。デバイス(IC)２２、２３はそれぞれ、リセット解除からPCI Expressインターフェース間がリンクアップするまでの時間を設定するレジスタ２４、２５を有する。デバイス(IC)２２、２３はそれぞれ、さらに、リンクエラーが発生したことを検出するリンクエラー検出部２６、リンクエラーを検出後にリンク復旧作業を制御するリンク復旧制御部２９を有する。リンク復旧制御部２９は、前述した繰り返し回数XおよびYを算出する自動計算部の機能を有する。２７はPCI Expressで接続された全てのリンク、２８はリンクエラーが発生したPCI Express リンクをそれぞれ示す。
【００３３】
（動作）
次に第１の実施例の動作を図３に示すフローチャートを使用して説明する。
【００３４】
図３において、装置に電源が投入されると(ステップ３０１)、リセット解除からリンクアップするまでの時間を装置仕様に基づきユーザーが設定した値（設定時間）が読み込まれる（ステップ３０２）。次のステップ３０３では、上記設定時間に基づいて、後述するPolling Stateにて通信異常が検出された際にDetect Stateに戻ってリンクを取り直す(繰り返し)回数X及び、X回繰り返してもリンクが異常である場合にPCI Expressのリンクにリンク・リセットを施す(繰り返し)回数Yをリンク復旧制御部２９の自動計算部の機能で自動的に算出する（ステップ３０３）。
【００３５】
LTSSMのシーケンスの通り、Detect State（ステップ３０４）を正常に完了してPolling State（ステップ３０５）に遷移し、ステップ３０６においてリンクエラー検出部２６により異常が検出されていないか判定し、正常状態であればConfiguration State（ステップ３０７）、L0 State（ステップ３０８）の順に遷移してPCI Expressインターフェース間はリンクアップする。
【００３６】
一方、ステップ３０６にて異常が検出された場合には、リンク復旧制御部２９はDetect State（ステップ３０４）に戻り再度リンクアップを試みる。この時、一般的なLTSSMでは、Detect State <=> Polling Stateを延々と繰り返す。しかし、本実施例では、ステップ３０３にて繰り返し回数Xを決め、ステップ３０９で繰り返し回数を判断し、X未満である場合にDetect State（ステップ３０４）に戻り再度リンクアップを試みる。ステップ３０９において繰り返し回数がX以上である場合は、ステップ３１０に移行する。ステップ３１０でもステップ３０９と同様に、ステップ３０３にて計算されたYと繰り返し数を比較し、繰り返し数がY未満であれば異常のあるPCI Expressのリンクに対しリンク・リセットを実行する（ステップ３１１）。しかし、Y回実施してもリンクが正常に復旧しない場合（ステップ３１０のYes）には、リンク復旧制御部２９は、装置全体にリセットを実行して強制的に復旧させる。
【００３７】
（実施例の効果）
以上説明したように、本実施例においては、以下に記載するような効果を奏する。
【００３８】
第１の効果は、リンクアップシーケンスにおいてPolling Stateで異常が発生した場合に、自動的に復旧を試みるので、リンクエラー状態のまま停止する不具合を防止できることである。
【００３９】
第２の効果は、リンクアップシーケンスにおいて対象装置の仕様に合わせてリンクアップまでの時間を事前に設定でき、その設定時間以内にリンクエラーからの復旧作業を自動で行うので、対象装置に合わせて柔軟に対応できることである。
【００４０】
［第２の実施例］
本発明の第２の実施例として、その基本的構成は第１の実施例と同様であるが、同一装置基板上の複数のデバイス(IC)間接続以外の場合、例えばケーブルを用いた装置間接続についても同様の効果が得られる。例えばPCI Express generation2.0規格を適用することで、ケーブルを繋いで数ｍ離れた装置間を接続することが可能となる。その構成を図４に示す。
【００４１】
図４において、４１、４２はPCI Expressインターフェースでケーブル接続された装置（例えば電子機器）、４３及び４４はPCI Expressケーブル４７からの入出力信号を制御するデバイス(IC)である。第１の実施例と同様、デバイス(IC)４３、４４はそれぞれ、PCI Expressインターフェース間がリンクアップするまでの時間を設定するレジスタを有する。デバイス(IC)４３、４４はまた、デバイス(IC)にリンクエラーが発生したことを検出するリンクエラー検出部４８、リンクエラー検出後にリンク復旧作業を制御するリンク復旧制御部４９をそれぞれ有する。なお、動作に関しては図３で説明した動作と同様であり、効果についても第１の実施例と同様である。
【００４２】
このように、同一装置基板内でのデバイス間だけでなく、PCI Expressケーブルを介した装置間接続の場合についても本発明の適用が可能である。
【符号の説明】
【００４３】
２１    装置基板
２２、２３、４３、４４    デバイス(IC)
２４、２５、４５、４６    レジスタ
２７    PCI Expressで接続された全てのリンク
２８    リンクエラーが発生したPCI Express リンク
４１、４２    PCI Expressケーブルで接続された装置
４７    PCI Expressケーブル
【図１】
2011248814.tif 000003
【図２】
2011248814.tif 000004
【図３】
2011248814.tif 000005
【図４】
2011248814.tif 000006