(58)【調査した分野】(Int.Cl.,DB名)
前記複数の遅延要素の中の各遅延要素は、前記クロック信号の前記複数の位相シフトされたバージョンの中の前記第1の信号の対応する位相シフトされたバージョンを生成する、請求項1に記載のメモリインターフェース。
前記遅延回路は、カウント信号を受信し、前記クロック信号の前記複数の位相シフトされたバージョンは、前記カウント信号に基づいて生成される、請求項1に記載のメモリインターフェース。
前記複数の遅延要素の中の各遅延要素の中の前記マルチプレクサは、前記クロック信号の前記複数の位相シフトされたバージョンの中の前記第1の信号の対応する位相シフトされたバージョンを生成する、請求項4に記載のメモリインターフェース。
前記クロック信号の前記複数の位相シフトされたバージョンから第2の所与の信号を選択する第2の選択回路をさらに備える、請求項1に記載のメモリインターフェース。
前記第1の選択回路によって受信される前記制御信号は、前記クロック信号と前記データストローブ信号との間の信号スキューに基づいている、請求項8に記載のメモリインターフェース。
【発明の概要】
【発明が解決しようとする課題】
【0007】
従って、デバイスおよびメモリインターフェースが効率的に、メモリデバイスに提供されるクロック信号とDQS信号との間のスキューを補償することが望ましい。広い範囲のスキューを補償することができることも望ましい。デバイスが、異なるインターフェース標準のタイミング要求に、高いレベルの精度で適合可能であることはさらに望ましい。
【課題を解決するための手段】
【0008】
(概要)
本発明の一実施形態は、デバイスから1つ以上の受信メモリデバイスにデータを出力するメモリ書き込みインターフェースを含む。クロック信号とDQS信号との間のスキューを補正するために、本発明の一実施形態は、入力クロック信号の複数の位相を提供するプログラム可能な遅延ユニットまたはタップされた遅延線路を提供する。クロック信号の複数の位相は、複数の出力回路、例えば複数のDQ/DQSグループに分配される。各DQ/DQSグループは、マルチプレクサまたは他の回路を含むことにより、クロック信号の複数の位相の間から選択する。これは、DQ/DQSグループが、異なる相対位相を有する信号を提供して、受信デバイスにおいて異なるスキューを補償することを可能にする。遅延は、クロック信号の位相の各々が個々に選択され、最小のスキューを生じる位相を決定する際に使用される較正ルーチン中に較正され得る。
【0009】
本発明の例示的な実施形態において、入力クロック信号は、位相ロックループを使用して生成される。入力クロック信号は、タップされた遅延線路を使用して逐次遅延され、多くのクロック信号を生成し、それぞれは異なる位相を有する。これらのクロック信号は、いくつかのDQ/DQSグループに分配される。各DQ/DQSグループは、第1のマルチプレクサであって、第1の位相を有する第1のクロックを選択し、1つ以上のDQS出力レジスタをクロックする第1のマルチプレクサと、第2のマルチプレクサであって、第2の位相を有する第2のクロックを選択し、1つ以上のDQ出力レジスタをクロックする第2のマルチプレクサとを含む。レシーバにおいて、データリカバリを確実なものにするために、第2のクロック位相は通常、第1のクロック位相から約90度だけ分離される。
【0010】
本発明の別の例示的な実施形態において、2つの入力クロック信号が、位相ロックループを使用して生成される。これらの2つの入力クロックは、90度だけ位相が分離される。各入力クロック信号は、タップされた遅延線路を使用して逐次遅延され、第1および第2のクロック信号のセットを生成し、各セットにおける各クロック信号は、異なる位相を有する。これら2つのクロック信号のセットは、いくつかのDQ/DQSグループに分配される。各DQ/DQSグループは、第1のマルチプレクサであって、第1のセットから第1の位相を有する第1のクロックを選択して1つ以上のDQS出力レジスタをクロックする第1のマルチプレクサと、第2のマルチプレクサであって、第2のセットから第2の位相を有する第2のクロックを選択して1つ以上のDQ出力レジスタをクロックする第2のマルチプレクサとを含む。
【0011】
DQS信号をクロックするために使用されるクロック信号は、較正ルーチン中に決定され得、クロック位相の各々が選択され、DQS信号を生成するために使用され、DQS信号およびクロック信号の到着は、各クロック位相について受信回路において比較される。DQS信号に対して較正されたクロックから90度分離された位相を有するクロックは、DQ信号に対するクロックとして選択され得る。あるいは、DQ信号をクロックするために使用されるクロックは、上記と同様な方式で独立的に較正され得る。
【0012】
本発明の一実施形態において、タップされた遅延線路は、入力クロック信号の多くの位相を出力し得る。位相間の相違は、出力信号に対して、最大スキュー許容範囲よりも小さくまたはこれに等しく設定され得る。これは、出力回路が、それらの相対位相を調節して、最大スキュー許容範囲よりも小さくなるようになし得ることを確実なものにする。
【0013】
本発明の様々な実施形態は、本明細書で論議されたこれらのまたは他の要素の1つ以上を組み込み得る。本発明の性質および利点は、以下の詳細な説明および添付の図面を参照して、よりよく理解され得る。
【0014】
本発明は、さらに以下の手段を提供する。
【0015】
(項目1)
メモリインターフェースであって、
第1の信号を出力するための第1のピンと、
第1のクロック信号を受信し、該第1のクロック信号の複数の位相シフトされたバージョンを出力するための第1の遅延回路と、
該第1のピンに接続され、該第1のクロック信号の該複数の位相シフトされたバージョンを受信するように接続された第1の出力回路であって、該第1の出力回路は、該第1のクロック信号の該複数の位相シフトされたバージョンのうちの第1のものを選択するための第1のマルチプレクサを含み、該第1の出力回路は、該第1の信号と、該第1のクロック信号の第1の複数の位相シフトされたバージョンのうちの該選択された第1のものとを同期化させる、第1の出力回路と
を備える、メモリインターフェース。
【0016】
(項目2)
第2の信号を出力するための第2のピンと、
該第2のピンに接続され、上記第1のクロック信号の上記複数の位相シフトされたバージョンを受信するように接続された第2の出力回路であって、該第2の出力回路は、該第1のクロック信号の上記第1の複数の位相シフトされたバージョンのうちの第2のものを選択するための第2のマルチプレクサを含み、該第2の出力回路は、該第2の信号と、該第1のクロック信号の該第1の複数の位相シフトされたバージョンのうちの該選択された第2のものとを同期化させる、第2の出力回路と
をさらに備える、項目1に記載のメモリインターフェース。
【0017】
(項目3)
上記第1の遅延回路は、上記第1のクロック信号の周期とほとんど等しい最大遅延を提供する、項目1に記載のメモリインターフェース。
【0018】
(項目4)
上記第1のマルチプレクサは、第1のマルチプレクサ制御信号に応答し、上記第2のマルチプレクサは、第2のマルチプレクサ制御信号に応答する、項目2に記載のメモリインターフェース。
【0019】
(項目5)
上記第1および第2のマルチプレクサ制御信号は、スキューを測定するために用いられる較正モードから決定される、項目4に記載のメモリインターフェース。
【0020】
(項目6)
上記第1の出力回路は、上記第1のクロック信号によってクロックされる第1のフリップフロップと、該第1のクロック信号の上記第1の複数の位相シフトされたバージョンのうちの上記選択された第1のものによってクロックされる第2のフリップフロップとを含む、項目1に記載のメモリインターフェース。
【0021】
(項目7)
上記第1の出力回路は、上記第1のクロック信号の逆を用いて同期化される第3のレジスタであって、第1および第2のレジスタの間に接続された、第3のレジスタを含み、該第3のレジスタは、上記第1の信号を該第1および第2のレジスタの間に転送する、項目6に記載のメモリインターフェース。
【0022】
(項目8)
上記第1のピンは、DQ信号を出力するためのものであり、上記第2のピンは、DQS信号を出力する、項目2に記載のメモリインターフェース。
【0023】
(項目9)
第1のクロック信号を受信し、該第1のクロック信号の複数の位相シフトされたバージョンを出力するための第1の遅延線路と、
第1の出力ピンのセットを含む第1の出力回路であって、該第1の出力ピンのセットの第1の部分は、第1の信号を出力し、該第1の出力回路は、該第1のクロック信号の該複数の位相シフトされたバージョンのうちの第1のものを選択し、該第1の信号と該第1のクロック信号の第1の複数の位相シフトされたバージョンのうちの1つとを同期化させる、第1の出力回路と
を備える、メモリインターフェース。
【0024】
(項目10)
第2の出力ピンのセットを含む第2の出力回路であって、該第2の出力ピンのセットの第2の部分は、第2の信号を出力し、該第2の出力回路は、上記第1のクロック信号の上記第1の複数の位相シフトされたバージョンのうちの第2のものを選択し、該第2の信号と該第1のクロック信号の該第1の複数の位相シフトされたバージョンのうちの第2のものとを同期化させる、第2の出力回路
をさらに備える、項目9に記載のメモリインターフェース。
【0025】
(項目11)
上記第1のクロック信号の上記第1の複数の位相シフトされたバージョンのうちの上記第1のものは、該第1のクロック信号の該第1の複数の位相シフトされたバージョンのうちの上記第2のものと同じである、項目10に記載のメモリインターフェース。
【0026】
(項目12)
上記第1のクロック信号の上記第1の複数の位相シフトされたバージョンのうちの上記第1のものは、該第1のクロック信号の該第1の複数の位相シフトされたバージョンのうちの上記第2のものと異なる、項目10に記載のメモリインターフェース。
【0027】
(項目13)
上記第1の出力ピンのセットの上記第1の部分は、少なくとも1つのDQピンを含み、上記第2の出力ピンのセットの上記第2の部分は、少なくとも1つのDQSピンを含む、項目10に記載のメモリインターフェース。
【0028】
(項目14)
上記第1の遅延線路は、上記第1のクロック信号の周期とほとんど等しい最大遅延を提供する、項目9に記載のメモリインターフェース。
【0029】
(項目15)
上記第1の出力回路は、第1のクロックバスに接続された第1のマルチプレクサであって、上記第1のクロック信号の上記複数の位相シフトされたバージョンのうちの第1のものを選択する、第1のマルチプレクサを含み、
上記第2の出力回路は、第2のクロックバスに接続された第2のマルチプレクサであって、該第1のクロック信号の上記第1の複数の位相シフトされたバージョンのうちの第2のものを選択する、第2のマルチプレクサを含む、項目9に記載のメモリインターフェース。
【0030】
(項目16)
第1のクロック信号を受信することと、
該第1のクロック信号を逐次的に遅延させることにより、複数の第2のクロック信号を生成することと、
該複数の第2のクロック信号のうちの第1のものを選択することと、
該複数の第2のクロック信号のうちの該選択された第1のものを用いて、第1の出力レジスタをクロックし、第1の信号を提供することと、
第2の出力レジスタをクロックし、第2の信号を提供することと
を包含する、信号を提供する方法。
【0031】
(項目17)
上記第2の出力レジスタは、上記第1のクロック信号によってクロックされる、項目16に記載の方法。
【0032】
(項目18)
上記第2の出力レジスタは、クロック信号によってクロックされ、該クロック信号は、ロジックゲート遅延によって遅延された上記第1のクロック信号である、項目16に記載の方法。
【0033】
(項目19)
上記複数の第2のクロック信号のうちの第2のものを選択することと、
該複数の第2のクロック信号のうちの第2のものを用いて、第3の出力レジスタをクロックし、第3の信号を提供することと
をさらに包含する、項目16に記載の方法。
【0034】
(項目20)
上記第1の信号は、DQS信号であり、上記第2の信号は、クロック信号であり、上記第3の信号は、DQ信号である、項目19に記載の方法。
【0035】
(項目21)
上記第3のクロック信号と、上記第2の複数のクロック信号のうちの上記選択されたものとの間の遅延は、フライバックトポロジールーティングパスによって引き起こされた上記第2の信号における遅延を補償する、項目16に記載の方法。
【0036】
(項目22)
上記第1の信号は、DQS信号であり、上記第2の信号は、クロック信号である、項目16に記載の方法。
【0037】
(摘要)
フライバイルーティングトポロジーによって引き起こされ得るクロック信号とDQ/DQS信号との間のスキューを補償するメモリインターフェースのための回路、方法、および装置。スキューは、位相遅延されたクロック信号に対してDQ/DQS信号を刻時することによって補償され、位相遅延は較正される。一実施例の較正ルーチンにおいて、クロック信号は受信デバイスに提供される。DQ/DQS信号も提供され、それらの信号受信のタイミングが比較される。DQ/DQS信号の遅延は、DQ/DQS信号が受信デバイスにおいてクロック信号にアラインされるまで、増加しながら変更される。次いで、この遅延は、DQ/DQS信号を提供するレジスタをクロックする信号を遅延させるために、デバイス動作中に用いられる。各DQ/DQSグループは、クロックにアラインされ得るか、またはグループのDQSおよびDQ信号は、受信デバイスにおいてクロックに独立的にアラインされ得る。
【発明を実施するための形態】
【0039】
(例示的な実施形態の説明)
図1は、本発明の実施形態に従って、メモリインターフェース110を有するデバイス105を含む例示的なシステム構成100を示す。システム構成100は、多くのデバイス120で作られたメモリユニット115も含む。本発明の実施形態において、デバイス105は、メモリインターフェース110を含むことにより、デバイス105、
図1に示されていない随意的な他のデバイスとメモリユニット115との間での通信を容易にする。
【0040】
システム100は、メモリインターフェース110をメモリユニット115と接続する通信バス122を含む。本発明の一実施形態において、通信バス122は、DQ/DQSデータ信号接続125のセットまたはグループを含む。セット125の各々、例えば125a、125b、125c、125d、125e、125f、125gおよび125hは、1つ以上のDQデータ信号接続を含むことにより、メモリインターフェース110からメモリユニット115へデータを搬送し、対応するDQS信号接続を含むことにより、DQ/DQSデータ信号接続のセット内でデータ通信を同期化する。例えば、DDR3−3メモリインターフェーススタンダードの共通インプリメンテーションは、それぞれが8つのDQデータ信号接続および1つの対応DQS信号接続を有するDQ/DQSデータ信号接続125のセットを含む。
【0041】
メモリユニット115の一実施形態は、個々のメモリデバイス120、例えばメモリデバイス120a、120b、120c、120d、120e、120f、120gおよび120hを含む。メモリデバイス120の例は、任意のタイプの半導体パッケージ構成におけるDDR−3コンプライアントメモリチップを含む。本明細書の代替の実施形態は、他のデータ通信スタンダードに従うメモリデバイス120に適用可能である。メモリデバイス120は、物理的にかつ電気的にメモリユニット115によって接続され、便利なインストレーションを可能にする。メモリユニット115の例は、DIMM、SIMMおよび当技術分野で公知の他のモジュラーメモリユニット構成を含む。
【0042】
システム100において、DQ/DQSデータ信号接続125のセットの各々は、メモリユニット115におけるメモリデバイス120のうちの1つに接続される。例えば、DQ/DQSデータ信号接続セット125aは、メモリインターフェース110をメモリデバイス120aと接続し、DQ/DQSデータ信号接続セット125bは、メモリインターフェース110をメモリデバイス120bと接続する、など。
【0043】
線路130上でメモリインターフェース110によって提供されるクロック信号は、メモリデバイス120Aに始まり、メモリデバイス120Hに終わる直列のメモリデバイスの各々にルート(route)される。他の制御およびアドレス信号(図示されず)は、同様にルート(route)される。線路130上でのクロック信号のこのルーティングは、フライバイネットワークトポロジーと称される。本発明の実施形態は、フライバイトポロジーにおける使用に特に好適である一方、本発明の実施形態は、ツリーネットワークトポロジーまたは当技術分野で公知の他のトポロジーで利用され得る。
【0044】
フライバイトポロジーは、メモリデバイス120において、高品質のクロック信号を生じる。不幸にして、クロック信号は、メモリデバイス120Aからメモリデバイス120Hへ移動するのに有限の時間がかかる。メモリインターフェース110からのDQS信号がアラインされた場合、メモリデバイス120のうちの一部においてクロック信号とDQS信号との間でスキューtDQSSが結果として生じる。このタイミング図が次の図で示される。
【0045】
図2は、通信インターフェースにおける様々なタイプのスキューを図示しているタイミングダイアグラム200である。タイミングダイアグラム200は、DRR−3メモリインターフェースにおいて生じ得るスキューを図示している。しかしながら、本発明の実施形態は、他のタイプの標準または独自の通信インターフェースにおけるスキューに適用可能である。
【0046】
タイミングダイアグラム200の第1の部分205は、メモリインターフェースまたは通信バスインターフェースを含む他のデバイスによる信号出力を図示している。第1の部分205は、クロック信号(CK)210と、少なくとも1つのデータ信号(DQ)220と、データストローブ信号(DQS)215とを含む。明確さのために、1つのDQ信号220のみが、タイミングダイアグラム200において示されているが、一般的な通信バスインターフェースは、各DQS信号に対して複数のDQ信号を含み得る。
【0047】
タイミングダイアグラム200から見ることができるように、DQ信号220は、CK信号210およびDQS信号215の周波数と等しいデータレートを有する。この例において、メモリインターフェースまたはデバイスは、DQ信号220上に、DQS信号215の連続する立ち上がりおよび立下りに関するビットA222およびビットB224のような2ビットのデータを出力する。DQS信号215は、DQ信号220を受信およびリタイミングする際に、メモリデバイスのような受信デバイスによる使用のために、メモリインターフェースによって生成される。特に、レシーバは、DQS信号215の立下り230および立ち上がり232上で、DQ信号220をサンプリングする。DQ信号220が正確にサンプリングされることを確実なものにするために、エッジ230および232が、DQ信号220の各ビットの中央にくるように、DQS信号215はアラインされる。例えば、エッジ230はビットA222の中央235にアラインされ、エッジ232はビットB224の中央237にアラインされる。このアライメントは、信号が安定している間に、DQ信号220の各ビットが、サンプリングされることを確実なものにする。
【0048】
タイミングダイアグラム200の第2の部分250は、メモリユニット、メモリデバイス、または通信バスインターフェースを介してデータを受信する他デバイスによって、受信される信号を図示している。第2の部分250は、クロック信号(CK)260と、少なくとも1つのデータ信号(DQ)270と、データストローブ信号(DQS)265とを含む。信号260、265、および270は、通信バス上のソースデバイスと受信デバイスとの間の伝播遅延に起因するバージョンの信号210、215、および220である。
【0049】
異なる信号パスは、異なる伝播遅延を有し得るので、信号260、265、および270は、互いにスキューされる。例えば、信号210のエッジ225と信号215のエッジ230とは信号ソースでアラインされるが、対応するエッジ262および267は、互いスキューされ、CK信号260とDQS信号265との間のスキュー269となる。同様に、スキュー276は、DQS信号265の立下り267と、DQ信号270のビットA274の中央272との間に存在する。メモリデバイスにおいて、DQS信号265によってクロックされる入力回路から、CK信号260(またはCK信号260から引き出された信号)によってクロックされるコア回路にデータを転送する間に、CK信号260とDQS信号265との間のスキューはエラーをもたらし得る。メモリデバイスの入力回路におけるデータ受信の間に、DQS信号265とDQ信号270との間のスキューはエラーをもたらし得る。
【0050】
これらのスキューを補償するために、メモリインターフェースは、1つ以上のDQ信号およびDQS信号を選択的に遅延させるために、タップされた遅延線路を含み得る。このアプローチにおいて、1つ以上のタップされた遅延線路が、DQ信号、DQS信号、その他任意の信号の遅延バージョンを出力するように構成されている。スキューを補償するために、信号ソースにおいて一部の信号を他の信号に対して遅延させることによって、メモリ受信デバイスは、同期化された信号を受信する。
【0051】
本発明の特定の実施形態は、DDR3において実装されたフライバイトポロジーによってもたらされたスキューを取り除く。つまり、DQS信号とクロック信号との間のスキューtDQSSが低減される。DQ信号とDQS信号との間のスキューは、フライバイトポロジーによって悪化させられないので、DQ信号とDQS信号との間のスキューは、これらの実施形態によってアドレスされない。これらの実施形態において、DQ信号は、対応するDQS信号と同じ量だけ調整される。本発明の他の実施形態は、DQ信号とDQS信号との間のスキューも同様にアドレスおよび低減する。
【0052】
図3は、本発明の実施形態と一致するスキューを決定することに適したフィードバックループシステムを図示する。このフィードバックループシステムは、メモリインターフェース310とメモリデバイス320とを含む。メモリデバイス320によってメモリインターフェース310から受信された信号が、フィードバック信号を生成するために、メモリデバイス320によって使用される較正モードに、メモリデバイス320が置かれ得る。フィードバック信号は、メモリデバイス320によって出力され、メモリインターフェース310によって受信される。ピンをセーブするために、較正モードが非活性化するときに、入力または出力としても働くピン上で、フィードバック信号が、提供および受信され得る。
【0053】
特に、クロック信号CKおよびDQS信号だけでなく、補償物CKBおよびDQSBは、メモリインターフェース回路310によって、メモリデバイス320に提供される。受信されたDQS信号は、フリップフロップFF1を使用して、CK信号をリタイミングする。遅延調整回路330は、遅延をDQS信号に提供して、フライバイトポロジーによってもたらされたCK信号における遅延を補償する。本発明の一実施形態において、遅延調整回路330によって提供される遅延は、最初はゼロである。CK信号が遅延されるので、エッジは、DQS信号の立ち上がりの後に、FF1に到達し、従って、FF1によって見落とされる。次に、DQSは、遅延調整330によってさらに遅れさせられる。ある時点において、遅延調整330によって提供されるDQS信号における遅延は、フライバイトポロジーによってもたらされたCK信号のルーティングの遅延よりも長く、CK信号のエッジは、FF1によって捕捉される。この例において、FF1の出力は、デバイスが較正モードにはないときに、データ出力を提供し得るマルチプレクサを介して、メモリインターフェースに提供されるフィードバック信号である。
【0054】
メモリインターフェース310は、フィードバック信号を受信し、遅延調整回路330によって提供される遅延を調整するために、フィードバック信号を使用する。フィードバック信号は、システムクロックまたは他の適切な信号を使用して、サンプリングされ得る。遅延調整330は、メモリインターフェース310によって出力される信号に関する位相遅延を選択するために、メモリデバイス320からのフィードバックを使用して、これらの信号が、メモリデバイス320によって受信されたときに、これらの信号がCK信号とアラインされるようにする。
【0055】
この較正ルーチンは、各DQ/DQSグループのために、もう一度繰り返され得る。本発明のこのような実施形態において、実際の回路においては、遅延調整回路330の一部は、DQ/DQSグループの間で共有され得るが、各DQ/DQSグループは、1つの遅延調整回路330を使用する。他の実施形態において、DQ/DQSグループにおける1つ以上のDQ信号が、対応するDQS信号とは別個に較正され得る。本発明のそのような実施形態において、各DQ/DQSグループは、1つの遅延回路が使用され得るが、一般的に、2つ以上の遅延調整回路330を使用する。さらに、以下で述べられるように、含まれている回路の一部が共有され得る。
【0056】
本発明の一般的な実施形態において、遅延調整回路330は、直列に接続されている多数の遅延要素を含み得る。遅延要素は、コンデンサを充電または放電する可変電流を使用して調整され得る。各遅延要素はまた、直列に接続されている多数のサブ要素で構成され得、その場合、サブ要素の出力は、マルチプレクサを介して選択される。次に、各マルチプレクサの出力は別の遅延要素を駆動させ、出力も提供する。このように、遅延調整回路330はタップされた遅延線路を含み、その場合、各マルチプレクサの出力はタップである。タップされた遅延線路の出力は、遅延調整回路330の出力を提供する別のマルチプレクサによって選択され得る。
【0057】
従って、遅延調整回路330は、タップされた遅延線路とマルチプレクサとを使用して実装され得る。本発明の特定の実施形態において、1つのタップされた遅延線路は、DQ/DQSグループの一部または全てに対して使用される。2つのマルチプレクサは、各DQ/DQSグループに対して使用され、その場合、1つのマルチプレクサが、DQS信号に対してクロック信号を選択し、別のマルチプレクサが、1つ以上のDQ信号に対してクロック信号を選択する。別の特定の実施形態において、2つのタップされた遅延線路は、DQ/DQSグループの一部または全てに対して使用され、2つのマルチプレクサは、各DQ/DQSグループに対して使用される。
【0058】
図4A〜
図4Bは、タイミングスキュー、例えばフライバイトポロジーにおけるクロック信号のルーティングによってもたらされたタイミングスキューに関して調整し得る出力回路の概略図である。
図4Aは、クロック信号とDQ/DQSグループにおける信号との間のスキューを補償するために使用され得る回路の概略図である。これらの例において、遅延調整回路300は、タップされた遅延線路412および別個のマルチプレクサ429として示されている。
【0059】
本発明のこの実施形態において、多数の位相シフトされたクロック信号が生成される。位相シフトされたクロック信号は、タップされた遅延線路412を使用して生成され、該タップされた遅延線路は、やはり、上記の遅延調整回路330の一部分であり得る。これらの位相シフトされたクロック信号のうちの1つは、上記の方法を使用して選択され得る。選ばれたクロック信号DQSOPCLKNは、DQS出力をクロックし、DQS出力が、メモリまたは他の受信デバイスにおいて受信されるときに、DQS出力は、CK信号とアラインされる。留意されるべきは、本発明のさまざまな実施形態において、一般的に、DQS信号のエッジは、DQデータの中央にアラインされるが、DQ信号とDQS信号とがアラインされるときに、それらのエッジがアラインされるということである。一般的に、DQ信号およびDQS信号をクロックするために使用されるクロック信号は、上記のように90°の角度で分離さている。従って、DQS出力信号をクロックするマルチプレクサ429の選択、DQSOPCLKNは、較正の間に決定される。本発明の他の実施形態においては、DQ出力をクロックするマルチプレクサ428の選択は、一般的に、DQSOPCLKNから90°の角度で(一般的には前に)離れている位相を有するクロック信号DQOPCLKNを選ぶことによって決定され、このクロック信号DQOPCLKNも同様に較正され得る。
【0060】
タップされた遅延線路412は、位相ロックループ(PLL)404からのクロック信号と、位相ロックループ(DLL)406からのカウント信号とを受信する。カウント信号は、タップされた遅延線路412によって提供される遅延を調整する。システムクロック信号は、PLL404によって、水晶発振器のような内部または外部の回路またはコンポーネントから受信される。本発明の実施形態において、システムクロックは、この回路網を含むデバイスの論理回路を動作するために使用されるマスタークロック信号であり得る。DLL406は、タップされた遅延線路412に整合するような回路を含む。本発明の特定の実施形態において、この回路は、他の全体の遅延が使用され得るが、この回路にわたる全体の遅延が、1クロックサイクルであるように調整される。DLLの遅延線路を調整するために使用されるカウント信号は、示されているように、タップされた遅延線路412に提供される。本発明の実施形態において、タップされた遅延線路412は、DLL406における遅延線路に整合するので、タップされた遅延線路412によって提供される遅延は、プロセス、温度、または電圧のバリエーションによるバリエーションに関して補償される。
【0061】
さらに、本発明の実施形態において、タップされた遅延線路412の最大遅延は、1つのシステムクロックサイクルと等しく、該システムクロックのサイクルは、DQS信号の周期でもある。この実施形態において、タップされた遅延線路412が、Nの等しい遅延ステージを有する場合に、タップされた遅延線路の出力は、N+1の位相シフトされたバージョンの入力クロック信号であり、その場合、さらなる出力は、ゼロ位相シフトされた入力信号である。例えば、Tの周期を有する入力信号を考慮すると、第1の遅延ステージからのタップされた遅延線路の出力は、T/Nによって位相シフトされた入力信号のバージョンである。第4の遅延ステージからのタップされた遅延線路の出力は、4T/Nによって位相シフトされた入力信号のバージョンである。このように、タップされた遅延線路412は、本明細書においてDQCLKSと呼ばれるN+1の全体の出力の総計に関して、クロック信号の周期のNのインクリメントに対して、ゼロによって位相シフトされたクロック信号のバージョンを出力し得る。
【0062】
タップされた遅延線路412のN+1の出力は、マルチプレクサ425、426、428および429によって受信される。マルチプレクサ425は、第1のクロックDQSOPCLK0をCKレジスタREG1およびREG2と、入力レジスタREG5とに提供する。マルチプレクサ426は、第2のクロックDQOPCLK0を入力レジスタREG3およびREG7に提供する。マルチプレクサ425および426は、完全なマルチプレクサである必要はない。マルチプレクサ425および426は、マルチプレクサ428および429によって伝えられた遅延に整合するように含まれる。本発明の他の実施形態において、これらの「ダミー」マルチプレクサは、排除され得る。
【0063】
マルチプレクサ428は、N+1の位相シフトされたDQCLKSのうちの1つを選択し、出力クロックDQOPCLKNを出力レジスタREG4およびREG8に提供する。マルチプレクサ429は、N+1の位相シフトされたDQCLKSのうちの1つを選択し、出力をレジスタREG6に提供する。本発明の様々な実施形態において、これらのクロック信号のうちの1つ以上が、対称的なクロックツリーネットワークを使用して分配され得る。
【0064】
マルチプレクサ428および429に対する入力のうちの1つの選択は、明確さのために省略されている制御信号によって選択される。本発明の実施形態において、これらの制御信号は、上記のような遅延制御論理によって生成される。適切な遅延または位相シフトのセッティングが、上記のようなフィードバック較正モードを使用してか、または他の適切な方法を使用することによって決定される。
【0065】
この例において、1つのタップされた遅延線路412と、2つのマルチプレクサ428および429とが示されている。本発明の様々な実施形態において、様々な数の遅延線路およびマルチプレクサが使用され得る。他の配置が考えられるが、多くの場合に、1つのタップされた遅延線路は、いくつか、または全てのDQ/DQSグループに対して使用され、2つのマルチプレクサは、各DQ/DQSグループに対して使用される。
【0066】
図4Bは、フライバイトポロジーにおけるクロック信号のルーティングによってもたらされた、クロック信号とDQS信号との間のスキューを補償するために使用され得る回路の別の概略図である。本発明のこの実施形態において、2つのセットの位相シフトされたクロック信号が生成される。第1のセットの位相シフトされたクロック信号における第1のクロック信号は、上記の方法を使用して選択される。第1のクロック信号は、DQS出力をクロックし、第1のクロック信号が、メモリまたは他の受信デバイスにおいて受信されるときに、第1のクロック信号はCK信号とアラインされる。第2のセットの位相シフトされたクロック信号における第2のクロック信号が選択され、この位相シフトされた第2のクロック信号は、1つ以上のDQ出力をクロックし、第2のクロック信号は、DQ信号に対して90°位相シフトされる。
【0067】
2つのセットの位相シフトされたクロック信号DQSCLKSおよびDQCLKSが生成され、各セットは、2つのタップされた遅延線路412および414のうちの1つを使用する。各タップされた遅延線路の位相シフトは、DLL406からのカウント信号によって調整され、該カウント信号は、PLL404からのクロック信号に基づいて調整される。さらに、第1のクロックDQSOPCLK0は、ダミーのマルチプレクサ425によって、CKレジスタREG1およびREG2と入力レジスタEG5とに提供される。ダミーのマルチプレクサ426は、第2のクロックDQOPCLK0を入力レジスタREG3とREG7とに提供する。N+1のDQCLKSのうちの1つは、マルチプレクサ428によって選択され、DQSOPCLKNとして提供される。DQSOPCLKN信号はDQ信号をクロックする。DQSCLKSのうちの1つは、マルチプレクサ429によって選択され、DQSOPCLKNとして提供される。この信号はDQS出力をクロックする。
【0068】
本発明の実施形態において、タップされた遅延線路は、任意の適切な数のステージを有し得、この例において、ステージは同じ数のタップを有するが、他の実施形態において、ステージは異なる数のタップを有し得る。Tの周期を有する信号とNの遅延ステージを有するタップされた遅延線路とに関して、信号の位相は、T/Nのインクリメントにおいて調整され得る。インターフェースが、T
Skewの最大スキューの許容範囲を指定した場合に、このスキューの許容範囲は、T/Nが、T
Skewと等しいか、またはT
Skewを下回るということを確実なものとすることによって満たされ得る。さらに、タップされた遅延線路における遅延ステージの数を増加させることによって、位相シフトされたバージョンの信号の数が、増加させられ、従って、出力信号とその他任意の信号との間の最大スキューが、減少させられる。
【0069】
この例において、2つのタップされた遅延線路412および414と2つのマルチプレクサ428および429が示されている。本発明の様々な実施形態において、異なる数の遅延線路とマルチプレクサとが使用され得る。他の配置が考えられるが、多くの場合に、1つのタップされた遅延線路が、いくつか、または全てのDQ/DQSグループに対して使用され、2つのマルチプレクサは、各DQ/DQSグループに対して使用される。
【0070】
この例において示されているレジスタは、以下の図において示されるもののようなダブルデータレートレジスタであり得る。代替的に、他のタイプのレジスタが使用され得る。
【0071】
図5A〜
図5Cは、本発明の実施形態に従った、出力回路の概略図である。
図5Aは、クロック信号およびDQS信号を生成するための出力回路の概略図である。これらの回路の例は、
図4Aおよび
図4BにおけるREG1、REG2、REG5、およびREG6としての使用に適している。この例において、DQS信号がゲート制御され、DQS信号の出力ドライバは、使用可能な入力を有し得、CK信号は継続的であり、CK信号の出力ドライバは、使用可能な入力を有していない。
【0072】
出力信号DQSは、使用可能な信号OEによってゲート制御され、該使用可能な信号OEは、フリップフロップFF4によって受信され、FF5によって、出力クロックDQSOPCLKNに対してリタイミングされる。DQS自体は、論理低信号VLLおよび論理高信号VLHによって生成された代替的信号である。すなわち、VLLは、FF6によって受信されて、FF7に送られ、VLHは、FF8によって受信されて、FF9送られる。FF7とFF9との出力は、マルチプレクサ520によって代替的な方式で選ばれ、マルチプレクサ520の選択信号は、出力クロックDQSOPCLKNである。出力バッファが、OEフリップフロップFF4およびFF5によって使用可能になるときに、マルチプレクサ520の出力は、DQSとして提供される。
【0073】
クロック信号は、FF1、FF2、FF3、およびマルチプレクサ510を使用して、同様に生成される。さらに、クロック信号CKは継続的であるので、クロック信号の出力は、ゲート制御されない。
【0074】
多数の位相シフトされたクロックDQCLKSは、マルチプレクサ530および535によって受信される。さらに、マルチプレクサ530は、マルチプレクサ535を通じて遅延に整合するように、クロックパスに挿入されたダミーのマルチプレクサである。上記の方法または他の適切な方法に従って、
図4Aまたは
図4Bの実装が使用されるかどうかに依存して、マルチプレクサ535は、N+1のDQCLKSまたはDQSCLKSのうちの1つを選択する。DQS信号が、受信デバイスに到達して、CK信号とアラインされるように、選ばれたクロックDQSOPCLKNは、出力フリップフロップFF5、FF7、およびFF9をクロックする。
【0075】
図5Bは、DQ信号を生成するための出力回路の概略図である。DQS出力に関して、DQ出力はゲート制御され、DQ出力のバッファは、出力可能なフリップフロップFF1およびFF2から使用可能な信号を受信する。
【0076】
多数の位相シフトクロック信号DQCLKSは、マルチプレクサ550および555によって受信される。上記のように、マルチプレクサ550は、マルチプレクサ555を通じて遅延に整合するように、クロックパスに挿入されたダミーのマルチプレクサである。マルチプレクサ550は、入力フリップフロップFF1、FF3、およびFF5にクロック信号を提供する。上記のように、マルチプレクサ555は、DQCLKSのうちの1つを選択し、出力フリップフロップFF2、FF4、およびFF6に、DQCLKSをDQOPCLKNとして提供する。
【0077】
フリップフロップFF3およびFF5は、例えば、コア回路、または多くの場合に並列直列コンバータから、データ信号V1およびV2をそれぞれ受信する。フリップフロップFF3およびFF5の出力は、フリップフロップFF4およびFF6に提供される。フリップフロップFF4およびFF6の出力は、DQ出力を生成するために、マルチプレクサ545によって多重送信される。FF6は、DQOPCLKNの立下りによってクロックされ、FF4は、DQOPCLKNの立ち上がりによってクロックされる。いったんDQOPCLKNが低くなると、FF4の出力は、OPCLKNの立ち上がり上で変化し、マルチプレクサ545によって選択される。同様に、いったんDQOPCLKNが高くなると、FF6の出力は、DQOPCLKNの立下り上で変化し、マルチプレクサ545によって選択される。
【0078】
上記の2つの例において、アンシフト(unshifted)クロックドメインから位相シフトクロックドメインに信号を転送するために、2つのレベルのフリップフロップが使用される。例えば、フリップフロップFF4およびFF5は、アンシフトクロックドメインから位相シフトクロックドメインに、出力可能な信号を転送する。
【0079】
このアプローチに関する1つの問題は、これらの2つのクロックドメインの間の位相の相違は、フリップフロップによって要求されるセットアップおよび待機の時間よりも長くなければならないということである。例えば、クロック信号DQOPCLK0と位相シフトクロック信号DQOPCLKNとの間の位相の相違は、フリップフロップFF4によって要求されるセットアップおよび待機の時間よりも長くなければならない。そうでない場合に、フリップフロップFF3の出力は、FF4がラッチするように急激に変化することがあり得、その結果としてエラーとなる。本発明の実施形態によって使用され得る解決法が、以下の図に示されている。
【0080】
図5Cは、この問題をアドレスするDQ信号を生成するための出力回路の概略図である。この出力回路は、先の図の出力回路と似ており、アンシフト位相ドメインから位相シフトドメインへの転送を助けるためのさらなるレジスタを有する。この回路は、出力可能な信号を転送するためのFF7と、アンシフトクロックドメインから位相シフトクロックドメインにデータ信号を転送するためのFF8およびFF9とを含む。
【0081】
フリップフロップFF7は、レジスタFF1とFF2との間で接続される。FF1は、クロック信号DQOPCLK0によってクロックされる。FF2は、マルチプレクサ570によって選択された、位相シフトバージョンのクロック信号によってクロックされる。フリップフロップFF7は、インバータによって生成された、逆バージョンのクロック信号DQOPCLK0によってクロックされる。従って、FF7は、FF1を有する位相から180°の角度を動作する。このために、FF7は、FF1の出力をラッチする充分な時間を有する。同様に、FF2は、FF7の出力をラッチする充分な時間を有する。上記は、フリップフロップFF3、FF8、およびFF4だけでなく、FF5、FF9、およびFF6に対しても当てはまる。
【0082】
図6A〜
図6Bは、本発明の実施形態に従うスキュー補償回路の動作を例示するタイミング図である。
図6Aは、本発明の実施形態の適用の前のスキューの問題を例示するタイミング
図600である。
【0083】
タイミング
図600の第1の部分602は、メモリインターフェースまたは通信バスインターフェースを含む他のデバイスによって出力される信号を例示する。第1の部分602は、クロック信号(CK)604、少なくとも1つのデータ信号(DQ)608、およびデータストローブ信号(DQS)606を含む。分かり易くするために、1つのデータ信号(DQ)608のみがタイミング
図600に示されているが、典型的な通信バスインターフェースは、各データストローブ信号(DQS)に対して複数のデータ信号(DQ)を含み得る。
【0084】
タイミング
図600から分かり得るように、DQ信号608は、CK信号604およびDQS信号606と同じ周波数であるデータレートを有する。本発明の実施形態は、受信デバイスにおいてスキューを補償するために、クロック信号CKにアラインするようにDQS信号606およびDQ信号608をシフトし得る。
【0085】
タイミング
図600の第2の部分620は、メモリユニット、メモリデバイス、または通信バスインターフェースを介してデータを受信する他の受信デバイスによって受信される信号を例示する。第2の部分620は、クロック信号(CK)622、少なくとも1つのデータ信号(DQ)624、およびデータストローブ信号(DQS)626を含む。信号622、624、および626は、通信バスにおけるソースと受信デバイスとの間の伝播遅延に起因する信号604、606、および608のバージョンである。
【0086】
様々な信号パス(path)は、様々な伝播遅延を有し得るので、信号622、624、および626は、互いに対してスキューされる。スキュー628は、メモリユニットまたはその他のデバイスにおけるCK信号622とDQS信号624との間のミスアライメントを表す。このスキューは、フライバイトポロジーの使用によって引き起こされ得る。同様に、スキュー630は、DQS信号624とDQ信号626との間のミスアライメントを表す。
【0087】
図6Bは、本発明の実施形態の適用を例示するタイミング
図650である。タイミング
図650の第1の部分652は、メモリインターフェースよって出力される信号を例示する。第1の部分652は、クロック信号(CK)654、少なくとも1つのデータ信号(DQ)658、およびデータストローブ信号(DQS)656を含む。分かり易くするために、1つのデータ信号(DQ)658のみがタイミング
図650に示されているが、典型的な通信バスインターフェースは、各データストローブ信号(DQS)に対して複数のデータ信号(DQ)を含み得る。
【0088】
タイミング
図650の第2の部分670は、メモリユニット、メモリデバイス、または他のデバイスによって受信される信号を例示する。第2の部分670は、クロック信号(CK)672、少なくとも1つのデータ信号(DQ)674、およびデータストローブ信号(DQS)676を含む。信号CK672、DQS674、およびDQ676は、ソースと受信デバイスとの間の伝播遅延に起因する信号CK664、DQS666、およびDQ668のバージョンである。
【0089】
本発明の実施形態は、信号の行先においてスキューを減少させるために、信号DQS666およびDQ668がCK672にアラインされるように、ソースメモリインターフェースにおいて、信号DQS666およびDQ668を位相シフトし得る。CK信号は、各メモリデバイスに対して異なる量で遅延されるので、各DQ/DQSグループは、独立してアラインされ得る。ここでもまた、各DQ/DQSグループは1つにアラインされ得るか、またはグループのDQSは、グループの1つ以上のDQ信号から独立してアラインされ得る。
【0090】
この実施例において、DQS信号は、エッジ686が
図6Aに示されるように位相660eよりはむしろ位相660dにアラインされるように、位相シフトされる。同様に信号DQ668は、遷移点686が
図6Aに示されるように位相660cよりはむしろ位相660bにアラインされるように、位相シフトされる。
【0091】
信号の行先において、スキュー682は、メモリユニットまたは通信バスを介してデータを受信するその他のデバイスにおけるCK信号672とDQS信号674との間のミスアライメントを表す。同様にスキュー684は、メモリユニットまたは通信バスを介してデータを受信するその他のデバイスにおけるDQS信号674とDQ信号676との間のミスアライメントを表す。スキュー682および684は、スキュー678および680より実質的に少なく、このことは、ソースメモリインターフェースにおいて位相シフトがいっさい信号に印加されない場合、結果として生じる。
【0092】
図7は、本発明の実施形態と共に使用するのに適した例示的なプログラマブルデバイスアーキテクチャ700を例示する。デバイスアーキテクチャ700は、プログラマブルデバイスコア705を含む。プログラマブルデバイスコア705は、論理セル、機能ブロック、メモリユニットおよび構成可能なスイッチング回路などのプログラマブルデバイスコンポーネントを含む。
【0093】
デバイスアーキテクチャ700は、I/Oバンク707、709、711、713、715、717、719、721、723、および725などの複数のI/Oバンクを含む。実施形態において、デバイスアーキテクチャ700は、任意の数のI/Oバンクが可能である。
【0094】
実施形態において、複数のI/Oバンクは、限定数のI/Oバンクタイプに属する。例えば、I/Oバンク707、711、713、715、717、721、723、および725はI/OバンクタイプAである。I/Oバンク709および719は、I/OバンクタイプBに属する。各I/Oバンクタイプは、I/Oピンの数およびそのメンバのI/Oバンクの他の属性を指定する。例えば、タイプAのI/Oバンクは、60のI/Oピンを有し得、タイプBのI/Oバンクは、36のI/Oピンを有し得る。I/Oバンクタイプの数は、2タイプに限定されないで、デバイスアーキテクチャ700の多くの一般的なインプリメンテーションは、4以上の様々なI/Oタイプを含み得る。
【0095】
本発明の実施形態は、デバイスアーキテクチャ700のI/Oバンク707、709、711、713、715、717、719、721、723、および725のいくつかまたはすべてにおいて、回路400、450、500および550などの回路を含む。
【0096】
図8は、本発明の実施形態と共に使用するのに適した制御論理をインプリメントすることに適した例示的なプログラマブルデバイスコア800を例示する。制御論理は、メモリアクセスプロトコルおよびキャリブレーションモードなどのメモリインターフェースのより高いレベルの機能性のための論理を含み得、メモリアクセスプロトコルおよびキャリブレーションモードは、スキューを減少または除去するために、回路400、450、500、および550においてマルチプレクサに対して適切な設定を決定する。
【0097】
図8は、本発明の実施形態と共に使用するのに適したプログラマブルデバイス800を例示する。プログラマブルデバイス800は、論理アレイブロック(LAB)805、810、および815などの多数のLABを含む。各LABは、論理動作を実行するための論理ゲートおよび/またはルックアップテーブル、ならびにデータを記憶し検索するためのレジスタを用いる多数のプログラマブル論理セルを含む。LAB805は、論理セル820、821、822、823、824、825、826、および827を詳細に例示する。分かり易くするために、論理セルは
図8の他のLABから省略される。デバイス800のLABは、行830、835、840、845、および850に配列される。実施形態において、LAB内の論理セルおよび行内のLABの配列は、プログラマブルスイッチング回路の構成可能な接続の階層システムを提供し、該階層システムにおいて、LAB内の論理セル間、同じ行の様々なLABにおけるセル間、および、様々な行のLABにおけるセル間の接続は、ますますより多くのリソースを必要とし、より非効率的に動作する。
【0098】
LABに配列された論理セルの他に、プログラマブルデバイス800も、乗算および累算ブロック(MAC)855ならびにランダムアクセスメモリブロック(RAM)860などの特別な機能ブロックを含む。プログラマブルデバイスの構成は、構成メモリ875に記憶された構成データによって少なくとも部分的に指定される。構成データは、論理セルの機能を定義するルックアップテーブルのための値と、マルチプレクサ、および入力、出力、論理セル、および機能ブロック間に信号を伝えるための構成可能なスイッチング回路によって用いられる他のスイッチングデバイスのための制御信号の値と、ならびに、プログラマブルデバイスおよびその同種の機能ブロックおよび論理セルの動作のモードなどのプログラマブルデバイスの構成の他の局面を指定する値とを含む。構成メモリ875は
図8にモノリシックユニットとして示されるが、一部のプログラマブルデバイスにおいて、構成メモリ875は、プログラマブルデバイス全体に分散される。これらのタイプのプログラマブルデバイスにおいて、構成メモリの部分は、プログラマブルデバイスの論理セル、機能ブロックおよび構成可能なスイッチング回路内にあり得る。
【0099】
分かり易くするために、
図8に示されるプログラマブルデバイス800の部分は、少数の論理セル、LABおよび機能ブロックを含むのみである。典型的なプログラマブルデバイスは、数千または数万のこれらのエレメントを含む。
【0100】
さらなる実施形態は、当業者によって付属の文書を読んだ後に、構想され得る。例えば、本発明はプログラマブルデバイスに関して検討されたが、本発明は、標準または構造化ASIC、ゲートアレイ、および汎用ディジタル論理デバイスに同様に適用可能である。他の実施形態において、上記の開示された発明のコンビネーションまたはサブコンビネーションは、有利に作製され得る。アーキテクチャのブロックダイアグラムおよびフローチャートは、理解し易くするためにグループ化される。しかしながら、ブロック、新しいブロックの追加、ブロックの再配列などのコンビネーションは、本発明の代替の実施形態において意図されることは理解されるべきである。
【0101】
従って、明細書および図面は、制限的な意味よりはむしろ例示的な意味でみなされるべきである。しかしながら、特許請求の範囲に述べられている本発明のより広い精神と範囲から逸脱することなく、種々の修正および変更が、明細書および図面に対してなされ得ることは明らかである。