(57)【要約】  受信したシリアル転送アライメントシーケンスのレートを検証する技術は、シリアル転送ストリームの受信を含む。そして、受信したシリアル転送ストリーム内でアラインシーケンスが認識されたかどうか判定する。アラインシーケンスが認識されると、予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうかを判定するための検査が行われる。アラインプリミティブの受信回数と、予め定められた数字とが一致すると、レート検証済アライン検知信号がアサートされる。
2007517327.tif 000002
【特許請求の範囲】
【請求項１】
レート未検証アライン検知信号を受信する入力と、
予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうかを判定するレート検証ユニットと、
レート検証済アライン検知信号を送信する出力とを備える装置。
【請求項２】
前記レート検証ユニットは目的のクロックレートで動作するように設定されたシフトレジスタを有する請求項１に記載の装置。
【請求項３】
前記レート検証ユニットは検査ロジックを更に有する請求項２に記載の装置。
【請求項４】
前記レート検証ユニットはステートマシンを更に有する請求項３に記載の装置。
【請求項５】
前記シフトレジスタは第１のフリップフロップを有し、前記第１のフリップフロップはレート未検証アライン検知信号を受信して第１のLast Align Detect信号を出力する請求項２に記載の装置。
【請求項６】
前記シフトレジスタは第２、第３、および第４のフリップフロップを有し、前記第２のフリップフロップは前記第１のLast Align Detect信号を受信して第２のLast Align Detect信号を出力し、前記第３のフリップフロップは前記第２のLast Align Detect信号を受信して第３のLast Align Detect信号を出力し、前記第３のフリップフロップは前記第３のLast Align Detect信号を受信して第４のLast Align Detect信号を出力する請求項５に記載の装置。
【請求項７】
前記検査ロジックは前記シフトレジスタから前記第１、第２、第３、および第４のLast Align Detect信号を受信し、前記第１、第２、第３、および第４のLast Align Detect信号のぞれぞれの値が０のとき、アライン未検知信号をアサートする請求項６に記載の装置。
【請求項８】
前記検査ロジックは、更に、取得した４バイトのシーケンス内にＫ２８．５文字が１つより多く認識されたときアライン未検知信号をアサートする請求項７に記載の装置。
【請求項９】
前記ステートマシンはアラインの検知をｎ回までカウントし、前記カウントはレート未検証アライン検知信号がアサートされる毎に増加され、また前記カウントはアライン未検知信号がアサートされる毎にリセットされる請求項７に記載の装置。
【請求項１０】
前記ステートマシンが前記レート検証済アライン検知信号をアサートする請求項９の装置。
【請求項１１】
前記ステートマシンがアクノリッジ信号を受信するまで前記レート検証アライン検知信号をアサートし続ける請求項１０に記載の装置。
【請求項１２】
レート未検証アライン検知信号を出力するデータ回復回路と、予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうか判定するレート検証ユニットとを有するシリアル転送インターコネクト・ホストコントローラと、
シリアル転送インターコネクトを介して前記シリアル転送インターコネクト・ホストコントローラに接続されたシステムコンポーネントとを備えるシステム。
【請求項１３】
シリアル転送インターコネクトの実装がシリアルＡＴＡ規格に準拠する請求項１２に記載のシステム。
【請求項１４】
前記システムコンポーネントが大容量ストレージデバイスである請求項１３に記載のシステム。
【請求項１５】
前記レート検証ユニットが目的のクロックレートに設定されたシフトレジスタを有する請求項１４に記載のシステム。
【請求項１６】
前記レート検証ユニットは検査ロジックを更に有する請求項１５に記載のシステム。
【請求項１７】
前記レート検証ユニットはステートマシンを更に有する請求項１６に記載のシステム。
【請求項１８】
シリアル転送入力ストリームを受信するステップと、
アラインシーケンスを検知するステップと、
予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうか判定するステップと、
レート検証済アライン検知信号を生成するステップとを備える方法。
【請求項１９】
予め定められた数のクロック周期の間にアラインプリミティブが適切な回数受信されたかどうか判定する前記ステップは、目的のクロックレートを確認するためにクロック周期を使用するステップを有する請求項１８に記載の方法。
【請求項２０】
アラインプリミティブが目的のレートで受信されていることを判定するステップを更に備える請求項１８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体デバイスに関する。本発明は、特にシリアル転送のアライメントに関する。
【背景技術】
【０００２】
今日のコンピュータシステムでは、コンピュータシステムコンポーネント間をインターコネクトするいくつかのプロトコルは、同期の確立および維持を行う。そのようなプロトコルの１つに、シリアルＡＴＡプロトコル(Serial ATA Specification rev. 1.0 released June 28, 2001)がある。シリアルＡＴＡプロトコルは、ディスクコントローラとディスクドライブのような、２つのデバイス間の通信を可能にする。シリアルＡＴＡ規格は、差動ペア信号を使用して、シリアル転送のインターコネクトを提供する。シリアルＡＴＡ規格は、更に、定期的なアライメントプリミティブの転送を提供する。アライメントプリミティブは、予め定められた長さの、予め定められたビットパターンであり、インターコネクトにより接続されたデバイスによって認識される。アライメントプリミティブは、同期状態を失ったデバイス間における、ビット境界アライメントの回復を可能にする。
【０００３】
シリアルＡＴＡ規格が提供しているアライメント方法は、インターフェース間におけるＡＬＩＧＮプリミティブの転送を含む。ＡＬＩＧＮプリミティブは、４バイトのシーケンスである。上記ＡＬＩＧＮプリミティブの第１番目のバイトは、エンコードされたＫ２８．５文字(rd+:  110000 0101;  rd-:  001111 1010)である。受信側デバイスは、受信したＡＬＩＧＮプリミティブの第１番目の文字と、期待値のＫ２８．５文字とを比較する。上記２つの文字が一致したとき、受信側デバイスは同期されていると考えられる。
【０００４】
しかし、上記の方法は、予期せぬレートで転送されたＡＬＩＧＮプリミティブの検知に失敗しやすく、またインターコネクト配線のノイズを正しいＡＬＩＧＮプリミティブであると誤認識しやすい。
【図面の簡単な説明】
【０００５】
【図１】ディスクドライブに接続されたシリアルインターフェース・コントローラを有するコンピュータシステムの一実施形態を示す。
【０００６】
【図２】シフトレジスタ、検査ロジック、およびステートマシンを有する、受信したシリアル転送アライメントシーケンスのレートを検証する装置の一実施形態を示す。
【０００７】
【図３ａ】シフトレジスタを示す。
【０００８】
【図３ｂ】は検査ロジックを示す。
【０００９】
【図４】ステートマシンを示す。
【００１０】
【図５】受信したシリアル転送アライメントシーケンスのレートを検証する方法の一実施形態を示す。
【発明を実施するための最良の形態】
【００１１】
本発明は、本発明の実施形態を例示するために使用される以下の詳細な説明および添付図面を参照することによって、より完全に理解することができる。尚、以下の詳細な説明と添付図面は、本発明の説明と理解のみを目的としており、本発明を限定するものではない。
【００１２】
図１は、ディスクドライブ１５０に接続されたシリアルインターフェース・コントローラ２００を有するコンピュータシステム１００の一実施形態を示すブロック図である。シリアルインターフェース・コントローラ２００は、周辺機器バス１４５に接続されている入出力ハブ１４０に含まれる。
【００１３】
コンピュータシステム１００はまた、ハブインターコネクト１２５を介して入出力ハブ１４０に接続されるシステム論理デバイス１２０を有する。システム論理デバイス１２０は、プロセッサ１１０およびシステムメモリ１３０に接続されている。
【００１４】
シリアルインターフェース・コントローラ２００は、インターコネクト１４７を介してディスクドライブ１５０に接続されている。本実施例では、インターコネクト１４７はシリアルＡＴＡ規格に準拠して実装されている。シリアルＡＴＡ規格以外のインターコネクトの実装を使用した、他の実施形態も可能である。本実施例では、インターコネクト１４７は、コントローラ２００からディスクドライブ１５０へデータ転送する１つの差動信号ペアと、ディスクドライブ１５０からコントローラ２００へデータ転送するもう１つの差動信号ペアとを有する。
【００１５】
シリアル転送インターコネクト・コントローラ２００は、インターコネクト１４７を介して、定期的にアライメントシーケンスを受信する。アライメントシーケンスは、一連のアライメントプリミティブを含む。本実施例では、アライメントプリミティブは４バイトのシーケンスであり、かつ、その第１番目の文字はエンコードされたＫ２８．５文字である。
【００１６】
図２は、シフトレジスタと、検査ロジックと、およびステートマシンとを有し、受信したシリアル転送アライメントシーケンスのレートを検証する装置の一実施形態を示すブロック図である。図２が示す実施形態は、図１が示すコントローラ２００のようなシリアル転送インターコネクト・コントローラに実装してもよい。データ回復回路／アナログフロントエンド（ＡＦＥ）２１０は、シリアルＡＴＡ差動信号ペア１４７を介して、入力ストリームを受信する。ユニット２１０は、受信した入力ストリームからＫ２８．５文字の受信を認識すると常に、レート未検証アライン検知信号２１５をアサートする。レート未検証アライン検知信号２１５は、シフトレジスタおよび検査ロジック３００と、ステートマシン４００とによって受信される。図３a、図3b、および図４を使用して、ユニット３００およびユニット４００について以下に説明する。
【００１７】
ユニット３００およびユニット４００は共同で、受信したアライメントプリミティブが目的のレートで受信されたかどうかを判定する。受信したアライメントプリミティブのレートと、目的のレートとが一致したとき、レート検証済アライン検知信号２２５がアサートされ、シリアル転送インターコネクト・コントローラ２００のコアロジックに転送される。レート検証済アライン検知信号２２５の用途の１つは、シリアル転送インターコネクト１４７における、シリアルＡＴＡ規格に準拠するレートネゴシエーションである。シリアル転送インターコネクト・コントローラ２００は、レート検証済アライン検知信号２２５を使用して、受信したシリアル転送ストリームが目的のレートで受信されているかどうかを判定できる。
【００１８】
図３aは、ユニット３００のシフトレジスタの一実施形態を示すブロック図である。フリップフロップ３１０はレート未検証アライン検知信号２１５を受信する。フリップフロップ３１０は目的のレートでクロックが入力される。フリップフロップ３１０の出力はLast Align Detect信号0（以下、LastAD[0]のように略す）と表記される。フリップフリップ１３０の出力は、フリップフロップ３１２に転送される。フリップフロップ３１２は目的のレートでクロックが入力される。フリップフロップ３１２の出力は、LastAD[1]と表記され、フリップフロップ３１４に転送される。フリップフロップ３１４は目的のレートでクロックが入力される。フリップフロップ３１４の出力は、LastAD[2]と表記され、フリップフロップ３１６に転送される。フリップフロップ３１６は目的のレートでクロックが入力される。フリップフロップ３１６の出力は、LastAD[3]と表記される。
【００１９】
図３bは、ユニット３００の検査ロジックを示すブロック図である。ＮＯＲゲート３２０は入力LastAD[3:0]を受信する。ＯＲゲート３２２は入力LastAD[3:1]を受信する。ＯＲゲート３２２の出力およびLastAD[0]信号は、ＡＮＤゲート３２４の入力に転送される。ＯＲゲート３２６は、ＮＯＲゲート３２０およびＡＮＤゲート３２４の出力を受信する。
【００２０】
レート未検証アライン検知信号２１５の最近４回の抽出内にアラインプリミティブの受信があったことを示す信号がLastAD[3:0]に１つも無いとき、ＮＯＲゲート３２０の出力がアサート（論理「１」）される。これにより、目的の頻度ではアラインシーケンスが認識されないことを示す。
【００２１】
４バイトシーケンスの中にＫ２８．５文字が１つより多く含まれているとき、ＡＮＤゲート３２４の出力がアサートされる。ＮＯＲゲート３２０またはＡＮＤゲート３２４のいずれかの出力がアサートされると、アライン未検知信号３２７がアサートされる。
【００２２】
図４は、ステートマシン４００を示す図である。ステートマシン４００は本質的にはカウンタであり、アライメントシーケンスが予め定められた回数検知されたかどうかを検出し、図３bに関して上述した失格イベント（例：アライン未検知信号３２７）のアサートが生じた場合にはリセットされる。最後の状態は、シリアル転送インターコネクト・コントローラ２００のコアロジックからアクノリッジ信号を受信するまで、レート検証済アライン検知信号２２５をアサートし続ける。
【００２３】
アサートされたリセット信号４１０を受信すると、ステートマシンは待機状態４１０に移行する。レート未検証アライン検知信号２１５のアサートに反応して、ステートマシンはアライン１状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアライン２状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアライン３状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアライン４状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアライン５状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアライン６状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアライン７状態に移行する。アライン未検知信号３２７がアサートされるとステートマシンは待機状態４１０に戻り、アライン未検知信号３２７がアサートされないとレート未検証アライン検知信号２１５のアサートに反応してステートマシンはアサートアライン検知状態４２０に移行する。状態４２０において、レート検証済アライン検知信号はコアロジックにアサートされる。コアロジックからアクノリッジ信号４１１を受信するまで、ステートマシンは状態４２０にとどまる。その後、ステートマシンは待機状態４１０に戻り、上記の処理を繰り返す。
【００２４】
ステートマシン４００はレート未検証アライン検知信号２１５のアサートを８回カウントしているが、８回以外の回数をカウントする他の実施形態も可能である。適切なカウント回数は、目的のレートで転送されるアラインシーケンスのシグネチャにエラーが発生する可能性をファクターとする関数でもよい。
【００２５】
図５は、受信したシリアル転送アライメントシーケンスのレートを検証する方法の一実施形態を示すフロー図である。ブロック５１０において、シリアル転送入力ストリームを受信する。そしてブロック５２０において、受信したシリアル転送ストリーム内でアライメントシーケンスが認識されたかどうかを決定する。アライメントシーケンスが認識されたとき、処理はブロック５３０に移行する。ブロック５３０において、予め定められた数のクロック周期の間に、アラインプリミティブが適切な回数受信されたかどうかを判定するための検査が行われる。ブロック５４０および５５０は、アラインプリミティブの受信回数と、予め定められた数とが一致したとき、レート検証済アライン検知信号がアサートされることを示す。
【００２６】
上記明細書においては、本発明を特定の実施例を用いて説明している。しかし、添付の特許請求の範囲が示すように、本発明の広範な本質と発明の範囲から逸れることなく、本発明の実施形態に対して、多様な修正や変更をすることが可能であることは明白である。明細書と図面は、それぞれ、本発明を限定するのではなく、本発明を説明するためのものであると見なされるべきである。
【００２７】
本明細書内において「実施形態」、「第１の実施形態」、または「いくつかの実施形態」が実施例とともに意味する、特定の特徴、構造、または性質は、少なくとも本発明のいくつかの実施例に含まれるが、必ずしも本発明の全実施例に含まれるものではない。本明細書内の「実施形態」、「第１の実施形態」、または「いくつかの実施形態」は、必ずしも本発明の同一の実施形態を参照していない。
【図１】
2007517327.tif 000003
【図２】
2007517327.tif 000004
【図３ａ】
2007517327.tif 000005
【図３ｂ】
2007517327.tif 000006
【図４】
2007517327.tif 000007
【図５】
2007517327.tif 000008
【国際調査報告】
2007517327.tif 000009
2007517327.tif 000010