(57)【特許請求の範囲】
【請求項１】
第１世代のクロックと、
前記第１世代のクロックに比べ１／２のクロック周期を持つ第２世代のクロックと、
前記第１世代のクロックに比べ１／４のクロック周期をもつ第３世代のクロックと
を生成可能であり、
スピードネゴシエーションにおいて送信されるＮビット（Ｎは正の自然数）のビットからなるビット列を示す原パターンに対し、
前記ビット列のそれぞれのビットを４回ずつ繰り返し連結されることにより得られる４Ｎビットのビットからなるビット列を第１の特徴パターン、
前記ビット列のそれぞれのビットを２回ずつ繰り返し連結されることにより得られる２Ｎビットのビットからなるビット列を第２の特徴パターン、及び、
前記ビット列のそれぞれのビットを１回ずつ繰り返し連結されることにより得られるＮビットのビットからなるビット列を第３の特徴パターン、として
それぞれ生成し、
前記第３世代のクロック周期に等しいクロック周期を持つ受信クロックに基づいて受信データを取り込むデータ抽出部と、
前記受信データを示すビット列と、前記第１、第２、第３の特徴パターンの各々とを比較して、前記第１、第２、第３の特徴パターンのうちのいずれかに一致したときに、前記特徴パターンとの一致を通知するパターン判定部と、
前記パターン判定部からの通知に基づいて、前記受信データと前記特徴パターンとが一致する周期を求め、前記受信データのストリーム中に前記特徴パターンが前記周期毎に連続して出現することを検出し、一致した前記特徴パターンに基づいて送信速度と受信速度との世代差を判定する周期性判定部と、
前記世代差と前記受信クロックとに基づいて、前記受信データを送信する対向装置との伝送速度を決定する伝送速度設定部と
を具備し、
前記パターン判定部による前記特徴パターンの一致の通知、ならびに、前記周期性判定部による前記世代差の判定、前記伝送速度設定部による前記伝送速度の決定が１回のスピードネゴシエーションによって行われる
シリアル通信回路。
【請求項２】
前記原パターンは、ＡＬＩＧＮデータパターンを示す４０ビットのビット列とする
請求項１に記載のシリアル通信回路。
【請求項３】
前記原パターンは、ＡＬＩＧＮデータパターンを示す４０ビットのビット列のうちの一部のビット列に合致し、他の部分とは不一致となるビット列とする
請求項１に記載のシリアル通信回路。
【請求項４】
前記原パターンは、ＡＬＩＧＮデータパターンのうちのＫ２８．５コードまたはＤ２７．３コードを示すビット列とする
請求項３に記載のシリアル通信回路。
【請求項５】
前記原パターンは、
ＡＬＩＧＮデータパターンのうちのＤ１０．２コードとＤ２７．３コードの先頭の２ビットとを連結したビット列、または、
“１”、“０”を示すビットが交互に１ビット、２ビット連続、３ビット連続、４ビット連続、５ビット連続して連結された１５ビットのビット列とする
請求項３に記載のシリアル通信回路。
【請求項６】
前記原パターンは、
ＡＬＩＧＮデータパターンを示す４０ビットのビット列のうちの“１”を示すビットまたは“０”を示すビットが連続する最長部のビット列とその前後１ビットとを連結したビット列とする
請求項３に記載のシリアル通信回路。
【請求項７】
請求項１から請求項６のいずれかに記載のシリアル通信回路を具備する
半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速のシリアル通信回路、シリアル通信制御方法および半導体集積回路装置に関し、特にシリアル通信回路の通信速度設定およびそのシリアル通信回路を搭載する半導体集積回路装置に関する。
【背景技術】
【０００２】
近年、高速シリアルインタフェースを搭載した半導体装置が増加している。その高速シリアルインタフェースの１つであるシリアルＡＴＡ（Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格に準拠したインタフェースを有する半導体集積回路は、動画の高画質化や高精細化などにより通信するデータ量の肥大化に伴い、通信速度のより一層の高速化が求められている。したがって、下記非特許文献１に示されるように、シリアルＡＴＡ規格は、ジェネレーション１（以降第１世代またはＧｅｎ１と称する）では１．５Ｇｂｐｓ、ジェネレーション２（以降第２世代またはＧｅｎ２と称する）では３．０Ｇｂｐｓ、ジェネレーション３（以降第３世代またはＧｅｎ３と称する）では６．０Ｇｂｐｓと伝送速度の高速化が進められた。
【０００３】
このようにシリアルＡＴＡ規格では、規格の改定により高速な伝送速度の規格が追加された。そのため複数の接続スピードモードを持ち、ホスト装置に接続されるデバイス装置との間で個々に接続スピードモードを決定する必要がある。すなわち、どのスピードモードでデータの送受信を行うのかを通信を開始する前に判定する必要がある。例えば、パーソナルコンピュータ等のホスト装置と、ハードディスクドライブ（ＨＤＤ）等のデバイス装置とをシリアルＡＴＡインタフェースによって接続する場合、その伝送速度を決定しなければ通信することができない。双方の装置が通信開始時にスピードネゴシエーションと称される手順によりどの伝送速度によってデータの送受を行なうか決定される。
【０００４】
また、今後も新ジェネレーションで高速化が進むことも予想される。ホスト装置とデバイス装置との世代差が大きくなるにつれ、スピードネゴシエーションの回数が増加している。
【０００５】
このような通信速度を判定するシリアルデータ受信回路が、特開２００８−２３６１７８号公報に開示されている。このシリアルデータ受信回路は、周期パルス発生部が発生したパルス信号の間隔内に信号の変化点の数が所定の数の範囲内であるか否かを判断することで受信信号の通信速度を判定する。
【０００６】
図１に、ホスト装置におけるシリアルＡＴＡの通信開始時の初期化動作の状態遷移図が示される。但し、本発明に関連する非特許文献１に記載の、状態ＨＰ１、状態ＨＰ７〜状態ＨＰ１１についてのみ示す。図示しないが、通信開始時は、まずＯＯＢシーケンスが実施され、ホスト装置がデバイス装置からＣＯＭＷＡＫＥを受信すると、状態ＨＰ７に遷移する。状態ＨＰ７では、ホスト装置はデバイス装置が送信するＣＯＭＷＡＫＥの終了を待つ。デバイス装置がＣＯＭＷＡＫＥの出力をやめると、状態ＨＰ８に遷移し、スピードネゴシエーションが始まる。
【０００７】
状態ＨＰ８では、ホスト装置は、Ｄ１０．２コードをデバイス装置へ最低速度（１．５Ｇｂｐｓ）で送信しつつ、デバイス装置から送信されるＡＬＩＧＮプリミティブを最高速度で受信し、デバイス装置から送信されるデータの伝送速度を判定する。ホスト装置は、速度が一致していてＡＬＩＧＮプリミティブを検出できると状態ＨＰ９に遷移して伝送速度の設定を行い、状態ＨＰ１０へ遷移する。ホスト装置は、デバイス装置が送信している伝送速度と同一速度でＡＬＩＧＮプリミティブをデバイス装置へ返信し、スピードネゴシエーションが完了する。さらに、デバイス装置からＡＬＩＧＮ以外のプリミティブが送信され、ホスト装置が受信すると、状態ＨＰ１１に遷移し、接続確立が完了する。一方、ホスト装置がデバイス装置よりも受信速度が速く、状態ＨＰ８において、ホスト装置が最長８７３．８μｓの間ＡＬＩＧＮプリミティブを検出できない場合、ホスト装置は受信速度を１世代落として、状態ＨＰ１に戻り初期設定を始めからやり直し、ＯＯＢシーケンスを実施し、ＡＬＩＧＮプリミティブが検出できるまで繰り返す。
【０００８】
このように、ホスト装置が最新のジェネレーションの動作スピードモードから最も古いジェネレーションの動作スピードモードまで順番にタイムアウトを待った後に、順次接続試行を接続確立できるまで繰り返す。そのため、ホスト装置が、対向デバイスのジェネレーションよりも新しい場合、接続スピードモードの検出が即座にできない。したがって、接続確立まで長い時間を要することがある。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−２３６１７８号公報
【非特許文献】
【００１０】
【非特許文献１】“Ｉｎｆｏｒｍａｔｉｏｎ  Ｔｅｃｈｎｏｌｏｇｙ  −ＡＴ  Ａｔｔａｃｈｍｅｎｔ  ｗｉｔｈ  Ｐａｃｋｅｔ  Ｉｎｔｅｒｆａｃｅ  −  ７  Ｖｏｌｕｍｅ  ３  −  Ｓｅｒｉａｌ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌｓ  ａｎｄ  Ｐｈｙｓｉｃａｌ  Ｉｎｔｅｒｃｏｎｎｅｃｔ  （ＡＴＡ／ＡＴＡＰＩ−７  Ｖ３）”  Ｒｅｖｉｓｉｏｎ  ４ｂ，２１  Ａｐｒｉｌ  ２００４
【発明の概要】
【発明が解決しようとする課題】
【００１１】
本発明は、伝送速度決定までの時間を短縮するシリアル通信回路、シリアル通信制御方法および半導体集積回路装置を提供する。
【課題を解決するための手段】
【００１２】
以下に、［発明を実施するための形態］で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、［特許請求の範囲］の記載と［発明を実施するための形態］との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【００１３】
本発明の観点では、シリアル通信回路（１００）は、データ抽出部（３２０）と、パタン判定部（２１０）と、周期性判定部（２２０）と、伝送速度設定部（２５０）とを具備する。データ抽出部（３２０）は、最高速度の受信クロックに基づいて受信データを取り込む。パタン判定部（２１０）は、受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して複数の所定のビット列のうちのいずれかに一致したときに、特徴パタンとの一致を通知する。周期性判定部（２２０）は、パタン判定部（２１０）からの通知に基づいて、受信データと特徴パタンとが一致する周期を求め、受信データのストリーム中に特徴パタンが周期毎に連続して出現することを検出し、一致した特徴パタンに基づいて送信速度と受信速度との世代差を判定する。伝送速度設定部（２５０）は、世代差と最高速度とに基づいて、受信データを送信する対向装置との伝送速度を決定する。
【００１４】
本発明の他の観点では、シリアル通信制御方法は、最高速度の受信クロックに基づいて受信データを取り込むステップと、受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して複数の所定のビット列のうちのいずれかに一致したときに、特徴パタンとの一致を通知するステップと、通知に基づいて受信データと特徴パタンとが一致する周期を求めるステップと、受信データのストリーム中に特徴パタンが周期毎に連続して出現することを検出し、一致した特徴パタンに基づいて送信速度と受信速度との世代差を判定するステップと、世代差と最高速度とに基づいて、受信データを送信する対向装置との伝送速度を決定するステップとを具備する。
【発明の効果】
【００１５】
本発明によれば、対向する装置とのスピードネゴシエーションにおいて、伝送速度決定までの時間を短縮するシリアル通信回路、シリアル通信制御方法および半導体集積回路装置を提供することができる。
【図面の簡単な説明】
【００１６】
【図１】シリアルＡＴＡの通信開始時におけるホスト装置の初期化の概略を示す状態遷移図の一部である。
【図２】本発明の実施の形態に係るシリアル通信装置の受信部の構成を示すブロック図である。
【図３】世代差と受信データのビットパタンの関係を説明する図である。
【図４Ａ】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時のパタン判定部の動作を説明するフローチャートである。
【図４Ｂ】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時の周期性判定部の動作を説明するフローチャートである。
【図４Ｃ】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時の伝送速度設定部の動作を説明するフローチャートである。
【図４Ｄ】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時の初期設定動作を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
図面を参照して本発明の実施の形態を説明する。
【００１８】
（第１の実施の形態）
図２は、本発明の第１の実施の形態に係るシリアル通信装置の受信部の構成を示すブロック図である。シリアル通信装置の受信部１００は、制御部３１０、データ抽出部３２０、レシーバ３３０、信号検出部３４０、判定部２００、伝送速度設定部２５０を具備する。判定部２００は、パタン判定部２１０と、周期性判定部２２０とを備える。この受信部１００はホスト装置の受信部として説明する。
【００１９】
レシーバ３３０は、差動入力信号ＲＸ±を入力して量子化し、シリアルデータ信号ＳＤＴをデータ抽出部３２０およびパタン判定部２１０に出力する。データ抽出部３２０は、シリアルデータ信号ＳＤＴからクロックおよびデータを分離抽出し、直並列変換されたパラレルデータ信号ＰＤＴと受信再生クロック信号ＲＣＬＫとを出力する。受信再生クロック信号ＲＣＬＫは、パタン判定部２１０に入力される。信号検出部３４０は、差動入力信号ＲＸ±に基づいて、ＯＯＢ（Ｏｕｔ  Ｏｆ  Ｂａｎｄ）信号を検出し、ＣＯＭＩＮＩＴ検出信号ＣＩＮＩＴおよびＣＯＭＷＡＫＥ検出信号ＣＷＡＫＥを出力する。ＣＯＭＷＡＫＥ検出信号ＣＷＡＫＥは、パタン判定部２１０に入力される。また、信号検出部３４０は、差動入力信号ＲＸ±に閾値を超える信号が含まれるか否かを示すスケルチ出力信号ＳＱＯをパタン判定部２１０に出力する。
【００２０】
制御部３１０は、伝送速度設定部２５０から出力されるスピードモード設定信号ＳＰＤＳとシステムクロックＳＣＬＫとに基づいて、受信用の基準クロックＲＦＣをデータ抽出部３２０に供給する。また、対向装置とのスピードネゴシエーションが成立して通信可能であることをコミュニケーション確立信号ＲＤＹによってパタン判定部２１０に通知する。
【００２１】
判定部２００は、スピードネゴシエーションに用いられるＡＬＩＧＮプリミティブのパタンが所定の期間連続するか否かを判定し、速度判定有効信号ＳＥＮと世代差判定信号ＧＮＧとを伝送速度設定部２５０に供給する。すなわち、パタン判定部２１０は、信号検出部３４０から入力されるスケルチ信号ＳＱＯが信号受信を示すと、周期カウンタ開始信号ＣＳＴを周期性判定部２２０に出力し、シリアルデータ信号ＳＤＴに基づいてＡＬＩＧＮプリミティブの所定のパタンの出現を監視し、所定のパタンを検出し、前回検出した世代差と同じとき、パタン有効信号ＰＥＮと、パタン検出信号ＰＤＴとを周期性判定部２２０に出力する。また、所定のパタンを検出し、前回検出した世代差と異なるときは、周期性判定リセット信号ＣＲＳを周期性判定部２２０に出力する。周期性判定部２２０は、パタン判定部２１０から入力される周期カウンタ開始信号ＣＳＴに基づいて周期カウントを開始し、所定のパタンが所定の回数以上周期性を有して検出されるか否かを監視し、速度判定有効信号ＳＥＮと世代差判定信号ＧＮＧとを伝送速度設定部２５０に出力する。所定のパタンの検出周期が所定の周期に一致しないとき、周期性判定部２２０は、パタン判定リセット信号ＰＲＳをパタン判定部２１０に出力する。本実施の形態では、シリアルデータ信号ＳＤＴでの例を示すが、同様にパラレルデータＰＤＴでも実施可能である。
【００２２】
伝送速度設定部２５０は、図示されないＬＩＮＫ層から出力されるスピード設定信号ＳＰＳに基づいて、伝送速度の初期値を設定する。また、伝送速度設定部２５０は、判定部２００から出力される速度判定有効信号ＳＥＮと世代差判定信号ＧＮＧとに基づいて適切な伝送速度を求める。伝送速度設定部２５０は、伝送速度をスピードモード設定信号ＳＰＤＳによって制御部３１０に通知する。
【００２３】
判定部２００における伝送速度判定方法を説明する。ＳＡＴＡ（Ｓｅｒｉａｌ  Ａｄｖａｎｃｅｄ  Ｔｅｃｈｎｏｌｏｇｙ  Ａｔｔａｃｈｍｅｎｔ）規格では、第１世代（Ｇｅｎ１）の伝送速度は１．５Ｇｂｐｓ、第２世代（Ｇｅn２）の伝送速度は３．０Ｇｂｐｓ、第３世代（Ｇｅｎ３）の伝送速度は６．０Ｇｂｐｓとなっている。ホスト装置・デバイス装置間において互いにサポートできる最速の伝送速度で通信することが好ましく、通信を開始する前に伝送速度の調整が行なわれる。この調整がスピードネゴシエーションと呼ばれる。
【００２４】
ホスト装置とデバイス装置との間では、まず、ＯＯＢ（Ｏｕｔ  Ｏｆ  Ｂａｎｄ）信号により接続を確認するための手順が実行される。ＯＯＢ信号は、差動信号が１．５Ｇｂｐｓの伝送速度で何らかの動作をしているバースト状態の時間と、差動信号が同電位となって動作していないアイドル状態の時間とによって、ＣＯＭＲＥＳＥＴ／ＣＯＭＩＮＩＴ、ＣＯＭＷＡＫＥを示す。ＯＯＢ信号による手続きは以下となる。
（１）ホスト装置からデバイス装置へＣＯＭＲＥＳＥＴが送られる。ただし、デバイス装置から先にＣＯＭＩＮＩＴが送られた場合は省略される。
（２）デバイス装置でＣＯＭＲＥＳＥＴを検出すると、デバイス装置からホスト装置へＣＯＭＩＮＩＴが送られる。
（３）ＣＯＭＩＮＩＴをホスト装置が検出すると、ホスト装置からデバイス装置へＣＯＭＷＡＫＥが送られる。
（４）ホスト装置から送られるＣＯＭＷＡＫＥをデバイス装置が検出すると、デバイス装置からホスト装置へＣＯＭＷＡＫＥが送られる。
（５）デバイス装置からＣＯＭＷＡＫＥを送信した後、スピードネゴシエーションが開始される。
【００２５】
スピードネゴシエーションには、ＡＬＩＧＮプリミティブと称されるビット列が使用される。
【００２６】
ＡＬＩＧＮプリミティブは、転送制御用に定義された制御コード（プリミティブ）の１種であり、８ｂ／１０ｂ変換でいうＫ２８．５コードを先頭に、Ｄ１０．２、Ｄ１０．２、Ｄ２７．３の４つのコードシンボルの列で示される。それぞれランニングディスパリティ（ＲＤ）の値（＋または−）に応じてビットパタンが定義されているが、ＲＤ−から始まる場合のコードを例にビット列で示すと、
Ｋ２８．５ＲＤ−：００１１１１１０１０
Ｄ１０．２ＲＤ＋：０１０１０１０１０１
Ｄ２７．３ＲＤ＋：００１００１１１００
となる。したがって、ＲＤ−から始まる場合のＡＬＩＧＮプリミティブは、“００１１１１１０１００１０１０１０１０１０１０１０１０１０１００１００１１１００”という４０ビットのビット列で示される。この４０ビットのビット列が伝送路を送信側から受信側へ転送される。すなわち、レシーバ３３０から出力されるシリアルデータ信号ＳＤＴは、伝送速度が一致していればこのようなビット列として観測できる。
【００２７】
受信側のホスト装置がＧｅｎ２をサポートし、発信側のデバイス装置がＧｅｎ１をサポートしている場合を例にすると、発信側のデバイス装置がＧｅｎ１（１．５Ｇｂｐｓ）で送信したＡＬＩＧＮプリミティブを受信側のホスト装置がＧｅｎ２（３．０Ｇｂｐｓ）で受信することになる。すなわち、受信側のホスト装置は、受信されたＡＬＩＧＮプリミティブを２倍のクロックでサンプリングすることになる。この場合、図３（ｂ）に示されるように、それぞれのビットが２回ずつ検出される。したがって、ＡＬＩＧＮプリミティブのビットパタンは、８０ビットのパタンとして受信される。すなわち、世代差が１であれば、伝送クロックが２倍あるいは１／２倍になり、１ビット分の時間が１／２あるいは２倍になる（図３（ｂ）（ｃ））。世代差が２であれば、２２、２-２の関係になる（図３（ａ））。同じ世代差の装置であれば、伝送速度が異なっていても同じパタンが検出される（図３（ｂ）（ｃ））。したがって、上記ＡＬＩＧＮプリミティブのビット列の２倍、４倍…のビット列パタンを保持し、受信したデータのビット列と比較することにより、一致したパタンに基づいて世代差を求めることができる。受信側のホスト装置は、自体の受信速度と求めた世代差とに基づいて、送信側のデバイス装置が送信しているＡＬＩＧＮプリミティブの送信速度を求めることができ、受信速度をデバイス装置の送信速度に等しい速度に設定し、スピードネゴシエーションが成立する。
【００２８】
図４Ａ、図４Ｂ、図４Ｃ、図４Ｄを参照して、第１の実施の形態に係るシリアル通信装置のスピードネゴシエーションの動作を説明する。
【００２９】
図４Ａは、ホスト装置のスピードネゴシエーション時のパタン判定部２１０の動作を示すフローチャートである。図４Ｂは、ホスト装置のスピードネゴシエーション時の周期性判定部２２０の動作を示すフローチャートである。図４Ｃは、ホスト装置のスピードネゴシエーション時の伝送速度設定部２５０の動作を示すフローチャートである。図４Ｄは、判定部２００の起動時の動作を示すフローチャートである。ここでは、ホスト装置は第３世代（Ｇｅｎ３）、デバイス装置は第１世代（Ｇｅｎ１）をそれぞれサポートするものとして説明する。
【００３０】
パタン判定部２１０は、コミュニケーション確立信号ＲＤＹを確認し、スピードネゴシエーションを開始するか否かを判定する（ステップＳ１０２）。コミュニケーション確立信号ＲＤＹは、アクティブであればホスト装置とデバイス装置との間の接続が確立しており、インアクティブであれば接続が確立していない状態、すなわちスピードネゴシエーションする必要がある状態を示す。したがって、コミュニケーション確立信号ＲＤＹがアクティブであれば（ステップＳ１０２：Ｙｅｓ）、処理せずにスピードネゴシエーションが必要になるまで待機する。コミュニケーション確立信号ＲＤＹがインアクティブであれば（ステップＳ１０２：Ｎｏ）、スピードネゴシエーションを開始する。
【００３１】
パタン判定部２１０は、デバイス装置からＯＯＢ信号によるＣＯＭＷＡＫＥの応答を検出したことを示すＣＯＭＷＡＫＥ検出信号ＣＷＡＫＥがアクティブになっているか否かを判定する（ステップＳ１０４）。デバイス装置からのＣＯＭＷＡＫＥを検出するまで待ち（ステップＳ１０４：Ｎｏ）、ＣＯＭＷＡＫＥを検出すると（ステップＳ１０４：Ｙｅｓ）、判定部２００は、初期設定を開始する。
【００３２】
初期設定として、パタン判定部２１０は、周期性判定部２２０に含まれるデータパタン検出の周期性を観測するための周期カウンタ、連続性を観測する連続検出カウンタ、パタン判定部２１０に含まれるビットパタンを判定するためのフラグ等をリセットする（ステップＳ１０６）。
【００３３】
また、伝送速度設定部２５０は、伝送速度として設定可能な最大速度をスピードモード設定信号ＳＰＤＳによって制御部３１０に指示する（ステップＳ４０２）。ここでは、第３世代の速度である６．０Ｇｂｐｓが設定される。制御部３１０は、システムクロックＳＣＬＫに基づいて、設定された速度のクロック信号を生成し、受信用の基準クロックＲＦＣとしてデータ抽出部３２０に供給する。
【００３４】
パタン判定部２１０は、受信信号から抽出されるビットパタンを示す検出データパタンを設定する（ステップＳ２０２）。すなわち、パタン判定部２１０は、デバイス装置から送信されるＡＬＩＧＮプリミティブのデータパタンを検出するためのひな型パタンを世代差に対応付けて設定する。本実施の形態では、第３世代が基準となり、２倍に引き伸ばした第２世代用（１世代差）パタン、４倍に引き伸ばした第１世代用（２世代差）パタンが生成される。ここでは、ＲＤ−から始まるＡＬＩＧＮデータパタンについて示す。
・原パタン（世代差なし：第３世代）／４０ビット
Ｋ２８．５：００１１１１１０１０
Ｄ１０．２：０１０１０１０１０１
Ｄ１０．２：０１０１０１０１０１
Ｄ２７．３：００１００１１１００
・１世代差パタン（第２世代）／８０ビット
Ｋ２８．５：００００１１１１１１１１１１００１１００
Ｄ１０．２：００１１００１１００１１００１１００１１
Ｄ１０．２：００１１００１１００１１００１１００１１
Ｄ２７．３：００００１１００００１１１１１１００００
・２世代差パタン（第１世代）／１６０ビット
Ｋ２８．５：００００００００１１１１１１１１１１１１１１１１１１１１００００１１１１００００
Ｄ１０．２：００００１１１１００００１１１１００００１１１１００００１１１１００００１１１１
Ｄ１０．２：００００１１１１００００１１１１００００１１１１００００１１１１００００１１１１
Ｄ２７．３：００００００００１１１１００００００００１１１１１１１１１１１１００００００００
【００３５】
パタン判定部２１０は、信号検出部３４０から出力されるスケルチ信号ＳＱＯを監視し、スケルチ信号ＳＱＯが信号受信を示すとパタン判定を開始する（ステップＳ２０６）。ここで、スケルチ信号ＳＱＯが信号受信を示すということは、デバイス装置からスピードネゴシエーションのためのＡＬＩＧＮプリミティブを受信していることを示している。したがって、このＡＬＩＧＮプリミティブのパタンマッチングが開始される。
【００３６】
パタン判定が開始されると（ステップＳ２０６：Ｙｅｓ）、パタン判定部は周期カウンタ開始信号ＣＳＴをオンとして周期性判定部２２０に出力する（ステップＳ２１２）。周期性判定部２２０は、周期カウンタ開始信号ＣＳＴがオンになるまで待機しており（ステップＳ３０２）、周期カウンタ開始信号ＣＳＴがオンとなると、抽出されるビットパタンの周期を求める周期カウンタを起動してカウントを開始する（ステップＳ３０４）。すなわち、周期カウンタは、検出データパタンにマッチングする周期をビット数でカウントする。
【００３７】
パタン判定部２１０は、デバイス装置から送信されるデータであるＡＬＩＧＮプリミティブを示すシリアルデータ信号ＳＤＴを受信し、受信再生クロック信号ＲＣＬＫに基づいてサンプリングする（ステップＳ２１４）。このときパタン判定が継続しているかを信号検出部３４０から出力されるスケルチ信号ＳＱＯを監視し、スケルチ信号ＳＱＯが信号受信を示しているかを判定する。（ステップＳ２１６）。ここで、スケルチ信号ＳＱＯが信号受信を示していない場合（ステップＳ２１６：Ｎｏ）はパタン判定せず、周期性判定リセット信号ＣＲＳをオン、周期カウンタ開始信号ＣＳＴをオフとし（ステップＳ２４８）、ステップＳ２０６に戻り、スケルチ信号ＳＱＯが信号受信を示すまで待つ。スケルチ信号ＳＱＯが信号受信を示している場合（ステップＳ２１６：Ｙｅｓ）、周期性判定部２２０から入力されるパタン判定リセット信号ＰＲＳを監視し（ステップＳ２１８）、パタン判定リセット信号ＰＲＳがオフの場合（ステップＳ２１８：オフ）、サンプリングして得られるシリアルデータは、検出データパタンと比較される。パタン判定リセット信号ＰＲＳがオンの場合（ステップＳ２１８：オン）、保持しているパタン検出信号ＰＤＴの世代差をリセットし（ステップＳ２４２）、パタン判定有効信号ＰＥＮをオフ、周期性判定リセット信号ＣＲＳをオフとし（ステップＳ２４６）、ステップＳ２１６に戻る。
【００３８】
比較の結果、原パタンを２２倍に引き伸ばした１６０ビットデータの２世代差パタン（ここでは第１世代）と一致していると（ステップＳ２２２：Ｙｅｓ）、パタン判定部２１０は、パタン検出信号ＰＤＴに“２世代差”を示す“２”を設定し（ステップＳ２３２）、前回検出した世代差と同じか判定し（ステップＳ２３７）、同じであれば（ステップＳ２３７：Ｙｅｓ）パタン判定有効信号ＰＥＮをアクティブ（オン）にして周期性判定部２２０に通知する（ステップＳ２３８）。コミュニケーション確立信号ＲＤＹを確認し、スピードネゴシエーションが完了したか否かを判定し（ステップＳ２５２）、コミュニケーション確立信号ＲＤＹがアクティブであればパタン検出を終了し（ステップＳ２５２：Ｙｅｓ）、インアクティブであれば、ステップＳ２１６へ戻り、パタン判定を継続する。また、前回検出した世代差と異なる場合（ステップＳ２３７：Ｎｏ）、周期性判定リセット信号ＣＲＳをオンに設定し、周期性判定部２２０へ出力し（ステップＳ２４４）、パタン判定有効信号ＰＥＮをオフ、周期性判定リセット信号ＣＲＳをオフとし（ステップＳ２４６）、ステップＳ２１６へ戻る。
【００３９】
比較の結果、原パタンを２１倍に引き伸ばした８０ビットデータの１世代差パタン（ここでは第２世代）と一致していると（ステップＳ２２４：Ｙｅｓ）、パタン判定部２１０は、パタン検出信号ＰＤＴに“１世代差”を示す“１”を設定し（ステップＳ２３４）、前回検出した世代差と同じか判定し（ステップＳ２３７）、同じであれば（ステップＳ２３７：Ｙｅｓ）パタン判定有効信号ＰＥＮをアクティブ（オン）にして周期性判定部２２０に通知する（ステップＳ２３８）。コミュニケーション確立信号ＲＤＹを確認し、スピードネゴシエーションが完了したか否かを判定し（ステップＳ２５２）、コミュニケーション確立信号ＲＤＹがアクティブであればパタン検出を終了し（ステップＳ２５２：Ｙｅｓ）、インアクティブであれば、ステップＳ２１６へ戻り、パタン判定を継続する。また、前回検出した世代差と異なる場合（ステップＳ２３７：Ｎｏ）、周期性判定リセット信号ＣＲＳをオンに設定し、周期性判定部２２０へ出力し（ステップＳ２４４）、パタン判定有効信号ＰＥＮをオフ、周期性判定リセット信号ＣＲＳをオフとし（ステップＳ２４６）、ステップＳ２１６へ戻る。
【００４０】
比較の結果、同一世代の原パタン（ここでは第３世代）の４０ビットパタンと一致していると（ステップＳ２２６：Ｙｅｓ）、パタン判定部２１０は、パタン検出信号ＰＤＴに“同一世代”を示す“０”を設定し（ステップＳ２３６）、前回検出した世代差と同じか判定し（ステップＳ２３７）、同じであれば（ステップＳ２３７：Ｙｅｓ）パタン判定有効信号ＰＥＮをアクティブ（オン）にして周期性判定部２２０に通知する（ステップＳ２３８）。コミュニケーション確立信号ＲＤＹを確認し、スピードネゴシエーションが完了したか否かを判定し（ステップＳ２５２）、コミュニケーション確立信号ＲＤＹがアクティブであればパタン検出を終了し（ステップＳ２５２：Ｙｅｓ）、インアクティブであれば、ステップＳ２１６へ戻り、パタン判定を継続する。また、前回検出した世代差と異なる場合（ステップＳ２３７：Ｎｏ）、周期性判定リセット信号ＣＲＳをオンに設定し、周期性判定部２２０へ出力し（ステップＳ２４４）、パタン判定有効信号ＰＥＮをオフ、周期性判定リセット信号ＣＲＳをオフとし（ステップＳ２４６）、ステップＳ２１６へ戻る。ここでは、２世代差パタンまで設定されている例で説明するが、ｎ世代差パタンまで設定されている場合は、同様にｎ世代差パタンから同一世代パタンまで比較される。設定されている検出データパタンに一致しなければ（ステップＳ２２６：Ｎｏ）、パタン判定部２１０は、パタン判定有効信号ＰＥＮをオフ、周期性判定リセット信号ＣＲＳをオフとし（ステップＳ２４６）、ステップＳ２１６へ戻り上記動作を繰り返す。また、どのステップにいる場合でもＣＯＭＷＡＫＥを受信するとステップＳ１０６に戻る。
【００４１】
周期性判定部２２０は、周期性判定リセット信号ＣＲＳがオフであり、パタン判定有効信号ＰＥＮがオンである場合、周期カウンタの値が４０×２ｎを示しているか否かを判定する（ステップＳ３１０）。周期性判定部２２０は、周期カウンタを備えており、パタン判定部２１０から出力される周期カウンタ開始信号ＣＳＴがオンである場合（ステップＳ３０２：オン）、周期カウンタを開始し(ステップＳ３０４）、オフの場合（ステップＳ３０２：オフ）、ステップＳ３０２に戻りオンになるまで待つ。周期カウンタの開始後、周期性判定リセット信号ＣＲＳがオフの場合（ステップＳ３０６：オフ）、パタン判定有効信号ＰＥＮの状態を判断する（ステップＳ３０８）。周期性判定リセット信号ＣＲＳがオンの場合（ステップＳ３０６：オン）、周期カウンタ、連続検出カウンタをリセットし（ステップＳ３２２）、パタン判定リセット信号ＰＲＳをオフにし（ステップＳ３２６）、その時、周期カウンタ開始信号ＣＳＴがオン（ステップＳ３４２：オン）の場合、ステップＳ３０６へ戻る。また、周期カウンタ開始信号ＣＳＴがオフ（ステップＳ３４２：オフ）の場合、ステップＳ３０２に戻り、周期カウンタ開始信号ＣＳＴがオンになるまで待つ。ステップＳ３０６で周期性判定リセット信号ＣＲＳがオフの場合（ステップＳ３０６：オフ）、パタン判定有効信号ＰＥＮがオン（ステップＳ３０８：オン）の場合、周期カウンタの値を判定する(ステップＳ３１０）。パタン判定有効信号ＰＥＮがオフ（ステップＳ３０８：オフ）の場合、ステップＳ３０６に戻り、周期性判定リセット信号ＣＲＳの状態を確認する。周期カウンタの値が４０×２ｎを示していない場合（ステップＳ３１０：≠４０×２ｎ）、周期性判定部２２０は、検出周期が不良であるとして、パタン判定リセット信号ＰＲＳをアクティブ（オン）にして不一致をパタン判定部２１０に通知し（ステップＳ３２４）、周期カウンタ、連続検出カウンタをリセットする（ステップＳ３２２）。パタン判定部２１０は、パタン判定リセット信号ＰＲＳのオンを受け取ると、保持している世代差をリセットし（ステップＳ２４２）、パタン判定有効信号ＰＥＮをオフ、周期性判定リセットＣＲＳをオフとし（ステップＳ２４６）、ステップＳ２１６へ戻る。周期性判定部２２０は、パタン判定リセット信号ＰＲＳをオフとし（ステップＳ３２６）、周期カウンタ開始信号ＣＳＴを確認し（ステップＳ３４２）、オンのままであれば（ステップＳ３４２：オン）、ステップＳ３０６から繰り返す。周期カウンタ開始信号ＣＳＴがオフとなっている場合（ステップＳ３４２：オフ）、ステップＳ３０２に戻り、周期カウンタ開始信号ＣＳＴがオンとなるのを待つ。すなわち、デバイス装置から送信されるＡＬＩＧＮプリミティブのサンプリングをやり直すことになる。したがって、ＡＬＩＧＮプリミティブを誤ってサンプリングをしたとしても、ＡＬＩＧＮプリミティブのビットパタンの周期である、４０×２ｎ（ｎ＝０、１、…）毎に検出データパタンに一致するデータを受信していることを確認することにより、誤検出なく正しくスピードネゴシエーションを行うことができる。
【００４２】
周期カウンタの値が４０×２ｎを示す場合（ステップＳ３１０：＝４０×２ｎ）、周期性判定部２２０は、デバイス装置が送信するＡＬＩＧＮプリミティブを受信再生クロック信号ＲＣＬＫに基づいて所定の周期でサンプリングすることができたとして、周期カウンタをリセットする（ステップＳ３１２）。ここでは、ホスト装置は第３世代の速度、デバイス装置は第１世代の速度をそれぞれサポートする装置であるから、周期カウンタは２世代差として４０×２２すなわち１６０をカウントし、リセットされる。また、周期性判定部２２０は、連続検出カウンタをカウントアップする（ステップＳ３１４）。
【００４３】
周期性判定部２２０は、カウントアップされた連続検出カウンタの値が所定の数（ｍ）に達したか否かを判定する（ステップＳ３３２）。すなわち、ＡＬＩＧＮプリミティブのパタンが連続してｍ回検出されるまで（ステップＳ３３２：＜ｍ）、ステップＳ３０６に戻り、上記処理が繰り返される。連続検出カウンタの値がｍ以上を示すと（ステップＳ３３２：≧ｍ）、周期性判定部２２０は、所定の周期でｍ回以上連続してデバイス装置からのＡＬＩＧＮプリミティブを検出できたとする。したがって、周期性判定部２２０は、パタン検出信号ＰＤＴに設定された世代差を示すｎ（ここでは“２”）を世代差判定信号ＧＮＧに設定し、速度判定有効信号ＳＥＮをアクティブにして世代差判定処理を完了したことを伝送速度設定部２５０に通知する（ステップＳ３３４）。
【００４４】
伝送速度設定部２５０は、ステップＳ４０２で設定可能な最大速度を設定後、速度判定有効信号ＳＥＮがアクティブになるまで待機する（ステップＳ４０４）。速度判定有効信号ＳＥＮがアクティブになると（ステップＳ４０４：オン）、伝送速度設定部２５０は、世代差判定信号ＧＮＧに設定された値と、ＬＩＮＫ層から出力されるスピード設定信号ＳＰＳに設定された値とに基づいて、適切な伝送速度を求める。伝送速度設定部２５０は、求められた伝送速度をスピードモード設定信号ＳＰＤＳに設定して制御部３１０に通知する（ステップＳ４０６）。ここでは、スピード設定信号ＳＰＳには“３”が設定され、世代差判定信号ＧＮＧには“２”が設定されているため、スピードモード設定信号ＳＰＤＳには“１”が設定される。すなわち、第１世代の伝送速度である１．５Ｇｂｐｓがデバイス装置との間でスピードネゴシエーションされた伝送速度として設定される。
【００４５】
このように、スピードネゴシエーション時にデバイス装置から送信されるデータパタンは、ホスト装置の最高速度の受信クロックでサンプリングされ、世代差（ｎ）に対応して２ｎ倍（ｎ＝０，１，２，３・・・）に引き伸ばされたデータパタンとして受信される。そのデータパタンに基づいてホスト装置とデバイス装置との世代差を判別することにより、１回のスピードネゴシエーションで、デバイス装置から送信されるＡＬＩＧＮプリミティブの伝送速度を判別することができる。したがって、本発明によれば、接続確立までの時間を短縮できる。また、受信部がサポートする最高速度の受信クロックでサンプリングするため、それ以上の速度のクロック信号を持つ必要がない。
【００４６】
（第２の実施の形態）
上記第１の実施の形態においては、検出データパタンは、ＡＬＩＧＮプリミティブの全てのビットが比較の対象となっている。第２の実施の形態においては、４０ビットのＡＬＩＧＮプリミティブのうちの特徴的な部分のビット列を検出データパタンとして世代差を判定する。したがって、装置構成は第１の実施の形態と同じであるため説明を省略し、処理手順は第１の実施の形態と相違する部分を説明する。
【００４７】
第２の実施の形態では、検出データパタンの設定が異なっている。すなわち、ステップＳ２０２において、設定される検出データパタンは、ＡＬＩＧＮプリミティブのうちの特徴的な部分として、例えば、Ｋ２８．５コードの全体あるいは、一部のビット列とする。
【００４８】
Ｋ２８．５コードを示すビット列は、“００１１１１１０１０”と示され、Ｋ２８．５コードの特徴的な部分として、連続する５ビットの“１”に注目する。連続５ビットの“１”のビット列は、ＡＬＩＧＮプリミティブの中で最長の“１”の連続部分であり、ＡＬＩＧＮプリミティブの４０ビットのビット列に１か所にしか出現しない。この連続５ビットを確実に判定するために、前後１ビットを連結した“０１１１１１０”パタンに注目し、４０×２ｎビット毎に１度の出現を確認することにより、その周期を判定することができる。
【００４９】
検出データパタンとして設定されるビット列は、
・原パタン（世代差なし）／７ビット：０１１１１１０
・１世代差パタン／１２ビット      ：０１１１１１１１１１１０
・２世代差パタン／２２ビット      ：０１１１１１１１１１１１１１１１１１１１１０
というように、連続する５×２ｎビットの“１”と前後に０が付加された（５×２ｎ＋２）ビットのビット列となる（ｎは世代差）。
【００５０】
パタン判定部２１０は、設定された検出データパタンに基づいて、ＡＬＩＧＮプリミティブの受信パタンを判定し（ステップＳ２２２〜Ｓ２３６）、上記パタンが検出されると、前回検出の世代差と同じか判定し（ステップＳ２３７）、同じ世代差であれば（ステップＳ２３７：Ｙｅｓ）、周期性判定部２２０に通知する（ステップＳ２３８）。周期性判定部２２０は、周期カウンタの値が４０×２ｎ（ｎ＝０、１、…）であること確認してＡＬＩＧＮプリミティブの一部であることを判定する（ステップＳ３１０）。その判定が所定の回数（ｍ回）連続することを連続検出カウンタの値によって確認し（ステップＳ３３２）、周期性判定部２２０は、伝送速度を確定する（ステップＳ３３４）。
【００５１】
このように、周期カウンタによる検出データパタンの一致の周期の判定、連続検出カウンタによる連続検出回数の判定を行うことにより、正確にスピードネゴシエーションができる。
【００５２】
ＡＬＩＧＮプリミティブは、他にも特徴的なビットパタンを有している。例えば、
（１）Ｋ２８．５コードの反転パタンにおける連続５ビットの“０”と前後に“１”を付加した部分
Ｋ２８．５コードには、ランニングディスパリティ（ＲＤ）の値に応じて使い分ける２つのビットパタンが定義されている。上記で説明されたＫ２８．５は、Ｋ２８．５ＲＤ−：００１１１１１０１０であり、反転されたパタンであるＫ２８．５は、Ｋ２８．５ＲＤ＋：１１０００００１０１となる。Ｋ２８．５ＲＤ＋パタンの連続する５ビットの０も特徴的パタンとなる。連続５ビットを確実に判定するために、前後１ビットを連結した“１０００００１”パタンが特徴的なパタンとなる。
（２）Ｋ２８．５コード全体
Ｋ２８．５コードは、上記のように、２パタンが定義されているため、以下の１０ビットの２パタンが特徴的パタンとなる。
Ｋ２８．５ＲＤ−：００１１１１１０１０
Ｋ２８．５ＲＤ＋：１１０００００１０１
（３）Ｄ２７．３コードの全体
Ｄ２７．３コードにもランニングディスパリティ（ＲＤ）の値に応じて使い分ける２つのビットパタンが定義されている。したがって、以下の１０ビットの２パタンが特徴的パタンとなる。
Ｄ２７．３ＲＤ＋：００１００１１１００
Ｄ２７．３ＲＤ−：１１０１１０００１１
（４）Ｄ１０．２コードと続くＤ２７．３コードの先頭の２ビット
Ｄ１０．２コードは、ＡＬＩＧＮプリミティブの中に２回出現するが、Ｄ２７．３コードの先頭の２ビットを連結させると、そのパタンは１回の出現となる。Ｄ１０．２コードは、０１０１０１０１０１であり、Ｄ２７．３コードは、上記のように２パタンが定義されているため、以下の１２ビットの２パタンが特徴的パタンとなる。
（Ｄ１０．２）＋（Ｄ２７．３ＲＤ−の２ビット）：０１０１０１０１０１００
（Ｄ１０．２）＋（Ｄ２７．３ＲＤ＋の２ビット）：０１０１０１０１０１１１
（５）Ｄ２７．３コードとＫ２８．５コードに含まれる“１００１１１００００１１１１１”または“０１１０００１１１１０００００”のビット列
Ｄ２７．３コードからＫ２８．５コードにわたり“１”、“０”を示すビットが交互に１ビット、２ビット連続、３ビット連続、４ビット連続、５ビット連続して出現する部分がある。下記のように、２つのコードを並べると
Ｄ２７．３ＲＤ＋      Ｋ２８．５ＲＤ−
００１００１１１００  ００１１１１１０１０
←−−−−−−−  −−−−−−→
または、反転パタン
Ｄ２７．３ＲＤ−      Ｋ２８．５ＲＤ＋
１１０１１０００１１  １１０００００１０１
←−−−−−−−  −−−−−−→
となり、１５ビットの２パタンが特徴的パタンとなる。
【００５３】
このように、検出データパタンには、世代差を誤解釈、誤検出せずに判別できる全ての特徴的なパタンを使用することができる。これらの検出データパタンを使用しても同様にスピードネゴシエーションをすることができる。このように短い検出データパタンとすることにより、ビットパタンの比較器を簡素化できる。
【００５４】
上述のように、シリアル通信装置の受信部が有する最高速度の受信クロックを用いて受信データをサンプリングするため、受信部の回路を高速化せずに設計することができ、回路設計の負担を軽減することができる。また、規格更新によって、より高速化された場合にもサポートする世代差をｎからｎ＋１にするだけでよく、同じ論理を適用することができる。
【００５５】
以上、実施の形態を参照して本願発明を説明したが、上記実施の形態は、矛盾のない限り組み合わせて実施の可能である。また、本願発明は上記実施の形態に限定されるものではなく、本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００５６】
１００  受信部
２００  判定部
２１０  パタン判定部
２２０  周期性判定部
２５０  伝送速度設定部
３１０  制御部
３２０  データ抽出部
３３０  レシーバ
３４０  信号検出器
【図１】
0005670775.tif 000002
【図２】
0005670775.tif 000003
【図３】
0005670775.tif 000004
【図４Ａ】
0005670775.tif 000005
【図４Ｂ】
0005670775.tif 000006
【図４Ｃ】
0005670775.tif 000007
【図４Ｄ】
0005670775.tif 000008