説明

シリアル通信回路、シリアル通信制御方法および半導体集積回路装置

【課題】シリアル通信回路において、伝送速度決定までの時間を短縮する。
【解決手段】シリアル通信回路は、データ抽出部と、パタン判定部と、周期性判定部と、伝送速度設定部とを具備する。データ抽出部は、最高速度の受信クロックに基づいて受信データを取り込む。パタン判定部は、受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して複数の所定のビット列のうちのいずれかに一致したときに、特徴パタンとの一致を通知する。周期性判定部は、パタン判定部からの通知に基づいて、受信データと特徴パタンとが一致する周期を求め、受信データのストリーム中に特徴パタンが周期毎に連続して出現することを検出し、一致した特徴パタンに基づいて送信速度と受信速度との世代差を判定する。伝送速度設定部は、世代差と最高速度とに基づいて、受信データを送信する対向装置との伝送速度を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、高速のシリアル通信回路、シリアル通信制御方法および半導体集積回路装置に関し、特にシリアル通信回路の通信速度設定およびそのシリアル通信回路を搭載する半導体集積回路装置に関する。
【背景技術】
【0002】
近年、高速シリアルインタフェースを搭載した半導体装置が増加している。その高速シリアルインタフェースの1つであるシリアルATA(Advanced Technology Attachment)規格に準拠したインタフェースを有する半導体集積回路は、動画の高画質化や高精細化などにより通信するデータ量の肥大化に伴い、通信速度のより一層の高速化が求められている。したがって、下記非特許文献1に示されるように、シリアルATA規格は、ジェネレーション1(以降第1世代またはGen1と称する)では1.5Gbps、ジェネレーション2(以降第2世代またはGen2と称する)では3.0Gbps、ジェネレーション3(以降第3世代またはGen3と称する)では6.0Gbpsと伝送速度の高速化が進められた。
【0003】
このようにシリアルATA規格では、規格の改定により高速な伝送速度の規格が追加された。そのため複数の接続スピードモードを持ち、ホスト装置に接続されるデバイス装置との間で個々に接続スピードモードを決定する必要がある。すなわち、どのスピードモードでデータの送受信を行うのかを通信を開始する前に判定する必要がある。例えば、パーソナルコンピュータ等のホスト装置と、ハードディスクドライブ(HDD)等のデバイス装置とをシリアルATAインタフェースによって接続する場合、その伝送速度を決定しなければ通信することができない。双方の装置が通信開始時にスピードネゴシエーションと称される手順によりどの伝送速度によってデータの送受を行なうか決定される。
【0004】
また、今後も新ジェネレーションで高速化が進むことも予想される。ホスト装置とデバイス装置との世代差が大きくなるにつれ、スピードネゴシエーションの回数が増加している。
【0005】
このような通信速度を判定するシリアルデータ受信回路が、特開2008−236178号公報に開示されている。このシリアルデータ受信回路は、周期パルス発生部が発生したパルス信号の間隔内に信号の変化点の数が所定の数の範囲内であるか否かを判断することで受信信号の通信速度を判定する。
【0006】
図1に、ホスト装置におけるシリアルATAの通信開始時の初期化動作の状態遷移図が示される。但し、本発明に関連する非特許文献1に記載の、状態HP1、状態HP7〜状態HP11についてのみ示す。図示しないが、通信開始時は、まずOOBシーケンスが実施され、ホスト装置がデバイス装置からCOMWAKEを受信すると、状態HP7に遷移する。状態HP7では、ホスト装置はデバイス装置が送信するCOMWAKEの終了を待つ。デバイス装置がCOMWAKEの出力をやめると、状態HP8に遷移し、スピードネゴシエーションが始まる。
【0007】
状態HP8では、ホスト装置は、D10.2コードをデバイス装置へ最低速度(1.5Gbps)で送信しつつ、デバイス装置から送信されるALIGNプリミティブを最高速度で受信し、デバイス装置から送信されるデータの伝送速度を判定する。ホスト装置は、速度が一致していてALIGNプリミティブを検出できると状態HP9に遷移して伝送速度の設定を行い、状態HP10へ遷移する。ホスト装置は、デバイス装置が送信している伝送速度と同一速度でALIGNプリミティブをデバイス装置へ返信し、スピードネゴシエーションが完了する。さらに、デバイス装置からALIGN以外のプリミティブが送信され、ホスト装置が受信すると、状態HP11に遷移し、接続確立が完了する。一方、ホスト装置がデバイス装置よりも受信速度が速く、状態HP8において、ホスト装置が最長873.8μsの間ALIGNプリミティブを検出できない場合、ホスト装置は受信速度を1世代落として、状態HP1に戻り初期設定を始めからやり直し、OOBシーケンスを実施し、ALIGNプリミティブが検出できるまで繰り返す。
【0008】
このように、ホスト装置が最新のジェネレーションの動作スピードモードから最も古いジェネレーションの動作スピードモードまで順番にタイムアウトを待った後に、順次接続試行を接続確立できるまで繰り返す。そのため、ホスト装置が、対向デバイスのジェネレーションよりも新しい場合、接続スピードモードの検出が即座にできない。したがって、接続確立まで長い時間を要することがある。
【先行技術文献】
【特許文献】
【0009】
【特許文献1】特開2008−236178号公報
【非特許文献】
【0010】
【非特許文献1】“Information Technology −AT Attachment with Packet Interface − 7 Volume 3 − Serial Transport Protocols and Physical Interconnect (ATA/ATAPI−7 V3)” Revision 4b,21 April 2004
【発明の概要】
【発明が解決しようとする課題】
【0011】
本発明は、伝送速度決定までの時間を短縮するシリアル通信回路、シリアル通信制御方法および半導体集積回路装置を提供する。
【課題を解決するための手段】
【0012】
以下に、[発明を実施するための形態]で使用される番号・符号を用いて、課題を解決するための手段を説明する。これらの番号・符号は、[特許請求の範囲]の記載と[発明を実施するための形態]との対応関係を明らかにするために付加されたものである。ただし、それらの番号・符号を、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
【0013】
本発明の観点では、シリアル通信回路(100)は、データ抽出部(320)と、パタン判定部(210)と、周期性判定部(220)と、伝送速度設定部(250)とを具備する。データ抽出部(320)は、最高速度の受信クロックに基づいて受信データを取り込む。パタン判定部(210)は、受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して複数の所定のビット列のうちのいずれかに一致したときに、特徴パタンとの一致を通知する。周期性判定部(220)は、パタン判定部(210)からの通知に基づいて、受信データと特徴パタンとが一致する周期を求め、受信データのストリーム中に特徴パタンが周期毎に連続して出現することを検出し、一致した特徴パタンに基づいて送信速度と受信速度との世代差を判定する。伝送速度設定部(250)は、世代差と最高速度とに基づいて、受信データを送信する対向装置との伝送速度を決定する。
【0014】
本発明の他の観点では、シリアル通信制御方法は、最高速度の受信クロックに基づいて受信データを取り込むステップと、受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して複数の所定のビット列のうちのいずれかに一致したときに、特徴パタンとの一致を通知するステップと、通知に基づいて受信データと特徴パタンとが一致する周期を求めるステップと、受信データのストリーム中に特徴パタンが周期毎に連続して出現することを検出し、一致した特徴パタンに基づいて送信速度と受信速度との世代差を判定するステップと、世代差と最高速度とに基づいて、受信データを送信する対向装置との伝送速度を決定するステップとを具備する。
【発明の効果】
【0015】
本発明によれば、対向する装置とのスピードネゴシエーションにおいて、伝送速度決定までの時間を短縮するシリアル通信回路、シリアル通信制御方法および半導体集積回路装置を提供することができる。
【図面の簡単な説明】
【0016】
【図1】シリアルATAの通信開始時におけるホスト装置の初期化の概略を示す状態遷移図の一部である。
【図2】本発明の実施の形態に係るシリアル通信装置の受信部の構成を示すブロック図である。
【図3】世代差と受信データのビットパタンの関係を説明する図である。
【図4A】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時のパタン判定部の動作を説明するフローチャートである。
【図4B】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時の周期性判定部の動作を説明するフローチャートである。
【図4C】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時の伝送速度設定部の動作を説明するフローチャートである。
【図4D】本発明の実施の形態に係るホスト装置のスピードネゴシエーション時の初期設定動作を説明するフローチャートである。
【発明を実施するための形態】
【0017】
図面を参照して本発明の実施の形態を説明する。
【0018】
(第1の実施の形態)
図2は、本発明の第1の実施の形態に係るシリアル通信装置の受信部の構成を示すブロック図である。シリアル通信装置の受信部100は、制御部310、データ抽出部320、レシーバ330、信号検出部340、判定部200、伝送速度設定部250を具備する。判定部200は、パタン判定部210と、周期性判定部220とを備える。この受信部100はホスト装置の受信部として説明する。
【0019】
レシーバ330は、差動入力信号RX±を入力して量子化し、シリアルデータ信号SDTをデータ抽出部320およびパタン判定部210に出力する。データ抽出部320は、シリアルデータ信号SDTからクロックおよびデータを分離抽出し、直並列変換されたパラレルデータ信号PDTと受信再生クロック信号RCLKとを出力する。受信再生クロック信号RCLKは、パタン判定部210に入力される。信号検出部340は、差動入力信号RX±に基づいて、OOB(Out Of Band)信号を検出し、COMINIT検出信号CINITおよびCOMWAKE検出信号CWAKEを出力する。COMWAKE検出信号CWAKEは、パタン判定部210に入力される。また、信号検出部340は、差動入力信号RX±に閾値を超える信号が含まれるか否かを示すスケルチ出力信号SQOをパタン判定部210に出力する。
【0020】
制御部310は、伝送速度設定部250から出力されるスピードモード設定信号SPDSとシステムクロックSCLKとに基づいて、受信用の基準クロックRFCをデータ抽出部320に供給する。また、対向装置とのスピードネゴシエーションが成立して通信可能であることをコミュニケーション確立信号RDYによってパタン判定部210に通知する。
【0021】
判定部200は、スピードネゴシエーションに用いられるALIGNプリミティブのパタンが所定の期間連続するか否かを判定し、速度判定有効信号SENと世代差判定信号GNGとを伝送速度設定部250に供給する。すなわち、パタン判定部210は、信号検出部340から入力されるスケルチ信号SQOが信号受信を示すと、周期カウンタ開始信号CSTを周期性判定部220に出力し、シリアルデータ信号SDTに基づいてALIGNプリミティブの所定のパタンの出現を監視し、所定のパタンを検出し、前回検出した世代差と同じとき、パタン有効信号PENと、パタン検出信号PDTとを周期性判定部220に出力する。また、所定のパタンを検出し、前回検出した世代差と異なるときは、周期性判定リセット信号CRSを周期性判定部220に出力する。周期性判定部220は、パタン判定部210から入力される周期カウンタ開始信号CSTに基づいて周期カウントを開始し、所定のパタンが所定の回数以上周期性を有して検出されるか否かを監視し、速度判定有効信号SENと世代差判定信号GNGとを伝送速度設定部250に出力する。所定のパタンの検出周期が所定の周期に一致しないとき、周期性判定部220は、パタン判定リセット信号PRSをパタン判定部210に出力する。本実施の形態では、シリアルデータ信号SDTでの例を示すが、同様にパラレルデータPDTでも実施可能である。
【0022】
伝送速度設定部250は、図示されないLINK層から出力されるスピード設定信号SPSに基づいて、伝送速度の初期値を設定する。また、伝送速度設定部250は、判定部200から出力される速度判定有効信号SENと世代差判定信号GNGとに基づいて適切な伝送速度を求める。伝送速度設定部250は、伝送速度をスピードモード設定信号SPDSによって制御部310に通知する。
【0023】
判定部200における伝送速度判定方法を説明する。SATA(Serial Advanced Technology Attachment)規格では、第1世代(Gen1)の伝送速度は1.5Gbps、第2世代(Gen2)の伝送速度は3.0Gbps、第3世代(Gen3)の伝送速度は6.0Gbpsとなっている。ホスト装置・デバイス装置間において互いにサポートできる最速の伝送速度で通信することが好ましく、通信を開始する前に伝送速度の調整が行なわれる。この調整がスピードネゴシエーションと呼ばれる。
【0024】
ホスト装置とデバイス装置との間では、まず、OOB(Out Of Band)信号により接続を確認するための手順が実行される。OOB信号は、差動信号が1.5Gbpsの伝送速度で何らかの動作をしているバースト状態の時間と、差動信号が同電位となって動作していないアイドル状態の時間とによって、COMRESET/COMINIT、COMWAKEを示す。OOB信号による手続きは以下となる。
(1)ホスト装置からデバイス装置へCOMRESETが送られる。ただし、デバイス装置から先にCOMINITが送られた場合は省略される。
(2)デバイス装置でCOMRESETを検出すると、デバイス装置からホスト装置へCOMINITが送られる。
(3)COMINITをホスト装置が検出すると、ホスト装置からデバイス装置へCOMWAKEが送られる。
(4)ホスト装置から送られるCOMWAKEをデバイス装置が検出すると、デバイス装置からホスト装置へCOMWAKEが送られる。
(5)デバイス装置からCOMWAKEを送信した後、スピードネゴシエーションが開始される。
【0025】
スピードネゴシエーションには、ALIGNプリミティブと称されるビット列が使用される。
【0026】
ALIGNプリミティブは、転送制御用に定義された制御コード(プリミティブ)の1種であり、8b/10b変換でいうK28.5コードを先頭に、D10.2、D10.2、D27.3の4つのコードシンボルの列で示される。それぞれランニングディスパリティ(RD)の値(+または−)に応じてビットパタンが定義されているが、RD−から始まる場合のコードを例にビット列で示すと、
K28.5RD−:0011111010
D10.2RD+:0101010101
D27.3RD+:0010011100
となる。したがって、RD−から始まる場合のALIGNプリミティブは、“0011111010010101010101010101010010011100”という40ビットのビット列で示される。この40ビットのビット列が伝送路を送信側から受信側へ転送される。すなわち、レシーバ330から出力されるシリアルデータ信号SDTは、伝送速度が一致していればこのようなビット列として観測できる。
【0027】
受信側のホスト装置がGen2をサポートし、発信側のデバイス装置がGen1をサポートしている場合を例にすると、発信側のデバイス装置がGen1(1.5Gbps)で送信したALIGNプリミティブを受信側のホスト装置がGen2(3.0Gbps)で受信することになる。すなわち、受信側のホスト装置は、受信されたALIGNプリミティブを2倍のクロックでサンプリングすることになる。この場合、図3(b)に示されるように、それぞれのビットが2回ずつ検出される。したがって、ALIGNプリミティブのビットパタンは、80ビットのパタンとして受信される。すなわち、世代差が1であれば、伝送クロックが2倍あるいは1/2倍になり、1ビット分の時間が1/2あるいは2倍になる(図3(b)(c))。世代差が2であれば、2、2-2の関係になる(図3(a))。同じ世代差の装置であれば、伝送速度が異なっていても同じパタンが検出される(図3(b)(c))。したがって、上記ALIGNプリミティブのビット列の2倍、4倍…のビット列パタンを保持し、受信したデータのビット列と比較することにより、一致したパタンに基づいて世代差を求めることができる。受信側のホスト装置は、自体の受信速度と求めた世代差とに基づいて、送信側のデバイス装置が送信しているALIGNプリミティブの送信速度を求めることができ、受信速度をデバイス装置の送信速度に等しい速度に設定し、スピードネゴシエーションが成立する。
【0028】
図4A、図4B、図4C、図4Dを参照して、第1の実施の形態に係るシリアル通信装置のスピードネゴシエーションの動作を説明する。
【0029】
図4Aは、ホスト装置のスピードネゴシエーション時のパタン判定部210の動作を示すフローチャートである。図4Bは、ホスト装置のスピードネゴシエーション時の周期性判定部220の動作を示すフローチャートである。図4Cは、ホスト装置のスピードネゴシエーション時の伝送速度設定部250の動作を示すフローチャートである。図4Dは、判定部200の起動時の動作を示すフローチャートである。ここでは、ホスト装置は第3世代(Gen3)、デバイス装置は第1世代(Gen1)をそれぞれサポートするものとして説明する。
【0030】
パタン判定部210は、コミュニケーション確立信号RDYを確認し、スピードネゴシエーションを開始するか否かを判定する(ステップS102)。コミュニケーション確立信号RDYは、アクティブであればホスト装置とデバイス装置との間の接続が確立しており、インアクティブであれば接続が確立していない状態、すなわちスピードネゴシエーションする必要がある状態を示す。したがって、コミュニケーション確立信号RDYがアクティブであれば(ステップS102:Yes)、処理せずにスピードネゴシエーションが必要になるまで待機する。コミュニケーション確立信号RDYがインアクティブであれば(ステップS102:No)、スピードネゴシエーションを開始する。
【0031】
パタン判定部210は、デバイス装置からOOB信号によるCOMWAKEの応答を検出したことを示すCOMWAKE検出信号CWAKEがアクティブになっているか否かを判定する(ステップS104)。デバイス装置からのCOMWAKEを検出するまで待ち(ステップS104:No)、COMWAKEを検出すると(ステップS104:Yes)、判定部200は、初期設定を開始する。
【0032】
初期設定として、パタン判定部210は、周期性判定部220に含まれるデータパタン検出の周期性を観測するための周期カウンタ、連続性を観測する連続検出カウンタ、パタン判定部210に含まれるビットパタンを判定するためのフラグ等をリセットする(ステップS106)。
【0033】
また、伝送速度設定部250は、伝送速度として設定可能な最大速度をスピードモード設定信号SPDSによって制御部310に指示する(ステップS402)。ここでは、第3世代の速度である6.0Gbpsが設定される。制御部310は、システムクロックSCLKに基づいて、設定された速度のクロック信号を生成し、受信用の基準クロックRFCとしてデータ抽出部320に供給する。
【0034】
パタン判定部210は、受信信号から抽出されるビットパタンを示す検出データパタンを設定する(ステップS202)。すなわち、パタン判定部210は、デバイス装置から送信されるALIGNプリミティブのデータパタンを検出するためのひな型パタンを世代差に対応付けて設定する。本実施の形態では、第3世代が基準となり、2倍に引き伸ばした第2世代用(1世代差)パタン、4倍に引き伸ばした第1世代用(2世代差)パタンが生成される。ここでは、RD−から始まるALIGNデータパタンについて示す。
・原パタン(世代差なし:第3世代)/40ビット
K28.5:0011111010
D10.2:0101010101
D10.2:0101010101
D27.3:0010011100
・1世代差パタン(第2世代)/80ビット
K28.5:00001111111111001100
D10.2:00110011001100110011
D10.2:00110011001100110011
D27.3:00001100001111110000
・2世代差パタン(第1世代)/160ビット
K28.5:0000000011111111111111111111000011110000
D10.2:0000111100001111000011110000111100001111
D10.2:0000111100001111000011110000111100001111
D27.3:0000000011110000000011111111111100000000
【0035】
パタン判定部210は、信号検出部340から出力されるスケルチ信号SQOを監視し、スケルチ信号SQOが信号受信を示すとパタン判定を開始する(ステップS206)。ここで、スケルチ信号SQOが信号受信を示すということは、デバイス装置からスピードネゴシエーションのためのALIGNプリミティブを受信していることを示している。したがって、このALIGNプリミティブのパタンマッチングが開始される。
【0036】
パタン判定が開始されると(ステップS206:Yes)、パタン判定部は周期カウンタ開始信号CSTをオンとして周期性判定部220に出力する(ステップS212)。周期性判定部220は、周期カウンタ開始信号CSTがオンになるまで待機しており(ステップS302)、周期カウンタ開始信号CSTがオンとなると、抽出されるビットパタンの周期を求める周期カウンタを起動してカウントを開始する(ステップS304)。すなわち、周期カウンタは、検出データパタンにマッチングする周期をビット数でカウントする。
【0037】
パタン判定部210は、デバイス装置から送信されるデータであるALIGNプリミティブを示すシリアルデータ信号SDTを受信し、受信再生クロック信号RCLKに基づいてサンプリングする(ステップS214)。このときパタン判定が継続しているかを信号検出部340から出力されるスケルチ信号SQOを監視し、スケルチ信号SQOが信号受信を示しているかを判定する。(ステップS216)。ここで、スケルチ信号SQOが信号受信を示していない場合(ステップS216:No)はパタン判定せず、周期性判定リセット信号CRSをオン、周期カウンタ開始信号CSTをオフとし(ステップS248)、ステップS206に戻り、スケルチ信号SQOが信号受信を示すまで待つ。スケルチ信号SQOが信号受信を示している場合(ステップS216:Yes)、周期性判定部220から入力されるパタン判定リセット信号PRSを監視し(ステップS218)、パタン判定リセット信号PRSがオフの場合(ステップS218:オフ)、サンプリングして得られるシリアルデータは、検出データパタンと比較される。パタン判定リセット信号PRSがオンの場合(ステップS218:オン)、保持しているパタン検出信号PDTの世代差をリセットし(ステップS242)、パタン判定有効信号PENをオフ、周期性判定リセット信号CRSをオフとし(ステップS246)、ステップS216に戻る。
【0038】
比較の結果、原パタンを2倍に引き伸ばした160ビットデータの2世代差パタン(ここでは第1世代)と一致していると(ステップS222:Yes)、パタン判定部210は、パタン検出信号PDTに“2世代差”を示す“2”を設定し(ステップS232)、前回検出した世代差と同じか判定し(ステップS237)、同じであれば(ステップS237:Yes)パタン判定有効信号PENをアクティブ(オン)にして周期性判定部220に通知する(ステップS238)。コミュニケーション確立信号RDYを確認し、スピードネゴシエーションが完了したか否かを判定し(ステップS252)、コミュニケーション確立信号RDYがアクティブであればパタン検出を終了し(ステップS252:Yes)、インアクティブであれば、ステップS216へ戻り、パタン判定を継続する。また、前回検出した世代差と異なる場合(ステップS237:No)、周期性判定リセット信号CRSをオンに設定し、周期性判定部220へ出力し(ステップS244)、パタン判定有効信号PENをオフ、周期性判定リセット信号CRSをオフとし(ステップS246)、ステップS216へ戻る。
【0039】
比較の結果、原パタンを2倍に引き伸ばした80ビットデータの1世代差パタン(ここでは第2世代)と一致していると(ステップS224:Yes)、パタン判定部210は、パタン検出信号PDTに“1世代差”を示す“1”を設定し(ステップS234)、前回検出した世代差と同じか判定し(ステップS237)、同じであれば(ステップS237:Yes)パタン判定有効信号PENをアクティブ(オン)にして周期性判定部220に通知する(ステップS238)。コミュニケーション確立信号RDYを確認し、スピードネゴシエーションが完了したか否かを判定し(ステップS252)、コミュニケーション確立信号RDYがアクティブであればパタン検出を終了し(ステップS252:Yes)、インアクティブであれば、ステップS216へ戻り、パタン判定を継続する。また、前回検出した世代差と異なる場合(ステップS237:No)、周期性判定リセット信号CRSをオンに設定し、周期性判定部220へ出力し(ステップS244)、パタン判定有効信号PENをオフ、周期性判定リセット信号CRSをオフとし(ステップS246)、ステップS216へ戻る。
【0040】
比較の結果、同一世代の原パタン(ここでは第3世代)の40ビットパタンと一致していると(ステップS226:Yes)、パタン判定部210は、パタン検出信号PDTに“同一世代”を示す“0”を設定し(ステップS236)、前回検出した世代差と同じか判定し(ステップS237)、同じであれば(ステップS237:Yes)パタン判定有効信号PENをアクティブ(オン)にして周期性判定部220に通知する(ステップS238)。コミュニケーション確立信号RDYを確認し、スピードネゴシエーションが完了したか否かを判定し(ステップS252)、コミュニケーション確立信号RDYがアクティブであればパタン検出を終了し(ステップS252:Yes)、インアクティブであれば、ステップS216へ戻り、パタン判定を継続する。また、前回検出した世代差と異なる場合(ステップS237:No)、周期性判定リセット信号CRSをオンに設定し、周期性判定部220へ出力し(ステップS244)、パタン判定有効信号PENをオフ、周期性判定リセット信号CRSをオフとし(ステップS246)、ステップS216へ戻る。ここでは、2世代差パタンまで設定されている例で説明するが、n世代差パタンまで設定されている場合は、同様にn世代差パタンから同一世代パタンまで比較される。設定されている検出データパタンに一致しなければ(ステップS226:No)、パタン判定部210は、パタン判定有効信号PENをオフ、周期性判定リセット信号CRSをオフとし(ステップS246)、ステップS216へ戻り上記動作を繰り返す。また、どのステップにいる場合でもCOMWAKEを受信するとステップS106に戻る。
【0041】
周期性判定部220は、周期性判定リセット信号CRSがオフであり、パタン判定有効信号PENがオンである場合、周期カウンタの値が40×2を示しているか否かを判定する(ステップS310)。周期性判定部220は、周期カウンタを備えており、パタン判定部210から出力される周期カウンタ開始信号CSTがオンである場合(ステップS302:オン)、周期カウンタを開始し(ステップS304)、オフの場合(ステップS302:オフ)、ステップS302に戻りオンになるまで待つ。周期カウンタの開始後、周期性判定リセット信号CRSがオフの場合(ステップS306:オフ)、パタン判定有効信号PENの状態を判断する(ステップS308)。周期性判定リセット信号CRSがオンの場合(ステップS306:オン)、周期カウンタ、連続検出カウンタをリセットし(ステップS322)、パタン判定リセット信号PRSをオフにし(ステップS326)、その時、周期カウンタ開始信号CSTがオン(ステップS342:オン)の場合、ステップS306へ戻る。また、周期カウンタ開始信号CSTがオフ(ステップS342:オフ)の場合、ステップS302に戻り、周期カウンタ開始信号CSTがオンになるまで待つ。ステップS306で周期性判定リセット信号CRSがオフの場合(ステップS306:オフ)、パタン判定有効信号PENがオン(ステップS308:オン)の場合、周期カウンタの値を判定する(ステップS310)。パタン判定有効信号PENがオフ(ステップS308:オフ)の場合、ステップS306に戻り、周期性判定リセット信号CRSの状態を確認する。周期カウンタの値が40×2を示していない場合(ステップS310:≠40×2)、周期性判定部220は、検出周期が不良であるとして、パタン判定リセット信号PRSをアクティブ(オン)にして不一致をパタン判定部210に通知し(ステップS324)、周期カウンタ、連続検出カウンタをリセットする(ステップS322)。パタン判定部210は、パタン判定リセット信号PRSのオンを受け取ると、保持している世代差をリセットし(ステップS242)、パタン判定有効信号PENをオフ、周期性判定リセットCRSをオフとし(ステップS246)、ステップS216へ戻る。周期性判定部220は、パタン判定リセット信号PRSをオフとし(ステップS326)、周期カウンタ開始信号CSTを確認し(ステップS342)、オンのままであれば(ステップS342:オン)、ステップS306から繰り返す。周期カウンタ開始信号CSTがオフとなっている場合(ステップS342:オフ)、ステップS302に戻り、周期カウンタ開始信号CSTがオンとなるのを待つ。すなわち、デバイス装置から送信されるALIGNプリミティブのサンプリングをやり直すことになる。したがって、ALIGNプリミティブを誤ってサンプリングをしたとしても、ALIGNプリミティブのビットパタンの周期である、40×2(n=0、1、…)毎に検出データパタンに一致するデータを受信していることを確認することにより、誤検出なく正しくスピードネゴシエーションを行うことができる。
【0042】
周期カウンタの値が40×2を示す場合(ステップS310:=40×2)、周期性判定部220は、デバイス装置が送信するALIGNプリミティブを受信再生クロック信号RCLKに基づいて所定の周期でサンプリングすることができたとして、周期カウンタをリセットする(ステップS312)。ここでは、ホスト装置は第3世代の速度、デバイス装置は第1世代の速度をそれぞれサポートする装置であるから、周期カウンタは2世代差として40×2すなわち160をカウントし、リセットされる。また、周期性判定部220は、連続検出カウンタをカウントアップする(ステップS314)。
【0043】
周期性判定部220は、カウントアップされた連続検出カウンタの値が所定の数(m)に達したか否かを判定する(ステップS332)。すなわち、ALIGNプリミティブのパタンが連続してm回検出されるまで(ステップS332:<m)、ステップS306に戻り、上記処理が繰り返される。連続検出カウンタの値がm以上を示すと(ステップS332:≧m)、周期性判定部220は、所定の周期でm回以上連続してデバイス装置からのALIGNプリミティブを検出できたとする。したがって、周期性判定部220は、パタン検出信号PDTに設定された世代差を示すn(ここでは“2”)を世代差判定信号GNGに設定し、速度判定有効信号SENをアクティブにして世代差判定処理を完了したことを伝送速度設定部250に通知する(ステップS334)。
【0044】
伝送速度設定部250は、ステップS402で設定可能な最大速度を設定後、速度判定有効信号SENがアクティブになるまで待機する(ステップS404)。速度判定有効信号SENがアクティブになると(ステップS404:オン)、伝送速度設定部250は、世代差判定信号GNGに設定された値と、LINK層から出力されるスピード設定信号SPSに設定された値とに基づいて、適切な伝送速度を求める。伝送速度設定部250は、求められた伝送速度をスピードモード設定信号SPDSに設定して制御部310に通知する(ステップS406)。ここでは、スピード設定信号SPSには“3”が設定され、世代差判定信号GNGには“2”が設定されているため、スピードモード設定信号SPDSには“1”が設定される。すなわち、第1世代の伝送速度である1.5Gbpsがデバイス装置との間でスピードネゴシエーションされた伝送速度として設定される。
【0045】
このように、スピードネゴシエーション時にデバイス装置から送信されるデータパタンは、ホスト装置の最高速度の受信クロックでサンプリングされ、世代差(n)に対応して2倍(n=0,1,2,3・・・)に引き伸ばされたデータパタンとして受信される。そのデータパタンに基づいてホスト装置とデバイス装置との世代差を判別することにより、1回のスピードネゴシエーションで、デバイス装置から送信されるALIGNプリミティブの伝送速度を判別することができる。したがって、本発明によれば、接続確立までの時間を短縮できる。また、受信部がサポートする最高速度の受信クロックでサンプリングするため、それ以上の速度のクロック信号を持つ必要がない。
【0046】
(第2の実施の形態)
上記第1の実施の形態においては、検出データパタンは、ALIGNプリミティブの全てのビットが比較の対象となっている。第2の実施の形態においては、40ビットのALIGNプリミティブのうちの特徴的な部分のビット列を検出データパタンとして世代差を判定する。したがって、装置構成は第1の実施の形態と同じであるため説明を省略し、処理手順は第1の実施の形態と相違する部分を説明する。
【0047】
第2の実施の形態では、検出データパタンの設定が異なっている。すなわち、ステップS202において、設定される検出データパタンは、ALIGNプリミティブのうちの特徴的な部分として、例えば、K28.5コードの全体あるいは、一部のビット列とする。
【0048】
K28.5コードを示すビット列は、“0011111010”と示され、K28.5コードの特徴的な部分として、連続する5ビットの“1”に注目する。連続5ビットの“1”のビット列は、ALIGNプリミティブの中で最長の“1”の連続部分であり、ALIGNプリミティブの40ビットのビット列に1か所にしか出現しない。この連続5ビットを確実に判定するために、前後1ビットを連結した“0111110”パタンに注目し、40×2ビット毎に1度の出現を確認することにより、その周期を判定することができる。
【0049】
検出データパタンとして設定されるビット列は、
・原パタン(世代差なし)/7ビット:0111110
・1世代差パタン/12ビット :011111111110
・2世代差パタン/22ビット :0111111111111111111110
というように、連続する5×2ビットの“1”と前後に0が付加された(5×2+2)ビットのビット列となる(nは世代差)。
【0050】
パタン判定部210は、設定された検出データパタンに基づいて、ALIGNプリミティブの受信パタンを判定し(ステップS222〜S236)、上記パタンが検出されると、前回検出の世代差と同じか判定し(ステップS237)、同じ世代差であれば(ステップS237:Yes)、周期性判定部220に通知する(ステップS238)。周期性判定部220は、周期カウンタの値が40×2(n=0、1、…)であること確認してALIGNプリミティブの一部であることを判定する(ステップS310)。その判定が所定の回数(m回)連続することを連続検出カウンタの値によって確認し(ステップS332)、周期性判定部220は、伝送速度を確定する(ステップS334)。
【0051】
このように、周期カウンタによる検出データパタンの一致の周期の判定、連続検出カウンタによる連続検出回数の判定を行うことにより、正確にスピードネゴシエーションができる。
【0052】
ALIGNプリミティブは、他にも特徴的なビットパタンを有している。例えば、
(1)K28.5コードの反転パタンにおける連続5ビットの“0”と前後に“1”を付加した部分
K28.5コードには、ランニングディスパリティ(RD)の値に応じて使い分ける2つのビットパタンが定義されている。上記で説明されたK28.5は、K28.5RD−:0011111010であり、反転されたパタンであるK28.5は、K28.5RD+:1100000101となる。K28.5RD+パタンの連続する5ビットの0も特徴的パタンとなる。連続5ビットを確実に判定するために、前後1ビットを連結した“1000001”パタンが特徴的なパタンとなる。
(2)K28.5コード全体
K28.5コードは、上記のように、2パタンが定義されているため、以下の10ビットの2パタンが特徴的パタンとなる。
K28.5RD−:0011111010
K28.5RD+:1100000101
(3)D27.3コードの全体
D27.3コードにもランニングディスパリティ(RD)の値に応じて使い分ける2つのビットパタンが定義されている。したがって、以下の10ビットの2パタンが特徴的パタンとなる。
D27.3RD+:0010011100
D27.3RD−:1101100011
(4)D10.2コードと続くD27.3コードの先頭の2ビット
D10.2コードは、ALIGNプリミティブの中に2回出現するが、D27.3コードの先頭の2ビットを連結させると、そのパタンは1回の出現となる。D10.2コードは、0101010101であり、D27.3コードは、上記のように2パタンが定義されているため、以下の12ビットの2パタンが特徴的パタンとなる。
(D10.2)+(D27.3RD−の2ビット):010101010100
(D10.2)+(D27.3RD+の2ビット):010101010111
(5)D27.3コードとK28.5コードに含まれる“100111000011111”または“011000111100000”のビット列
D27.3コードからK28.5コードにわたり“1”、“0”を示すビットが交互に1ビット、2ビット連続、3ビット連続、4ビット連続、5ビット連続して出現する部分がある。下記のように、2つのコードを並べると
D27.3RD+ K28.5RD−
0010011100 0011111010
←−−−−−−− −−−−−−→
または、反転パタン
D27.3RD− K28.5RD+
1101100011 1100000101
←−−−−−−− −−−−−−→
となり、15ビットの2パタンが特徴的パタンとなる。
【0053】
このように、検出データパタンには、世代差を誤解釈、誤検出せずに判別できる全ての特徴的なパタンを使用することができる。これらの検出データパタンを使用しても同様にスピードネゴシエーションをすることができる。このように短い検出データパタンとすることにより、ビットパタンの比較器を簡素化できる。
【0054】
上述のように、シリアル通信装置の受信部が有する最高速度の受信クロックを用いて受信データをサンプリングするため、受信部の回路を高速化せずに設計することができ、回路設計の負担を軽減することができる。また、規格更新によって、より高速化された場合にもサポートする世代差をnからn+1にするだけでよく、同じ論理を適用することができる。
【0055】
以上、実施の形態を参照して本願発明を説明したが、上記実施の形態は、矛盾のない限り組み合わせて実施の可能である。また、本願発明は上記実施の形態に限定されるものではなく、本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【0056】
100 受信部
200 判定部
210 パタン判定部
220 周期性判定部
250 伝送速度設定部
310 制御部
320 データ抽出部
330 レシーバ
340 信号検出器

