(57)【特許請求の範囲】
【請求項１】
メモリシステムであって、
メモリと、
前記メモリと通信するコントローラと、
を備えており、
前記コントローラは、
バスから周辺クロックを受信し、
データクロックのエッジに応答して前記バス上でデータ信号内にデータを提供し、
前記データが前記周辺クロックの所定のエッジにおいて前記バス上で読み取り可能であるように、前記バスに提供される前記データ信号に基づいて前記周辺クロックに対して前記データクロックをシフトするように構成される、メモリシステム。
【請求項２】
前記コントローラは、複数のデータクロックからの前記データクロックの選択を利用して、前記データクロックをシフトするように構成され、各データクロックのそれぞれは、前記複数のデータクロック内のいかなる他のデータクロックとも異なる、前記周辺クロックに対する位相を有する、請求項１に記載のメモリシステム。
【請求項３】
前記コントローラは、前記データ信号内の前記データの検知と、前記検知されたデータとチューニングパターンとの比較とに基づき、前記周辺クロックに対して前記データクロックをシフトするようにさらに構成される、請求項１又は２に記載のメモリシステム。
【請求項４】
前記コントローラは、データが前記周辺クロックに対して前記バス上の前記データ信号内で検知されるときの判断に基づき、前記データクロックをシフトするようにさらに構成される、請求項１から３のいずれか一項に記載のメモリシステム。
【請求項５】
前記コントローラは、前記周辺クロックの第１のエッジの４分の１クロック周期内の前記バス上の前記データの検知に応答して前記データクロックをシフトするように構成され、前記第１のエッジは、前記周辺クロックの初期エッジの後の１クロック周期であり、
前記データクロックの前記エッジは、前記周辺クロックの前記初期エッジに応答するものである、請求項１から４のいずれか一項に記載のメモリシステム。
【請求項６】
前記バス上に提供される前記データは前記データクロックに対応し、
前記データクロックは、前記バス上の前記データ信号からのフィードバックと、前記周辺クロックから導出される周波数分割クロックとして設定された基準クロックとに基づいて前記データクロックを生成するように構成される遅延ロックループによりシフトされる、請求項１から５のいずれか一項に記載のメモリシステム。
【請求項７】
遅延補償回路であって
バス上でデータ信号内においてデータを送信するように構成されるデータ遅延回路であって、前記データの送信はデータクロックのエッジにより開始される、データ遅延回路と、
前記バス上の前記データ信号からのフィードバックに従って周辺クロックに対する前記データクロックの位相を調整するように構成されるデータクロック回路と
を備えており、
前記データ遅延回路は、前記データクロックの前記位相が前記データクロック回路により調整された後、前記周辺クロックの全クロック周期の標的部分において前記バス上で前記データ信号内において前記データを送信するようにさらに構成され、
前記標的部分は前記全クロック周期の一部であり、
前記周辺クロックは前記バス上で受信される、遅延補償回路。
【請求項８】
前記データクロック回路は、基準クロックおよびフィードバッククロックからマスタークロックとして前記データクロックを生成するように構成される遅延ロックループを備えており、
前記バス上の前記データ信号は前記データクロックの遅延バージョンを含み、
前記フィードバッククロックは前記バス上の前記データ信号である、請求項７に記載の遅延補償回路。
【請求項９】
前記基準クロックは、前記周辺クロックから導出される周波数分割クロックである、請求項８に記載の遅延補償回路。
【請求項１０】
前記周波数分割クロックは前記周辺クロックの周波数の３分の２であり、
前記遅延ロックループは、前記基準クロックと前記フィードバッククロックとの間の差が前記基準クロックの全クロック周期となるまでの間、前記データクロックの前記位相を調整するように構成される、請求項９に記載の遅延補償回路。
【請求項１１】
前記データ遅延回路は、前記遅延補償回路が校正モードであるかどうかに依存して、前記データまたは前記データクロックを前記バス上で前記データ信号内において選択的に送信するようにさらに構成される、請求項７から１０のいずれか一項に記載の遅延補償回路。
【請求項１２】
前記データクロック回路は、前記バス上の前記データ信号からのフィードバッククロックに従って前記周辺クロックに対する前記データクロックの前記位相を調整するように構成される遅延ロックループを備えており、
前記データクロックの前記位相は、前記周辺クロックと異なる周波数を有する基準クロックに対する前記フィードバッククロックの所定の遅延を形成するように調整される、請求項７から１１のいずれか一項に記載の遅延補償回路。
【請求項１３】
前記データクロック回路は、サンプリングモジュールと判断モジュールとを備えており、
前記サンプリングモジュールは、前記周辺クロックから位相がシフトされた複数のデータクロックによって記録されるサンプリングフリップフロップを備えており、
前記フリップフロップは、前記データ信号をサンプリングするように構成され、
前記判断モジュールは、前記複数のデータクロックから、前記データの前記送信を開始するための前記データクロックを選択するように構成され、
前記データクロックは、前記サンプリングフリップフロップの出力に基づいて選択される、請求項７から１２のいずれか一項に記載の遅延補償回路。
【請求項１４】
ホストからバス上で受信された周辺クロックからデータクロックを生成する工程と、
前記データクロックのエッジに応答してサンプルデータを前記バス上でデータ信号内に提供する工程であって、前記データクロックの前記エッジは前記周辺クロックの初期エッジにより引き起こされる、工程と、
前記周辺クロックの前記初期エッジと、前記サンプルデータが前記バス上で検知される時間との間の時間差に基づき、前記周辺クロックに対する前記データクロックの遅延を選択する工程と、
前記周辺クロックに対する前記選択された遅延を有する遅延データクロックを生成する工程と、
前記バス上で前記ホストから要求データの要求を受信する工程と、
前記遅延データクロックのエッジに応答して前記要求データを前記バス上に提供する工程と
を含む、方法。
【請求項１５】
前記遅延を選択する工程は、フィードバッククロックとして前記バス上の前記データ信号を有する遅延ロックループと、基準クロックとして前記周辺クロックから導出されるクロックとによってマスタークロックを生成する工程を含む、請求項１４に記載の方法。
【請求項１６】
前記遅延データクロックを生成する工程は、前記遅延ロックループのスレーブクロックとして前記遅延データクロックを生成する工程を含み、
前記遅延ロックループは、スレーブ入力として前記周辺クロックを有する、請求項１５に記載の方法。
【請求項１７】
前記遅延を選択する工程は、前記周辺クロックに対して位相がシフトされたデータクロックによって記録されたサンプリングフリップフロップの出力から、前記バス上で前記サンプルデータが検知される前記時間を判断する工程を含む、請求項１４から１６のいずれか一項に記載の方法。
【請求項１８】
前記遅延を選択する工程は、前記周辺クロックの前記初期エッジと、前記サンプルデータが前記バス上で検知される前記時間との間の前記時間差が前記周辺クロックの１つの全期間の７５パーセント〜１２５パーセントに入る場合に、前記データクロックの位相へ所定の位相のシフトを加える工程を含む、請求項１４から１７のいずれか一項に記載の方法。
【請求項１９】
前記遅延を選択する工程は、複数のデータクロックから前記遅延データクロックを選択する工程を含み、
各データクロックは、前記複数のデータクロック内の他のデータクロックと異なる所定の位相のシフトを有する、請求項１４から１８のいずれか一項に記載の方法。
【請求項２０】
前記複数のデータクロックから前記遅延データクロックを選択する工程は、前記要求データを出力するために複数のデータフリップフロップから或るデータフリップフロップを選択する工程を含み、
各データフリップフロップは、１個の当該データクロックに対応することにより記録される、請求項１９に記載の方法。
【発明の詳細な説明】
【背景技術】
【０００１】
セキュアディジタル（ＳＤ）は、モバイルフォンおよびタブレットコンピュータなどの携帯装置に使用され得る不揮発性メモリカードの標準規格である。セキュアディジタル標準規格はＳＤ協会（ＳＤＡ）により維持される。
【０００２】
ＳＤ標準規格は、セキュアディジタルＨｉｇｈ−Ｃａｐａｃｉｔｙ（ＳＤＨＣ）カードおよびセキュアディジタルｅＸｔｅｎｄｅｄ−Ｃａｐａｃｉｔｙ（ＳＤＸＣ）カードのＵｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ，Ｐｈａｓｅ  Ｉ（ＵＨＳ−Ｉ）バス設計を含む。ＵＨＳ−Ｉは、ＳＤＨＣおよび／またはＳＤＸＣカードの性能を高める設計強化である。
【０００３】
ＵＨＳ−Ｉ仕様は、最大５０ＭＢ／ｓ（ＵＨＳ−５０）および１０４ＭＢ／ｓ（ＵＨＳ−１０４）データ転送速度をそれぞれ支援する２つのバスアーキテクチャオプションを定義する。ＵＨＳ−Ｉ仕様によると、ホストは周辺クロックをメモリカードに提供する。ＵＨＳ−５０は１００ＭＨｚの周辺クロック周波数を支援し、ＵＨＳ１０４は最大２０８ＭＨｚの周辺クロック周波数を支援する。少なくとも１つのモードでは、データクロック信号が立ち上がると４ビットが４線上で転送され、データクロックが立ち下がると別の４ビットが同じ４線上で転送され、これにより全バイトを各全クロック周期上で転送する。ＵＨＳ−ＩＩは、追加のピンの列を使用することによりデータ転送速度を１５６ＭＢ／ｓ（全二重）または３１２ＭＢ／ｓ（半二重）の理論的最大値までさらに上げる。
【０００４】
様々な支援クロック周波数は理論的最大値である。実際のクロック周波数は、加えて、例えばプロセス、電圧および温度（ＰＶＴ）に基づいて変化する。
【０００５】
コントローラは、ホストと不揮発性メモリカードとの間の通信を扱い得る。コントローラ内のループ遅延は、データの要求がコントローラによって受信されるタイミングと、データがバス上でホストまで最初に提供されるタイミングとの間の時間であり得る。ループ遅延は、不揮発性メモリカードからデータを取り出す時間と、コントローラの論理部品からの遅延と、さらにバスとのインターフェース内のパッド遅延とを含み得る。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ループ遅延は著しく変化し得る。例えば、ループ遅延は、ＰＶＴ（プロセス、電圧および温度）全体にわたって著しく変化し得る。加えて、異なるホストは、異なる周波数で動作する周辺クロックを提供し得る。ループ遅延および周辺クロック周波数の分散により、データは周辺クロックの遷移中にまたはその近辺でバス上に提供され得、これによりホストがデータを誤って読み取る結果となり得る。
【課題を解決するための手段】
【０００７】
実施形態は以下の図面および記載を参照してさらに良く理解され得る。図面内の部品は必ずしも原寸に比例しない。さらに、図面において、同様の参照符号は様々な図面を通して対応する部分を示す。
【図面の簡単な説明】
【０００８】
【図１Ａ】一実施形態の不揮発性メモリシステムのブロック図である。
【図１Ｂ】一実施形態の例示的な記憶モジュールを示すブロック図である。
【図１Ｃ】一実施形態の階層型記憶システムを示すブロック図である。
【図２】一実施形態に係る図１Ａに示された不揮発性メモリシステムのコントローラの例示的な部品を示すブロック図である。
【図３】遅延補償回路の一例のブロック図である。
【図４】周辺クロック、データ信号およびデータクロック間のタイミング関係の一例を示す。
【図５】周辺クロックから導出される周波数分割クロックに基づいて校正する遅延補償回路の実施形態のブロック図である。
【図６】サンプルデータが正しく読み取られるときの判断に基づいて校正する遅延補償回路の実施形態のブロック図である。
【図７】周辺クロックの２周期を示す。
【図８】不揮発性メモリシステムおよび／または遅延補償回路の例示的な論理を示す流れ図である。
【発明を実施するための形態】
【０００９】
前置きとして、以下の実施形態は遅延補償の回路および方法に関する。一実施形態では、遅延補償の方法が行われる。データクロックは、ホストからバス上で受信された周辺クロックから生成され得る。サンプルデータは、データクロックのエッジに応答してバス上のデータ信号内に提供され得、データクロックのエッジは周辺クロックの初期エッジにより引き起こされる。周辺クロックに対するデータクロックの遅延は、周辺クロックの初期エッジと、サンプルデータがバス上で検知される時間との間の時間差に基づいて選択され得る。周辺クロックに対する選択された遅延を有する遅延データクロックが生成され得る。データの要求はバス上でホストから受信され得る。要求データは、遅延データクロックのエッジに応答してバス上に提供され得る。
【００１０】
別の実施形態では、メモリと、メモリと通信するコントローラとを含むメモリシステムが提供される。コントローラは、バスから周辺クロックを受信し、かつ、データクロックのエッジに応答してバス上でデータをデータ信号内に提供するように構成され得る。コントローラは、データが周辺クロックの所定のエッジにおいてバス上で読み取り可能であるように、バスに提供されるデータ信号に基づいて周辺クロックに対してデータクロックをシフトするようにさらに構成され得る。
【００１１】
さらに別の実施形態では、データ遅延回路と、データクロック回路とを含む遅延補償回路が提供される。データ遅延回路は、データをバス上でデータ信号内において送信するように構成され得、データの送信はデータクロックのエッジにより開始される。データクロック回路は、バス上のデータ信号からのフィードバックに従って周辺クロックに対するデータクロックの位相を調整するように構成され得る。データ遅延回路は、データクロックの位相がデータクロック回路により調整された後、周辺クロックの全クロック周期の標的部分においてデータをバス上でデータ信号内において送信するようにさらに構成され得る。標的部分は全クロック周期の一部であり得、周辺クロックはバス上で受信され得る。
【００１２】
いくつかの実施形態では、データクロック回路は、バス上のデータ信号からのフィードバッククロックに従って周辺クロックに対するデータクロックの位相を調整するように構成される遅延ロックループを含み得、データクロックの位相は、周辺クロックと異なる周波数を有する基準クロックに対するフィードバッククロックの所定の遅延を形成するように調整される。
【００１３】
いくつかの実施形態では、データクロック回路は、サンプリングモジュールと判断モジュールとを含み得る。サンプリングモジュールは、周辺クロックから位相がシフトされた複数のデータクロックにより記録されるサンプリングフリップフロップを含み得、フリップフロップはデータ信号をサンプリングするように構成される。判断モジュールは、複数のデータクロックから、データの送信を開始するためのデータクロックを選択するように構成され得、選択されるデータクロックはサンプリングフリップフロップの出力に基づく。
【００１４】
他の実施形態が可能であり、これら実施形態のそれぞれは単独でまたは一緒に組み合わせて使用され得る。したがって、様々な実施形態について添付図面を参照して説明する。
【実施例】
【００１５】
上記背景部分で述べたように、データは、ループ遅延と周辺クロックの変動周波数とにより周辺クロックの遷移中にまたはその近辺でホストへの送信のためにバス上に提供され得る。データクロック３０８などの本明細書における「クロック」への参照は、クロック装置を指すのではなくクロック装置により生成される電気信号を指す。結果として、ホストはデータを誤って読み取り得る。ループ遅延に対処するのを補助するためのチューニング手順は、ＵＨＳ−Ｉ標準規格に記載されているが、多くの場合、ホストはチューニング手順を実施することができない。
【００１６】
以下の実施形態は、ホストがバスからデータを正しく読み取る可能性を高めるために、周辺クロックの遷移中にまたはその近辺でデータをバス上に提供することを回避するのを補助するように使用され得る。これらおよび他の実施形態へ移る前に、以下の段落は、これらの実施形態と共に使用され得る例示的なメモリシステムの論述を提供する。当然のことながら、これらは単なる一例であり、他の好適なタイプの記憶モジュールが使用され得る。
【００１７】
これらの実施形態の態様を実現する際に使用するのに好適なメモリシステムが図１Ａ〜１Ｃに示される。図１Ａは、本明細書で説明する主題の一実施形態による不揮発性メモリシステムを示すブロック図である。図１Ａを参照すると、不揮発性メモリシステム１００は、コントローラ１０２と、１つまたは複数の不揮発性メモリダイ１０４で構成され得る不揮発性メモリとを含む。本明細書で使用されるように、用語「ダイ」は、不揮発性メモリセルとこれらの不揮発性メモリセルの物理的動作を管理するための関連する回路との集合（単一半導体基板上に形成される）を指す。コントローラ１０２は、ホストシステムとの間を中継して、読み取りおよびプログラムおよび消去動作のためのコマンドシーケンスを不揮発性メモリダイ１０４へ送信する。ホストシステムの例としては、例えばモバイルフォン、タブレットコンピュータ、ディジタルメディアプレーヤ、ゲーム装置、個人用デジタル情報処理端末（ＰＤＡ）、モバイル（例えば、ノートブック、ラップトップ）パーソナルコンピュータ（ＰＣ）、ブックリーダまたは任意の他の処理装置が挙げられ得る。
【００１８】
コントローラ１０２（フラッシュメモリコントローラであり得る）は、マイクロプロセッサまたはプロセッサなどの処理回路、および処理回路により実行可能なコンピュータ可読プログラムコード（例えば、ファームウェア）を格納するコンピュータ読取媒体の形式であり得る。コントローラ１０２は、例えば（マイクロ）プロセッサ、論理ゲート、スイッチ、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理コントローラおよび／または埋め込みマイクロコントローラを含み得る。コントローラ１０２は、以下に説明されフローチャートに示される様々な機能を行うハードウェアおよび／またはファームウェアで構成され得る。コントローラ１０２は遅延補償回路１０６を含み得る。代わりにまたは加えて、コントローラ１０２内に存在するとして示される遅延補償回路１０６など、部品のうちのいくつかはコントローラ外に存在し得る。
【００１９】
本明細書で使用されるように、フラッシュメモリコントローラは、フラッシュメモリ上に格納されたデータを管理し、コンピュータまたは電子装置などのホストシステム（本明細書では、代わりにホストと呼ぶ）と通信する装置である。フラッシュメモリコントローラは、本明細書で説明する特定の機能に加えた機能を有し得る。例えば、フラッシュメモリコントローラは、メモリが正しく動作していることを保証するためにフラッシュメモリをフォーマット化し、不良フラッシュメモリセルをマップアウトし、将来の失敗セルのために代用される予備セルを割り振り得る。予備セルのある部分は、フラッシュメモリコントローラを作動させると共に他の特徴を実現するファームウェアを保持するために使用され得る。動作中、ホストがデータをフラッシュメモリから読み取るまたはフラッシュメモリへ書き込む必要があると、ホストはフラッシュメモリコントローラと通信することになる。データが読み取られる／書き込まれる論理アドレスをホストが提供すると、フラッシュメモリコントローラは、ホストから受信される論理アドレスをフラッシュメモリ内の物理アドレスへ変換し得る（またはホストは物理アドレスを提供し得る）。フラッシュメモリコントローラはまた、限定しないが、ウェアレベリング（そうでなければ繰り返し書き込まれるであろうメモリの特定のブロックが使い古されることを回避するために書き込みを分散させる）、ガーベッジコレクション（ブロックが一杯になった後、全ブロックが消去され再使用され得るように有効ページのデータのみを新しいブロックへ移動する）などの様々なメモリ管理機能を行い得る。
【００２０】
不揮発性メモリダイ１０４は、ＮＡＮＤフラッシュメモリセルおよび／またはＮＯＲフラッシュメモリセルを含む任意の好適な不揮発性記憶媒体を含み得る。メモリセルは、固体（フラッシュなどの）メモリセルの形式を採り得、一回プログラム可能、数回プログラム可能、または多数回プログラム可能であり得る。メモリセルはまた、単一値セル（ＳＬＣ）、多値セル（ＭＬＣ）、３値セル（ＴＬＣ）であり得る、または現在知られているまたは将来開発される他のメモリセルレベル技術を使用し得る。また、メモリセルは２次元または３次元的方法で製作され得る。
【００２１】
コントローラ１０２と不揮発性メモリダイ１０４との間のインターフェースは、Ｔｏｇｇｌｅ  Ｍｏｄｅ  ２００、４００、または８００などの任意の好適なフラッシュインターフェースであり得る。一実施形態では、メモリシステム１００は、セキュアディジタル（ＳＤ）またはマイクロセキュアディジタル（マイクロＳＤ）カードなどのカードベースシステムであり得る。別の実施形態では、メモリシステム１００は埋め込みメモリシステムの一部であり得る。
【００２２】
図１Ａに示す例では、不揮発性メモリシステム１００（本明細書では代わりに記憶モジュールと呼ぶ）は、コントローラ１０２と不揮発性メモリダイ１０４との間の単一チャネルを含むが、本明細書で説明する主題は単一メモリチャンネルを有することに限定されない。例えば、図１Ｂ、１Ｃおよび２のようないくつかのＮＡＮＤメモリシステムアーキテクチャでは、より多くのＮＡＮＤチャネルが、コントローラ能力に依存してコントローラ１０２と不揮発性メモリダイ１０４との間に存在し得る。本明細書で説明する実施形態のうちの任意のものでは、単一チャネルが図面に示されていても、複数チャネルがコントローラ１０２とメモリダイ１０４との間に存在し得る。
【００２３】
コントローラ１０２は、バス１３４上でホストシステムと作動可能に通信し得る。語句「〜と作動可能に通信する」は、１つもしくは複数の部品（本明細書に図示または記載されることもされないこともある）と直接通信するか、または１つもしくは複数の部品を介して間接的に（有線もしくは無線で）通信することを意味し得る。
【００２４】
バス１３４は、コントローラ１０２とホストとの間などの部品間でデータを転送するシステムであり得る。いくつかの例では、バス１３４は、有線および／または光ファイバーなどの関連するハードウェア部品およびソフトウェアを含み得る。バス１３４は、電子的信号が伝播する平行電線を含み得る。バス１３４の例としては、Ｕｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ（ＵＨＳ）バス、Ｕｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ，Ｐｈａｓｅ  Ｉ（ＵＨＳ−Ｉ）バス、Ｕｌｔｒａ  Ｈｉｇｈ  Ｓｐｅｅｄ，Ｐｈａｓｅ  ＩＩ（ＵＨＳ−ＩＩ）バス、セキュアディジタル（ＳＤ）バス、セキュアディジタルＨｉｇｈ  Ｃａｐａｃｉｔｙ（ＳＤＨＣ）バス、セキュアディジタルｅＸｔｅｎｄｅｄ  Ｃａｐａｃｉｔｙ（ＳＤＸＣ）バス、ユニバーサルシリアルバス（ＵＳＢ）、シリアルアドバンストテクノロジアタッチメント（ＳＡＴＡ）バス、周辺部品インターフェースエクスプレス（ＰＣＩｅ）バス、または任意の他のタイプのバスが挙げられ得る。
【００２５】
図１Ｂは、複数の不揮発性メモリシステム１００を含む記憶モジュール２００を示す。したがって、記憶モジュール２００は、ホストおよび記憶システム２０４とインターフェースする記憶コントローラ２０２を含み得、記憶システム２０４は複数の不揮発性メモリシステム１００を含む。複数の不揮発性メモリシステム１００は、バス１３４上で記憶モジュール２００と動作可能に通信し得る。記憶コントローラ２０２と不揮発性メモリシステム１００との間のインターフェースは、シリアルアドバンストテクノロジーアタッチメント（ＳＡＴＡ）または周辺部品インターフェースエクスプレス（ＰＣＩｅ）インターフェースなどのバスインターフェースであり得る。記憶モジュール２００は、一実施形態では、ラップトップコンピュータおよびタブレットコンピュータなどの携帯計算装置で構成され得る固体駆動装置（ＳＳＤ）として構成され得る。
【００２６】
図１Ｂに示すように、不揮発性メモリシステム１００のコントローラ１０２のそれぞれは遅延補償回路１０６を含み得る。代わりにまたは加えて、ホストとの間を中継する記憶コントローラ２０２は遅延補償回路１０６を含み得る。
【００２７】
図１Ｃは、階層型記憶システム２５０を示すブロック図である。階層型記憶システム２５０は、各々がそれぞれの記憶システム２０４を制御する複数の記憶コントローラ２０２を含み得る。ホストシステム２５２は、バスインターフェースを介して記憶システム２５０内のメモリにアクセスし得る。一実施形態では、バスインターフェースは、ＮＶＭｅまたはファイバーチャネルオーバイーサーネット（ＦＣｏＥ）インターフェースであり得る。一実施形態では、図１Ｃに示すシステム２５０は、複数のホストコンピュータによりアクセス可能なラック搭載可能大容量記憶システム（大容量記憶が必要なデータセンタまたは他の場所で見出されるであろう）などであり得る。
【００２８】
記憶コントローラ２０２のそれぞれは、対応する遅延補償回路１０６を含み得る。代わりにまたは加えて、各記憶システム２０４は、図１Ｂに示すように対応する遅延補償回路１０６を含み得る。
【００２９】
図２は、コントローラ１０２の例示的な部品をさらに詳細に示すブロック図である。コントローラ１０２は、バス１３４上でホストとの間を中継するフロントエンドモジュール１０８、１つまたは複数の不揮発性メモリダイ１０４との間を中継するバックエンドモジュール１１０、および次に詳細に説明されることになる機能を行う様々な他のモジュールを含む。
【００３０】
コントローラ１０２のモジュールは遅延補償回路１０６を含み得る。図３〜８と併せて以下にさらに詳細に説明されるように、遅延補償回路１０６は、ホストから受信した周辺クロックとバス１３４上のデータ信号の形式のフィードバックとに基づいてバス１３４上へのデータ提供を遅延する動作を行い得る。データ信号は、遅延補償回路１０６またはコントローラ１０２のある他の回路または不揮発性メモリシステム１００のある他の部品によりバス１３４上に提供され得る。
【００３１】
コントローラ１０２のモジュールを再び参照すると、バッファマネージャ／バスコントローラ１１４は、ランダムアクセスメモリ（ＲＡＭ）１１６のバッファを管理し、コントローラ１０２の内部のバスアービトレーションを制御する。読み取り専用メモリ（ＲＯＭ）１１８はシステムブートコードを格納する。図２ではコントローラ１０２とは別に配置されて示されるが、他の実施形態では、ＲＡＭ１１６およびＲＯＭ１１８の一方または両方はコントローラ内に配置され得る。さらに他の実施形態では、ＲＡＭおよびＲＯＭの一部は、コントローラ１０２内とコントローラ外との両方に配置され得る。
【００３２】
フロントエンドモジュール１０８は、ホストまたは次のレベルの記憶コントローラとの電気的インターフェースを提供するホストインターフェース１２０および物理レイヤインターフェース（ＰＨＹ）１２２を含む。ホストインターフェース１２０のタイプの選択は、使用されているメモリのタイプに依存し得る。ホストインターフェース１２０の例としては、限定するものではないが、ＳＡＴＡ、ＳＡＴＡ  Ｅｘｐｒｅｓｓ、ＳＡＳ、ファイバーチャネル、ＵＳＢ、ＰＣＩｅおよびＮＶＭｅが挙げられる。ホストインターフェース１２０は、通常、データ、制御信号およびタイミング信号の転送を容易にする。
【００３３】
遅延補償回路１０６は、物理レイヤインターフェース１２２とバス１３４との間に論理的に配置され得る。代りに、遅延補償回路１０６は、物理レイヤインターフェース１２２内に論理的に含まれ得る。いくつかの例では、遅延補償回路１０６はホストインターフェース１２０内に含まれ得る。さらに他の例では、遅延補償回路１０６は、コントローラ１０２とバス１３４との間にまたは不揮発性メモリシステム１００の他のある部分内に存在し得る。
【００３４】
バックエンドモジュール１１０は、ホストから受信したデータバイトを符号化すると共に、不揮発性メモリから読み取られたデータバイトを復号およびエラー訂正する誤り訂正コントローラ（ＥＣＣ）エンジン１２４を含む。コマンドシーケンサ１２６は、不揮発性メモリダイ１０４へ送信されるプログラムおよび消去コマンドシーケンスなどのコマンドシーケンスを生成する。メモリインターフェース１３０は、コマンドシーケンスを不揮発性メモリダイ１０４へ提供し、ステータス情報を不揮発性メモリダイ１０４から受信する。一実施形態では、メモリインターフェース１３０は、Ｔｏｇｇｌｅ  Ｍｏｄｅ  ２００、４００、または８００インターフェースなどのダブルデータレート（ＤＤＲ）インターフェースであり得る。フラッシュ制御レイヤ１３２は、バックエンドモジュール１１０の全体動作を制御する。
【００３５】
不揮発性メモリシステム１００は、外部電気的インターフェース、外部ＲＡＭ、抵抗器、キャパシタ、またはコントローラ１０２とインターフェースし得る他の部品などの他の個別の部品１４０を含み得る。別の実施形態では、物理レイヤインターフェース１２２およびバッファ管理／バスコントローラ１１４の１つまたは複数は、コントローラ１０２内で必要でない任意選択的な部品である。
【００３６】
図３は、遅延補償回路１０６の一例のブロック図である。遅延補償回路１０６は、データ遅延回路３０２、データクロック回路３０４およびパッドインターフェース３０６を含み得る。
【００３７】
パッドインターフェース３０６は、バス１３４の線が電気的に結合するコンタクトを遅延補償回路内の線へ提供する任意の部品であり得る。パッドインターフェース３０６は、例えば、線毎にフリップフロップを含み得る。
【００３８】
データ遅延回路３０２は、データ３２０を受信し次にデータクロック３０８のエッジにおいてバス１３４上にデータ３２０を提供する部品であり得る。換言すれば、データ遅延回路３０２は、データクロック３０８の位相により判断される遅延後にバス１３４上にデータ３２０を提供する部品であり得る。データ遅延回路３０２は、データ３２０をバス１３４上でデータ信号３１０内に提供し得る。データ信号３１０は、それぞれがビットを表す１つまたは複数のデジタル信号を含み得る。
【００３９】
データクロック回路３０４は、バス１３４に提供されるデータ信号３１０に基づいてデータクロック３０８を生成する部品であり得る。以下により詳細に説明するように、データクロック回路３０４は、データ３２０が周辺クロック３１２の所定のエッジにおいてバス１３４上で読み取り可能であるように、ホストからバス１３４上で受信される周辺クロック３１２に対するデータクロック３０８の位相を調整する部品であり得る。
【００４０】
データ遅延回路３０２を含む不揮発性メモリシステム１００の動作中、ホストはコントローラ１０２に周辺クロック３１２を提供する。ホストは、ホストがデータを読み取りまたは書き込みしていなくてもバス１３４上に周辺クロック３１２を提供する。周辺クロック３１２は、タイミングの目的のためにコントローラ１０２と遅延回路３０２とにより使用される。
【００４１】
図４は、周辺クロック３１２、データ信号３１０およびデータクロック３０８間のタイミング関係の一例を示す。図４に示す例は、データ３２０がホストにより要求されるときの信号３１２、３１０および３０８間の１つの好ましい関係を説明する。信号３１２、３１０および３０８間の他の関係が可能でありおよび／または望まれ得る。
【００４２】
コントローラ１０２は、時間Ｔ１においてバス１３４上でデータ３２０の要求を受信し得る。要求は、例えば、読み取り要求であり得る。要求の時間Ｔ１は周辺クロック３１２の初期エッジ４０２に対応する。ホストは、周辺クロック３１２の２周期内など、所定の期間内にデータ３２０がバス１３４上に提供されることを期待し得る。したがって、ホストは、初期エッジ４０２後の周辺クロック３１２の第１のエッジ４０４上でデータ３２０をバス１３４から読み取ることを試み得る。ホストが周辺クロックの第１のエッジ４０４においてデータ３２０をバス１３４から読み出すことが成功しなければ、次にホストは、周辺クロック３１２の第２のエッジ４０６上でデータ３２０をバス１３４から読み取ることを試み得る。ホストが第２のエッジ４０６上でデータ３２０を読み出すことに失敗すれば、次にホストは、読み取り要求をタイムアウト要求として処理し得る。
【００４３】
ホストの挙動に照らして、コントローラ１０２は、周辺クロック３１２の第１のエッジ４０４の前にまたは周辺クロック３１２の第２のエッジ４０６の前にデータ３２０をバス１３４上に提供することになる。例えば、コントローラ１０２は、ホストが周辺クロック３１２の第２のエッジ４０６においてデータ３２０を読み取る時間Ｔ３の前である時間Ｔ２において、データ３２０をバス１３４上でデータ信号３１０内に提供し始め得る。データ信号３１０は、コントローラ１０２がデータ３２０をバス１３４上に最初に提供するときに当初不安定であり得るため、時間Ｔ２は、データ信号３１０が安定しており時間Ｔ３において依然としてデータ３２０を含むＴ３の十分前であるべきである。一方、コントローラ１０２が、ホストがデータ３２０を読み取るのと同時である時間Ｔ３においてバス１３４上にデータ３２０を最初に提供すると、次にデータ３２０は、ホストにより読み取り可能でないことがあり得る。
【００４４】
コントローラ１０２内のループ遅延は、要求が受信された時間Ｔ１とデータ３２０がバス１３４上に最初に提供された時間Ｔ２との間の時間である。ループ遅延は、論理部品からの遅延と、パッドインターフェース３０６により導入されるパッド遅延とも含み得る。
【００４５】
遅延補償回路１０６なしでは、ループ遅延は著しく変化し得る。例えば、ループ遅延は、ＰＶＴ（プロセス、電圧および温度）全体にわたって著しく変化し得る。加えて、異なるホストは異なる周波数で動作し得る。例えば、不揮発性メモリシステム１００がＵＨＳ−１０４標準規格に準拠する場合、次にホストにより提供される周辺クロック３１２は、ホストに依存して１００メガヘルツ〜２０８メガヘルツの範囲であり得る。ループ遅延の分散により、データ３２０は周辺クロック３１２の遷移中にまたはその近辺（第１のエッジ４０４または第２のエッジ４０６近辺など）でバス１３４上に提供され得、ホストがデータ３２０を誤って読み取る結果となり得る。
【００４６】
遅延補償回路１０６はループ遅延の分散を補償し得る。特に、データクロック回路３０４は、データ遅延回路３０２が周辺クロック３１２の所定のエッジの前に（時間Ｔ３に）バス１３４上のデータ信号３１０内にデータ３２０を（時間Ｔ２に）提供するように、データクロック３０８を周辺クロック３１２に対して量Ｄだけ遅延する。
【００４７】
データクロック回路３０４は、ホストがデータを読み取っていないまたは書き込んでいないときにデータクロック２０８を校正し得る。代わりにまたは加えて、データクロック回路３０４は、ホストがアイドル状態であるおよび／または不揮発性メモリシステム１００を使用していないときにデータクロック２０８を校正し得る。データクロック回路３０４がデータクロック３０８を校正している間、遅延補償回路１０６は校正モードにあると言ってもよい。
【００４８】
校正期間中、データ遅延回路３０２は、データクロック３０８の遷移に応答してバス１３４上のデータ信号３１０内にサンプルデータを提供し得る。データクロック回路３０４は、データ信号３１０と周辺クロック３１２とをおよび／またはデータ信号３１０の属性と周辺クロック３１２とを比較し得る。データクロック回路３０４は、サンプルデータが所定のエッジ４０４または４０６において読み取り可能であるように、周辺クロック３１２の所定のエッジ４０４または４０６の十分前にサンプルデータがバス１３４上に提供されるまでデータクロック３０８内の遅延Ｄを調整し、これを繰り返し得る。
【００４９】
周辺クロック３１２の初期エッジ４０２は、図４では周辺クロック３１２上の第１のエッジであるように見えるが、それより早い周辺クロック３１２のエッジが存在し得る。初期エッジ４０２は、エッジ４０２がデータ３２０の要求の受信と同期しているという理由のみで「初期」であると見なされ得る。より一般的には、初期エッジ４０２は、データをバス１３４上に提供するプロセスがエッジ４０２に応答して開始され得るため、「初期」であると見なされ得る。代わりにまたは加えて、初期エッジ４０２は、いずれのデータがバス１３４上に提供されるかに応答して（エッジ４０２がデータクロック３０８のエッジ４０８を引き起こしたため）「初期」であると見なされ得る。
【００５０】
図５は、周辺クロック３１２から導出される周波数分割クロック５０１に基づいて校正する遅延補償回路１０６の一実施形態のブロック図である。遅延補償回路１０６は、データ遅延回路３０２とデータクロック回路３０４とを含む。
【００５１】
データ遅延回路３０２は、トレイン信号５１０が使用可能にされるかどうかに依存して、データ３２０またはデータクロック３０８の遅延バージョンを選択的に出力するように構成され得る。データ遅延回路３０２は、フリップフロップ５０２、データマルチプレクサ５０４、リセットマルチプレクサ５０６およびパルス生成回路５０８を含み得る。
【００５２】
フリップフロップ５０２は、任意のタイプのフリップフロップまたはラッチであり得る。例えば、フリップフロップ５０２は、データ入力Ｄ、出力Ｑ、クロック入力ＣＫおよびリセットＣＬＲを含むＤフリップフロップであり得る。
【００５３】
データマルチプレクサ５０４は、トレイン信号５１０がローであるとデータ３２０を出力し、トレイン信号５１０がハイであると１を出力する任意の部品であり得る。データマルチプレクサ５０４の出力はフリップフロップ５０２のデータ入力Ｄへ電気的に結合され得る。
【００５４】
パルス生成回路５０８は、パルス生成回路５０８の入力５２０がハイからローへ遷移すると出力５１８上にパルスを生成する任意の部品であり得る。例えば、パルス生成回路５０８は、ＯＲゲート５２２、インバータ５２６および遅延部品５２４を含み得る。パルス生成回路５０８の入力５２０は、ＯＲゲート５２２の第１の入力と遅延部品５２４の入力とへ結合され得る。遅延部品５２４の出力は、インバータ５２６を通りＯＲゲート５２２の第２の入力へ入り得る。ＯＲゲート５２２の出力はパルス生成回路５０８の出力５１８であり得る。
【００５５】
リセットマルチプレクサ５０６は、トレイン信号５１０がローであるとシステムリセット値を出力し、トレイン信号５１０がハイであるとパルス生成回路５０８の出力を出力する任意の部品であり得る。リセットマルチプレクサ５０６の出力はフリップフロップ５０２のリセットＣＬＲへ電気的に結合され得る。
【００５６】
データクロック回路３０４は、バス１３４上のデータ信号３１０からのフィードバックと周辺クロック３１２から導出される周波数分割クロック５０１とに基づいてデータクロック３０８を生成するように構成され得る。データクロック回路３０４は、遅延ロックループ（ＤＬＬ）５１２、クロックマルチプレクサ５１４および周波数分割器５１６を含み得る。
【００５７】
ＤＬＬ５１２は、可変遅延を基準クロック５２８へ付与することによりマスタークロック５３２を生成し、フィードバッククロック５３０と基準クロック５２８との間の差が所定の遅延であるように可変遅延を調整する部品であり得る。所定の遅延は、例えば、３６０度位相シフトであり得る。可変遅延が好適に調整された後、ＤＬＬ５１２は、調整された可変遅延をスレーブ入力５３６へ付与することによりスレーブクロック５３４を生成し得る。
【００５８】
クロックマルチプレクサ５１４は、トレイン信号５１０がハイであるとマスタークロック５３２を出力し、トレイン信号５１０がローであるとスレーブクロック５３４を出力する任意の部品であり得る。クロックマルチプレクサ５１４の出力はデータクロック３０８であり得る。
【００５９】
周波数分割器５１６は、周波数ｆｉｎの入力信号を受け周波数ｆｏｕｔの出力信号を生成する任意の部品であり得、ここで、ｆｏｕｔ＝（ｆｉｎ＊ｃ）であり、式中、ｃは分数である。周波数分割器５１６は、例えば、分数ｎ周波数合成器であり得る。分数は、周波数分割器５１６の出力におけるクロックの周波数が（２／３）Ｆの周波数を有するように２／３であり得る。ここで、Ｆは周波数分割器５１６の入力におけるクロックの周波数である。分数はａ／ｂと記述される有理数であり得、ここで、ａとｂとは整数であり、ａはｂで割り切れない。
【００６０】
周波数分割器５１６への入力は周辺クロック３１２であり得る。周波数分割器５１６の出力は周波数分割クロック５０１であり得る。
【００６１】
ＤＬＬ５１２の基準クロック５２８は、周波数分割器５１６により生成される周波数分割クロック５０１であり得る。ＤＬＬのフィードバッククロック５３０はデータ信号３１０であり得る。ＤＬＬ５１２のスレーブ入力５３６は周辺クロック３１２であり得る。マスタークロック５３２とスレーブクロック５３４とは、クロックマルチプレクサ５１４の２つのそれぞれの入力であり得る。
【００６２】
遅延補償回路１０６の校正期間中、トレイン信号５１０は遅延補償回路１０６が校正モードにあることを示すハイであり得る。したがって、データクロック回路３０４により生成されるデータクロック３０８は、校正期間中、ＤＬＬ５１２のマスタークロック５３２である。フリップフロップ５０２の出力は、マスタークロック５３２の遅延バージョンであるデータクロック３０８の遅延バージョンである。一方でデータクロック３０８がハイになると、出力Ｑはフリップフロップ５０２のデータ入力Ｄであり２進値である。他方で、データクロック３０８がローになると、パルス生成回路５０８はフリップフロップ５０２のリセットＣＬＲへパルスを生成し、フリップフロップ５０２の出力Ｑは零に落ちる。したがって、バス上のデータ信号３１０は、ＤＬＬ５１２のマスタークロック５３２の遅延バージョンである。
【００６３】
ＤＬＬ５１２は、可変遅延をフィードバッククロック５３０へ付与することにより、データ信号３１０の若干遅延されたバージョンであるマスタークロック５３２を生成する。ＤＬＬ５１２は、基準クロック５２８とフィードバッククロック５３０との間の差が所定の遅延となるまで可変遅延を調整する。所定の遅延が３６０度の位相のシフトであり、周波数分割クロックが周辺クロック３１２の周波数の３分の２であれば、次に可変遅延は、フィードバッククロック５３０を周辺クロック３１２の１．５期間だけ遅延させることになる。ＤＬＬ５１２はまた、スレーブクロック５３４を生成するために可変遅延を、周辺クロック３１２であるスレーブ入力５３６へ付与し得る。
【００６４】
ＤＬＬ５１２が所望の可変遅延を判断すると、校正はオフにされ得る。遅延補償回路１０６の校正がオフされると、トレイン信号５１０はローになり得る。次に、フリップフロップ５０２はスレーブクロック５３４により記録される。フリップフロップ５０２のデータ入力はデータ３２０である。したがって、フリップフロップ５０２の出力Ｑは、バス１３４上のデータ信号３１０内のデータ３２０に周辺クロック３１２の約１．５期間の遅延を与える。
【００６５】
図６は、サンプルデータが正しく読み取られたときの判断に基づいて校正する遅延補償回路１０６の一実施形態のブロック図である。遅延補償回路１０６は、データ遅延回路３０２とデータクロック回路３０４とを含む。
【００６６】
データ遅延回路３０２は、パターン信号６０４内の指示に基づいてデータ３２０またはチューニングパターン６０２に遅延を課すように構成される任意の回路であり得る。データ遅延回路３０２により課される遅延は、データクロック６０８Ａ、６０８Ｂまたは６０８Ｃの位相に依存する。データクロック６０８Ａ、６０８Ｂまたは６０８Ｃのうちの１つは、遅延選択信号６１０により実効的に選択される。代わりにまたは加えて、データ遅延回路３０２は、遅延選択信号６１０により実効的に選択されたデータクロック６０８Ａ、６０８Ｂまたは６０８Ｃの位相により判断された遅延が課された後、バス１３４上へデータ３２０を提供するように構成される任意の回路であり得る。データ遅延回路３０２は、データセレクタ６１２、遅延セレクタ６１４およびデータフリップフロップ６１６、６１８、６２０および６２２を含み得る。
【００６７】
データセレクタ６１２は、マルチプレクサなどのデータを選択的に出力する任意の部品であり得る。データセレクタ６１２への入力は、データ３２０およびチューニングパターン６０２であり得る。チューニングパターン６０２は、任意の所定のパターンのビットであり得る。パターン信号６０４は、データ３２０またはチューニングパターン６０２を選択すべきかどうかをデータセレクタ６１２へ指示し得る。データセレクタ６１２の出力は、選択されたデータ６２４である。例えば、選択されたデータ６２４は、パターン信号６０４がローのときにはデータ３２０であり、パターン信号６０４がハイのときにはチューニングパターン６０２であリ得る。
【００６８】
遅延セレクタ６１４は、マルチプレクサなどのデータを選択的に出力する任意の部品であり得る。遅延選択信号６１０は、遅延セレクタ６１４のいずれの入力を出力すべきかを遅延セレクタ６１４へ指示し得る。遅延セレクタ６１４の出力はデータ信号３１０であり得る。遅延セレクタ６１４への入力はデータフリップフロップ６１６〜６２２の出力であり得る。
【００６９】
データフリップフロップ６１６〜６２２のそれぞれは、任意のタイプのフリップフロップまたはラッチであり得る。例えば、各データフリップフロップ６１６、６１８、６２０、または６２２は、入力Ｄ、出力Ｑおよびクロック入力ＣＫを含むＤフリップフロップであり得る。
【００７０】
データフリップフロップ６１６のうちの第１のものは周辺クロック３１２により記録され、そのデータ入力として選択データ６２４を受信し得る。データフリップフロップ６１６の第１の出力は、遅延セレクタ６１４への選択可能入力のうちの１つであり得る。データフリップフロップ６１６の第１のものの出力は、残りデータフリップフロップ６１８、６２０および６２２への入力であり得る。残りデータフリップフロップ６１８、６２０および６２２のそれぞれは、データクロック６０８Ａ、６０８Ｂまたは６０８Ｃのうちの対応する１つにより記録され得る。データクロック６０８Ａ、６０８Ｂまたは６０８Ｃのそれぞれは、周辺クロック３１２からそれぞれ９０度、１８０度および２７０度シフトされたクロックである。残りデータフリップフロップ６１８、６２０および６２２の出力は遅延セレクタ６１４の入力へ提供される。
【００７１】
データクロック回路３０４は、データ３２０が周辺クロック３１２の所定のエッジにおいてバス１３４上で読み取り可能であるように、データ信号３１０を時間上でサンプリングすると共に周辺クロック３１２に対するデータクロック６０８Ａ、６０８Ｂまたは６０８Ｃの遅延を判断するように構成される任意の回路であり得る。データクロック回路３０４は、遅延ロックループ（ＤＬＬ）６３０、サンプリングモジュール６３２、および判断モジュール６３４を含み得る。
【００７２】
ＤＬＬ６３０は、入力クロックと所定の位相シフトだけ逆相のクロックを生成する任意の部品であり得る。図６に示す例では、ＤＬＬ６３０は、周辺クロック３１２からそれぞれ９０度、１８０度、２７０度および３６０度シフトされたクロックである４つのデータクロック６０８Ａ、６０８Ｂ、６０８Ｃおよび６０８Ｄを生成するように構成される。
【００７３】
サンプリングモジュール６３２は、周辺クロック３１２の所定の位相シフトにおいてデータ信号３１０をサンプリングする任意の回路であり得る。図６に示すサンプリングモジュール６３２の例は、サンプリングフリップフロップ６３６〜６５０の２つの段６５２および６５４を含む。サンプリングフリップフロップ６３６〜６５０のそれぞれは、任意のタイプのフリップフロップまたはラッチであり得る。サンプリングフリップフロップ６３６〜６５０のそれぞれの入力は、データ信号３１０であり得る。サンプリングフリップフロップ６３６〜６５０のそれぞれの出力は、所定の位相シフトのそれぞれの１つにおいてサンプリングされたサンプル値であり得る。
【００７４】
第１段６５２内のサンプリングフリップフロップ６３６、６３８、６４０および６４２は、それぞれが周辺クロック３１２からそれぞれ９０度、１８０度、２７０度および３６０度シフトされたデータクロック６０８Ａ、６０８Ｂ、６０８Ｃおよび６０８Ｄによりそれぞれ記録され得る。したがって、第１段６５２内のサンプリングフリップフロップ６３６、６３８、６４０および６４２は、それぞれ９０度、１８０度、２７０度および３６０度の所定の位相シフトにおいてデータ信号３１０をサンプリングするように構成される。
【００７５】
第１段６５２内のサンプリングフリップフロップ６３６〜６４２と異なり、第２段６５４内のサンプリングフリップフロップ６４４〜６５０は、周辺クロック３１２の第１の全クロック周期期間中に無効になり、周辺クロック３１２の第２の全クロック周期期間中に使用可能にされ得る。第２段６５４内のサンプリングフリップフロップ６４４、６４６、６４８および６５０は、各々が周辺クロック３１２からそれぞれ９０度、１８０度、２７０度および３６０度シフトされたデータクロック６０８Ａ、６０８Ｂ、６０８Ｃおよび６０８Ｄによりそれぞれ記録され得る。したがって、第２段６５４内のサンプリングフリップフロップ６４４、６４６、６４８および６５０は、それぞれ４５０度、５４０度、６３０度および７２０度の所定の位相シフトにおいてデータ信号３１０をサンプリングするように構成される。
【００７６】
判断モジュール６３４は、周辺クロック３１２に対していずれの所定の位相シフトにおいてデータ３２０またはチューニングパターン６０２がデータ信号３１０からバス１３４上で読み取り可能であるかを判断するように構成される任意の回路であり得る。代わりにまたは加えて、判断モジュール６３４は、データ３２０またはチューニングパターン６０２をバス１３４上のデータ信号３１０内に提供すべきタイミングをデータ遅延回路３０２へ指示するように構成される任意の回路であり得る。図６に示す例では、判断モジュール６３４は、遅延選択信号６１０とデータクロック６０８Ａ、６０８Ｂおよび６０８Ｃとを遅延回路３０２へ提供することにより、データ３２０および／またはチューニングパターン６０２をバス１３４上へ提供すべきときを遅延回路３０２へ指示するように構成される。
【００７７】
一実施形態では、判断モジュール６３４は比較器（図示せず）と遅延選択回路（図示せず）とを含み得る。比較器のそれぞれは、サンプリングフリップフロップ６３６〜６５０のうちの対応するものの比較器である。各比較器は、対応するサンプリングフリップフロップの出力とチューニングパターン６０２とを比較し得る。比較器の出力は遅延選択回路へ提供され得る。遅延選択回路は、比較器の出力（合わせて２進数入力を表し得る）を、遅延選択信号６１０を表す２進数へマッピングする論理を実装し得る。
【００７８】
以下の表１は、遅延選択信号６１０の値の例を示す。
【００７９】
【表１】
0006322774.tif 000002
【００８０】
以下の表２は、比較器の出力と対応する所望の遅延とから形成され得る２進数入力の例を示す。２進数入力は桁Ｒ１Ｒ２Ｒ３Ｒ４Ｒ５Ｒ６Ｒ７Ｒ８から形成され得、Ｒｎはｎ番目の比較器の出力を表し、ｎが高くなるほど遅延（位相シフト）は大きくなる。桁Ｒｎは、対応するサンプリングフリップフロップ６３６〜６５０の出力がｎ番目の比較器のチューニングパターン６０２に一致する場合に「１」、そうでなければ「０」であり得る。
【００８１】
【表２】
0006322774.tif 000003
【００８２】
表２内に列挙されたもの以外の２進数入力の値が可能である。これらの他の値のそれぞれは、表２に列挙される次により高い値のような各値を処理することにより扱われ得る。右端桁は最上位桁である。例えば、表２によると、１８０度のシフトである０００１１１００の２進数入力値は０００１  １１１０遅延値へマッピングされ得る。
【００８３】
表２内の値はまた、応答ウィンドウを調べることにより視覚化され得る。図７は、周辺クロック３１２の２周期を示す。２周期は、それぞれが周期の４分の１を表す８つの応答ウィンドウＲ１〜Ｒ８に分割される。チューニングパターン６０２のビットは、周辺クロック３１２の初期エッジ４０２に応答してバス１３４上のデータ信号３１０内に提供され得る。第１段６５２内の第１のサンプリングフリップフロップ６３６がチューニングパターン６０２を検知すると、次にチューニングパターン６０２は１番目の応答ウィンドウＲ１内で検知され、表２の２進入力数内のＲ１ビットは「１」である。同様に、第１段６５２内の第２のサンプリングフリップフロップ６３８がチューニングパターン６０２を検知すると、次にチューニングパターン６０２は２番目の応答ウィンドウＲ２内で検知され、表２の２進入力数内のＲ２ビットは「１」である。より一般的には、ｎ番目のサンプリングフリップフロップ６３６、６３８、６４０、６４２、６４４、６４６、６４８、または６５０がチューニングパターン６０２を検知すると、次にチューニングパターン６０２はｎ番目の応答ウィンドウＲｎ内で検知され、表２の２進入力数内のＲｎビットは「１」である。
【００８４】
チューニングパターン６０２が応答ウィンドウＲ４またはＲ５内で検知されると、次にデータ３２０は、データ遅延回路３０２が追加遅延を課さないように遅延選択信号６１０が設定されない限り、応答ウィンドウＲ４またはＲ５内のバス１３４上に提供されることになる。これは、応答ウィンドウＲ４およびＲ５が周辺クロック３１２の第１のエッジ４０４を囲むために問題であり得、したがってデータ信号３１０は、周辺クロック３１２の第１のエッジ４０４上でホストにより読み取られると場合によっては不定状態になり得る。この可能性を回避するために、遅延選択信号６１０は、「データ３２０が遅延されるべきである」ことを示すように設定され得る。例えば、チューニングパターン６０２が応答ウィンドウＲ４内で検知されると（表２内の２進入力数「０００１  １１１０」）、次に遅延選択信号６１０は、「データ遅延回路３０２が２７０度シフトを課すべきである」ことを指示するように「１１」に設定され得る。この課された遅延により、データ３２０は応答ウィンドウＲ４ではなくＲ７内のバス１３４上に提供されることになる。
【００８５】
表１および表２からの情報は、遅延選択信号６１０の対応する値間のマップを形成するように各２進入力数と組み合わせられ得る。遅延選択回路は、論理ゲートおよび／またはマッピングを実施するハードウェアとソフトウェアとの組み合わせを含み得る。代わりにまたは加えて、コントローラ１０２は、遅延選択信号６１０の適正値を判断するためにチューニングパターン６０２の複数ビットからの結果を平均化し得る。
【００８６】
校正期間中、判断モジュール６３４または他の回路は、パターン信号６０４を適切に設定することによりチューニングパターン６０２を選択するようにデータセレクタ６１２に指示し得る。チューニングパターン６０２の各ビットは、チューニングパターン６０２の次のビットへ移動する前に周辺クロック３１２の２つ全周期にわたりデータセレクタ６１２へ提供され得る。これは、サンプリングモジュール６３２が周辺クロック３１２の１周期にわたってデータ信号３１０をサンプリングするからである。他の例では、チューニングパターン６０２の各ビットは、少なくともサンプリングモジュール６３２がデータ信号３１０をサンプリングする時間にわたる限り、データセレクタ６１２へ提供され得る。いくつかの例では、チューニングパターン６０２は１ビットのみを含み得る。
【００８７】
校正が開始されると、判断モジュール６３４はいかなる遅延も課されないことを遅延セレクタ６１４へ示し得る。その結果、サンプリングフリップフロップ６３６〜６５０のうちのいずれがチューニングパターン６０２のビットを正しく読み取ることができるかをサンプリングモジュール６３２と判断モジュール６３４とが判断すると、次に遅延が判断される。判断された遅延は、周辺クロックの初期エッジ４０２と、チューニングパターン６０２および／またはデータ３２０がバス１３４上に提供される時間との間の遅延である。遅延は、実効的に遅延補償回路１０６のループ遅延の測定結果であり得る。
【００８８】
２進入力数により指示される検知ループ遅延に基づき、判断モジュール６３４は、所望の遅延を判断し、遅延選択信号６１０を介して所望の遅延の指示をデータ遅延回路３０２へ提供し得る。校正が終わると、判断モジュール６３４は、遅延選択信号６１０を介して所望の遅延の指示をデータ遅延回路３０２へ提供し続け得る。したがって、データクロックは、データ信号３１０内のデータの検知に基づいて、かつ検知データとチューニングパターン６０２との比較に基づいて周辺クロック３１２に対して効果的にシフトされ得る。
【００８９】
応答ウィンドウＲ１〜Ｒ８と表１および２内の値とは１つの可能な構成に過ぎない。例えば、任意数の応答ウィンドウが選択され得る。各応答ウィンドウのサイズは示された例と異なり得る。例示的な２進入力数内の高位ビットはチューニングパターン６０２の検知を指示するが、他の例における低位ビットがチューニングパターン６０２の検知を指示し得る。別の例として、各応答ウィンドウの所望の遅延は表１内に列挙されたものと異なり得る。
【００９０】
図８は、不揮発性メモリシステム１００および／または遅延補償回路１０６の例示的な論理を示すフローチャートである。論理は追加動作、異なる動作、またはより少ない動作を含み得る。動作は、図８に示すものと異なる順序で実行され得る。
【００９１】
データクロック３０８が周辺クロック３１２から生成され得る動作が始まり得る（８０２）。サンプルデータは、データクロック３０８のエッジに応答してバス１３４上のデータ信号３１０内に提供され得（８０４）、データクロックのエッジは周辺クロック３１２の初期エッジにより引き起こされる。第１の例では、サンプルデータは、図５に示すフリップフロップ５０２により生成されるデータクロック３０８の遅延バージョンであり得る。第２の例では、サンプルデータは、図６に示すチューニングパターン６０２であり得る。
【００９２】
周辺クロック３１２に対するデータクロック３０８の遅延は、周辺クロック３１２の初期エッジ４０２とサンプルデータがバス１３４上で検知される時間との間の時間差に基づいて選択され得る（８０６）。第１の例では、遅延を選択する工程は、フィードバッククロック５３０としてバス１３４上のデータ信号３１０を有する遅延ロックループ５１２と、基準クロック５２８として周辺クロック３１２から導出される周波数分割クロック５０１とにより、マスタークロック５３２を生成する工程を含み得る。第２の例では、遅延を選択する工程は、それぞれが複数のデータクロック６０８Ａ〜Ｃ内の他のデータクロックと異なる所定の位相シフトを有する複数のデータクロック６０８Ａ〜Ｃから遅延データクロックを選択する工程を含み得る。
【００９３】
周辺クロック３１２に対する選択遅延を有する遅延データクロックが生成され得る動作（８０８）が続き得る。例えば、遅延データクロックはＤＬＬ５１２または６３０により生成され得る。
【００９４】
データの要求はバス１３４上でホストから受信され得る（８１０）。例えば、要求は読み取り要求であり得る。
【００９５】
要求データは、遅延データクロックのエッジに応答してバス１３４上に提供され得る（８１２）。例えば、図５に示すフリップフロップ５０２または図６に示すデータフリップフロップ６１６〜６２２のうちの選択されたものがバス１３４上に要求データを提供し得る。
【００９６】
システム１００および／または遅延補償回路１０６は、追加部品、異なる部品、またはより少ない部品により実現され得る。例えば、システム１００は遅延補償回路１０６のみを含み得る。
【００９７】
各部品は、追加部品、異なる部品、またはより少ない部品を含み得る。例えば、遅延補償回路１０６はパッドインターフェース３０６を含んでも含まなくてもよい。別の例では、サンプリングモジュールは、図６に示すものに対して追加のまたはよりも少ないサンプリングフリップフロップ６３６〜６５０を含み得る。
【００９８】
システム１００および／または遅延補償回路１０６は様々な方法で実現され得る。判断モジュール６３４などの各モジュール、回路または部品は、ハードウェアまたはハードウェアとソフトウェアとの組み合わせであり得る。例えば、各モジュールは、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、回路、デジタル論理回路、アナログ回路、ディスクリート回路の組み合わせ、ゲート、もしくは任意の他のタイプのハードウェアまたはこれらの組み合せを含み得る。代わりにまたは加えて、各モジュールは、例えば、モジュールの特徴の１つまたは複数を実現するためにプロセッサにより実行可能な命令を含むメモリハードウェアを含み得る。モジュールのうちの任意のものがプロセッサにより実行可能な命令を含むメモリの部分を含む場合、そのモジュールはプロセッサを含んでも含まなくてもよい。いくつかの例では、各モジュールは、単に、任意の他のハードウェアを含むモジュールなしに対応するモジュールの特徴を実現する、プロセッサにより実行可能な命令を含むメモリの部分であり得る。各モジュールは、含まれるハードウェアがソフトウェアを含む場合でさえ、少なくともいくつかのハードウェアを含むため、各モジュールは、判断ハードウェアモジュールなどのハードウェアモジュールと置換可能に参照され得る。
【００９９】
最後に、上に述べたように、任意の好適なタイプのメモリが使用され得る。半導体記憶装置は、ダイナミックランダムアクセスメモリ（「ＤＲＡＭ」）またはスタティックランダムアクセスメモリ（「ＳＲＡＭ」）装置、抵抗性ランダムアクセスメモリ（「ＲｅＲＡＭ」）などの不揮発性メモリ装置、電気的消去可能ＰＲＯＭ（「ＥＥＰＲＯＭ」）、フラッシュメモリ（ＥＥＰＲＯＭのサブセットとも見なされ得る）、強誘電体ランダムアクセスメモリ（「ＦＲＡＭ（登録商標）」）、磁気抵抗ランダムアクセスメモリ（「ＭＲＡＭ」）などの揮発性メモリ装置、および情報を格納することができる他の半導体素子を含む。各タイプのメモリ装置は異なる構成を有し得る。例えば、フラッシュメモリ装置はＮＡＮＤまたはＮＯＲ構成で構成され得る。
【０１００】
メモリ装置は、任意の組み合わせの受動および／または能動素子で形成され得る。非限定的例として、受動半導体メモリ素子は、いくつかの実施形態ではアンチヒューズ、相変化材料などの抵抗率切替え記憶素子、および任意選択的にダイオードなどのステアリング（ｓｔｅｅｒｉｎｇ）素子などを含むＲｅＲＡＭ装置要素を含む。さらに非限定的な例として、能動半導体メモリ素子は、いくつかの実施形態では、フローティングゲート、導電性ナノ粒子または電荷蓄積誘電材料などの電荷蓄積領域を含む要素を含むＥＥＰＲＯＭおよびフラッシュメモリ装置素子を含む。
【０１０１】
複数のメモリ素子は、直列に接続されるようにまたはそれぞれの素子が個々にアクセス可能であるように構成され得る。非限定的な例として、ＮＡＮＤ構成のフラッシュメモリ装置（ＮＡＮＤメモリ）は、通常、直列に接続されるメモリ素子を含む。ＮＡＮＤメモリアレイは、アレイが複数のストリング（ストリングは、単一ビットラインを共有しグループとしてアクセスされる複数のメモリ素子で構成される）のメモリで構成されるように構成され得る。代りに、メモリ素子はそれぞれの素子が個々にアクセス可能であるように構成され得る（例えば、ＮＯＲメモリアレイ）。ＮＡＮＤおよびＮＯＲメモリ構成は例示的であり、メモリ素子は他の方法で構成され得る。
【０１０２】
基板内におよび／またはその全体にわたって配置される半導体メモリ素子は、２次元メモリ構造または３次元メモリ構造などの２次元または３次元で配置され得る。
【０１０３】
２次元メモリ構造では、半導体メモリ素子は単一面または単一メモリ装置レベル内に配置される。通常、２次元メモリ構造では、メモリ素子は、メモリ素子を支援する基板の主面にほぼ平行に延伸する面内に（例えば、ｘ−ｚ方向面内に）配置される。基板は、その上にまたはその中にメモリ素子の層が形成されるウェハであり得、または形成された後にメモリ素子へ取り付けられるキャリア基板であり得る。非限定的な例として、基板はシリコンなどの半導体を含み得る。
【０１０４】
メモリ素子は、複数の行および／または列内でなど、順序付けられたアレイで単一メモリ装置レベルに配列され得る。しかし、メモリ素子は非規則的または非直交構成で配置される。各メモリ素子は２つ以上の電極またはコンタクト線（ビット線およびワード線など）を有し得る。
【０１０５】
３次元メモリアレイは、メモリ素子が複数の面または複数のメモリ装置レベルを占め、これにより構造を３次元で（すなわちｘ、ｙおよびｚ方向に）形成するように配置される。ここで、ｙ方向は基板の主面にほぼ垂直であり、ｘおよびｚ方向は基板の主面にほぼ平行である。
【０１０６】
非限定的な例として、３次元メモリ構造は、複数の２次元メモリ装置レベルの積層として垂直方向に配置され得る。別の非限定的な例として、３次元メモリアレイは、各列が各列内に複数のメモリ素子を有する複数の垂直列（例えば、基板の主面にほぼ垂直に（すなわちｙ方向に）延伸する列）として配置され得る。これらの列は、２次元構成で（例えば、ｘ−ｚ面内に）配置され、複数の垂直方向積層メモリ面上に素子を有するメモリ素子の３次元配置を生じ得る。３次元でのメモリ素子の他の構成も３次元メモリアレイを構成し得る。
【０１０７】
非限定的例として、３次元ＮＡＮＤメモリアレイでは、メモリ素子は、単一水平方向（例えば、ｘ−ｚ）メモリ装置レベル内にＮＡＮＤストリングを形成するために互いに連結され得る。代りに、メモリ素子は複数の水平方向メモリ装置レベルを横断する垂直方向ＮＡＮＤストリングを形成するために互いに結合され得る。いくつかのＮＡＮＤストリングが単一メモリレベル内にメモリ素子を含み、一方で他のストリングは、複数のメモリレベルに跨るメモリ素子を含む他の３次元構成が想定され得る。３次元メモリアレイもＮＯＲ構成およびＲｅＲＡＭ構成で設計され得る。
【０１０８】
通常、モノリシック３次元メモリアレイでは、１つまたは複数のメモリ装置レベルが単一基板の上に形成される。任意選択的に、モノリシック３次元メモリアレイはまた、少なくとも部分的に単一基板内に１つまたは複数のメモリ層を有し得る。非限定的な例として、基板はシリコンなどの半導体を含み得る。モノリシック３次元アレイでは、アレイの各メモリ装置レベルを構成する層は、通常、アレイの下位メモリ装置レベルの層上に形成される。しかし、モノリシック３次元メモリアレイの隣接メモリ装置レベルの層は、メモリ装置レベル間で共有されてもよく、またはメモリ装置レベル間に介在層を有してもよい。
【０１０９】
次に再び、２次元アレイは別々に形成され、次に複数層のメモリを有する非モノリシックメモリ装置を形成するために一緒にパッケージ化され得る。例えば、非モノリシック積層メモリは、別個の基板上にメモリレベルを形成し、次に互いの上にメモリレベルを積層することにより構築され得る。基板は、積層する前に薄くされ得るかまたはメモリ装置レベルから除去され得るが、メモリ装置レベルは別個の基板全体にわたって最初に形成されるため、結果として得られるメモリアレイはモノリシック３次元メモリアレイではない。さらに、複数の２次元メモリアレイまたは３次元メモリアレイ（モノリシックまたは非モノリシック）は、積層チップメモリ装置を形成するために別個のチップ上に形成され、次に一緒にパッケージ化され得る。
【０１１０】
通常、メモリ素子の動作およびメモリ素子との通信のために関連する回路が必要である。非限定的な例として、メモリ装置は、プログラミングおよび読み取りなどの機能を実現するためにメモリ素子を制御および駆動するために使用される回路を有し得る。この関連する回路は、メモリ素子と同じ基板上におよび／または別個の基板上に存在し得る。例えば、メモリ読み取り／書き込み動作のコントローラは、別個のコントローラチップ上におよび／またはメモリ素子と同じ基板上に配置され得る。
【０１１１】
本開示は、説明した２次元および３次元の例示的な構造に限定されないが、本明細書に記載され当業者により理解される実施形態の趣旨および範囲内のすべての関連するメモリ構造を包含することを当業者は認識するであろう。
【０１１２】
さらに、特定の部品について上に説明したが、本明細書に記載の方法、システムおよび製造品は、追加部品、より少ない部品、または異なる部品を含み得る。例えば、プロセッサは、マイクロプロセッサ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、ディスクリート論理または他のタイプの回路または論理の組み合わせとして実現され得る。同様に、メモリは、ＤＲＡＭ、ＳＲＡＭ、フラッシュまたは任意の他のタイプのメモリであり得る。フラグ、データ、データベース、表、エンティティおよび他のデータ構造は、別々に格納および管理されてもよく、単一メモリまたはデータベース内に取り込まれてもよく、分散されてもよく、または様々な方法で論理的および物理的に編成されてもよい。部品は独立に動作してもよく、または同じプログラムもしくは装置の一部であってもよい。部品は、別個の着脱可能な回路基板などの別個のハードウェア上に常駐してもよく、またはメモリからの命令を実施するために同じメモリおよびプロセッサなどの共通ハードウェアを共有してもよい。
【０１１３】
第２の行為は、第２の行為が第１の行為から直接または間接的に生じるかとは無関係に、第１の行為に「応答する」ものであると言ってよい。第２の行為は、第１の行為より実質的に後の時間に発生し得、依然として第１の行為に応答するものであり得る。同様に、第２の行為は、介在行為が第１の行為および第２の行為間に発生したとしても、および介在行為の１つまたは複数が第２の行為を直接行わせたとしても第１の行為に応答するものであると言ってよい。例えば、第２の行為は、仮に、第１の行為がフラグを設定し、かつ、その後、第３の行為が、フラグが設定されるたびに第２の行為を開始する場合でも、第１の行為に応答するものであり得る。
【０１１４】
使用を明確にするために、かつこれにより公衆への通知を提供するために、語句「＜Ａ＞、＜Ｂ＞、．．．および＜Ｎ＞の少なくとも１つ」または「＜Ａ＞、＜Ｂ＞、．．．＜Ｎ＞の少なくとも１つまたはこれらの組み合わせ」または「＜Ａ＞、＜Ｂ＞、．．．および／または＜Ｎ＞」は、本出願人により最も広範な意味で定義され、本出願人により逆の意味で明示的に主張されない限り、Ａ、Ｂ、．．．およびＮを含むグループから選択される１つまたは複数の要素を意味するためにその前または後の任意の他の暗示する定義に取って代わる。換言すれば、この語句は、任意の１つの素子のみを含むか、または列挙されない追加要素も組み合わせで含み得る他の要素の１つまたは複数と組み合わせた１つの要素を含む、要素Ａ、Ｂ、．．．またはＮの１つまたは複数の任意の組み合わせを意味する。
【０１１５】
以上の詳細な説明は、すべての実施形態の定義としてではなく、実施形態が採り得る選択された形式の例示として理解されるように意図されている。最後に、本明細書に記載される実施形態の任意のものの任意の態様は、単独でまたは互いに組み合わせて使用され得ることに留意すべきである。
「以下の項目は、国際出願時の特許請求の範囲に記載の要素である。
（項目１）
メモリシステムであって、
メモリと、
前記メモリと通信するコントローラと、
を備えており、
前記コントローラは、
バスから周辺クロックを受信し、
データクロックのエッジに応答して前記バス上でデータ信号内にデータを提供し、
前記データが前記周辺クロックの所定のエッジにおいて前記バス上で読み取り可能であるように、前記バスに提供される前記データ信号に基づいて前記周辺クロックに対して前記データクロックをシフトするように構成される、メモリシステム。
（項目２）
前記コントローラは、複数のデータクロックからの前記データクロックの選択を利用して、前記データクロックをシフトするように構成され、各データクロックのそれぞれは、前記複数のデータクロック内のいかなる他のデータクロックとも異なる、前記周辺クロックに対する位相を有する、項目１に記載のメモリシステム。
（項目３）
前記コントローラは、前記データ信号内の前記データの検知と、前記検知されたデータとチューニングパターンとの比較とに基づき、前記周辺クロックに対して前記データクロックをシフトするようにさらに構成される、項目１に記載のメモリシステム。
（項目４）
前記コントローラは、データが前記周辺クロックに対して前記バス上の前記データ信号内で検知されるときの判断に基づき、前記データクロックをシフトするようにさらに構成される、項目１に記載のメモリシステム。
（項目５）
前記コントローラは、前記周辺クロックの第１のエッジの４分の１クロック周期内の前記バス上の前記データの検知に応答して前記データクロックをシフトするように構成され、前記第１のエッジは、前記周辺クロックの初期エッジの後の１クロック周期であり、
前記データクロックの前記エッジは、前記周辺クロックの前記初期エッジに応答するものである、項目１に記載のメモリシステム。
（項目６）
前記バス上に提供される前記データは前記データクロックに対応し、
前記データクロックは、前記バス上の前記データ信号からのフィードバックと、前記周辺クロックから導出される周波数分割クロックとして設定された基準クロックとに基づいて前記データクロックを生成するように構成される遅延ロックループによりシフトされる、項目１に記載のメモリシステム。
（項目７）
遅延補償回路であって
バス上でデータ信号内においてデータを送信するように構成されるデータ遅延回路であって、前記データの送信はデータクロックのエッジにより開始される、データ遅延回路と、
前記バス上の前記データ信号からのフィードバックに従って周辺クロックに対する前記データクロックの位相を調整するように構成されるデータクロック回路と
を備えており、
前記データ遅延回路は、前記データクロックの前記位相が前記データクロック回路により調整された後、前記周辺クロックの全クロック周期の標的部分において前記バス上で前記データ信号内において前記データを送信するようにさらに構成され、
前記標的部分は前記全クロック周期の一部であり、
前記周辺クロックは前記バス上で受信される、遅延補償回路。
（項目８）
前記データクロック回路は、基準クロックおよびフィードバッククロックからマスタークロックとして前記データクロックを生成するように構成される遅延ロックループを備えており、
前記バス上の前記データ信号は前記データクロックの遅延バージョンを含み、
前記フィードバッククロックは前記バス上の前記データ信号である、項目７に記載の遅延補償回路。
（項目９）
前記基準クロックは、前記周辺クロックから導出される周波数分割クロックである、項目８に記載の遅延補償回路。
（項目１０）
前記周波数分割クロックは前記周辺クロックの周波数の３分の２であり、
前記遅延ロックループは、前記基準クロックと前記フィードバッククロックとの間の差が前記基準クロックの全クロック周期となるまでの間、前記データクロックの前記位相を調整するように構成される、項目９に記載の遅延補償回路。
（項目１１）
前記データ遅延回路は、前記遅延補償回路が校正モードであるかどうかに依存して、前記データまたは前記データクロックを前記バス上で前記データ信号内において選択的に送信するようにさらに構成される、項目７に記載の遅延補償回路。
（項目１２）
前記データクロック回路は、前記バス上の前記データ信号からのフィードバッククロックに従って前記周辺クロックに対する前記データクロックの前記位相を調整するように構成される遅延ロックループを備えており、
前記データクロックの前記位相は、前記周辺クロックと異なる周波数を有する基準クロックに対する前記フィードバッククロックの所定の遅延を形成するように調整される、項目７に記載の遅延補償回路。
（項目１３）
前記データクロック回路は、サンプリングモジュールと判断モジュールとを備えており、
前記サンプリングモジュールは、前記周辺クロックから位相がシフトされた複数のデータクロックによって記録されるサンプリングフリップフロップを備えており、
前記フリップフロップは、前記データ信号をサンプリングするように構成され、
前記判断モジュールは、前記複数のデータクロックから、前記データの前記送信を開始するための前記データクロックを選択するように構成され、
前記データクロックは、前記サンプリングフリップフロップの出力に基づいて選択される、項目７に記載の遅延補償回路。
（項目１４）
ホストからバス上で受信された周辺クロックからデータクロックを生成する工程と、
前記データクロックのエッジに応答してサンプルデータを前記バス上でデータ信号内に提供する工程であって、前記データクロックの前記エッジは前記周辺クロックの初期エッジにより引き起こされる、工程と、
前記周辺クロックの前記初期エッジと、前記サンプルデータが前記バス上で検知される時間との間の時間差に基づき、前記周辺クロックに対する前記データクロックの遅延を選択する工程と、
前記周辺クロックに対する前記選択された遅延を有する遅延データクロックを生成する工程と、
前記バス上で前記ホストから要求データの要求を受信する工程と、
前記遅延データクロックのエッジに応答して前記要求データを前記バス上に提供する工程と
を含む、方法。
（項目１５）
前記遅延を選択する工程は、フィードバッククロックとして前記バス上の前記データ信号を有する遅延ロックループと、基準クロックとして前記周辺クロックから導出されるクロックとによってマスタークロックを生成する工程を含む、項目１４に記載の方法。
（項目１６）
前記遅延データクロックを生成する工程は、前記遅延ロックループのスレーブクロックとして前記遅延データクロックを生成する工程を含み、
前記遅延ロックループは、スレーブ入力として前記周辺クロックを有する、項目１５に記載の方法。
（項目１７）
前記遅延を選択する工程は、前記周辺クロックに対して位相がシフトされたデータクロックによって記録されたサンプリングフリップフロップの出力から、前記バス上で前記サンプルデータが検知される前記時間を判断する工程を含む、項目１４に記載の方法。
（項目１８）
前記遅延を選択する工程は、前記周辺クロックの前記初期エッジと、前記サンプルデータが前記バス上で検知される前記時間との間の前記時間差が前記周辺クロックの１つの全期間の７５パーセント〜１２５パーセントに入る場合に、前記データクロックの位相へ所定の位相のシフトを加える工程を含む、項目１４に記載の方法。
（項目１９）
前記遅延を選択する工程は、複数のデータクロックから前記遅延データクロックを選択する工程を含み、
各データクロックは、前記複数のデータクロック内の他のデータクロックと異なる所定の位相のシフトを有する、項目１４に記載の方法。
（項目２０）
前記複数のデータクロックから前記遅延データクロックを選択する工程は、前記要求データを出力するために複数のデータフリップフロップから或るデータフリップフロップを選択する工程を含み、
各データフリップフロップは、１個の当該データクロックに対応することにより記録される、項目１９に記載の方法。
【図１Ａ】
0006322774.tif 000004
【図１Ｂ】
0006322774.tif 000005
【図１Ｃ】
0006322774.tif 000006
【図２】
0006322774.tif 000007
【図３】
0006322774.tif 000008
【図４】
0006322774.tif 000009
【図５】
0006322774.tif 000010
【図６】
0006322774.tif 000011
【図７】
0006322774.tif 000012
【図８】
0006322774.tif 000013