説明

受信したシリアル転送アライメントシーケンスのレートの検証

受信したシリアル転送アライメントシーケンスのレートを検証する技術は、シリアル転送ストリームの受信を含む。そして、受信したシリアル転送ストリーム内でアラインシーケンスが認識されたかどうか判定する。アラインシーケンスが認識されると、予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうかを判定するための検査が行われる。アラインプリミティブの受信回数と、予め定められた数字とが一致すると、レート検証済アライン検知信号がアサートされる。


【発明の詳細な説明】
【技術分野】
【0001】
本発明は、半導体デバイスに関する。本発明は、特にシリアル転送のアライメントに関する。
【背景技術】
【0002】
今日のコンピュータシステムでは、コンピュータシステムコンポーネント間をインターコネクトするいくつかのプロトコルは、同期の確立および維持を行う。そのようなプロトコルの1つに、シリアルATAプロトコル(Serial ATA Specification rev. 1.0 released June 28, 2001)がある。シリアルATAプロトコルは、ディスクコントローラとディスクドライブのような、2つのデバイス間の通信を可能にする。シリアルATA規格は、差動ペア信号を使用して、シリアル転送のインターコネクトを提供する。シリアルATA規格は、更に、定期的なアライメントプリミティブの転送を提供する。アライメントプリミティブは、予め定められた長さの、予め定められたビットパターンであり、インターコネクトにより接続されたデバイスによって認識される。アライメントプリミティブは、同期状態を失ったデバイス間における、ビット境界アライメントの回復を可能にする。
【0003】
シリアルATA規格が提供しているアライメント方法は、インターフェース間におけるALIGNプリミティブの転送を含む。ALIGNプリミティブは、4バイトのシーケンスである。上記ALIGNプリミティブの第1番目のバイトは、エンコードされたK28.5文字(rd+: 110000 0101; rd-: 001111 1010)である。受信側デバイスは、受信したALIGNプリミティブの第1番目の文字と、期待値のK28.5文字とを比較する。上記2つの文字が一致したとき、受信側デバイスは同期されていると考えられる。
【0004】
しかし、上記の方法は、予期せぬレートで転送されたALIGNプリミティブの検知に失敗しやすく、またインターコネクト配線のノイズを正しいALIGNプリミティブであると誤認識しやすい。
【図面の簡単な説明】
【0005】
【図1】ディスクドライブに接続されたシリアルインターフェース・コントローラを有するコンピュータシステムの一実施形態を示す。
【0006】
【図2】シフトレジスタ、検査ロジック、およびステートマシンを有する、受信したシリアル転送アライメントシーケンスのレートを検証する装置の一実施形態を示す。
【0007】
【図3a】シフトレジスタを示す。
【0008】
【図3b】は検査ロジックを示す。
【0009】
【図4】ステートマシンを示す。
【0010】
【図5】受信したシリアル転送アライメントシーケンスのレートを検証する方法の一実施形態を示す。
【発明を実施するための最良の形態】
【0011】
本発明は、本発明の実施形態を例示するために使用される以下の詳細な説明および添付図面を参照することによって、より完全に理解することができる。尚、以下の詳細な説明と添付図面は、本発明の説明と理解のみを目的としており、本発明を限定するものではない。
【0012】
図1は、ディスクドライブ150に接続されたシリアルインターフェース・コントローラ200を有するコンピュータシステム100の一実施形態を示すブロック図である。シリアルインターフェース・コントローラ200は、周辺機器バス145に接続されている入出力ハブ140に含まれる。
【0013】
コンピュータシステム100はまた、ハブインターコネクト125を介して入出力ハブ140に接続されるシステム論理デバイス120を有する。システム論理デバイス120は、プロセッサ110およびシステムメモリ130に接続されている。
【0014】
シリアルインターフェース・コントローラ200は、インターコネクト147を介してディスクドライブ150に接続されている。本実施例では、インターコネクト147はシリアルATA規格に準拠して実装されている。シリアルATA規格以外のインターコネクトの実装を使用した、他の実施形態も可能である。本実施例では、インターコネクト147は、コントローラ200からディスクドライブ150へデータ転送する1つの差動信号ペアと、ディスクドライブ150からコントローラ200へデータ転送するもう1つの差動信号ペアとを有する。
【0015】
シリアル転送インターコネクト・コントローラ200は、インターコネクト147を介して、定期的にアライメントシーケンスを受信する。アライメントシーケンスは、一連のアライメントプリミティブを含む。本実施例では、アライメントプリミティブは4バイトのシーケンスであり、かつ、その第1番目の文字はエンコードされたK28.5文字である。
【0016】
図2は、シフトレジスタと、検査ロジックと、およびステートマシンとを有し、受信したシリアル転送アライメントシーケンスのレートを検証する装置の一実施形態を示すブロック図である。図2が示す実施形態は、図1が示すコントローラ200のようなシリアル転送インターコネクト・コントローラに実装してもよい。データ回復回路/アナログフロントエンド(AFE)210は、シリアルATA差動信号ペア147を介して、入力ストリームを受信する。ユニット210は、受信した入力ストリームからK28.5文字の受信を認識すると常に、レート未検証アライン検知信号215をアサートする。レート未検証アライン検知信号215は、シフトレジスタおよび検査ロジック300と、ステートマシン400とによって受信される。図3a、図3b、および図4を使用して、ユニット300およびユニット400について以下に説明する。
【0017】
ユニット300およびユニット400は共同で、受信したアライメントプリミティブが目的のレートで受信されたかどうかを判定する。受信したアライメントプリミティブのレートと、目的のレートとが一致したとき、レート検証済アライン検知信号225がアサートされ、シリアル転送インターコネクト・コントローラ200のコアロジックに転送される。レート検証済アライン検知信号225の用途の1つは、シリアル転送インターコネクト147における、シリアルATA規格に準拠するレートネゴシエーションである。シリアル転送インターコネクト・コントローラ200は、レート検証済アライン検知信号225を使用して、受信したシリアル転送ストリームが目的のレートで受信されているかどうかを判定できる。
【0018】
図3aは、ユニット300のシフトレジスタの一実施形態を示すブロック図である。フリップフロップ310はレート未検証アライン検知信号215を受信する。フリップフロップ310は目的のレートでクロックが入力される。フリップフロップ310の出力はLast Align Detect信号0(以下、LastAD[0]のように略す)と表記される。フリップフリップ130の出力は、フリップフロップ312に転送される。フリップフロップ312は目的のレートでクロックが入力される。フリップフロップ312の出力は、LastAD[1]と表記され、フリップフロップ314に転送される。フリップフロップ314は目的のレートでクロックが入力される。フリップフロップ314の出力は、LastAD[2]と表記され、フリップフロップ316に転送される。フリップフロップ316は目的のレートでクロックが入力される。フリップフロップ316の出力は、LastAD[3]と表記される。
【0019】
図3bは、ユニット300の検査ロジックを示すブロック図である。NORゲート320は入力LastAD[3:0]を受信する。ORゲート322は入力LastAD[3:1]を受信する。ORゲート322の出力およびLastAD[0]信号は、ANDゲート324の入力に転送される。ORゲート326は、NORゲート320およびANDゲート324の出力を受信する。
【0020】
レート未検証アライン検知信号215の最近4回の抽出内にアラインプリミティブの受信があったことを示す信号がLastAD[3:0]に1つも無いとき、NORゲート320の出力がアサート(論理「1」)される。これにより、目的の頻度ではアラインシーケンスが認識されないことを示す。
【0021】
4バイトシーケンスの中にK28.5文字が1つより多く含まれているとき、ANDゲート324の出力がアサートされる。NORゲート320またはANDゲート324のいずれかの出力がアサートされると、アライン未検知信号327がアサートされる。
【0022】
図4は、ステートマシン400を示す図である。ステートマシン400は本質的にはカウンタであり、アライメントシーケンスが予め定められた回数検知されたかどうかを検出し、図3bに関して上述した失格イベント(例:アライン未検知信号327)のアサートが生じた場合にはリセットされる。最後の状態は、シリアル転送インターコネクト・コントローラ200のコアロジックからアクノリッジ信号を受信するまで、レート検証済アライン検知信号225をアサートし続ける。
【0023】
アサートされたリセット信号410を受信すると、ステートマシンは待機状態410に移行する。レート未検証アライン検知信号215のアサートに反応して、ステートマシンはアライン1状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアライン2状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアライン3状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアライン4状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアライン5状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアライン6状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアライン7状態に移行する。アライン未検知信号327がアサートされるとステートマシンは待機状態410に戻り、アライン未検知信号327がアサートされないとレート未検証アライン検知信号215のアサートに反応してステートマシンはアサートアライン検知状態420に移行する。状態420において、レート検証済アライン検知信号はコアロジックにアサートされる。コアロジックからアクノリッジ信号411を受信するまで、ステートマシンは状態420にとどまる。その後、ステートマシンは待機状態410に戻り、上記の処理を繰り返す。
【0024】
ステートマシン400はレート未検証アライン検知信号215のアサートを8回カウントしているが、8回以外の回数をカウントする他の実施形態も可能である。適切なカウント回数は、目的のレートで転送されるアラインシーケンスのシグネチャにエラーが発生する可能性をファクターとする関数でもよい。
【0025】
図5は、受信したシリアル転送アライメントシーケンスのレートを検証する方法の一実施形態を示すフロー図である。ブロック510において、シリアル転送入力ストリームを受信する。そしてブロック520において、受信したシリアル転送ストリーム内でアライメントシーケンスが認識されたかどうかを決定する。アライメントシーケンスが認識されたとき、処理はブロック530に移行する。ブロック530において、予め定められた数のクロック周期の間に、アラインプリミティブが適切な回数受信されたかどうかを判定するための検査が行われる。ブロック540および550は、アラインプリミティブの受信回数と、予め定められた数とが一致したとき、レート検証済アライン検知信号がアサートされることを示す。
【0026】
上記明細書においては、本発明を特定の実施例を用いて説明している。しかし、添付の特許請求の範囲が示すように、本発明の広範な本質と発明の範囲から逸れることなく、本発明の実施形態に対して、多様な修正や変更をすることが可能であることは明白である。明細書と図面は、それぞれ、本発明を限定するのではなく、本発明を説明するためのものであると見なされるべきである。
【0027】
本明細書内において「実施形態」、「第1の実施形態」、または「いくつかの実施形態」が実施例とともに意味する、特定の特徴、構造、または性質は、少なくとも本発明のいくつかの実施例に含まれるが、必ずしも本発明の全実施例に含まれるものではない。本明細書内の「実施形態」、「第1の実施形態」、または「いくつかの実施形態」は、必ずしも本発明の同一の実施形態を参照していない。

