(57)【要約】【課題】データにクロックが重畳されるシリアル伝送において、ジッタを軽減すること。【解決手段】シリアル入力信号を閾値と比較して受信データを出力するレシーバ部と、前記受信データに重畳されたクロックを前記受信データから抽出する抽出部と、前記クロックに基づいて前記受信データのパルス幅を計測する計測部と、前記パルス幅の伸長と短縮をカウントするカウント部と、前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる調整部とを備える、情報処理装置。【選択図】図７
2018029235.tif 000002
【特許請求の範囲】
【請求項１】
シリアル入力信号を閾値と比較して受信データを出力するレシーバ部と、
前記受信データに重畳されたクロックを前記受信データから抽出する抽出部と、
前記クロックに基づいて前記受信データのパルス幅を計測する計測部と、
前記パルス幅の伸長と短縮をカウントするカウント部と、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる調整部とを備える、情報処理装置。
【請求項２】
前記パルス幅には、前記受信データのハイレベル側のパルス幅とローレベル側のパルス幅とが含まれ、
前記調整部は、前記ハイレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を上昇させ、前記ローレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を低下させる、請求項１に記載の情報処理装置。
【請求項３】
前記カウント部は、前記受信データのパルス幅と前記クロックのパルス幅を整数倍した値との差をカウントし、
前記調整部は、前記差が零に近づくように前記閾値を調整する、請求項１又は２に記載の情報処理装置。
【請求項４】
シリアル入力信号を閾値と比較して受信データを出力し、
前記受信データに重畳されたクロックを前記受信データから抽出し、
前記クロックに基づいて前記受信データのパルス幅を計測し、
前記パルス幅の伸長と短縮をカウントし、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる、情報処理方法。
【請求項５】
シリアル入力信号を閾値と比較して受信データを出力する処理と、
前記受信データに重畳されたクロックを前記受信データから抽出する処理と、
前記クロックに基づいて前記受信データのパルス幅を計測する処理と、
前記パルス幅の伸長と短縮をカウントする処理と、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる処理とを、コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法及びプログラムに関する。
【背景技術】
【０００２】
図１は、ジッタの例を説明するためのタイミングチャートである。送信装置から送信される周期２Ｔの送信クロックは、受信装置で受信クロックとして受信される。例えば、受信クロックの波形には、周波数成分に影響を与えるロングタームジッタによる周波数ずれΦ（ｔ）や、位相成分に影響を与える位相ジッタによる位相ずれΔＴｎが発生する（ｎは整数を表す）。このようなジッタは、データにクロックが重畳される高速シリアル伝送において顕著に出現する。
【０００３】
図２は、データにクロックが重畳される高速シリアル伝送を利用する、従来の情報処理装置１０００の構成の一例を示す図である。図３は、従来の情報処理装置での送信側の信号処理の一例を示すタイミングチャートである。図４は、従来の情報処理装置での受信側の信号処理の一例を示すタイミングチャートである。
【０００４】
情報処理装置１０００は、送信装置１１００と、受信装置１２００と、伝送線路１３００とを備える。送信装置１１００と受信装置１２００とは、伝送線路１３００によって接続される。送信装置１１００は、送信フリップフロップ（送信ＦＦ）１１０１と、差動ドライバ１１０２とを備える。受信装置１２００は、差動コンパレータ１２０１と、イコライザ１２０２と、受信処理部１２０３と、受信フリップフロップ（受信ＦＦ）１２０４とを備える。受信処理部１２０３は、レシーバ部１２０５と、クロックデータリカバリ（ＣＤＲ）１２０６と、位相同期回路（ＰＬＬ：Phase  Locked  Loop）１２０７とを備える。
【０００５】
入力データ１を送信基準クロック２に従ってセットする送信ＦＦ１１０１の出力は、差動ドライバ１１０２に入力される。差動ドライバ１１０２は、差動出力信号３を伝送線路１３００を介して受信装置１２００に送信する。差動出力信号３を受信した差動コンパレータ１２０１は、シリアル入力信号４を出力する。シリアル入力信号４は、イコライザ１２０２によって整形され、レシーバ部１２０５に入力される。
【０００６】
レシーバ部１２０５は、イコライザ１２０２を介して入力されたシリアル入力信号４を一定の閾値と比較して受信データ５を出力する。ＣＤＲ１２０６は、受信データ５のエッジ６を検出し、エッジ６の位相と内部クロック７の位相とを比較して、クロックが重畳されている受信データ５からクロック９とデータ８とを抽出する。内部クロック７は、受信基準クロック１２０８がＰＬＬ１２０７によって逓倍された信号である。受信ＦＦ１２０４は、クロック９の立下がりエッジでデータ８をラッチすることによって、最終受信データ１０を生成する。
【０００７】
なお、クロックデータリカバリ（ＣＤＲ）に関する先行技術文献として、例えば特許文献１が挙げられる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−２４２２４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、クロック９とデータ８との少なくとも一方の波形に発生するジッタが、ＣＤＲ１２０６で補正しきれずに、大きくなることがある。ジッタが大きくなることによって、受信ＦＦ１２０４のセットアップ時間とホールド時間の少なくとも一方が不足すると、最終受信データ１０がメタステーブル状態となるおそれがある。
【００１０】
図５は、フリップフロップ（ＦＦ）のメタステーブル状態の一例を説明するための図である。メタステーブル状態は、ＦＦのクロック入力サンプリングエッジTtrの時点で、ＦＦの入力データのセットアップ時間Tset又はホールド時間Thtを確保できない場合に発生する。メタステーブル状態では、ＦＦの出力は、リカバリ時間Trvt内では不安定となる。したがって、クロック入力サンプリングエッジTtrの次の発生時点が未だリカバリ時間Trvt内にあると、データの確定ができなくなる。
【００１１】
このように、ジッタの影響によりメタステーブル状態が発生すると、データを確定することができないため、シリアル伝送のエラーレートが悪化し、シリアル伝送の高速化が阻害されるおそれがある。
【００１２】
そこで、本開示の一態様は、データにクロックが重畳されるシリアル伝送において、ジッタを軽減することを目的とする。
【課題を解決するための手段】
【００１３】
上記目的を達成するため、本開示の一態様では、
シリアル入力信号を閾値と比較して受信データを出力するレシーバ部と、
前記受信データに重畳されたクロックを前記受信データから抽出する抽出部と、
前記クロックに基づいて前記受信データのパルス幅を計測する計測部と、
前記パルス幅の伸長と短縮をカウントするカウント部と、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる調整部とを備える、情報処理装置が提供される。
【発明の効果】
【００１４】
本開示の一態様によれば、データにクロックが重畳されるシリアル伝送において、ジッタを軽減することができる。
【図面の簡単な説明】
【００１５】
【図１】ジッタの例を説明するためのタイミングチャートである。
【図２】データにクロックが重畳される高速シリアル伝送を利用する、従来の情報処理装置の構成の一例を示す図である。
【図３】従来の情報処理装置での送信側の信号処理の一例を示すタイミングチャートである。
【図４】従来の情報処理装置での受信側の信号処理の一例を示すタイミングチャートである。
【図５】フリップフロップ（ＦＦ）のメタステーブル状態の一例を説明するための図である。
【図６】データにクロックが重畳される高速シリアル伝送を利用する、本開示技術の情報処理装置の構成の一例を示す図である。
【図７】受信処理部の構成の一例を示すブロック図である。
【図８】クロック補正部の構成の一例を示すブロック図である。
【図９】エッジ検出部及びクロック補正部での処理の一例を示すタイミングチャートである。
【図１０】短パルス除去回路の構成の一例を示す図である。
【図１１】短パルス除去回路の入出力波形の一例を示すタイミングチャートである。
【図１２】計測・調整部の構成の一例を示すブロック図である。
【図１３】計測・調整部での処理の一例を示すタイミングチャートである。
【図１４】シングルエンドのシリアル入力信号と閾値との関係の一例を示す図である。
【図１５】差動のシリアル入力信号と閾値との関係の一例を示す図である。
【図１６】コンピュータの構成の一例を示す図である。
【発明を実施するための形態】
【００１６】
以下、本開示の実施形態を図面に従って説明する。
【００１７】
＜本開示技術の概略＞
図６は、データにクロックが重畳される高速シリアル伝送を利用する、本開示技術の情報処理装置２０００の構成の一例を示す図である。情報処理装置２０００は、データにクロックが重畳される高速シリアル伝送で送受信されるデータに係る情報を処理する装置の一例である。情報処理装置２０００の具体例として、マザーボード、通信用基地局、サーバー、携帯端末装置、パーソナルコンピュータなどが挙げられる。携帯端末装置の具体例として、携帯電話、スマートフォンなどが挙げられる。情報処理装置２０００の具体例は、これらに限られない。
【００１８】
情報処理装置２０００は、送信装置２１００と、受信装置２２００と、伝送線路２３００とを備える。送信装置２１００と受信装置２２００とは、伝送線路２３００によって接続される。送信装置２１００は、送信フリップフロップ（送信ＦＦ）２１０１と、差動ドライバ２１０２とを備える。受信装置２２００は、差動コンパレータ２２０１と、イコライザ２２０２と、受信処理部２２０３と、受信フリップフロップ（受信ＦＦ）２２０４とを備える。受信処理部２２０３は、レシーバ部１００と、クロック抽出部２００と、エッジ検出部３００と、計測・調整部４００と、クロック補正部５００とを備える。
【００１９】
入力データ１を送信基準クロック２に従ってセットする送信ＦＦ２１０１の出力は、差動ドライバ２１０２に入力される。差動ドライバ２１０２は、差動出力信号３を伝送線路２３００を介して受信装置２２００に送信する。差動出力信号３を受信した差動コンパレータ２２０１は、シリアル入力信号２１を出力する。シリアル入力信号２１は、イコライザ２２０２によって整形され、受信処理部２２０３のレシーバ部１００に入力される。
【００２０】
レシーバ部１００は、イコライザ２２０２を介して入力されたシリアル入力信号２１を、調整可能な閾値と比較して受信データ２３を出力する。クロック抽出部２００のＣＤＲ２０１は、受信データ２３のエッジ２０４を検出し、エッジ２０４の位相と内部クロック２０５の位相とを比較して、クロックが重畳されている受信データ２３からクロック２５とデータとを抽出する。内部クロック２０５は、受信基準クロック２０３がＰＬＬ２０２によって逓倍された信号である。内部クロック２０５とクロック２５は、送信基準クロック２と同じ周波数を有する。
【００２１】
ここで、データにクロックが重畳される高速シリアル伝送では、送信基準クロック２に従ってデータがセットされるため、差動ドライバ２１０２の出力直後（つまり、伝送線路２３００に到達する前）のデータは、送信基準クロック２の逓倍数にほぼ完全に同期する。よって、差動ドライバ２１０２の出力直後では、クロックは、差動ドライバ２１０２の出力直後のデータに、ほぼずれることなく重畳している。このため、伝送線路２３００に入力される不定期なノイズ等によるランダムジッタや、周期的に発生するデターミニステックジッタ等のあらゆるジッタは、伝送線路２３００の途中において信号のトランジェントのタイミングで発生する。したがって、受信装置２２００で受信された受信データと、当該受信データから抽出されたクロックとは、同一のジッタの影響を受けている。
【００２２】
そこで、本実施形態では、この点に着目し、メタステーブル状態が受信ＦＦ２２０４で発生しないように、クロック補正部５００は、クロック抽出部２００のＣＤＲ２０１にて受信データ２３から検出されたクロック２５を補正した基準クロック３０を生成する。また、メタステーブル状態が受信ＦＦ２２０４で発生しないように、計測・調整部４００は、受信データ２３を補正した補正データ３１を生成する。
【００２３】
具体的には、クロック補正部５００は、ＣＤＲ２０１にて受信データ２３から抽出された共通のクロック２５に対して互いに異なる時間差を有する複数の基準クロックパルスを生成する。クロック補正部５００は、生成された複数の基準クロックパルスの中から、基準クロック３０が入力される受信ＦＦ２２０４のセットアップ時間及びホールド時間を確保できる補正データ３１を生成するための基準クロックパルスを選定する。計測・調整部４００は、選定された基準クロックパルスを用いて、受信ＦＦ２２０４に入力される補正データ３１を生成する。受信ＦＦ２２０４は、基準クロック３０に従って補正データ３１をラッチする。
【００２４】
補正データ３１及び基準クロック３０が受信データ２３からこのように生成されることにより、受信ＦＦ２２０４の出力がメタステーブル状態となることを防ぎ、データを正確にサンプリングすることが可能となる。
【００２５】
また、エッジ検出部３００は、受信データ２３のエッジを検出する。計測・調整部４００は、検出されたエッジに基づき、受信データ２３のローレベル側のパルス幅と、デューティ比５０％の送信基準クロック２のパルス幅をＮ倍した値との差分を、予め規定された時間内で計測する。同様に、計測・調整部４００は、検出されたエッジに基づき、受信データ２３のハイレベル側のパルス幅と、デューティ比５０％の送信基準クロック２のパルス幅をＮ倍した値との差分を、予め規定された時間内で計測する。Ｎは整数を表す。計測・調整部４００によって計測されたこれらの差分は、伝送線路２３００又は受信装置２２００側で発生したジッタ量とみなすことができる。
【００２６】
具体的には、受信データ２３が送信基準クロック２と完全に同期している場合、受信データ２３のローレベル側のパルス幅及びハイレベル側のパルス幅が送信基準クロック２のＮ倍であることに着目する。受信データ２３のジッタを補償するため、計測・調整部４００は、受信データ２３のローレベル側のパルス幅と、デューティ比５０％のクロック２５のパルス幅をＮ倍した値との差分を、ジッタの発生量として、予め決められた時間内でカウントする。同様に、受信データ２３のジッタを補償するため、計測・調整部４００は、受信データ２３のハイレベル側のパルス幅と、デューティ比５０％のクロック２５のパルス幅をＮ倍した値との差分を、ジッタの発生量として、予め決められた時間内でカウントする。クロック２５は、基準クロック３０に置換されてもよい。また、予め決められた時間とは、ＣＤＲ２０１の応答時間で補正できない再同期化の時間を表し、後述の実施例では、１０Ｋ（Ｋは、１０００倍を表す）のカウント数に相当する。つまり、計測・調整部４００は、ローレベル側とハイレベル側のそれぞれのジッタの量を計測する。
【００２７】
また、計測・調整部４００は、カウントした差分が零に近づくように、レシーバ部１００の閾値を調整する。具体的には、計測・調整部４００は、ローレベル側とハイレベル側の各々のジッタ数の差分が無い場合、レシーバ部１００内のコンパレータの閾値電圧（閾値の一例）を、その閾値電圧の中央値に設定する。計測・調整部４００は、ハイレベル側の差分の最大カウント値を、レシーバ部１００内のコンパレータの閾値電圧がとりうる上限値に設定し、ローレベル側の差分の最大カウント値を、レシーバ部１００内のコンパレータの閾値電圧がとりうる下限値に設定する。計測・調整部４００は、例えば、ＤＡ（digital‐to‐Analog）コンバータに電圧を設定して、そのＤＡコンバータのアナログ出力値をレシーバ部１００にフィードバックして、レシーバ部１００内のコンパレータの閾値電圧を調整する。
【００２８】
計測・調整部４００は、クロック２５に基づいて受信データ２３のパルス幅を計測し、計測したパルス幅の伸長と短縮をカウントする。計測・調整部４００は、カウントされた伸長が所定の基準値よりも多いときレシーバ部１００内のコンパレータの閾値電圧を上昇させ、カウントされた短縮が当該基準値よりも多いとき当該閾値電圧を低下させる。当該閾値電圧が上昇することで、受信データ２３のハイレベル側のパルス幅は短縮され、受信データ２３のローレベル側のパルス幅は延長される。一方、当該閾値電圧が低下することで、受信データ２３のローレベル側のパルス幅は短縮され、受信データ２３のハイレベル側のパルス幅は延長される。
【００２９】
したがって、レシーバ部１００内のコンパレータの閾値電圧がこのように調整されることで、受信データ２３のジッタの軽減が可能となる。その結果、ジッタの影響が緩和されるので、伝送レートの高速化、伝送線路長の延長、伝送線路に挿入されるコネクタの段数（コネクタの経由数）の緩和などが可能となる。
【００３０】
例えば、計測・調整部４００は、受信データ２３のハイレベル側のパルス幅の伸長が所定の基準値よりも多いとき当該閾値電圧を上昇させ、受信データ２３のローレベル側のパルス幅の伸長が当該基準値よりも多いとき当該閾値電圧を低下させてもよい。当該閾値電圧がこのように調整されても、受信データ２３のジッタの軽減が可能となる。
【００３１】
なお、ジッタ量は正規分布することが知られている。内部クロック２０５の周波数は、送信側の送信基準クロック２の周波数と同じ値に設定されている。したがって、受信側の計測・調整部４００は、受信データ２３のパルス幅を統計的に計測し、その計測結果（例えば、パルス幅の計測値の平均値など）に基づきレシーバ部１００の閾値を変更することにより、受信データ２３のパルス幅をダイナミックに補正できる。これにより、ジッタ自体の補正を行うことができる。
【００３２】
また、図１において、受信クロックの周期は、『2T+ΔTn‐1+ΔTn』で表される。送信クロックの周期の期待値については、『ΔTn‐1+ΔTn=0』及び『｜ΔTn‐1｜=｜ΔTn｜』が成立する。したがって、受信処理部２２０３は、例えば、『2T＝2T+ΔTn‐1+ΔTn』且つ『ΔT1n‐1+ΔTn=0』且つ『｜ΔTn‐1｜=｜ΔTn｜』且つ『φ（t）=0』が成立するように受信データ２３を補正することで、ジッタの影響を緩和できる。
【００３３】
計測・調整部４００は、受信データ２３のパルス幅を計測し、計測したパルス幅の単位時間当たりの変動を前段のレシーバ部１００にフィードバックすることで、受信データ２３のパルス幅を補正する。これにより、ジッタが軽減され、周波数ずれΦ（ｔ）や位相ずれΔＴｎを最小限にすることが可能である。そして、ジッタの軽減によって、伝送線路の長距離化が可能となり、伝送線路の途中に挿入されるコネクタの段数の制約を緩和可能となる。
【００３４】
図６に示される受信ＦＦ２２０４は、クロック補正部５００により生成された基準クロック３０に従って、計測・調整部４００から出力された補正データ３１をラッチすることで、受信データ２３の確実なサンプリングが可能となる。また、配線の延長やコネクタ段数の増加などによるジッタが軽減されるため、ビットエラーレートの改善や伝送レートの高速化が可能となる。
【００３５】
また、データにクロックが重畳されている高速シリアル信号の受信において、リタイマ素子を使用しなくても、ＣＤＲにより検出されたクロックとデータとの間のメタステーブル状態がジッタの影響により発生することを防止可能である。リタイマ素子は、内部クロックでデータをサンプリングして受信し、データにクロックを再度重畳させる素子の一例である。また、受信データ２３のパルス幅の時間軸の変動を前段のレシーバ部１００にフィードバックすることで、後段の受信ＦＦ２２０４の不安定動作を防ぐことができる。
【００３６】
また、リタイマ素子を使用した場合においても、送信側からリタイマ素子までの伝送線路長の延長が可能となり、伝送線路途中のジッタに影響するコネクタ段数の制約を緩和可能となる。また、リタイマ素子を複数使用する場合は、リタイマ素子の数の削減が可能となる。
【００３７】
図７は、受信処理部２２０３の構成の一例を示すブロック図である。受信処理部２２０３は、レシーバ部１００と、クロック抽出部２００と、エッジ検出部３００と、計測・調整部４００と、クロック補正部５００とを備える。
【００３８】
レシーバ部１００は、イコライザ２２０２を介して入力されるシリアル入力信号２１を受信する。レシーバ部１００は、コンパレータ回路１０１を有する。コンパレータ回路１０１は、シリアル入力信号２１と閾値電圧２２とを比較し、シリアル入力信号２１と閾値電圧２２との大小の比較結果を表す受信データ２３を出力する。コンパレータ回路１０１は、シリアル入力信号２１の電圧が閾値電圧２２よりも高いとき、ハイレベル（すなわち、“１”）の受信データ２３を出力する。一方、コンパレータ回路１０１は、シリアル入力信号２１の電圧が閾値電圧２２よりも低いとき、ローレベル（すなわち、“０”）の受信データ２３を出力する。
【００３９】
閾値電圧２２は、シリアル入力信号２１と比較される閾値の一例である。閾値電圧２２は、シリアル入力信号２１のレベルがハイレベルであるのかローレベルであるのかを判定するための閾値電圧である。閾値電圧２２は、計測・調整部４００内の差分パルスカウント部４５０によって決定される。
【００４０】
閾値電圧２２の上限値及び下限値は、使用する入出力シリアルインターフェースに応じて決められる。入出力シリアルインターフェースの具体例として、PCIe（ピーシーアイエクスプレス）、SAS（サス）などが挙げられる。シリアル入力信号２１が差動信号である場合、閾値電圧２２の上限値は、レシーバパスセンシティビティ電圧の最大値に設定され、閾値電圧２２の下限値は、レシーバパスセンシティビティ電圧の最小値に設定される。閾値電圧２２は、その上下限値の範囲内で差分パルスカウント部４５０により可変する。
【００４１】
エッジ検出部３００は、受信データ２３のパルスの立上りエッジ２８及び立下りエッジ２９を抽出する。立上りエッジ２８及び立下りエッジ２９は、計測・調整部４００で補正データ３１の生成のために使用される。
【００４２】
エッジ検出部３００は、立上りエッジ検出回路３０１と、立下りエッジ検出回路３０２と、論理和回路３０３と、遅延回路３０４と、Ｄ型フリップフロップ（ＤＦＦ）３０５とを有する。立上りエッジ検出回路３０１は、受信データ２３のパルスの立上りエッジ２８を検出する。立下りエッジ検出回路３０２は、受信データ２３のパルスの立上りエッジ２９を検出する。論理和回路３０３は、立上りエッジ検出回路３０１の出力と立下りエッジ検出回路３０２の出力との論理和であるエッジ出力２４を生成する。遅延回路３０４は、受信データ２３を所定時間遅延させる。ＤＦＦ３０５は、エッジ出力２４が入力されるクロック入力端子ＣＫと、遅延回路３０４の出力が入力されるデータ入力端子Ｄと、ＤＦＦ出力状態２６を出力するデータ出力端子Ｑとを有する。ＤＦＦ出力状態２６は、ＤＦＦ３０５が保持するデータを表す。
【００４３】
クロック抽出部２００は、ＣＤＲ２０１と、ＰＬＬ２０２とを有する。ＣＤＲ２０１は、受信データ２３のエッジ２０４を検出し、エッジ２０４の位相と内部クロック２０５の位相とを比較して、受信データ２３に重畳されたクロック２５を抽出する。内部クロック２０５は、受信基準クロック２０３がＰＬＬ２０２によって逓倍された信号である。内部クロック２０５とクロック２５は、送信基準クロック２と同じ周波数を有する。
【００４４】
クロック補正部５００は、計測・調整部４００内のフリップフロップ（ＦＦ）にメタステーブル状態を発生させない複数の基準クロックパルスと、計測・調整部４００及び受信ＦＦ２２０４で使用する基準クロック３０とを生成する。クロック補正部５００は、クロック２５を補正して、補正後のクロック２５である基準クロック３０を生成し、基準クロック３０を計測・調整部４００及び受信ＦＦ２２０４に供給する。
【００４５】
図８は、クロック補正部５００の構成の一例を示すブロック図である。クロック補正部５００は、遅延回路５０１〜５０４、論理積回路５０５，５０６、論理和回路５０７，５０８、短パルス除去回路５０９〜５１２を有する。短パルス除去回路５０９〜５１２は、それぞれ、論理積回路Ａと、パルス選別部と、パルス整形部とを有する。論理積回路５０５，５０６及び論理積回路Ａのそれぞれの入力部の「○」は、論理否定回路を表す。他図で示される「○」についても同様である。
【００４６】
遅延回路５０１は、クロック２５を受信ＦＦ２２０４用のクロックとするときに受信ＦＦ２２０４に必要なセットアップ時間Tsetだけクロック２５を遅延させたプレ基準クロックｄを生成する。
【００４７】
遅延回路５０２は、短パルス除去回路５０９〜５１２で生ずる遅延時間ＤＴだけプレ基準クロックｄを遅延させた基準クロック３０を生成する。短パルス除去回路５０９〜５１２は、互いに等しい遅延時間ＤＴを有する。遅延時間ＤＴは、少なくとも一つの論理回路の遅延時間Δと、少なくとも一つのフリップフロップ（ＦＦ）のセットアップ時間と、少なくとも一つのフリップフロップ（ＦＦ）のホールド時間との和である。
【００４８】
また、クロック補正部５００は、ＤＦＦ出力状態２６が基準クロック３０によりメタステーブル状態にならないように、基準クロックパルスＳＬ３４を生成する。遅延回路５０３は、基準クロック３０の立上りエッジで受信ＦＦ２２０４をセットするときに受信ＦＦ２２０４に必要なホールド時間Thtだけクロック５１３を遅延させたクロック５１４を生成する。クロック５１３は、論理積回路５０５から出力される。論理和回路５０７は、クロック５１３とクロック５１４との論理和を演算することによって、ＤＦＦ出力状態２６が基準クロック３０の立上りエッジでメタステーブル状態にならない基準クロックパルスＳＬ３４を生成する。
【００４９】
入力データであるＤＦＦ出力状態２６がメタステーブル状態とならない入力信号を作成するため、短パルス除去回路５１０は、基準クロックパルスＳＬ３４とＤＦＦ出力状態２６との論理積を論理積回路Ａで演算する。短パルス除去回路５１０は、基準クロックパルスＳＬ３４とＤＦＦ出力状態２６との論理積の信号を選別し整形することで、ＤＦＦ出力状態２６にメタステーブル状態を発生させるパルスのみを排除した基準クロックパルスＨＬ３２を生成する。これにより、基準クロックパルスＳＬ３４とＤＦＦ出力状態２６との論理積の信号から排除されたパルスのタイミングで基準クロック３０の立上りエッジによるサンプリングが回避される。また、基準クロック３０の立上りエッジによってＤＦＦ出力状態２６のハイレベル側のパルスをメタステーブル状態とならないようにセットする基準クロックパルスＨＬ３２が作成される。
【００５０】
同様に、入力データであるＤＦＦ出力状態２６がメタステーブル状態とならない入力信号を作成するため、短パルス除去回路５０９は、基準クロックパルスＳＬ３４とＤＦＦ出力状態２６の否定論理との論理積を論理積回路Ａで演算する。短パルス除去回路５０９は、基準クロックパルスＳＬ３４とＤＦＦ出力状態２６の否定論理との論理積の信号を選別し整形することで、ＤＦＦ出力状態２６にメタステーブル状態を発生させるパルスのみを排除した基準クロックパルスＬＬ４０を生成する。これにより、基準クロックパルスＳＬ３４とＤＦＦ出力状態２６の否定論理との論理積の信号から排除されたパルスのタイミングで基準クロック３０の立上りエッジによるサンプリングが回避される。また、基準クロック３０の立上りエッジによってＤＦＦ出力状態２６のローレベル側のパルスをメタステーブル状態とならないようにセットする基準クロックパルスＬＬ４０が作成される。
【００５１】
また、クロック補正部５００は、ＤＦＦ出力状態２６が基準クロック３０によりメタステーブル状態にならないように、基準クロックパルスＳＴ３５を生成する。遅延回路５０４は、基準クロック３０の立下りエッジで受信ＦＦ２２０４をセットするときに受信ＦＦ２２０４に必要なホールド時間Thtだけクロック５１５を遅延させたクロック５１６を生成する。クロック５１５は、論理積回路５０６から出力される。論理和回路５０８は、クロック５１５とクロック５１６との論理和を演算することによって、ＤＦＦ出力状態２６が基準クロック３０の立下りエッジでメタステーブル状態にならない基準クロックパルスＳＴ３５を生成する。
【００５２】
入力データであるＤＦＦ出力状態２６をがメタステーブル状態とならない入力信号を作成するため、短パルス除去回路５１１は、基準クロックパルスＳＴ３５とＤＦＦ出力状態２６との論理積を論理積回路Ａで演算する。短パルス除去回路５１１は、基準クロックパルスＳＴ３５とＤＦＦ出力状態２６との論理積の信号を選別し整形することで、ＤＦＦ出力状態２６にメタステーブル状態を発生させるパルスのみを排除した基準クロックパルスＨＴ３３を生成する。これにより、基準クロックパルスＳＴ３５とＤＦＦ出力状態２６との論理積の信号から排除されたパルスのタイミングで基準クロック３０の立下りエッジによるサンプリングが回避される。また、基準クロック３０の立下りエッジによってＤＦＦ出力状態２６のハイレベル側のパルスをメタステーブル状態とならないようにセットする基準クロックパルスＨＴ３３が作成される。図９には、基準クロックパルスＨＴ３３の生成が例示されている。
【００５３】
同様に、入力データであるＤＦＦ出力状態２６がメタステーブル状態とならない入力信号を作成するため、短パルス除去回路５１２は、基準クロックパルスＳＴ３５とＤＦＦ出力状態２６の否定論理との論理積を論理積回路Ａで演算する。短パルス除去回路５１２は、基準クロックパルスＳＴ３５とＤＦＦ出力状態２６の否定論理との論理積の信号を選別し整形することで、ＤＦＦ出力状態２６にメタステーブル状態を発生させるパルスのみを排除した基準クロックパルスＬＴ４１を生成する。これにより、基準クロックパルスＳＴ３５とＤＦＦ出力状態２６の否定論理との論理積の信号から排除されたパルスのタイミングで基準クロック３０の立下りエッジによるサンプリングが回避される。また、基準クロック３０の立下りエッジによってＤＦＦ出力状態２６のローレベル側のパルスをメタステーブル状態とならないようにセットする基準クロックパルスＬＴ４１が作成される。
【００５４】
図１０は、短パルス除去回路の構成の一例を示す図である。短パルス除去回路５０９〜５１２は、それぞれ、パルス選別部５２０と、パルス整形部５３０とを備える。パルス選別部５２０は、積分回路５２１と、スライスレベル比較回路５２２とを有する。積分回路５２１は、抵抗ＲとキャパシタＣとによるＲＣ回路を含む。スライスレベル比較回路５２２は、抵抗Ｒ１と抵抗Ｒ２とによって生成されたスライスレベルＶｓｈと、積分回路５２１から出力された信号とを比較するコンパレータを含む。パルス整形部５３０は、シュミットトリガ５３１と、遅延回路５３２と、ＲＳ型フリップフロップ（ＲＳＦＦ）５３３とを有する。シュミットトリガ５３１は、コンパレータの出力が入力される。
【００５５】
図１１は、短パルス除去回路の入出力波形の一例を示すタイミングチャートである。パルス選別部５２０は、積分回路５２１のＣＲ時定数の特性とスライスレベル比較回路５２２のスライスレベルＶｓｈとによって、セットアップ時間とホールド時間とを加算した時間以下のパルス幅の信号を除去する。
【００５６】
図７において、計測・調整部４００は、クロック補正部５００からの基準クロック３０及び各基準クロックパルスに従うことで、受信データ２３のハイレベル側パルス幅及びローレベル側パルス幅をメタステーブル状態の発生なしで計測できる。計測・調整部４００は、その計測結果に応じて、レシーバ部１００内のコンパレータ回路１０１の閾値電圧２２を生成し、最終段の受信ＦＦ２２０４に入力する補正データ３１を生成する。
【００５７】
計測・調整部４００は、クロックデータ抽出部４１０と、パルスカウント部４４０と、計測周期カウント部４３０と、差分パルスカウント部４５０とを備える。クロックデータ抽出部４１０は、受信データから抽出されたクロックに基づいて当該受信データのパルス幅を計測する計測部の一例である。パルスカウント部４４０は、計測部により計測されたパルス幅の伸長と短縮とをカウントするカウント部の一例である。差分パルスカウント部４５０は、計測部により計測されたパルス幅の伸長が基準値よりも多いときレシーバ部の閾値を上昇させ、計測部により計測されたパルス幅の短縮が当該基準値よりも多いとき当該閾値を低下させる調整部の一例である。
【００５８】
図１２は、計測・調整部４００の構成の一例を示すブロック図である。
【００５９】
クロックデータ抽出部４１０は、クロック補正部５００からの基準クロック３０及び各基準クロックパルスに従って、補正データ３１を生成する。クロックデータ抽出部４１０は、論理積回路４１１〜４１６、ＪＫ型フリップフロップ（ＪＫＦＦ）４１７、ＲＳ型フリップフロップ（ＲＳＦＦ）４１８，４１９、Ｄ型フリップフロップ（ＤＦＦ）４２０，４２１を備える。
【００６０】
クロックデータ抽出部４１０は、立上りエッジ２８と基準クロックパルスＨＴ３３とに基づき、ＪＫＦＦ４１７のＪ端子にセットするＪ入力を生成する。立上りエッジ２８は、エッジ検出部３００により検出される。基準クロックパルスＨＴ３３は、ＤＦＦ出力状態２６のハイレベル側のパルスをメタステーブル状態とならないようにセットする信号を表す。Ｊ入力は、基準クロック３０により補正データ３１のハイレベル側のパルスの発生トリガとしてセットされる。
【００６１】
また、クロックデータ抽出部４１０は、立下りエッジ２９と基準クロックパルスＬＴ４１とに基づき、ＪＫＦＦ４１７のＫ端子にセットするＫ入力を生成する。立下りエッジ２９は、エッジ検出部３００により検出される。基準クロックパルスＬＴ４１は、ＤＦＦ出力状態２６のローレベル側のパルスをメタステーブル状態とならないようにセットする信号を表す。Ｋ入力は、基準クロック３０により補正データ３１のローレベル側のパルスの発生トリガとしてセットされる。
【００６２】
ＪＫＦＦ４１７は、基準クロック３０に従って、補正データ３１をＱ端子から出力する。ＪＫＦＦ４１７のＱ出力は、論理積回路４１２に入力される。ＪＫＦＦ４１７のｘＱ出力は、論理積回路４１１に入力される。
【００６３】
また、ＤＦＦ４２０は、基準クロックパルスＨＬ３２の立下りエッジから、データのハイレベル側パルスをセットするセット信号ＪＳｅｔａの立下りエッジまでの長さが、基準クロック３０の半周期以上長い場合、ハイパルスカウントｃを出力する（図１３参照）。セット信号ＪＳｅｔａは、ＲＳＦＦ４１８のＤ出力である。パルスカウント部４４０内のハイパルスカウンタ４４１は、ハイパルスカウントｃをカウントする。
【００６４】
一方、ＤＦＦ４２１は、基準クロックパルスＬＬ４０の立下りエッジから、データのローレベル側パルスをセットするセット信号ＫＲｓｅｔｂの立下りエッジまでの長さが、基準クロック３０の半周期以上長い場合、ローパルスカウントｅを出力する（図１３参照）。セット信号ＫＲｓｅｔｂは、ＲＳＦＦ４１９のＤ出力である。パルスカウント部４４０内のローパルスカウンタ４４２は、ローパルスカウントｅをカウントする。
【００６５】
また、計測周期カウント部４３０内の計測周期カウンタ４３１は、基準クロックパルスＳＬ３４をカウントする。基準クロックパルスＳＬ３４のカウンタ値が、所定のカウントオーバー値（例えば、１０Ｋ）に到達した時点で、計測周期カウンタ４３１は、カウントオーバー４８をアクティブにする。これにより、ハイパルスカウンタ４４１及びローパルスカウンタ４４２でのカウントは、クリア（リセット）される（図１３参照）。
【００６６】
受信データ２３のハイレベル側のパルス幅の伸長が所定の基準値よりも多いとき、ハイレベルカウンタ３８がハイパルスカウンタ４４１によりカウントアップされる。一方、受信データ２３のローレベル側のパルス幅の伸長が当該基準値よりも多いとき、ローレベルカウンタ３７がローパルスカウンタ４４２によりカウントアップされる。
【００６７】
差分パルスカウント部４５０は、カウントコンパレータ４５１と、ＤＡコンバータ４５２とを備える。カウントコンパレータ４５１は、ハイレベルカウンタ３８の値Ａとローレベルカウンタ３７の値Ｂとの差分Ｘを出力する。
【００６８】
カウントコンパレータ４５１により演算された差分Ｘが“０”（差分無し）の場合、レシーバ部１００内のコンパレータ回路１０１の閾値電圧２２が、上限値と下限値との間の中心値に対応する。ハイレベル側の値Ａの最大カウント値（例えば、７）が閾値電圧２２の上限値に対応し、ローレベル側の値Ｂの最大カウント値（例えば、７）が閾値電圧２２の下限値に対応する。閾値電圧２２が差分Ｘに応じてこのように対応するように、ＤＡコンバータ４５２の電圧が設定される。
【００６９】
ＤＡコンバータ４５２のアナログ出力電圧は、レシーバ部１００にフィードバックされることによって、当該アナログ出力電圧に対応する電圧が閾値電圧２２として設定される。
【００７０】
本実施例では、差分Ｘは、７〜−７までの値を取りうる。レシーバ部１００に入力されるシリアル入力信号２１がシングルエンド信号の場合、閾値電圧２２は、差分Ｘに応じて図１４に示されるように変化する。図１４は、シングルエンドのシリアル入力信号と閾値との関係の一例を示す図である。レシーバ部１００に入力されるシリアル入力信号２１が差動信号の場合、閾値電圧２２は、差分Ｘに応じて図１５に示されるように変化する。図１５は、差動のシリアル入力信号と閾値との関係の一例を示す図である。このように、ＤＡコンバータ４５２の標準閾値（Ｘ＝０）を中心に上限閾値（Ｘ＝７）と下限閾値（Ｘ＝−７）との間で閾値が設定されることで、時間軸方向に変動するジッタが吸収される。
【００７１】
なお、閾値は、立上りと立下りの両方に個別に設定されることも可能である。立上りと立下りの両方で個別にパルス幅がカウントされ、立上り用閾値と立下り閾値とがレシーバ部１００にセットされることにより、立上りと立下りそれぞれの状態でパルス幅の調整を行うことができる。これにより、ジッタをより高精度に軽減することができる。
【００７２】
図１６は、コンピュータの構成の一例を示す図である。図１６に示されるパーソナルコンピュータ６００は、情報処理装置の一例である。パーソナルコンピュータ６００は、メモリ６０２、ＣＰＵ（Central  Processing  Unit）６０１、バスコントローラ６０５、各種カード、マザーボードＩ／Ｏ（Input/Output）コントローラ６１９を備える。
【００７３】
メモリ６０２とＣＰＵ６０１は、メモリバス６０３を介して相互接続されている。ＣＰＵ６０１とバスコントローラ６０５は、ホストバス６０４を介して相互接続されている。バスコントローラ６０５とマザーボードＩ／Ｏコントローラ６１９は、ローカルバス６１８を介して接続されている。マザーボードＩ／Ｏコントローラ６１９には、マウス６２０、キーボード６２１、タイマ６２２、ＢＩＯＳ‐ＲＯＭ（Basic  Input  Output  System  ‐  Read  Only  Memory）６２３、不揮発性メモリ６２４が接続されている。
【００７４】
バスコントローラ６０５は、PCIeバス６１０〜６１３を介して、各種カードに接続されている。各種カードは、例えば、ＳＡＳ（Serial  Attached  SCSI（Small  Computer  System  Interface））カード６０６、ＬＡＮ（Local  Area  Network）カード６０７、ＵＳＢ（Universal  Serial  Bus）カード６０８、グラフィックカード６０９を含む。ＳＡＳカード６０６には、ＨＤＤ（Hard  Disc  Drive）やＳＳＤ（Solid  State  Drive）等のデバイス６１４が接続される。ＬＡＮカード６０７には、ＬＡＮケーブル６１５が接続される。ＵＳＢカード６０８には、ＵＳＢ６１６が接続される。グラフィックカード６０９には、ディスプレイ６１７が接続される。
【００７５】
例えば、バスコントローラ６０５が送信装置２１００（図６参照）として動作し、ＳＡＳカード６０６が受信装置２２００（図６参照）として動作する。ＳＡＳカード６０６が送信装置２１００として動作し、バスコントローラ６０５が受信装置２２００として動作してもよい。バスコントローラ６０５と他のカードとの間の送受信についても同様である。また、送信装置２１００と受信装置２２００とを含む送受信構成は、PCIeバス６１０〜６１３を介して接続された送受信構成に限られず、他の接続形式の接続線を介して接続された送受信構成でもよい。例えば、ホストバス６０４を介して接続された送受信構成（ＣＰＵ６０１とバスコントローラ６０５）でもよい。
【００７６】
また、受信装置２２００内の各部（レシーバ部１００、クロック抽出部２００、エッジ検出部３００、計測・調整部４００及びクロック補正部５００）の処理は、プログラムがコンピュータにより実行されることで実現されてもよい。例えば、ＳＡＳカード６０６が受信装置２２００として動作する場合、当該プログラムは、ＳＡＳカード６０６内のＣＰＵ６２５により実行され、ＳＡＳカード６０６内のＲＯＭ６２６に格納される。他のデバイスが受信装置２２００として動作する場合も同様である。
【００７７】
以上、情報処理装置、情報処理方法及びプログラムを実施形態により説明したが、本発明は上記実施形態に限定されるものではない。他の実施形態の一部又は全部との組み合わせや置換などの種々の変形及び改良が、本発明の範囲内で可能である。
【００７８】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
シリアル入力信号を閾値と比較して受信データを出力するレシーバ部と、
前記受信データに重畳されたクロックを前記受信データから抽出する抽出部と、
前記クロックに基づいて前記受信データのパルス幅を計測する計測部と、
前記パルス幅の伸長と短縮をカウントするカウント部と、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる調整部とを備える、情報処理装置。
（付記２）
前記パルス幅には、前記受信データのハイレベル側のパルス幅とローレベル側のパルス幅とが含まれ、
前記調整部は、前記ハイレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を上昇させ、前記ローレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を低下させる、付記１に記載の情報処理装置。
（付記３）
前記カウント部は、前記受信データのパルス幅と前記クロックのパルス幅を整数倍した値との差をカウントし、
前記調整部は、前記差が零に近づくように前記閾値を調整する、付記１又は２に記載の情報処理装置。
（付記４）
シリアル入力信号を閾値と比較して受信データを出力し、
前記受信データに重畳されたクロックを前記受信データから抽出し、
前記クロックに基づいて前記受信データのパルス幅を計測し、
前記パルス幅の伸長と短縮をカウントし、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる、情報処理方法。
（付記５）
前記パルス幅には、前記受信データのハイレベル側のパルス幅とローレベル側のパルス幅とが含まれ、
前記ハイレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を上昇させ、前記ローレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を低下させる、付記４に記載の情報処理方法。
（付記６）
前記受信データのパルス幅と前記クロックのパルス幅を整数倍した値との差をカウントし、
前記差が零に近づくように前記閾値を調整する、付記４又は５に記載の情報処理方法。
（付記７）
シリアル入力信号を閾値と比較して受信データを出力する処理と、
前記受信データに重畳されたクロックを前記受信データから抽出する処理と、
前記クロックに基づいて前記受信データのパルス幅を計測する処理と、
前記パルス幅の伸長と短縮をカウントする処理と、
前記パルス幅の伸長が基準値よりも多いとき前記閾値を上昇させ、前記パルス幅の短縮が前記基準値よりも多いとき前記閾値を低下させる処理とを、コンピュータに実行させるプログラム。
（付記８）
前記パルス幅には、前記受信データのハイレベル側のパルス幅とローレベル側のパルス幅とが含まれ、
前記ハイレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を上昇させる処理と、前記ローレベル側のパルス幅の伸長が前記基準値よりも多いとき前記閾値を低下させる処理とを、付記７に記載のコンピュータに実行させるプログラム。
（付記９）
前記受信データのパルス幅と前記クロックのパルス幅を整数倍した値との差をカウントする処理と、
前記差が零に近づくように前記閾値を調整する処理とを、付記７又は８に記載のコンピュータに実行させるプログラム。
【符号の説明】
【００７９】
２１  シリアル入力信号
２２  閾値電圧
２３  受信データ
２４  エッジ出力
２５  クロック
３０  基準クロック
３１  補正データ
１００  レシーバ部
１０１  コンパレータ回路
２００  クロック抽出部
３００  エッジ検出部
４００  計測・調整部
４１０  クロックデータ抽出部
４４０  パルスカウント部
４５０  差分パルスカウント部
５００  クロック補正部
６００  コンピュータ
１０００，２０００  情報処理装置
１１００，２１００  送信装置
１２００，２２００  受信装置
１３００，２３００  伝送線路
【図１】
2018029235.tif 000003
【図２】
2018029235.tif 000004
【図３】
2018029235.tif 000005
【図４】
2018029235.tif 000006
【図５】
2018029235.tif 000007
【図６】
2018029235.tif 000008
【図７】
2018029235.tif 000009
【図８】
2018029235.tif 000010
【図９】
2018029235.tif 000011
【図１０】
2018029235.tif 000012
【図１１】
2018029235.tif 000013
【図１２】
2018029235.tif 000014
【図１３】
2018029235.tif 000015
【図１４】
2018029235.tif 000016
【図１５】
2018029235.tif 000017
【図１６】
2018029235.tif 000018