【特許請求の範囲】
【請求項1】
最高速度の受信クロックに基づいて受信データを取り込むデータ抽出部と、
前記受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して前記複数の所定のビット列のうちのいずれかに一致したときに、前記特徴パタンとの一致を通知するパタン判定部と、
前記パタン判定部からの通知に基づいて、前記受信データと前記特徴パタンとが一致する周期を求め、前記受信データのストリーム中に前記特徴パタンが前記周期毎に連続して出現することを検出し、一致した前記特徴パタンに基づいて送信速度と受信速度との世代差を判定する周期性判定部と、
前記世代差と前記最高速度とに基づいて、前記受信データを送信する対向装置との伝送速度を決定する伝送速度設定部と
を具備する
シリアル通信回路。
【請求項2】
前記特徴パタンは、スピードネゴシエーションにおいて送信されるビット列を示す原パタンの各ビットを2個連結して生成される引き伸ばしパタンを含み、
前記nは、0から前記世代差までの整数とする
請求項1に記載のシリアル通信回路。
【請求項3】
周期性判定部は、所定の回数以上連続して周期的に前記特徴パタンが出現することを検出したとき、前記受信データに一致する前記引き伸ばしパタンを示す前記nを前記世代差と判定する
請求項2に記載のシリアル通信回路。
【請求項4】
前記原パタンは、ALIGNデータパタンを示す40ビットのビット列とする
請求項2または請求項3に記載のシリアル通信回路。
【請求項5】
前記原パタンは、ALIGNデータパタンを示す40ビットのビット列のうちの一部のビット列に合致し、他の部分とは不一致となるビット列とする
請求項2または請求項3に記載のシリアル通信回路。
【請求項6】
前記原パタンは、ALIGNデータパタンのうちのK28.5コードまたはD27.3コードを示すビット列とする
請求項5に記載のシリアル通信回路。
【請求項7】
前記原パタンは、
ALIGNデータパタンのうちのD10.2コードとD27.3コードの先頭の2ビットとを連結したビット列、または、
“1”、“0”を示すビットが交互に1ビット、2ビット連続、3ビット連続、4ビット連続、5ビット連続して連結された15ビットのビット列とする
請求項5に記載のシリアル通信回路。
【請求項8】
前記原パタンは、
ALIGNデータパタンを示す40ビットのビット列のうちの“1”を示すビットまたは“0”を示すビットが連続する最長部のビット列とその前後1ビットとを連結したビット列とする
請求項5に記載のシリアル通信回路。
【請求項9】
請求項1から請求項8のいずれかに記載のシリアル通信回路を具備する
半導体集積回路装置。
【請求項10】
最高速度の受信クロックに基づいて受信データを取り込むステップと、
前記受信データを示すビット列と、特徴パタンに含まれる複数の所定のビット列の各々とを比較して前記複数の所定のビット列のうちのいずれかに一致したときに、前記特徴パタンとの一致を通知するステップと、
前記通知に基づいて前記受信データと前記特徴パタンとが一致する周期を求めるステップと、
前記受信データのストリーム中に前記特徴パタンが前記周期毎に連続して出現することを検出し、一致した前記特徴パタンに基づいて送信速度と受信速度との世代差を判定するステップと、
前記世代差と前記最高速度とに基づいて、前記受信データを送信する対向装置との伝送速度を決定するステップと
を具備する
シリアル通信制御方法。
【請求項11】
スピードネゴシエーションにおいて送信されるビット列を示す原パタンに基づいて、各ビットを2個連結して引き伸ばした引き伸ばしパタンを生成するステップと、
前記引き伸ばしパタンを前記特徴パタンとして保持するステップと
をさらに具備し、
前記nは、0から前記世代差までの整数とする
請求項10に記載のシリアル通信制御方法。
【請求項12】
前記世代差を判定するステップは、所定の回数以上連続して周期的に前記特徴パタンが出現することを検出したとき、前記受信データに一致する前記引き伸ばしパタンを示す前記nを前記世代差と判定するステップを備える
請求項11に記載のシリアル通信制御方法。
【請求項13】
前記原パタンは、ALIGNデータパタンを示す40ビットのビット列とする
請求項11または請求項12に記載のシリアル通信制御方法。
【請求項14】
前記原パタンは、ALIGNデータパタンを示す40ビットのビット列のうちの一部のビット列に合致し、他の部分とは不一致となるビット列とする
請求項11または請求項12に記載のシリアル通信制御方法。
【請求項15】
前記原パタンは、ALIGNデータパタンのうちのK28.5コードまたはD27.3コードを示すビット列とする
請求項14に記載のシリアル通信制御方法。
【請求項16】
前記原パタンは、
ALIGNデータパタンのうちのD10.2コードとD27.3コードの先頭の2ビットとを連結したビット列、または、
“1”、“0”を示すビットが交互に1ビット、2ビット連続、3ビット連続、4ビット連続、5ビット連続して連結された15ビットのビット列とする
請求項14に記載のシリアル通信制御方法。
【請求項17】
前記原パタンは、
ALIGNデータパタンを示す40ビットのビット列のうちの“1”を示すビットまたは“0”を示すビットが連続する最長部のビット列とその前後1ビットとを連結したビット列とする
請求項14に記載のシリアル通信制御方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図4C】
image rotate

【図4D】
image rotate


【公開番号】特開2012−165190(P2012−165190A)
【公開日】平成24年8月30日(2012.8.30)
【国際特許分類】
【出願番号】特願2011−24208(P2011−24208)
【出願日】平成23年2月7日(2011.2.7)
【出願人】(302062931)ルネサスエレクトロニクス株式会社 (8,021)
【Fターム(参考)】