【特許請求の範囲】
【請求項1】
レート未検証アライン検知信号を受信する入力と、
予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうかを判定するレート検証ユニットと、
レート検証済アライン検知信号を送信する出力とを備える装置。
【請求項2】
前記レート検証ユニットは目的のクロックレートで動作するように設定されたシフトレジスタを有する請求項1に記載の装置。
【請求項3】
前記レート検証ユニットは検査ロジックを更に有する請求項2に記載の装置。
【請求項4】
前記レート検証ユニットはステートマシンを更に有する請求項3に記載の装置。
【請求項5】
前記シフトレジスタは第1のフリップフロップを有し、前記第1のフリップフロップはレート未検証アライン検知信号を受信して第1のLast Align Detect信号を出力する請求項2に記載の装置。
【請求項6】
前記シフトレジスタは第2、第3、および第4のフリップフロップを有し、前記第2のフリップフロップは前記第1のLast Align Detect信号を受信して第2のLast Align Detect信号を出力し、前記第3のフリップフロップは前記第2のLast Align Detect信号を受信して第3のLast Align Detect信号を出力し、前記第3のフリップフロップは前記第3のLast Align Detect信号を受信して第4のLast Align Detect信号を出力する請求項5に記載の装置。
【請求項7】
前記検査ロジックは前記シフトレジスタから前記第1、第2、第3、および第4のLast Align Detect信号を受信し、前記第1、第2、第3、および第4のLast Align Detect信号のぞれぞれの値が0のとき、アライン未検知信号をアサートする請求項6に記載の装置。
【請求項8】
前記検査ロジックは、更に、取得した4バイトのシーケンス内にK28.5文字が1つより多く認識されたときアライン未検知信号をアサートする請求項7に記載の装置。
【請求項9】
前記ステートマシンはアラインの検知をn回までカウントし、前記カウントはレート未検証アライン検知信号がアサートされる毎に増加され、また前記カウントはアライン未検知信号がアサートされる毎にリセットされる請求項7に記載の装置。
【請求項10】
前記ステートマシンが前記レート検証済アライン検知信号をアサートする請求項9の装置。
【請求項11】
前記ステートマシンがアクノリッジ信号を受信するまで前記レート検証アライン検知信号をアサートし続ける請求項10に記載の装置。
【請求項12】
レート未検証アライン検知信号を出力するデータ回復回路と、予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうか判定するレート検証ユニットとを有するシリアル転送インターコネクト・ホストコントローラと、
シリアル転送インターコネクトを介して前記シリアル転送インターコネクト・ホストコントローラに接続されたシステムコンポーネントとを備えるシステム。
【請求項13】
シリアル転送インターコネクトの実装がシリアルATA規格に準拠する請求項12に記載のシステム。
【請求項14】
前記システムコンポーネントが大容量ストレージデバイスである請求項13に記載のシステム。
【請求項15】
前記レート検証ユニットが目的のクロックレートに設定されたシフトレジスタを有する請求項14に記載のシステム。
【請求項16】
前記レート検証ユニットは検査ロジックを更に有する請求項15に記載のシステム。
【請求項17】
前記レート検証ユニットはステートマシンを更に有する請求項16に記載のシステム。
【請求項18】
シリアル転送入力ストリームを受信するステップと、
アラインシーケンスを検知するステップと、
予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうか判定するステップと、
レート検証済アライン検知信号を生成するステップとを備える方法。
【請求項19】
予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうか判定する前記ステップは、目的のクロックレートを確認するためにクロック周期を使用するステップを有する請求項18に記載の方法。
【請求項20】
アラインプリミティブが目的のレートで受信されていることを判定するステップを更に備える請求項18に記載の方法。


【図1】
image rotate

【図2】
image rotate

【図3a】
image rotate

【図3b】
image rotate

【図4】
image rotate

【図5】
image rotate


【公表番号】特表2007−517327(P2007−517327A)
【公表日】平成19年6月28日(2007.6.28)
【国際特許分類】
【出願番号】特願2006−547374(P2006−547374)
【出願日】平成16年12月23日(2004.12.23)
【国際出願番号】PCT/US2004/043337
【国際公開番号】WO2005/064483
【国際公開日】平成17年7月14日(2005.7.14)
【出願人】(591003943)インテル・コーポレーション (1,101)
【Fターム(参考)】