(57)【要約】  集積回路は入出力（Ｉ／Ｏ）バンク（１００）を含み得る。Ｉ／Ｏバンクは複数のバイトクロック群（５０２、５０４、５０６、５０８）を含み得る。各バイトクロック群は、バイトクロック群に結合されるソース同期装置がデータを通信する周波数でバイトクロック群の回路素子をクロック制御するよう構成される少なくとも１つの位相器（１３５）を含み得る。
2013531845.tif 000002
【特許請求の範囲】
【請求項１】
複数のバイトクロック群を含む入出力（Ｉ／Ｏ）バンクを備え、
前記複数のバイトクロック群の各々は、前記バイトクロック群に結合されるソース同期装置がデータを通信する周波数で前記バイトクロック群の回路素子をクロック制御するよう構成される位相器を含む、集積回路。
【請求項２】
前記複数のバイトクロック群の各々の前記位相器は独立して設定可能である、請求項１に記載の集積回路。
【請求項３】
前記Ｉ／Ｏバンクは、さらに、
前記ソース同期装置から受信したデータを非直列化するよう構成される複数の入力並直列変換器／直並列変換器（ＳＥＲＤＥＳ）と、
前記ソース同期装置に出力されるべきデータを直列化するよう構成される複数の出力ＳＥＲＤＥＳとを含み、
前記複数のバイトクロック群の各々内における前記位相器は、前記バイトクロック群の前記複数の入力ＳＥＲＤＥＳの各々および前記複数の出力ＳＥＲＤＥＳの各々にクロック信号をあたえるよう構成される、請求項１または２に記載の集積回路。
【請求項４】
各前記バイトクロック群は、さらに、
非同期でクロック制御される少なくとも２つのポートを含む出力先入れ先出し（ＦＩＦＯ）メモリを含み、前記出力ＦＩＦＯの出力ポートは前記位相器によってクロック制御され、
各前記バイトクロック群はさらに、
非同期でクロック制御される少なくとも２つのポートを含む入力ＦＩＦＯメモリを含み、前記入力ＦＩＦＯメモリの入力ポートは前記位相器によってクロック制御される、請求項１〜３のいずれかに記載の集積回路。
【請求項５】
前記Ｉ／Ｏバンクは、さらに、
前記複数のバイトクロック群の各々の各前記位相器の動作を調整するよう構成される物理インタフェースコントローラを含み、
前記物理インタフェースコントローラは、各前記バイトクロック群に対して、いつ前記バイトクロック群の前記位相器が前記出力ＦＩＦＯメモリからのデータをクロック制御し、前記入力ＦＩＦＯメモリ内へのデータをクロック制御するかを指定する複数のタイマを含む、請求項４に記載の集積回路。
【請求項６】
第１の動作周波数で動作するよう構成されるメモリコントローラをさらに備え、
前記Ｉ／Ｏバンクは前記メモリコントローラに結合され、
前記Ｉ／Ｏバンクは、前記第１の動作周波数で前記メモリコントローラと通信し、第２の異なる動作周波数でメモリ装置と通信するよう構成される、請求項１〜５のいずれかに記載の集積回路。
【請求項７】
前記位相器は、さらに、
第１の読出要求に応答してストローブ信号で受信した前記ソース同期装置からのパルスをカウントするよう構成されるパルスコントローラを含み、前記パルスコントローラは、所定の数の期待されるパルスの最後のパルスを検出するよう構成され、
前記位相器はさらに、
前記パルスコントローラに結合され、前記パルスコントローラから受信した指令に応答して前記ストローブ信号または基準信号を選択的に通過させるよう構成されるマルチプレクサを含み、前記基準信号は、前記ストローブ信号と位相および周波数が整列され、
前記パルスコントローラが前記最後のパルスを検出するのに応答して、前記パルスコントローラは、前記ストローブ信号の代わりに前記基準信号を通過させるよう前記マルチプレクサに指示するよう構成される、請求項１〜６のいずれかに記載の集積回路。
【請求項８】
前記位相器は、さらに、
ある遅延の量を基準信号に適用するよう構成される遅延線と、
前記遅延線に結合されるとともに、前記遅延線から出力される前記基準信号のバージョンから、第１の分周された信号および第２の分周された信号を生成するよう構成される少なくとも１つの分周器とを含み、前記第１の分周された信号および前記第２の分周された信号は同じ周波数で、かつ異なる位相を有し、
前記位相器はさらに、
ストローブ信号と前記第１の分周された信号または前記第２の分周された信号の少なくとも１つとの間の位相関係を判断するよう構成される位相検出器と、
前記少なくとも１つの分周器に結合される出力セレクタとを含み、前記出力セレクタは前記遅延線によって適用される前記遅延の量における調整を示すカウンタに従って前記第１の分周された信号または前記第２の分周された信号を通過させるよう構成され、
前記遅延線は、前記位相検出器によって判断される前記位相関係に応答して、前記基準信号に適用される前記遅延の量を調整し、
前記遅延線がロールオーバーすることに応答して、前記第２の分周された信号が出力される、請求項１〜７のいずれかに記載の集積回路。
【請求項９】
前記位相器は、さらに、
ストローブ信号をオーバーサンプリングする複数のサンプリングフリップフロップを含み、前記複数のサンプリングフリップフロップの各々は、異なる位相で、かつ前記ストローブ信号の周波数とおよそ同じ周波数を有するクロック信号によってクロック制御され、
前記位相器はさらに、
前記ソース同期装置に送られる読出要求を検出し、前記ストローブ信号をオーバーサンプリングする前記複数のサンプリングフリップフロップから受信した値に従って前記読出要求と前記ストローブ信号の第１のパルスとの間の時間の量を判断するよう構成されるコントローラと、
後続の読出要求に応答して、前記時間の量に対して前記ストローブ信号をゲート制御するよう構成されるスケルチ回路とを含む、請求項１〜８のいずれかに記載の集積回路。
【請求項１０】
集積回路（ＩＣ）のための動作の方法であって、
前記ＩＣの入出力（Ｉ／Ｏ）バンク内において複数のバイトクロック群を規定するステップを備え、各前記バイトクロック群は位相器を含み、
前記方法はさらに、
前記バイトクロック群の前記位相器を用いて、前記バイトクロック群に結合されるソース同期装置が通信する周波数で各前記バイトクロック群の回路素子をクロック制御するステップを備える、方法。
【請求項１１】
前記ソース同期装置から受信したデータを非直列化するステップと、
前記ソース同期装置に出力されるデータを直列化するステップと、
各前記バイトクロック群に対して、前記バイトクロック群内において前記位相器から、
前記非直列化および前記直列化のためのクロック信号と、
非同期でクロック制御される少なくとも２つのポートを含む出力先入れ先出し（ＦＩＦＯ）メモリの出力ポートをクロック制御するためのクロック信号と、
非同期でクロック制御される少なくとも２つのポートを含む入力ＦＩＦＯメモリの入力ポートをクロック制御するためのクロック信号とをあたえるステップとをさらに備える、請求項１０に記載の方法。
【請求項１２】
第１の動作周波数でメモリコントローラを動作させるステップをさらに備え、前記Ｉ／Ｏバンクは前記メモリコントローラに結合され、
前記方法はさらに、
前記Ｉ／Ｏバンクが、前記第１の動作周波数で前記メモリコントローラと通信するとともに、第２の異なる動作周波数でメモリ装置と通信するステップを備える、請求項１０または１１に記載の方法。
【請求項１３】
第１の読出要求に応答してストローブ信号において受信した前記ソース同期装置からのパルスをカウントするステップと、
所定の数の期待されるパルスの最後のパルスを検出するステップと、
前記最後のパルスを検出することに応答して、前記ストローブ信号の代わりに基準信号を通過させるステップとをさらに備え、前記基準信号は、前記ストローブ信号と位相および周波数が整列される、請求項１０〜１２のいずれかに記載の方法。
【請求項１４】
ある遅延の量を基準信号に適用するステップと、
前記遅延の量が適用される前記基準信号のバージョンから、第１の分周された信号および第２の分周された信号を生成するステップとをさらに備え、前記第１の分周された信号および前記第２の分周された信号は同じ周波数で、かつ異なる位相を有し、
前記方法はさらに、
ストローブ信号と、前記第１の分周された信号または前記第２の分周された信号の少なくとも１つとの間の位相関係を判断するステップと、
前記位相関係に応答して、前記基準信号に適用される前記遅延の量を調整するステップと、
前記基準信号に適用される前記遅延の量を示すカウンタに従って前記第１の分周された信号または前記第２の分周された信号を通過させるステップと、
前記遅延の量がロールオーバーすることに応答して、前記第２の分周された信号を出力するステップとを備える、請求項１０〜１３のいずれかに記載の方法。
【請求項１５】
複数のサンプリングフリップフロップを用いてストローブ信号をオーバーサンプリングするステップをさらに備え、前記複数のサンプリングフリップフロップの各々は、異なる位相で、かつ前記ストローブ信号の周波数とおよそ同じ周波数を有するクロック信号によってクロック制御され、
前記方法はさらに、
前記ソース同期装置に送られる読出要求を検出するステップと、
前記ストローブ信号をオーバーサンプリングする前記複数のサンプリングフリップフロップから受信した値に従って前記読出要求と前記ストローブ信号の第１のパルスとの間の時間の量を判断するステップと、
後続の読出要求に応答して、前記時間の量に対して前記ストローブ信号をスケルチングするステップとを備える、請求項１０〜１４のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
発明の分野
この明細書内において開示される１つ以上の実施例は、集積回路（ＩＣ）に関する。特に、１つ以上の実施例は、ＩＣ内における使用のための入出力（Ｉ／Ｏ）バンクアーキテクチャに関する。
【背景技術】
【０００２】
背景
プログラマブルな集積回路（ＩＣ）デバイスは、指定された論理関数を実行するようにプログラミングすることができる周知の種類のＩＣである。１つの種類のプログラマブルＩＣであるフィールドプログラマブルゲートアレイ（ＦＰＧＡ）は、典型的には、プログラマブルなタイルのアレイを含む。これらのプログラマブルなタイルは、たとえば、入出力ブロック（ＩＯＢ）、コンフィギュラブル論理ブロック（ＣＬＢ）、専用のランダムアクセスメモリブロック（ＢＲＡＭ）、乗算器、デジタル信号処理ブロック（ＤＳＰ）、プロセッサ、クロックマネージャ、遅延ロックループ（ＤＬＬ）などを含み得る。
【０００３】
各プログラマブルなタイルは、典型的には、プログラマブル相互接続回路およびプログラマブル論理回路の両方を含む。プログラマブル相互接続回路は、典型的には、プログラマブル相互接続点（ＰＩＰ）によって相互接続された、長さの異なる多数の相互接続線を含む。プログラマブル論理回路は、たとえば、関数発生器、レジスタ、算術論理などを含み得るプログラマブル素子を用いて、ユーザ設計の論理を実現する。
【０００４】
プログラマブル相互接続回路およびプログラマブル論理回路は、典型的には、プログラマブル素子がどのように構成されるかを定義する一連の設定データを内部設定メモリセルにロードすることによってプログラミングされる。設定データは、メモリから（たとえば、外部ＰＲＯＭから）読出し可能であるか、または外部装置によってＦＰＧＡに書込み可能である。そして、個々のメモリセルの集団状態がＦＰＧＡの機能を決定する。
【０００５】
別の種類のプログラマブルＩＣとして、複合プログラマブル論理デバイス（complex programmable logic device）、すなわちＣＰＬＤが挙げられる。ＣＰＬＤは２つ以上の「機能ブロック」を含み、これらの２つ以上の「機能ブロック」は互いに接続され、相互接続スイッチマトリックスによって入出力（Ｉ／Ｏ）リソースに接続される。ＣＰＬＤの各機能ブロックは、プログラマブル論理アレイ（ＰＬＡ）およびプログラマブルアレイ論理（ＰＡＬ）デバイスにおいて使用されるものと同様の２レベルのＡＮＤ／ＯＲ構造を含む。ＣＰＬＤにおいては、設定データは、典型的には、不揮発性メモリにおいてオンチップで記憶される。いくつかのＣＰＬＤにおいては、設定データは、不揮発性メモリにおいてオンチップで記憶され、次いで、初期設定（プログラミング）シーケンスの一部として揮発性メモリにダウンロードされる。
【０００６】
これらのプログラマブルＩＣのすべてについて、デバイスの機能は、その目的のためにデバイスにあたえられるデータビットによって制御される。データビットは、揮発性メモリ（たとえば、ＦＰＧＡおよびいくつかのＣＰＬＤにあるようなスタティックメモリセル）、不揮発性メモリ（たとえば、いくつかのＣＰＬＤにあるようなＦＬＡＳＨメモリ）、または任意の他の種類のメモリセルに記憶され得る。
【０００７】
他のプログラマブルＩＣは、デバイス上でさまざまな素子をプログラマブルに相互接続する金属層などの処理層を適用することよってプログラミングされる。これらのプログラマブルＩＣはマスクプログラマブルデバイスとして公知である。プログラマブルＩＣは、さらに、たとえば、ヒューズ技術またはアンチヒューズ技術を用いる他の態様でも実現可能である。「プログラマブルＩＣ」という語句は、これらのデバイスを含み得るが、それらに限定はされず、部分的にのみプログラマブルなデバイスも含み得る。たとえば、ある種類のプログラマブルＩＣは、ハードコード化されたトランジスタ論理と、ハードコード化されたトランジスタ論理をプログラマブルに相互接続するプログラマブルなスイッチファブリックとの組合せを含む。
【発明の概要】
【課題を解決するための手段】
【０００８】
概要
この明細書内に開示される１つ以上の実施例は、集積回路（ＩＣ）、およびより特に、ＩＣ内における使用のための入出力（Ｉ／Ｏ）バンクアーキテクチャに関する。
【０００９】
ある実施例は、Ｉ／Ｏバンクを含むＩＣを含み得る。Ｉ／Ｏバンクは１つ以上のバイトクロック群を含み得る。バイトクロック群の各々は位相器を含み得る。位相器は、バイトクロック群に結合されるソース同期装置がデータを通信する周波数でバイトクロック群の回路素子をクロック制御するよう構成され得る。
【００１０】
バイトクロック群の各々の位相器は独立して設定可能であり得る。
Ｉ／Ｏバンクは、ソース同期装置から受信したデータを非直列化するよう構成される１つ以上の入力並直列変換器／直並列変換器（serializer/deserializer）（ＳＥＲＤＥＳ）を含み得る。Ｉ／Ｏバンクは、さらに、ソース同期装置に出力されるデータを直列化するよう構成される１つ以上の出力ＳＥＲＤＥＳを含み得る。バイトクロック群の各々内における位相器は、バイトクロック群の入力ＳＥＲＤＥＳの各々および出力ＳＥＲＤＥＳの各々にクロック信号をあたえるよう構成され得る。
【００１１】
各バイトクロック群は、さらに、非同期でクロック制御される少なくとも２つのポートを有する出力先入れ先出し（ＦＩＦＯ）メモリを含み得、出力ＦＩＦＯの出力ポートは位相器によってクロック制御される。各バイトクロック群は、さらに、非同期でクロック制御される少なくとも２つのポートを有する入力ＦＩＦＯメモリを含み得、入力ＦＩＦＯメモリの入力ポートは位相器によってクロック制御される。
【００１２】
Ｉ／Ｏバンクは、バイトクロック群の各々の各位相器の動作を調整するよう構成される物理インタフェースコントローラを含み得る。物理インタフェースコントローラは、各バイトクロック群に対して、いつバイトクロック群の位相器が出力ＦＩＦＯメモリからのデータをクロック制御し、いつ入力ＦＩＦＯメモリ内へのデータをクロック制御するかを指定する、１つ以上のタイマを含み得る。
【００１３】
ＩＣは、さらに、第１の動作周波数で動作するよう構成されるメモリコントローラを含み得る。Ｉ／Ｏバンクはメモリコントローラに結合され得る。Ｉ／Ｏバンクは、第１の動作周波数でメモリコントローラと通信し、第２の異なる動作周波数でメモリ装置と通信するよう構成され得る。
【００１４】
１つの局面において、位相器は、第１の読出要求に応答してストローブ信号で受信される、ソース同期装置からのパルスをカウントするよう構成されたパルスコントローラを含み得る。パルスコントローラは、所定の数の期待されるパルスの最後のパルスを検出するよう構成され得る。位相器は、さらに、パルスコントローラに結合されるとともに、パルスコントローラから受信した指令に応答してストローブ信号または基準信号を選択的に通過させるよう構成されるマルチプレクサを含み得る。基準信号は、ストローブ信号と位相および周波数が整列される。パルスコントローラが最後のパルスを検出するのに応答して、パルスコントローラは、ストローブ信号の代わりに基準信号を通過させるようマルチプレクサに指示するよう構成され得る。
【００１５】
別の局面において、位相器は、基準信号に或る遅延の量を適用するよう構成される遅延線と、遅延線に結合され、遅延線から出力される基準信号のバージョンから、第１の分周された信号および第２の分周された信号を生成するよう構成される少なくとも１つの分周器とを含み得る。第１の分周された信号および第２の分周された信号は同じ周波数で、かつ異なる位相を有し得る。位相器は、さらに、ストローブ信号と第１の分周された信号または第２の分周された信号の少なくとも１つとの間の位相関係を判断するよう構成される位相検出器と、少なくとも１つの分周器に結合される出力セレクタとを含み得る。出力セレクタは遅延線によって適用される遅延の量における調整を示すカウンタに従って第１の分周された信号または第２の分周された信号を通過させるよう構成され得る。遅延線は、位相検出器によって判断される位相関係に応答して、基準信号に適用される遅延の量を調整することができる。遅延線がロールオーバーすることに応答して、第２の分周された信号が出力され得る。
【００１６】
さらに別の局面においては、位相器は、ストローブ信号をオーバーサンプリングするよう構成される２つ以上のサンプリングフリップフロップを含み得る。サンプリングフリップフロップの各々は、異なる位相で、かつストローブ信号の周波数とおよそ同じ周波数を有するクロック信号によってクロック制御され得る。位相器は、さらに、ソース同期装置に送られる読出要求を検出し、ストローブ信号をオーバーサンプリングする複数のサンプリングフリップフロップから受信した値に従って、読出要求とストローブ信号の第１のパルスとの間の時間の量を判断するよう構成されるコントローラを含み得る。位相器は、さらに、後続の読出要求に応答して、時間の量に対してストローブ信号をゲート制御するよう構成されるスケルチ回路を含み得る。
【００１７】
複数のバイトクロック群の各々内における少なくとも１つの位相器は、ソース同期装置がデータを通信する周波数とおよそ等しい周波数を有する第１のクロック信号、および第１のクロック信号の分周されたものである第２のクロック信号を生成するよう構成され得る。複数のバイトクロック群の各々内における少なくとも１つの位相器は、第１のクロック信号の位相から９０度シフトされた第３のクロック信号を生成するよう構成され得る。複数のバイトクロック群の各々内において、少なくとも１つの位相器は、複数の入力ＳＥＲＤＥＳおよび複数の出力ＳＥＲＤＥＳに隣接し得る。各バイトクロック群は、さらに、非同期でクロック制御される少なくとも２つのポートを含む出力先入れ先出し（ＦＩＦＯ）メモリを含み得、出力ＦＩＦＯの出力ポートは少なくとも１つの位相器によってクロック制御され、各バイトクロック群はさらに、非同期でクロック制御される少なくとも２つのポートを含む入力ＦＩＦＯメモリを含み得、入力ＦＩＦＯメモリの入力ポートは少なくとも１つの位相器によってクロック制御される。
【００１８】
複数のバイトクロック群の各々は、さらに、ソース同期装置から受信したデータを非直列化するよう構成される複数の入力並直列変換器／直並列変換器（ＳＥＲＤＥＳ）と、ソース同期装置に出力されるデータを直列化するよう構成される複数の出力ＳＥＲＤＥＳと、非同期でクロック制御される少なくとも２つのポートを含む入力先入れ先出し（ＦＩＦＯ）メモリとを含み得、入力ＦＩＦＯメモリの入力ポートは、複数入力のＳＥＲＤＥＳに結合されるとともに、非直列化されたデータを受取るよう構成され、複数のバイトクロック群の各々はさらに、非同期でクロック制御される少なくとも２つのポートを含む出力ＦＩＦＯメモリを含み得、出力ＦＩＦＯメモリの出力ポートは、複数の出力ＳＥＲＤＥＳに結合され、バイトクロック群内における少なくとも１つの位相器は、複数の出力ＳＥＲＤＥＳの各々、複数の入力ＳＥＲＤＥＳの各々、入力ＦＩＦＯメモリの入力ポート、および出力ＦＩＦＯメモリの出力ポートをクロック制御し、入力ＦＩＦＯメモリの入力ポートの書込み可能化および出力ＦＩＦＯメモリの出力ポートの読出し可能化を制御して、入力ＦＩＦＯメモリへのデータフローおよび出力ＦＩＦＯメモリからのデータフローを制御する。Ｉ／Ｏバンクは複数の異なるソース同期インタフェースの１つを実現するよう構成可能であり得る。
【００１９】
ある実施例は、集積回路内において配置された入出力（Ｉ／Ｏ）バンクを含み得る。Ｉ／Ｏバンクは、第１のクロックソースを含む第１のバイトクロック群を含み得、第１のクロックソースは、おおよそ、第１のバイトクロック群に結合される第１のソース同期装置がデータを通信する周波数で動作する、第１のバイトクロック群内における回路素子をクロック制御するよう構成される。Ｉ／Ｏバンクはさらに、第２のクロックソースを含む第２のバイトクロック群を含み得、第２のクロックソースは、おおよそ、第２のバイトクロック群に結合される第２のソース同期装置がデータを通信する周波数で動作する、第２のバイトクロック群内における回路素子をクロック制御するよう構成され、第１のクロックソースは第２のクロックソースに依存しない。
【００２０】
第１のバイトクロック群は、さらに、第１のクロックソースによってクロック制御される入力ポートを介してデータを受取るよう構成される入力先入れ先出し（ＦＩＦＯ）メモリと、第１のクロックソースによってクロック制御される出力ポートを介してデータを出力するよう構成される出力ＦＩＦＯメモリとを含み得、第２のバイトクロック群は、さらに、第２のクロックソースによってクロック制御される入力ポートを介してデータを受取るよう構成される入力ＦＩＦＯメモリと、第２のクロックソースによってクロック制御される出力ポートを介してデータを出力するよう構成される出力ＦＩＦＯメモリとを含み得る。
【００２１】
第１のバイトクロック群の入力ＦＩＦＯメモリおよび第２のバイトクロック群の入力ＦＩＦＯメモリは、各々、入力ポートと異なる周波数で動作するよう構成される出力ポートを含み得る。第１のバイトクロック群の出力ＦＩＦＯメモリおよび第２のバイトクロック群の出力ＦＩＦＯメモリは、各々、出力ポートと異なる周波数で動作するよう構成される入力ポートを含み得る。第１のクロックソースおよび第２のクロックソースは、各々、Ｉ／Ｏバンクの入出力回路に隣接して位置し得る。
【００２２】
集積回路のある実施例は、入出力（Ｉ／Ｏ）バンクと、Ｉ／Ｏバンク内に配置された複数のバイトクロック群とを含み得、複数のバイトクロック群の各々は異なるソース同期インタフェースを実現するよう独立して設定可能である。各バイトクロック群は、ソース同期装置がデータをバイトクロック群に通信する周波数で動作するバイトクロック群の回路素子をクロック制御するよう構成される少なくとも１つの位相器と、複数の並直列変換器／直並列変換器に結合される複数のＩ／Ｏブロックを含むＩ／Ｏ回路とを含み得、Ｉ／Ｏ回路は少なくとも１つの位相器によってクロック制御され、各バイトクロック群はさらに、Ｉ／Ｏ回路に結合される少なくとも１つの先入れ先出し（ＦＩＦＯ）メモリを含み得、少なくとも１つのＦＩＦＯメモリは、第１の周波数でクロック制御される第１のポート、および第２の周波数でクロック制御される第２のポートを含み得、第１のポートまたは第２のポートの少なくとも１つは、少なくとも１つの位相器によってクロック制御される。
【００２３】
複数のバイトクロック群の各々内における少なくとも１つの位相器は、さらに、ソース同期装置がデータを通信する周波数とおよそ等しい周波数を有する第１のクロック信号、第１のクロック信号の分周されたものである第２のクロック信号、および第１のクロック信号の位相から９０度シフトされた第３のクロック信号を生成するよう構成され得る。複数のバイトクロック群の各々内における少なくとも１つの位相器は、バイトクロック群のＩ／Ｏ回路に隣接して位置し得る。Ｉ／Ｏバンクは、複数のバイトクロック群の各々の各位相器の動作を調整するよう構成される物理インタフェースコントローラを含み得、物理インタフェースコントローラは、各バイトクロック群に対して、バイトクロック群の少なくとも１つの位相器が少なくとも１つのＦＩＦＯメモリからの、または少なくとも１つのＦＩＦＯメモリへのデータをいつクロック制御するかを指定する複数のタイマを含み得る。物理インタフェースコントローラは、第１の周波数に対応する第１のデータレートで制御ワードを受信し、第２の周波数に対応する第２のデータレートで制御ワードを実行するよう、構成され得る。
【００２４】
別の実施例は、ＩＣのための動作の方法を含み得る。この方法は、ＩＣのＩ／Ｏバンク内における１つ以上のバイトクロック群を規定するステップを含み得、バイトクロック群は位相器を含む。この方法は、さらに、バイトクロック群の位相器を用いて、バイトクロック群に結合されるソース同期装置が通信する周波数で各バイトクロック群の回路素子をクロック制御するステップを含み得る。
【００２５】
この方法は、ソース同期装置から受信したデータを非直列化するステップと、ソース同期装置に出力されるデータを直列化するステップとを含み得る。各バイトクロック群に対して、この方法は、バイトクロック群内において位相器から：非直列化および直列化のためのクロック信号；非同期でクロック制御される少なくとも２つのポートを有する出力ＦＩＦＯメモリの出力ポートをクロック制御するためのクロック信号；および非同期でクロック制御される少なくとも２つのポートを有する入力ＦＩＦＯメモリの入力ポートをクロック制御するためのクロック信号をあたえるステップを含み得る。
【００２６】
この方法は、さらに、第１の動作周波数でメモリコントローラを動作させるステップを含み得、Ｉ／Ｏバンクはメモリコントローラに結合され、Ｉ／Ｏバンクは、第１の動作周波数でメモリコントローラと通信するとともに、第２の異なる動作周波数でメモリ装置と通信する。
【００２７】
この方法は、さらに、第１の読出要求に応答してストローブ信号において受信される、ソース同期装置からのパルスをカウントするステップと、所定の数の期待されるパルスの最後のパルスを検出するステップと、最後のパルスを検出することに応答してストローブ信号の代わりに基準信号を通過させるステップとを含み得る。基準信号は、ストローブ信号と位相および周波数が整列され得る。
【００２８】
この方法は、基準信号に或る遅延の量を適用するステップと、遅延の量が適用される基準のバージョンから第１の分周された信号および第２の分周された信号を生成するステップとをさらに含み得、第１の分周された信号および第２の分周された信号は同じ周波数でかつ異なる位相を有し、前記方法はさらに、ストローブ信号と、第１の分周された信号または第２の分周された信号の少なくとも１つとの間の位相関係を判断するステップを含み得る。基準信号に適用される遅延の量は、位相関係に応答して調整することができる。この方法は、さらに、基準信号に適用される遅延の量を示すカウンタに従って第１の分周された信号または第２の分周された信号を通過させるステップと、遅延の量がロールオーバーすることに応答して、第２の分周された信号を出力するステップとを含み得る。
【００２９】
この方法は、２つ以上のサンプリングフリップフロップを用いて、ストローブ信号をオーバーサンプリングするステップを含み得、サンプリングフリップフロップの各々は、異なる位相でかつストローブ信号の周波数とおよそ同じ周波数を有するクロック信号によってクロック制御され、前記方法はさらに、ソース同期装置に送られる読出要求を検出するステップと、ストローブ信号をオーバーサンプリングするサンプリングフリップフロップから受信した値に従って読出要求とストローブ信号の第１のパルスとの間の時間の量を判断するステップとを含み得る。ストローブ信号は、後続の読出要求に応答して、時間の量に対してスケルチングすることができる。
【図面の簡単な説明】
【００３０】
【図１】この明細書内に開示される実施例に従う集積回路（ＩＣ）の入出力（Ｉ／Ｏ）バンクを例示する第１のブロック図である。
【図２】この明細書内に開示される別の実施例に従うＩＣのＩ／Ｏバンクの一部を例示する第２のブロック図である。
【図３】この明細書内に開示される別の実施例に従うＩ／Ｏバンクの別の局面を例示する第３のブロック図である。
【図４】この明細書内に開示される別の実施例に従うＩ／Ｏバンクの別の局面を例示する第４のブロック図である。
【図５】この明細書内に開示される別の実施例に従うＩ／Ｏバンクの別の局面を例示する第５のブロック図である。
【図６】この明細書内に開示される別の実施例に従ってＩＣ内に配置されるメモリインタフェースシステムを例示する第６のブロック図である。
【図７】この明細書内に開示される別の実施例に従ってストローブ信号を管理するためのシステムを例示する第７のブロック図である。
【図８】この明細書内に開示される別の実施例に従って信号を遅延させるためのシステムを例示する第８のブロック図である。
【図９】この明細書内に開示される別の実施例に従ってストローブ信号を処理するためのシステムを例示する第９のブロック図である。
【図１０】この明細書内に開示される別の実施例に従うストローブ検出器を例示する第１０のブロック図である。
【図１１】この明細書内に開示される別の実施例に従って検出および／または測定することができるストローブ信号の異なる状態を例示する信号図である。
【図１２】この明細書内に開示される別の実施例に従ってストローブ信号をオーバーサンプリングすることによって判断されるビットのストリームの例である。
【発明を実施するための形態】
【００３１】
図面の詳細な説明
明細書は新規であるとして見なされる１つ以上の実施例の特徴を規定する請求項で終えているが、それら１つ以上の実施例は図面とあわせた記載の考察から一層よく理解されると考えられる。必要に応じて、１つ以上の詳細な実施例がここに開示されるが、開示される１つ以上の実施例は単に例示的であることが理解されるべきである。したがって、この明細書内に開示される具体的な構造上および機能上の詳細は限定的に解釈されるべきではなく、単に、請求項に対する基礎、および事実上任意の適切に詳細な構造において発明の構成をさまざまに用いるよう当業者に教示する代表的な基礎として解釈されるべきである。さらに、ここに用いられる用語および語句は、限定的であるようには意図されず、ここに開示される１つ以上の実施例の理解可能な記載をあたえるよう意図される。
【００３２】
この明細書内に開示される１つ以上の実施例は、集積回路（ＩＣ）、およびより特に、ＩＣ内における使用のための入力および出力のバンクに関する。ここに開示される１つ以上の実施例によれば、ソース同期装置との通信を容易にする、入力および出力のバンク（Ｉ／Ｏバンク）に対するアーキテクチャがあたえられる。このアーキテクチャにより、Ｉ／Ｏバンクは、オフチップに位置された１つ以上のソース同期装置と通信するための独立して設定可能な１つ以上のインタフェースとして利用できる。
【００３３】
１つの局面においては、Ｉ／Ｏバンク自体内において、たとえば、ソース同期インタフェースを実現するために用いられるＩ／Ｏバンクの特定のピンに対して局在してクロックリソースを含み得る。クロック機能に対するより大きな制御レベルは、Ｉ／Ｏバンク自体内におけるクロック生成および管理リソースの包含を通して達成することができる。クロック機能に対するさらなる制御は、各クロックリソースによって制御されるＩ／Ｏバンク内のピンの数を制限することによって、容易になり得る。制限されたピンの組に対するＩ／Ｏバンク内のクロック生成および管理のこの局所的な方策は、他の従来のＩ／Ｏバンクアーキテクチャより低いスキューおよびより高い性能をあたえる。従来のＩ／Ｏバンクは、たとえば、典型的には、ＩＣの全体にわたって多くの回路素子を駆動する１つ以上の大域クロックを含むか、またはそのような大域クロックによって駆動される。大域クロック信号は、Ｉ／Ｏバンクに関して局所的には生成されず、クロック信号においてジッタ、遅延などを誘発するローディング効果の影響を受け、それによって、同期インタフェースとしてＩ／Ｏバンクの精度および信頼性を低減する。
【００３４】
図１は、この明細書内に開示される実施例に従う集積回路のＩ／Ｏバンク１００を例示する第１のブロック図である。Ｉ／Ｏバンク１００は、Ｉ／Ｏバンク１００が配置されるＩＣとさまざまな異なる種類のソース同期装置のいずれかとの間の通信を容易にするソース同期インタフェースを実現するよう構成され得る。ある実施例において、Ｉ／Ｏバンク１００のような１つ以上のＩ／Ｏバンクを実現することができるＩＣは、プログラマブルＩＣであり得る。しかしながら、ここに開示される１つ以上の実施例は、プログラマブルＩＣ内における実現または使用に限定されるようには意図されない。むしろ、Ｉ／Ｏバンク１００は、さまざまな異なる種類のＩＣの任意のものにおいて実現することができる。たとえば、Ｉ／Ｏバンク１００は、内蔵メモリコントローラ、特定用途向けＩＣ、混合信号ＩＣまたは他の種類の非プログラマブルＩＣを有するプロセッサ内において実現することができる。
【００３５】
Ｉ／Ｏバンク１００に結合され得るソース同期装置の一例は、メモリ装置である。Ｉ／Ｏバンク１００は、さまざまなデュアルデータレート（ＤＤＲ）同期ダイナミックＲＡＭ（ＳＤＲＡＭ）装置のうちの任意のものに結合され得る。ＤＤＲタイプのＳＤＲＡＭ装置の例は、ＤＤＲタイプのメモリ装置、ＤＤＲ２タイプのメモリ装置、ＤＤＲ３タイプのメモリ装置、低パワーＤＤＲ（ＬＰＤＤＲまたはモバイルＤＤＲ）タイプのメモリ装置などを含み得るが、それらに限定はされない。さらなる例は、クアッドデータレートＩＩ（ＱＤＲＩＩ）、レイテンシ低減ダイナミックＲＡＭ（ＲＬＤＲＡＭＩＩ）、ネットワーキングソース、マルチメディアソースなどを含み得るが、それらに限定はされない。
【００３６】
一般に、Ｉ／Ｏバンク１００は、複数のＩＯＢ１０５、複数のＩ／Ｏ相互接続タイル（ＩＯＩ）１１０、相互接続ブロック１１５、および複数のＩ／Ｏ先入れ先出しメモリ（Ｉ／Ｏ  ＦＩＦＯ）１２０を含み得る。Ｉ／Ｏバンク１００は、さらに、位相ロックループ（ＰＬＬ）１２５、物理インタフェースコントローラ（ＰＨＹコントローラ）１３０、および複数の位相器１３５を含み得る。まとめて、ＩＯＢ１０５およびＩＯＩ１１０はＩ／Ｏバンク１００のＩ／Ｏ回路を形成する。ＩＯＢ１０５は、入出力機能を実施する１つ以上の回路素子を表す。各ＩＯＢは、たとえば、双方向動作に対して構成され得、したがって、入力バッファと出力バッファとを含み得る。入力バッファおよび出力バッファは、信号、たとえば単一のビット信号を出力バッファを介してＩＣの外部の目標に出力することができるか、または入力バッファを介してＩＣの外部のソースから信号を受信することが可能なＩＣのパッドに結合され得る。ＩＯＢ１０５はＩＯＩ１１０に結合される。一般に、ＩＯＩ１１０は複数の並直列変換器および複数の直並列変換器を含み得る。
【００３７】
示されるように、ＩＯＩ１１０は相互接続ブロック１１５に結合され得、それは次いでＩ／Ｏ  ＦＩＦＯ１２０に結合される。１つ以上の実施例においては、相互接続ブロック１１５は、回路の２つの異なるコラムにおいて構成可能な回路素子を結合するよう用いられる相互接続回路として実現することができる。この点において、Ｉ／Ｏ  ＦＩＦＯ１２０はＩＯＩ１１０によって分離される一方で、相互接続ブロック１１５は少なくとも一部が構成可能であり得るルーティングリソースを含むので、Ｉ／Ｏ  ＦＩＦＯ１２０はＩＯＩ１１０に隣接して配置されると言うことができる。
【００３８】
相互接続ブロック１１５は、ＩＯＩ１１０とＩ／Ｏ  ＦＩＦＯ１２０との間のプログラマブルなルーティングを容易にするよう相互接続をあたえる。たとえば、ＩＣがプログラマブルＩＣである場合に、Ｉ／Ｏ  ＦＩＦＯ１２０をＩＯＩ１１０と結合する経路は、プログラマブルＩＣの設定メモリセルにロードされる設定データに従って判断することができる。相互接続ブロック１１５は、さらに、たとえば、ＩＣがフィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなプログラマブルＩＣとして構成されるときに、ＩＣのユーザに指定された回路を実現するプログラマブルなファブリックからＩＯＩ１１０へのアクセスをあたえる。
【００３９】
相互接続ブロック１１５は、ＩＯＩ１１０とＩ／Ｏ  ＦＩＦＯ１２０との間において、プログラマブルな接続性をあたえるが、ここに記載される１つ以上の信号は、相互接続ブロック１１５によって表される領域にわたって直接ルーティングすることができる。直接的なルートは、より感度のよい信号に対するより高速かつ効率的な信号ルーティングを容易にする。信号ルートは、たとえば、「ハード化された」と考えることができるか、または「ハード回路」であると言える。したがって、ハード化されたルートは、プログラマブルなルートと比較して、信号においてジッタおよび遅延のようなより少数のアーティファクトを誘導する。
【００４０】
「ハード回路」は、ＩＣ内において実現される回路ブロックあるいはワイヤである、予め定められ、したがって予め設定される回路、たとえば経路を指す。ハード回路は、たとえば、時にはいくつかの点において少なくとも部分的に設定可能であるが、プログラマブルＩＣに設定データをロードすることによっては具体化されない。ハード回路は、設定データがロードされるかどうかに関係なくプログラマブルＩＣに存在し、一般には、ここに記載されるさまざまなブロックがそうであるように、特定の目的に専用である。
【００４１】
比較して、「ソフト回路」は、ソフトウェア、たとえば、ハードウェア記述言語、ネットリストなどを用いて指定される回路のプログラムの記述を用いて指定される回路設計を指す。回路設計のプログラムの記述は変換され、たとえば、プログラマブルＩＣの設定メモリセルにロードされ得る設定データ内にコンパイルされる。設定データを設定メモリセルにロードすることは、プログラマブルＩＣ内において回路設計を効果的に具体化する。特に、設定データは、プログラマブルＩＣにロードされると、プログラマブルＩＣ内において一般的なプログラマブルまたは設定可能な回路を構成して、指定された回路設計および／またはルート、たとえば配線を実施する。
【００４２】
Ｉ／Ｏ  ＦＩＦＯ１２０は、１つ以上の入力ＦＩＦＯメモリおよび１つ以上の出力ＦＩＦＯメモリを含み得る。各出力ＦＩＦＯメモリは、ＩＣからソース同期装置にデータおよび／またはコマンドを送るよう構成され得る。各入力ＦＩＦＯメモリは、ＩＣ内においてソース同期装置からデータを受取るよう構成され得る。Ｉ／Ｏ  ＦＩＦＯ１２０の各々は、非同期クロックドメイン境界を実現するよう構成され得る。たとえば、Ｉ／Ｏ  ＦＩＦＯ１２０の各々は、ソース同期装置の動作周波数（ＳＳＤ周波数）とおよそ等しい第１の周波数で動作するよう構成される１つのポート、およびＩＣ内における１つ以上の他のシステムが動作するよう構成されるかまたはされ得る、第２の、典型的にはより遅い周波数（ＩＣ周波数）で動作するよう構成される第２のポートを含み得る。
【００４３】
ＰＬＬ１２５は、たとえば、ＰＨＹコントローラ１３０および位相器１３５によって利用される１つ以上のクロック信号を生成することができる。ＰＨＹコントローラ１３０は位相器１３５に対する集中制御をあたえることができる。たとえば、一般に、ＰＨＹコントローラ１３０は、メモリコントローラのようなユーザ回路から受信した制御ワードに応答してＩ／Ｏ  ＦＩＦＯ１２０を介したデータの転送を制御することができる。１つ以上の実施例においては、ＰＨＹコントローラ１３０は、さらに、ＩＣ周波数に対応するレートで制御ワードを受信することによって、非同期クロック境界を容易にすることができる。しかしながら、ＰＨＹコントローラ１３０は、ＳＳＤ周波数またはその周波数の付近で、位相器１３５を介して、受信した制御ワードを実行するとともに、Ｉ／Ｏ  ＦＩＦＯ１２０の少なくとも一部の動作を制御することができる。
【００４４】
位相器１３５は、さまざまなクロック生成およびクロック管理機能をあたえるよう構成可能なクロックリソースの一種である。位相器１３５の各々は、たとえば、Ｉ／Ｏバンク１００内で用いられる読出インタフェースクロックおよび／または書込インタフェースクロックを生成することができる。位相器１３５は、ＳＳＤ周波数で動作するＩ／Ｏバンク１００内の構成要素への分配のためのクロック信号を生成することができる。位相器１３５の各々は、たとえば、継続的な周波数基準クロックを受信するよう構成され得、位相器１３５の１つ以上は非継続的な移相基準を受信するよう構成され得る。さらに、付加的な制御信号および／またはリセット信号を、位相器１３５の各々にあたえることができる。
【００４５】
示されるように、位相器１３５は、Ｉ／Ｏ  ＦＩＦＯ１２０のように、Ｉ／Ｏ回路およびたとえばＩＯＩ１１０に直接近接する列内に配置することができる。Ｉ／Ｏ回路に近接して位相器１３５を設けることは、クロックルーティングを直接的でありかつ短くすることを可能にし、それによって、多段の回路の使用から、ならびに信号線の結合および／または交差から生じるジッタ注入点を低減および／または除去する。
【００４６】
位相器１３５の各々は、たとえば、ＰＬＬ１２５によってあたえられ得る連続的な周波数基準クロックで周波数ロックを確立することができる。一旦、周波数ロックが達成されると、位相器１３５の各々は、位相基準クロックに固定された位相関係を有する１つ以上の信号を出力することができる。位相基準クロックは、たとえば、外部ピンを介してソース同期装置から受信されたデータストローブ信号、たとえば「ＤＱＳ信号」であり得る。位相器１３５の１つ以上は、さらに、たとえば、ストローブ信号検出を実行し、受信ストローブ信号が終端するかまたはパルスを中止するとき、ストローブ信号に位相および周波数が整列されたさらなるクロックパルスを捕捉および生成することができる。付加的なパルスは、ＩＣ内における１つ以上の他のシステムまたは回路素子への出力のために、データがＩ／Ｏバンク１００を介してクロック制御されることを可能にする。
【００４７】
１つ以上の実施例においては、位相器１３５の各々は、たとえば、およそ基準信号またはＳＳＤ周波数と同じ周波数を有するフルレートクロック、および１つ以上の分割されたクロックを生成するよう構成され得る。各分割されたクロックはフルレートクロックの分周されたバージョンであり得る。用いられる除数は選択可能であり得、たとえば１、２、４などである。分周されたクロックの各々は、さらに、フルレートクロックに関して選択可能な位相変動または関係を有することができる。たとえば、位相器１３５の各々は１つ以上の分割されたクロックを出力することができる。各分割されたクロックの位相は、各位相器１３５内において、たとえば、フルレートクロックの周期の約２分の１の増分で設定することができる。位相器１３５の各々内に配置された分割する回路は、プログラマブルであり得る。したがって、位相器１３５がリセットされると、位相器１３５のプログラマビリティを介して指定される位相関係は、維持されるか、そうでなければ維持される。
【００４８】
たとえば、分周されたクロックがフルレートクロックの約２分の１である周波数を有する場合、位相変動は、フルレートクロックとおよそ同相または約１８０度違相にあることに関して選択可能であり得る。分周されたクロックがフルレートクロックの約４分の１である周波数を有する場合、位相変動は、フルレートクロックとおよそ同相、約９０度度違相、約１８０度違相、または約２２５度度違相にあることに関して、選択可能であり得る。
【００４９】
Ｉ／Ｏバンク１００内においてソース同期インタフェースを実現することにおける使用のために専用化されたクロック制御回路を含むことによって、クロック制御信号におけるひずみおよびジッタを最小限にすることができる。１つ以上の実施例においては、１つの入力位相器および１つの出力位相器を、限られた数のＩＯＢ１０５に対して実現することができる。たとえば、１２個のＩＯＢ１０５の各組を、場合に応じて１つの入力位相器および／または１つの出力位相器によって制御することができる。位相器１３５の特定の１つによって制御されるパッドの数を制限することは、クロック信号における負荷を低減し、クロック信号におけるひずみおよび／またはジッタをさらに低減する。
【００５０】
比較して従来のＩ／Ｏバンクは、重負荷を受ける大域クロック信号を利用するだけでなく、典型的に各ピンおよびその関連付けられるＩ／Ｏ回路が同じクロック信号によってクロック制御される。したがって、各Ｉ／Ｏバンクが約４０〜５０本のピンを含む場合、４０〜５０ピンの各々は同じクロック信号によって制御される。この点において、従来のＩ／Ｏバンクは、ソース同期インタフェースを実現するために必要であるようなクロック／データ整列の目的のためのクロック信号に対する制御をほとんどあたえない。
【００５１】
図２は、この明細書内において開示される別の実施例に従って集積回路のＩ／Ｏバンクの一部を例示する第２のブロック図である。特に、図２は、別の実施例に従ったＩ／Ｏバンク１００のバイトクロック群２００を例示する。注目されるように、バイトクロック群２００は、Ｉ／Ｏバンク１００の限られた部分を表す。１つ以上の実施例においては、バイトクロック群２００は１２個のＩＯＢ１０５を含み得、各ＩＯＢはパッド２０５Ａ〜２０５Ｌとして例示される１２個のパッドの１つに結合される。各ＩＯＢ１０５は双方向動作のために構成され得る。たとえば、１つ以上の実施例においては、Ｉ／Ｏバンク１００は図２において示される種類の４つのバイトクロック群を含み得る。示されるように、バイトクロック群２００は、バイトクロック群２００内における要素によりもっぱら使用するための、専用のクロック生成およびクロック管理リソースを含む。この点において、Ｉ／Ｏバンク１００内に含まれる各バイトクロック群は、そこにおいて用いられるクロック信号を、同じＩ／Ｏバンク内における互いのバイトクロック群から独立して制御することができる。
【００５２】
ＩＯＩ１１０は複数の出力並直列／直並列変換器（ＳＥＲＤＥＳ）２１０および複数の入力ＳＥＲＤＥＳ２１５を含み得る。１つ以上の実施例においては、バイトクロック群２００は１２個の出力ＳＥＲＤＥＳ２１０および１２個の入力ＳＥＲＤＥＳ２１５を含み得る。たとえば、各ＩＯＢ１０５は１つの出力ＳＥＲＤＥＳ２１０および１つの入力ＳＥＲＤＥＳ２１５に結合され得る。各出力ＳＥＲＤＥＳ２１０は、ＩＣの内部からデータを受信し、データを直列化した後にＩＯＢ１０５および対応するパッド２０５Ａ〜２０５Ｌを介してソース同期装置に送るよう構成され得る。各入力ＳＥＲＤＥＳ２１５は、ソース同期装置からデータを受信し、受信したデータを非直列化した後に、ＩＣ内における他の要素またはシステムに、たとえば相互接続ブロック１１５を介して、ＦＩＦＯ２２０などにおいて、データをあたえるよう構成され得る。
【００５３】
相互接続ブロック１１５はＩＯＩ１１０とＩ／Ｏ  ＦＩＦＯ１２０との間においてプログラマブルなルーティングを容易にするようプログラマブルな相互接続をあたえる。注目されるように、たとえば、ＩＣがプログラマブルＩＣであるときには、相互接続ブロック１１５は、さらに、ＩＣのプログラマブルなファブリックからＩＯＩ１１０へのアクセスをあたえる。この点において、信号２８５は、バイトクロック群２００内において受信した１つ以上の信号をＩＣのプログラマブルなファブリックに送るよう、またはソース同期装置への出力のためにプログラマブルなファブリックから１つ以上の信号を受信するよう、プログラマブルなファブリックに結合され得る１つ以上の信号を表すことができる。
【００５４】
出力用位相器（phaser out）２２０および入力用位相器（phaser in）２２５は、バイトクロック群２００に対して位相を調整されたクロック信号を生成するための機構をあたえる。一般に、出力用位相器２２０は書込みインタフェースクロックを生成するよう構成され得る。ある場合には、出力用位相器２２０は、さらに、読出しインタフェースクロックを生成するよう用いることができる。入力用位相器２２５は、読出しインタフェースクロックを生成するよう構成され得る。位相器は、出力用位相器２２０および入力用位相器２２５の両方を参照して、多重データレーンまたはチャネルを含むソース同期インタフェースを実現するよう用いることができる。各データレーンまたはチャネルは、一般に、同じクロック信号を利用することができるが、各クロック信号は独自の位相を有することができる。出力用位相器２２０および入力用位相器２２５は、各々、出力ＳＥＲＤＥＳ２１０および入力ＳＥＲＤＥＳ２１５、ならびに１２個のＩＯＢ１０５のうちの１０個にクロック信号をあたえる。
【００５５】
一般に、出力用位相器２２０および入力用位相器２２５は、周波数ロックされかつ電圧制御された遅延線を利用して、ソース同期データおよび／または制御信号を移相することができる。たとえば、入力用位相器２２５を参照して、調整されることができる入来クロック（図示せず）は、たとえばＤＤＲ２および／またはＤＤＲ３の場合には、入来データストローブ信号であり得、またはＱＤＲＩＩ、ＲＬＤＲＡＭＩＩ、ネットワーキング、マルチメディアなどの場合には、フリーランニングクロックであり得る。出力用位相器２２０は、いずれのデータおよび／または制御信号とともに用いられる、たとえば信号２６０および／または２６５のような出力クロックを調整するよう構成され得る。
【００５６】
出力用位相器２２０および入力用位相器２２５の動作は、この明細書により詳しく記載されるＰＨＹコントローラ１３０によって調整または制御することができる。出力用位相器２２０および入力用位相器２２５は、ＰＬＬ１２５から、基準信号２３０、たとえば周波数基準信号を受信することができる。信号２３０はＳＳＤ周波数にあり得る。受信した基準信号２３０から、出力用位相器２２０は、ＳＳＤ周波数において、変動する位相オフセットを有する１つ以上のクロック信号を生成することができる。たとえば、出力用位相器２２０は、ＳＳＤ周波数で複数のクロック信号を生成し、各クロック信号は、異なる、たとえば独自の位相オフセットを有し得る。出力用位相器２２０は信号２４０を介して出力ＦＩＦＯ２３５に結合されるとともに、信号２４５を介して各出力ＳＥＲＤＥＳ２１０に結合される。信号２４０および２４５は、ＳＳＤ周波数で動作するデータ出力経路の部分を制御するために、出力用位相器２２０によって、変動する位相オフセットを有するＳＳＤ周波数において生成されかつあたえられる１つ以上のクロック信号を、少なくとも一部、表すことができる。たとえば、出力用位相器２２０は、ＳＳＤ周波数に対応したレートまたはクロック制御されたレートで出力ＳＥＲＤＥＳ２１０および出力ＦＩＦＯ２３５の出力ポートを動作させるのに必要なクロック制御信号をあたえることができる。
【００５７】
出力用位相器２２０は、およそＳＳＤ周波数での出力クロック信号、出力クロック信号の分周されたもの、および位相が選択的に変更可能な出力クロック信号の位相調整されたものを生成することができる。出力クロック信号、たとえばフルレートクロック信号は、周波数基準信号、たとえば信号２３０と周波数一致させられ得る。出力クロック信号は、受信した位相基準信号（図示せず）と比較して、固定された位相オフセットを有し得る。位相基準信号は、たとえば、所定の範囲内において維持される非継続的信号であり得る。一例において、位相基準信号はストローブ信号またはＤＱＳ信号であり得る。
【００５８】
出力用位相器２２０は、さらに、バイトクロック群２００を使用して、ＤＤＲ３、ＱＤＲＩＩ、ＲＬＤＲＡＭＩＩ、ネットワーキング、マルチメディアなどの種類の装置と通信するためのインタフェースを実現する際に利用することができる、フルレートクロック信号の移相されたもの、たとえば９０度移相されたものを生成することができる。１つ以上の実施例においては、出力用位相器２２０は、位相調整を実行するために周波数ロックされかつ電圧制御された遅延線を利用することができる。フルレートクロックとフルレートクロックの移相されたものとの間の位相関係は、位相増分／減分制御信号を用いて指定することができる。各増分制御信号は、所定量の遅延、たとえば出力用位相器２２０内において遅延線によってあたえることができるようなフルレートクロック信号の周期の１／３２のようななんらかの分数が、フルレートクロックの移相されたものに加えられるようにすることができる。各減分制御信号は、所定量の遅延が、フルレートクロックの移相されたものから除去されるようにすることができる。このように、フルレートクロックの移相されたものは、フルレートクロックに関して、所望の位相オフセットに位相調整することができる。
【００５９】
注目されるように、分周されたクロック信号はフルレートクロック信号と位相整列することができる。１つ以上の実施例においては、出力用位相器２２０から出力される分周された信号クロック信号の位相オフセットを選択することができる。分周された信号の位相オフセットは、およそ基準信号の周期の約１／２の粗い増分で指定することができる。
【００６０】
出力ＦＩＦＯ２３５は互いに関して非同期で動作することができる入力ポートおよび出力ポートを有するデュアルポートメモリとして構成され得る。出力ＦＩＦＯ２３５の入力ポートは、たとえば、ＩＣ周波数に対応するレートでデータが受信されるとともに、出力ＦＩＦＯ２３５にクロック制御される信号２５０を介して、メモリコントローラ（図示せず）のようなユーザ回路に結合され得る。１つ以上の実施例においては、出力ＦＩＦＯメモリ２３５の入力ポートは、たとえば信号２５０を介して出力ＦＩＦＯ２３５にデータをあたえることができ、さらに、出力ＦＩＦＯ２３５の入力ポートの書込み可能化を制御することができるユーザ回路によって制御することができる。
【００６１】
出力ＦＩＦＯ２３５の出力ポートは、信号２５５を介し、相互接続ブロック１１５を通して、出力ＳＥＲＤＥＳ２１０にデータを出力することができる。出力ＦＩＦＯ２３５の出力ポートは、出力用位相器２２０によって生成されるとともに、信号２４０によって少なくとも一部が表されるＳＳＤ周波数でのクロック信号に従ってクロック制御することができる。出力用位相器２２０は、さらに、出力ＦＩＦＯ２３５の出力ポート、たとえば出力ポートの読出し可能化を制御して、出力ＦＩＦＯ２３５から出力ＳＥＲＤＥＳ１１０に出力されるデータの流れを制御することができる。出力用位相器２２０は、ＰＨＹコントローラ１３０から信号２８０を介して受信したコマンドに応答して出力ＦＩＦＯ２３５から出力されるデータの流れを制御する。出力ＳＥＲＤＥＳ２１０は、出力ＦＩＦＯ２３５から受信したデータを直列化し、結果として生じる直列化されたデータをＩＯＢ１０５ならびにパッド２０５Ａ〜２０５Ｅおよび２０５Ｈ〜２０５Ｌに出力することができる。
【００６２】
１つ以上の実施例においては、出力ＦＩＦＯ２３５は１２個のデータ入力および１２個のデータ出力を有する第１のモードにおいて動作するよう構成され得る。各データ入力および各データ出力は、４ビット幅であるよう構成され得る。出力ＦＩＦＯ２３５は、たとえば、８つのエントリに対応するよう、このモードにおいて構成され得る。第２および代替のモードにおいては、出力ＦＩＦＯ２３５は、１０個のデータ入力を有し、その各々は８ビット幅であるよう構成され得る。出力ＦＩＦＯ２３５は、１０個のデータ出力を有し、各データ出力は４ビット幅であるよう構成され得る。第２のモードにおいては、出力ＦＩＦＯ２３５は８つのエントリに対応することができる。第２のモードにおいては、２：１マルチプレクサを出力データ経路に追加し、入力データをより小さな出力データ幅に直列化するために用いることができる。たとえば、出力ＦＩＦＯ２３５の出力ポートを制御する出力クロックが、出力ＦＩＦＯ２３５の入力ポートを駆動する周波数の約２倍である場合には、第２の動作モードを用いることができる。
【００６３】
出力用位相器２２０と同様に、入力用位相器２２５は１つ以上のクロック信号をＳＳＤ周波数で生成することができる。１つ以上の実施例においては、入力用位相器２２５は、ＳＳＤ周波数で複数のクロック信号を生成し、各クロック信号は異なる位相を有する。入力用位相器２２５は信号２６０を介して入力ＦＩＦＯ２４０に結合されるとともに、信号２６５を介して入力ＳＥＲＤＥＳ２１５に結合される。信号２６０および２６５は、ＳＳＤ周波数で動作するデータ入力経路の部分を制御するためにＳＳＤ周波数で入力用位相器２２５によって生成されあたえられる１つ以上のクロック信号を、少なくとも一部、表すことができる。たとえば、入力用位相器２２５は、ＳＳＤ周波数に対応するレート、たとえばＳＳＤ周波数によってクロック制御されたレートで入力ＳＥＲＤＥＳ２１５および入力ＦＩＦＯ２４０の入力ポートを動作させるのに必要なクロック制御信号をあたえることができる。
【００６４】
たとえば、入力用位相器２２５は、入来する、たとえば読み込まれたデータを捕捉するために用いられるクロック信号の微調整を実行するよう構成され得る。入力用位相器２２５は、さらに、ソース同期装置からのストローブの第１のパルスを検出するような機能を実行し、受信されかつ検出されるストローブ信号と位相整列されるフリーランニングクロックを生成することができる。入力用位相器２２５は、出力用位相器２２０とは異なり、たとえば、スケルチ制御信号（図示せず）に応答して、位相基準信号のような受信基準信号を同期してスケルチングすることができるスケルチコントローラを含み得る。「スケルチ」または「スケルチング」とは、信号をＨレベルまたはＬレベルのいずれかに引き込むとともに、ある期間、たとえば信号がスケルチングされることになっている期間の間、その状態を保持することを指し得る。信号がＨレベルまたはＬレベルに引かれるかどうかは、信号があたえられている特定の回路の構成に従って変動し得る。
【００６５】
入力ＦＩＦＯ２４０は互いに関して非同期で動作することができる入力ポートおよび出力ポートを有するデュアルポートメモリとして構成され得る。入力ＦＩＦＯ２４０の出力ポートは、たとえば、信号２７０を介して、メモリコントローラのようなユーザ回路に結合され、データはＩＣ周波数に対応するレートで入力ＦＩＦＯ２４０から読み出される。１つ以上の実施例においては、入力ＦＩＦＯ２４０の出力ポートは、たとえば、信号２７０を介して入力ＦＩＦＯ２４０からデータを読み出すことができ、さらに、入力ＦＩＦＯ２４０の出力ポートの読出し可能化を制御することができるユーザ回路によって制御することができる。
【００６６】
入力ＦＩＦＯ２４０の入力ポートは、データを、信号２７５を介して、入力ＳＥＲＤＥＳ２１５から、相互接続ブロック１１５を通して受信することができる。入力ポートは、入力用位相器２２５によって生成され、信号２６０によって少なくとも一部が表されるＳＳＤ周波数でのクロック信号に従ってクロック制御することができる。入力用位相器２２５は、入力ＦＩＦＯ２４０の入力ポート、たとえば入力ポートの書込み可能化を制御して、各入力ＳＥＲＤＥＳ２１５から入力ＦＩＦＯ２４０へのデータの流れを制御することができる。入力用位相器２２５は、たとえば、ＰＨＹコントローラ１３０の制御下で動作して、信号２８０を介して受取られたコマンドに応答する。各入力ＳＥＲＤＥＳ２１５は、パッド２０５Ａ〜２０５Ｅおよび２０５Ｈ〜２０５Ｌを介してソース同期装置から受信したデータを非直列化することができる。各入力ＳＥＲＤＥＳ２１５は、結果として生じる非直列化されたデータを、入力ＦＩＦＯ２４０に出力することができる。
【００６７】
１つ以上の実施例においては、入力ＦＩＦＯ２４０は１２個のデータ入力および１２個のデータ出力を有する第１のモードにおいて動作するよう構成され得る。各データ入力および各データ出力は、４ビット幅であるよう構成され得る。入力ＦＩＦＯ２４０は、このモードにおいて、たとえば、８つのエントリに対応するように構成され得る。第２および代替のモードにおいては、入力ＦＩＦＯ２４０は、１０個のデータ入力を有し、その各々は８ビット幅であるよう、構成され得る。出力ＦＩＦＯ２３５は、１０個のデータ出力を有し、各データ出力は４ビット幅であるよう構成され得る。第２のモードにおいては、入力ＦＩＦＯ２４０は８つのエントリに対応することができる。第２のモードにおいては、データは、非多重化されて、より大きな出力幅を形成する。たとえば、入力ＦＩＦＯ２４０の出力ポートが、入力ＦＩＦＯ２４０の入力ポートをクロック制御する周波数の約１／２でクロック制御される場合に、第２の動作モードを用いることができる。
【００６８】
１つ以上の実施例においては、出力ＦＩＦＯ２３５および入力ＦＩＦＯ２４０は、示されるように、バイトクロック群２００内において物理的に整列され得る。したがって、４つのバイトクロック群を含む所与のＩ／Ｏバンク内では、たとえば４つの入力ＦＩＦＯおよび４つの出力ＦＩＦＯに対応する合計８つのＦＩＦＯの各々が、Ｉ／Ｏ  ＦＩＦＯと同じバイトクロック群に属する特定のＩＯＢと物理的に整列されることができる。
【００６９】
１つ以上の実施例においては、Ｉ／Ｏ  ＦＩＦＯとＩＯＩとの間の接続は、データが相互接続ブロックを介して単一のホップまたはワイヤを用いて転送されることを可能にするような態様において構成され得る。単一のホップで構成される接続は、たとえば、ＩＯＢとＩ／Ｏ  ＦＩＦＯとの間の信号の固定されたマッピングを用いて実施することができる。同様に、各位相器によってあたえられるクロック信号、ならびに各位相器によってあたえられる読出および／または書込み可能化信号は、典型的にはプログラマブルＩＣ内において用いられる相互接続ファブリックからルーティングされるクロックではなく、専用の、たとえばハード化された接続であり得る。
【００７０】
示されるように、出力用位相器２２０および入力用位相器２２５の各々は、ＩＯＢ２０５Ｆおよび２０５Ｇに結合され得る１つ以上の直接的および専用の信号接続を有することができる。出力用位相器２２０は、ＩＯＢ２０５Ｆに信号２８０を介して直接結合され得る。入力用位相器２２５は、ＩＯＢ２０５Ｇに信号２８５を介して直接結合され得る。信号２８０および２８５は、相互接続ブロック１１５および／またはＩＯＩ１１０を効果的に回避する１つ以上の信号を表すことができる。たとえば、信号２８０および２８５は、相互接続ブロック１１５またはＩＯＩ１１０の一部でなく、したがって、プログラマブルでない直接的なワイヤを用いて実現することができる。信号２８０および２８５は、先に記載されたＩ／Ｏ  ＦＩＦＯとＩＯＩとの間の接続と対比することができ、なぜならば、そのような接続は、単一のホップに限定される一方、依然として相互接続ブロック１１５の一部であり、相互接続ブロック１１５を流れるからである。さらに、信号２８０および２８５は、ＩＯＢ１０５に直接流れて、示されるように、ＩＯＩ１１０を回避する。
【００７１】
たとえば、信号２８０は、ＩＣがデータを書込んでいるときに、ＩＣからＳＳＤに出力されるデータをクロック制御するために用いることができるストローブ信号を出力するように出力用位相器２２０によって用いられ得る。信号２８５は、ＩＣがデータを読出しているときに、ＳＳＤから送られるストローブ信号を受取るように入力用位相器２２５によって用いられ得る。例示においては、バイトクロック群２００は１２個のＩＯＢ１０５を含み得るが、ＩＯＢ１０５のうちの１０個は、データを通信、たとえば送信または受信するために取っておくことができる。ＩＯＢ１０５の２つはクロック信号のために取っておくことができ、信号２８０および／または２８５に結合され得る。たとえば、パッド２０５Ｆおよび２０５Ｇは信号２８０および／または２８５にそれぞれ結合するために取っておくことができるが、他のパッドおよび／または対応するＩＯＢ１０５は所望のように取っておくことができる。示されるように、パッド２０５Ｆおよび２０５Ｇは、相対的に直接的で真っすぐな信号経路が出力用位相器２２０とパッド２０５Ｆと入力用位相器２２５とパッド２０５Ｇとの間において存在するように、実質的に整列され得る。
【００７２】
１つ以上の実施例においては、出力用位相器２２０および入力用位相器２２５は約１２５ＭＨｚから約１０６６ＭＨｚの周波数範囲を有するよう構成され得る。この周波数範囲は、ＤＤＲ２構成のための約２５０ＭｂｐｓからＤＤＲ３構成のための約２１３３Ｍｂｐｓまでのデータレートを容易にする。ＤＤＲ３  ＤＩＭＭインタフェースの場合においては、たとえば、Ｉ／ＯバンクにおけるすべてのＩ／Ｏはデータ（ＤＱ）ピンまたはデータストローブ（ＤＱＳ）ピンとして構成され得る。別の例においては、１２個のＩ／Ｏおよび関連付けられる位相器、たとえば出力用位相器２２０および入力用位相器２２５を含む各バイトクロック群は、独立して用いることができる。
【００７３】
ＤＤＲ３構成の場合においては、双方向データストローブおよびデータを利用し、バイトクロック群２００の出力用位相器２２０および入力用位相器２２５の両方、たとえば、ＤＤＲ３のためのバイトクロック群における任意の出力用位相器または入力用位相器が用いられる。比較して、ＲＬＤＲＡＭＩＩの場合においては、一方向のデータピンを利用し、出力用位相器２２０または入力用位相器２２５のみが、バイトクロック群２００がデータを読出すかまたは書込むためのどちらに用いられるかどうかに依存して用いられ得る。別の例をとって、ＱＤＲＩｌ＋インタフェースの場合においては、ＣＱ／ＣＱ＃と呼ばれる読出データクロックは、名目上は相補的な信号であるが、別々の位相要件を有する。入力用位相器２２５はＣＱ信号を生成するよう構成され得、出力用位相器２２０は二次的な入力用位相器として機能してＣＱ＃信号を処理するよう構成され得る。
【００７４】
図３は、この明細書内において開示される別の実施例に従って構成されるＩ／Ｏバンクの別の局面を例示する第３のブロック図である。図３は、バイトクロック群２００のためのデータアーキテクチャの例を例示する。例示の目的のために、単一のＩＯＩ１１０および単一のＩＯＢ１０５のみが示される。バイトクロック群２００は、出力用位相器２２０、入力用位相器２２５、出力ＦＩＦＯ２３５、入力ＦＩＦＯ２４０およびＰＨＹコントローラ１３０を含み得る。ＩＯＩ１１０は、出力ＳＥＲＤＥＳ２１０および入力ＳＥＲＤＥＳ２１５を含むよう構成され得る。ＩＯＢ１０５は出力バッファ３３５および入力バッファ３４０を含み得る。
【００７５】
出力用位相器２２０および入力用位相器２２５はクロック信号２３０を受信することができ、それはＳＳＤ周波数にあり得る。１つ以上の実施例においては、クロック信号２３０は、ソース（図示せず）によって局所的に生成することができる。出力用位相器２２０は、次いで、１つ以上のクロック信号をＳＳＤ周波数で生成することができる。１つ以上の実施例においては、出力用位相器２２０は、ＳＳＤ周波数で複数のクロック信号を生成し、各クロック信号は異なる位相オフセットを有することができる。出力用位相器２２０は信号２４０を介して出力ＦＩＦＯ２３５に結合され、信号２４５を介して出力ＳＥＲＤＥＳ２１０に結合される。信号２４０および２４５は、メモリ装置の周波数で動作するデータ出力経路の部分を制御するためにＳＳＤ周波数において出力用位相器２２０によって生成されかつあたえられる１つ以上のクロック信号を、少なくとも一部表すことができる。
【００７６】
出力ＳＥＲＤＥＳ２１０は、データの直列化を容易にするよう、付加的なクロック信号を要求し得ることが、十分に理解されるべきである。したがって、１つ以上の実施例においては、信号２４５は、ＳＳＤ周波数における第１のクロック信号、およびＳＳＤ周波数の分数である周波数を有する第２のクロック信号を表すことができ、用いられる分数は、出力ＳＥＲＤＥＳ２１０によって実行されている直列化の度合に依存する。第２のクロック信号は、たとえば、１／２、１／３、１／４、１／６、１／７、１／８などであり得る。
【００７７】
出力ＦＩＦＯ２３５は互いに関して非同期で動作することができる入力ポートおよび出力ポートを有するデュアルポートメモリとして構成され得る。出力ＦＩＦＯ２３５の入力ポートは、信号２５０を介して、メモリコントローラまたは他のユーザ回路に結合され、それにわたって、データが受取られ、したがってクロック信号３５０によってＩＣ周波数でクロック制御される。１つ以上の実施例においては、出力ＦＩＦＯ２３５の入力ポートをメモリコントローラを介して書込み可能化することができる。出力ＦＩＦＯ２３５の出力ポートは、間接的に、ＰＨＹコントローラ１３０によって、信号２８０および３７０を介して制御されて、メモリコントローラからの受信したＰＨＹ制御ワードに応答して、出力ＦＩＦＯ２３５からデータを読出すことができる。たとえば、ＰＨＹコントローラ１３０は、信号２８０を介して、出力用位相器２２０に対して、信号３７０を介して出力ＦＩＦＯ２３５の出力ポートを読出し可能化するように指示することができる。示されるように、ＰＨＹコントローラ１３０は、さらに、ＩＣ周波数に対応するクロック信号３５０およびＳＳＤ周波数に対応するクロック信号２３０を受信することができる。受信したＰＨＹ制御ワードに属するかまたはそれ（ら）と関連付けられるデータが利用可能なときに限り、データは出力ＦＩＦＯ２３５から読出すことができる。
【００７８】
出力ＦＩＦＯ２３５の出力ポートは、信号２５５を介して出力ＳＥＲＤＥＳ２１０にデータを出力することができる。出力ポートは、出力用位相器２２０によって生成され、信号２４０によって少なくとも一部が表されるＳＳＤ周波数でのクロック信号に従ってクロック制御することができる。出力用位相器２２０は、出力ＦＩＦＯ２３５の出力ポート、たとえば出力ポートの読出し可能化を調整して、出力ＦＩＦＯ２３５から出力ＳＥＲＤＥＳ２１０へのデータの流れを信号３７０を介して制御することができる。出力ＳＥＲＤＥＳ２１０は、信号２５５を介して出力ＦＩＦＯ２３５から受信したデータを直列化し、結果として生じる直列化されたデータを信号３７５を介して出力バッファ３３５に出力する。次いで、出力バッファ３３５は直列データをピン３８０を介してメモリ装置に出力する。
【００７９】
入力用位相器２２５は、出力用位相器２２０のように、１つ以上のクロック信号をＳＳＤ周波数で生成することができる。１つ以上の実施例においては、入力用位相器２２５は、ＳＳＤ周波数で複数のクロック信号を生成し、各クロック信号は異なる位相を有することができる。入力用位相器２２５は信号２６０を介して入力ＦＩＦＯ２４０に結合されるとともに、信号２６５を介して入力ＳＥＲＤＥＳ２１５に結合される。信号２６０および２６５は、メモリ装置の周波数で動作するデータ入力経路の部分を制御するためにＳＳＤ周波数で入力用位相器２２５によって生成されかつあたえられる１つ以上のクロック信号を、少なくとも一部表すことができる。
【００８０】
入力ＳＥＲＤＥＳ２１５は、出力ＳＥＲＤＥＳ２１０のように、データの非直列化を容易にするための付加的なクロック信号を要求し得る。したがって、１つ以上の実施例においては、信号２６５は、ＳＳＤ周波数における第１のクロック信号、およびＳＳＤ周波数の分数である周波数を有する第２のクロック信号を表すことができ、用いられる分数は、入力ＳＥＲＤＥＳ２１５によって実行されている非直列化の度合に依存する。第２のクロック信号は、たとえば、１／２、１／３、１／４、１／６、１／７、１／８などであり得る。
【００８１】
入力ＦＩＦＯ２４０は互いに関して非同期で動作することができる入力ポートおよび出力ポートを有するデュアルポートメモリとして構成され得る。入力ＦＩＦＯ２２５の出力ポートは、信号２７０を介してメモリコントローラに結合され、データが送られる。１つ以上の実施例においては、入力ＦＩＦＯ２４０の出力ポートを、メモリコントローラを介して読出し可能化し、クロック信号３５０によってクロック制御することができる。入力ＦＩＦＯ２４０の入力ポートは、ＰＨＹコントローラ１３０によって、たとえば信号２８０および３９０を介して間接的に制御されて、メモリコントローラからの受信したＰＨＹ制御ワードに応答して、データを入力ＦＩＦＯ２４０に書出すことができる。たとえば、ＰＨＹコントローラ１３０は、入力用位相器２２５に対して、信号３９０を介して入力ＦＩＦＯ２４０の入力ポートを書込み可能化するように信号２８０を介して指示することができる。
【００８２】
入力ＳＥＲＤＥＳ２１５は、ピン３８０からの入力バッファ３４０から受信したデータを非直列化する。入力バッファ３４０は、信号３９６を介して入力ＳＥＲＤＥＳ２１５にデータを伝える。入力ＳＥＲＤＥＳ２１５は、結果として生じる非直列化されたデータを、信号２７５を介して入力ＦＩＦＯ２４０の入力ポートに出力する。入力ＦＩＦＯ２４０の入力ポートは、信号２７５を通して、入力ＳＥＲＤＥＳ２１５から、データを受取ることができる。入力ＦＩＦＯ２４０の入力ポートは、入力用位相器２２５によって生成され、かつ信号２６０によって少なくとも一部が表されるＳＳＤ周波数でのクロック信号に従ってクロック制御することができる。入力用位相器２２５は、入力ＦＩＦＯ２４０の入力ポート、たとえば入力ポートの書込み可能化を調整して、入力ＳＥＲＤＥＳ２１５から入力ＦＩＦＯ２４０へのデータの流れを信号３９０を介して制御することができる。
【００８３】
１つ以上の他の実施例においては、図３のそれに類似するデータアーキテクチャを、Ｉ／Ｏバンク１００内において制御経路アーキテクチャのために実現することができる。そのような構成においては、制御経路は、図３において示されるアーキテクチャを利用することができるが、入力ＦＩＦＯ２４０、入力用位相器２２５、入力ＳＥＲＤＥＳ２１５および入力バッファ３４０のような構成要素を除外することができる。
【００８４】
図４は、別の実施例に従ってＩ／Ｏバンクの別の局面を例示する第４のブロック図である。図４は、図１〜図３を参照して例示したよりも詳細にＰＨＹコントローラ１３０の例を例示する。示されるように、ＰＨＹコントローラ１３０は、コマンドＦＩＦＯメモリ４０５、コマンドパーサ４１０、ＰＨＹクロックモジュール４３０および複数のタイマブロックを含み得る。
【００８５】
一般に、ＰＨＹコントローラ１３０は、データインタイマブロック（data in timer block）４１５およびデータアウトタイマブロック（data out timer block）４２０を含む２つのデータタイマブロック、コマンドタイマブロック４２５、補助出力タイマブロック４３０、４３５、４４０および４４５として示される４つの補助タイマ、ならびにＰＨＹタイマブロック４６０を含み得る。図４内において例示される各タイマブロックは、この明細書内において記載される目的のために利用可能な１つ以上の、たとえば複数の個々のタイマを表すことができることが十分に理解されるべきである。
【００８６】
コマンドＦＩＦＯメモリ４０５は入力ポートおよび出力ポートを有する非同期ＦＩＦＯとして構成され得る。コマンドＦＩＦＯメモリ４０５は、ＩＣ周波数に対応するメモリコントローラのそれとＳＳＤ周波数に対応するメモリ装置との間のクロックドメインクロッシングのための機構をあたえる。コマンドＦＩＦＯメモリ４０５の入力ポートはメモリコントローラに信号４５０を介して結合され得、クロック信号３５０によってＩＣ周波数でクロック制御することができる。コマンドＦＩＦＯメモリ４０５の第２のポートはコマンドパーサ４１０に信号４５５を介して結合され得、信号４６５を介してＳＳＤ周波数でクロック制御される。ＰＨＹコントローラ１３０の図４内における互いの回路素子は信号４６５によってＳＳＤ周波数でクロック制御される。
【００８７】
ＰＨＹクロックモジュール４３０はクロック信号２３０をＳＳＤ周波数で入力信号として受信し、クロック信号４６５のような１つ以上のクロック信号を出力として生成することができる。クロック信号４６５は、およそＳＳＤ周波数であり、メモリ装置と同じ近似の速度で動作する回路をクロック制御する。コマンドＦＩＦＯメモリ４０５は、メモリコントローラから信号４５０を介して送信されるＰＨＹ制御ワードを受信し、それは、クロック信号４６５に従って読出すことができる。例示の目的のために、信号４５５は、コマンドパーサ４１０によって制御されるコマンドＦＩＦＯメモリ４０５の出力ポートのための読出し可能化信号に加えて、コマンドＦＩＦＯメモリ４０５からのデータの転送を表すことができる。
【００８８】
コマンドパーサ４１０は、コマンドＦＩＦＯメモリ４０５からＰＨＹコマンドワードを読出し、ＰＨＹコマンドワードの実行に応じて、実行されたＰＨＹコマンドワードによって判断された特定のタイマ値を、データインタイマブロック４１５、データアウトタイマブロック４２０、コマンドタイマブロック４２５、補助出力タイマブロック４３０〜４４５および／またはＰＨＹタイマブロック４６０内に書込む。利用可能なタイマ、たとえば利用可能なデータタイマおよび／またはコマンドタイマがある限り、コマンドパーサ４１０はコマンドＦＩＦＯメモリ４０５から連続的に読出すことができる。データタイマおよび／またはコマンドタイマがすべて使用中のとき、たとえば、タイマが利用可能でないとき、コマンドパーサ４１０はコマンドＦＩＦＯメモリ４０５からＰＨＹコマンドワードを読出すことを停止し得る。ＰＨＹコマンドワードの読出しを中止することによって、コマンドパーサ４１０はメモリコントローラにバックプレッシャーをあたえ、それによって、コマンドＦＩＦＯメモリ４０５の満杯状態または充填状態を検出するメモリコントローラは、コマンドの流れを絞るようにする。
【００８９】
一般に、データインタイマブロック４１５、データアウトタイマブロック４２０および／またはコマンドタイマブロック４２５は、Ｉ／Ｏバンクのバイトクロック群に出入りするデータおよびコマンドの管理の制御を、コマンド発行とデータ利用可能性との間の関係のタイミングを計ることによって行うことができる。たとえば、コマンドタイマ４２５は、読出イベントを開始するＣＡＳストローブを送るイベントを引起すことができる。データインタイマブロック４１５は、データが入力ＳＥＲＤＥＳの出力で利用可能でありかつユーザへの転送のために利用可能な場合、ＣＡＳストローブのアサートの後において、クロックサイクル数を判断する。データインタイマブロック４１５によって生成されるタイマイベントは、データの利用可能性を示す。したがって、データインタイマブロック４１５および／またはデータアウトタイマブロック４２０内におけるタイマは、いつクロックを開始または停止するか、およびいつＦＩＦＯのうちの１つのポートを可能化するかを示すイベントを生成することができる。このように、データインタイマブロック４１５、データアウトタイマブロック４２０およびコマンドタイマブロック４２５は、データおよびコマンドの流れを制御することができる。補助出力タイマブロック４３０〜４４５は、汎用タイミング動作を実行するよう構成される複数のタイマを含み得る。補助出力タイマブロック４３０〜４４５は、たとえば、タイマと関連付けられるコマンドが実行されるのと同時にコマンドパーサ４１０によって起動することができる。
【００９０】
１つ以上の実施例においては、タイマブロック４１５〜４４５からの出力は多重化することができる。たとえば図３を参照して例示されるようなデータ経路に対応する回路素子は、データタイマブロック４１５、４２０および／または補助出力タイマブロック４３０〜４４５の１つにマルチプレクサを介して結合され得る。図３を参照して記載されるＰＨＹコントローラ１３０からの制御信号は、データインタイマブロック４１５および／またはデータアウトタイマブロック４２０から場合に応じてあたえられるかまたは出力されることができる。たとえば、コマンド経路に対応する回路素子は、コマンドタイマブロック４２５に結合され得る。コマンドに関する制御信号は、コマンドタイマブロック４２５からあたえられるかまたは出力されることができる。
【００９１】
たとえば、図３を図４と組合せて再び参照すると、データインタイマブロック４１５は入力ＳＥＲＤＥＳからのデータの受信タイミングを計ることができる。データインタイマブロック４１５は、さらに、入力用位相器へのインタフェースを管理することができる。データインタイマブロック４１５内におけるアクティブなタイマがターミナルカウントに到達すると、データインタイマブロック４１５はデータ経路を制御する入力用位相器に「Ｉｎ＿Ｂｕｒｓｔ＿Ｐｅｎｄｉｎｇ」信号を送る。入力用位相器は、入力ＳＥＲＤＥＳからデータバーストを受信するための、書込可能化信号および必要なクロック信号を生成することができる。入力用位相器は、さらに、それに応答して、入力ＦＩＦＯにデータバーストを書込むことができる。「Ｉｎ＿Ｂｕｒｓｔ＿Ｐｅｎｄｉｎｇ」信号とともに、データインタイマブロック４１５は、さらに、読出されている現在のＤＤＲランクを入力用位相器に送ることができる。
【００９２】
データアウトタイマブロック４２０は、いつデータが出力ＦＩＦＯから読出され出力ＳＥＲＤＥＳに転送されるかのタイミングを計ることができる。データアウトタイマブロック４２０は、出力ＦＩＦＯから読み出されるデータの各ＤＤＲバーストに対して、メモリ装置の周波数において１つのクロックサイクルの間に「Ｏｕｔ＿Ｂｕｒｓｔ＿Ｐｅｎｄｉｎｇ」信号をＨレベルに駆動することができる。出力ＦＩＦＯから読出されるデータの量は「ＢＵＲＳＴ＿ＭＯＤＥ」属性によって示すことができる。たとえば、「ＢＵＲＳＴ＿ＭＯＤＥ」属性は８つのトランザクションのバースト長に対してＨレベルにセットされ得、４つのトランザクションのバースト長に対してＬレベルにセットされ得る。
【００９３】
コマンドタイマブロック４２５は、アドレス情報および／またはコマンド情報をメモリにあたえるよう構成される出力ＦＩＦＯからそのようなアドレス情報および／またはコマンド情報がいつ読出されるかのタイミングを計るために用いられ得る。コマンドタイマブロック４２５は、さらに、いつアドレス情報および／またはコマンド情報が出力ＳＥＲＤＥＳに転送されるかのタイミングを計ることができる。コマンドタイマブロック４２５からの位相器またはトライステート信号の制御の必要はない。各コマンドタイマブロック４２５イベントに対して１ニブルだけが出力ＦＩＦＯから読出される。
【００９４】
ＰＨＹタイマブロック４６０は、より高レベルの機能およびタイミング関係を制御するよう構成される１つ以上のタイマを含み得る回路ブロックである。ＰＨＹタイマブロック４６０は、図４において示される他のタイミングブロックと異なり、ＰＨＹコントローラ１３０の外部で分配されるアウトバウンド信号を生成しない。むしろ、ＰＨＹタイマブロック４６０はコマンドパーサ４１０と通信してＰＨＹコントローラ１３０内における異なる機能を制御する。コマンドパーサ４１０との通信において、ＰＨＹタイマブロック４６０は、たとえば、コマンドパーサ４１０がタイマブロック４１５〜４４５のうちの他のタイマブロックに新しいタイマイベントを送るかどうかを制御する。
【００９５】
この点において、ＰＨＹタイマブロック４６０は、イベント、たとえばタイマイベントを、当該タイマイベントを開始するコマンドの発生より時間において後で生じさせることができる。したがって、コマンドパーサ４１０から始まるタイマイベントは、ＰＨＹタイマブロック４６０の制御下で遅延させることができる。タイマイベントは、ＰＨＹタイマブロック４６０の制御下でイベント持続時間と呼ばれるプログラマブルな持続時間の間アクティブなままであることができる。補助出力タイマブロック４３０〜４４５は、データ転送またはコマンドと全く同じときには生じないメモリ装置への信号を生成することができる。信号は互い違いに配列することができる。補助出力タイマブロック４３０〜４４５は、さらに、インタフェース内において、「ダイ上終端（on-die termination）」または「ＯＤＴ」信号を実現するために用いることができる。たとえば、ＰＨＹタイマブロック４６０内におけるタイマは、メモリ装置内における同じ列または一般的な位置に向けられるもののような連続的な読出しコマンドおよび／または書込みコマンドをシーケンス化するために用いることができる。別の例においては、ＰＨＹタイマブロック４６０内におけるタイマは、さらに、メモリ装置に発行されるコマンド間の間隔および指定された期間にわたって発行されるコマンドの数を制御するよう用いることができる。
【００９６】
ＰＨＹタイマブロック４６０を通して達成することができる機能性のさらなる例示では、ＰＨＹタイマブロック４６０内における１つ以上のタイマは、行／バンクタイマを実現するために用いることができる。行／バンクタイマは、メモリインタフェースが所与のメモリ装置の異なるバンクまたはページとどのように通信するかを支配する規則を執行する。たとえば、行／バンクタイマは、異なるバンクへのアクセスが互いに関して時間においてどれくらい接近して生じ得るかを制御することができる。さらなる別の例においては、ＰＨＹタイマブロック４６０内におけるタイマは、読出し／書込みまたは書込み／読出しターンアラウンドを制御することができる。読出し／書込みターンアラウンドタイマは、どれだけの時間が読出しコマンドに続く書込みコマンドを分離しなければならないか制御する。同様に、書込み／読出しターンアラウンドタイマは、どれだけの時間が書込みコマンドに続く読出しコマンドを分離しなければならないか制御することができる。
【００９７】
図５は、この明細書内において開示される別の実施例に従うＩ／Ｏバンク５００を例示する第５のブロック図である。Ｉ／Ｏバンク５００は、４つのバイトクロック群５０２、５０４、５０６および５０８を含む例示的なＩ／Ｏバンクアーキテクチャを例示する。例示されるように、バイトクロック群５０２〜５０８の各々は１２個のＩＯＢ５１０および１２個のＩＯＩ５１２を含む。ストローブ信号の授受において使用するために取っておくことができるＩＯＢ５１０は影付で例示され、専用ＩＯＢ５１０が配置されるバイトクロック群の特定の位相器への直接的な接続をさらに含み得る。
【００９８】
バイトクロック群５０２は入力ＦＩＦＯ５１４および出力ＦＩＦＯ５１６を含み得る。例示のため、入力用位相器および出力用位相器は、まとめて単一の位相器ブロックによって表される。したがって、バイトクロック群５０２は、入力ＦＩＦＯ５１４、出力ＦＩＦＯ５１６、バイトクロック群５０２内におけるＩＯＩ５１２およびバイトクロック群５０２内におけるＩＯＢ５１０にクロック信号をあたえることに専用化された位相器５１８を含み得る。バイトクロック群５０４は入力ＦＩＦＯ５２０および出力ＦＩＦＯ５２２を含み得る。したがって、バイトクロック群５０４は、入力ＦＩＦＯ５２０、出力ＦＩＦＯ５２２、バイトクロック群５０４内におけるＩＯＩ５１２およびバイトクロック群５０４内におけるＩＯＢ５１０にクロック信号をあたえることに専用化された位相器５２４を含み得る。ＰＬＬ５２６は、位相器５１８および５２４の各々に基準信号をあたえることができる。バイトクロック群５０６は入力ＦＩＦＯ５２８および出力ＦＩＦＯ５３０を含み得る。バイトクロック群５０６は、入力ＦＩＦＯ５２８、出力ＦＩＦＯ５３０、バイトクロック群５０６内におけるＩＯＩ５１２およびバイトクロック群５０６内におけるＩＯＢ５１０にクロック信号をあたえることに専用化された位相器５３２を含み得る。バイトクロック群５０８は入力ＦＩＦＯ５３４および出力ＦＩＦＯ５３６を含み得る。したがって、バイトクロック群５０８は、入力ＦＩＦＯ５３４、出力ＦＩＦＯ５３６、バイトクロック群５０８内におけるＩＯＩ５１２およびバイトクロック群５０８内におけるＩＯＢ５１０にクロック信号をあたえることに専用化された位相器５３８を含み得る。ＰＬＬ５４０は、位相器５３２および５３８の各々に基準信号をあたえることができる。
【００９９】
位相器５１８、５２４、５３２および５３８の各々はＰＨＹコントローラ５４２によって制御することができる。図５は、Ｉ／Ｏ回路、たとえばＩＯＢ５１０およびＩＯＩ５１２がＩ／Ｏバンク５００内におけるさまざまなクロックリソースに隣接する、例示的なアーキテクチャを例示する。Ｉ／Ｏバンク５００は、大域クロック信号のような、典型的にはＩ／Ｏバンク内において利用可能な付加的なクロックリソース（図示せず）を含み得ることが、十分に理解されるべきである。しかしながら、図５において示されるアーキテクチャは、１つ以上のソース同期インタフェースを形成するという目的のために付加的なクロックリソースをＩ／Ｏバンク内において配置することができることを例証する。バイトクロック群５０２〜５０８の各々は、専用のクロックリソースで４つの可能なソース同期インタフェースの１つを形成するよう、独立して構成され得る。
【０１００】
ある実施例においては、メモリインタフェースシステムの制御層と物理インタフェース層との間に非同期境界を組込んだＩＣ内における使用のためのスケーラブルなメモリインタフェースシステムにＩ／Ｏバンク１００を組込むことができる。メモリインタフェースシステムは、別個の独立したクロックドメイン内において動作することができるメモリコントローラおよび物理インタフェースブロックを含み得る。たとえば、メモリコントローラは１つのクロックドメイン内において動作するよう構成され得、一方、物理インタフェースブロックは、一般に、異なるクロックドメイン内において動作する。物理インタフェースブロックのクロックドメインは、物理インタフェースブロックがメモリ装置に結合されるのと同じかまたはその付近の周波数で動作することができる。メモリインタフェースシステム内に非同期クロック境界を置くことによって、制御層の動作周波数は、物理層およびメモリ装置の動作周波数から独立して維持することができる。したがって、制御層の動作周波数は、必要に応じて、およびメモリインタフェースシステムの制御層との通信において他のシステム要素と一致するようにスケーリングすることができる。
【０１０１】
図６は、この明細書内において開示される別の実施例に従ってＩＣ６００内において配置されるメモリインタフェースシステム（システム）６０５を例示する第６のブロック図である。システム６０５は、ＩＣ６００内に実現されて、メモリ装置６３０のようなＳＳＤとの通信を容易にする。示されるように、システム６０５は、アービタ６１０、メモリコントローラ６１５、およびＩ／Ｏバンク１００のようなＩ／Ｏバンクを含み得る。ＩＣ６００は、先に記載されるようなプログラマブルＩＣまたは非プログラマブルＩＣとして実現することができる。ここに開示される１つ以上の実施例は、プログラマブルＩＣ内における実現または使用に限定されるようには意図されない。むしろ、ＩＣ６００はさまざまな異なるタイプのＩＣの任意のものとして実現することができる。たとえば、ＩＣ６００は、内蔵メモリコントローラ、特定用途向けＩＣ、混合信号ＩＣまたは他の種類の非プログラマブルＩＣを有するプロセッサの形態で実現することができる。
【０１０２】
メモリ装置６３０は、さまざまなＤＤＲ  ＳＤＲＡＭ装置のうちの任意のものとして実現することができる。たとえば、メモリ装置６３０は、ＤＤＲタイプのメモリ装置、ＤＤＲ２タイプの装置、ＤＤＲ３タイプの装置、標準メモリインタフェースを有する低パワーＤＤＲ（ＬＰＤＤＲまたはモバイルＤＤＲ）タイプの装置の形態で実現することができる。アービタ６１０はＩＣ６００内において実施されるユーザ回路設計６２５に結合され得る。アービタ６１０は１つ以上のチャネル６３５を介してユーザ回路設計６２５に結合され得る。アービタ６１０は、チャネル６３５にわたってなされるメモリ装置６３０へのアクセスに対するユーザ要求に対して監視することができる。たとえば、アービタ６１０は、メモリ装置６３０へのアクセスに対する１つ以上のユーザ要求の検出に応答して、チャネル優先順位を決定することができる。ユーザ要求優先順位の決定に応答して、アービタ６１０は、受信したユーザ要求を１つ以上のＤＤＲアクセス要求に細分し、ＤＤＲ要求を順序づけ、ＤＤＲ要求をメモリコントローラ６１５に信号６４０を介して提出することができる。
【０１０３】
メモリコントローラ６１５は、メモリ装置６３０に出入りするデータの流れを管理することができる。メモリコントローラ６１５は、メモリ装置６３０においてデータを書込みおよび読出すためのコマンドを生成することができる。メモリコントローラ６１５は、コマンドがＩ／Ｏバンク１００によって実行される順序を決定するような機能をさらに実行することができる。たとえば、メモリコントローラ６１５は、ユーザ指定チャンネル優先順位に従ってアービタ６１０から受信したＤＤＲ要求を再順序付けすることができ、１つのチャネルにおいて受信した要求は他のチャネルからの先に存在する要求の存在にもかかわらず別の要求を越えて優先順位をあたえられる。
【０１０４】
この明細書内では、同じ参照符号は、端子、信号線、ワイヤおよびそれらの対応する信号を指すよう用いられる。この点において、用語「信号」、「ワイヤ」、「接続」、「端子」および「ピン」は、この明細書内において、時として、交換可能に用いられてもよい。用語「信号」、「ワイヤ」などは、１つ以上の信号、たとえば単一配線を介する単一ビットの伝達または複数の平行なワイヤを介する複数の並列のビットの伝達を表すことができることも、十分に理解されるべきである。さらに、各ワイヤまたは信号は、場合に応じて信号またはワイヤで接続される２つ以上の構成要素間の双方向通信を表してもよい。
【０１０５】
Ｉ／Ｏバンク１００は、信号６４５を介してメモリコントローラ６１５に結合されるとともに、信号６５０を介してメモリ装置６３０に結合される。一般に、Ｉ／Ｏバンク１００は、メモリコントローラ６１５およびアービタ６１０を含み得るクロックドメイン１と、メモリ装置６３０に結合するＩＣ６００の物理的な入出力（Ｉ／Ｏ）回路、たとえばＩ／Ｏバンク１００を含み得るクロックドメイン２との間の非同期境界を実現する。したがって、Ｉ／Ｏバンク１００はメモリ装置６３０によってサポートされる十分な動作周波数でメモリ装置６３０と通信し、異なる独立した周波数でメモリコントローラ６１５と通信することができる。たとえば、メモリコントローラ６１５は、Ｉ／Ｏバンク１００およびしたがってメモリ装置６３０の周波数に非同期である周波数で動作することができる。
【０１０６】
１つ以上の実施例によれば、Ｉ／Ｏバンク１００は、典型的には従来のメモリコントローラによって実現されるさまざまなリアルタイム処理機能を実現する。Ｉ／Ｏバンク１００内にリアルタイム処理機能を含むことによって、メモリコントローラ６１５は、Ｉ／Ｏバンク１００またはメモリ装置６３０とは異なる動作周波数で動作することができる。たとえば、Ｉ／Ｏバンク１００は、メモリコントローラ６１５によって通常実行されるさまざまなクロック信号生成、信号整列、およびトランザクション管理機能を実行することができる。Ｉ／Ｏバンク１００内におけるそのような機能の再配置によって、クロック線上のひずみに対するより大きな制御を達成することができる。さらに、メモリコントローラ６１５はより高いレベルの抽象化で機能することができる。たとえば、メモリコントローラ６１５は、この明細書内においてより詳しく記載されるリアルタイムイベントの管理に対する配慮なしでデータフロー動作を実行することができる。
【０１０７】
注目されるように、ＩＣ６００はプログラマブルＩＣとして実現することができる。システム６０５がプログラマブルＩＣ内において実現される１つ以上の実施例においては、システム６０５は、ハード化された回路と「ソフト」回路との組合せを用いて実現することができる。いくつかの場合では、プログラマブルＩＣのプログラマブルな回路は、現代のメモリ装置より遅い周波数で動作する。この明細書内において記載されるような非同期境界を用いることは、アービタ６１０およびメモリコントローラ６１５のような要素がプログラマブルＩＣのプログラマブルな回路を用いて実現されることを可能にする。したがって、アービタ６１０およびメモリコントローラ６１５はメモリ装置６３０より遅いクロックレートで動作することができる「ソフト回路」の形態において実現することができる。Ｉ／Ｏバンク１００は、メモリ装置６３０と通信し、メモリ装置６３０の運用周波数で、たとえば、アービタ６１０および／またはメモリコントローラ６１５より高速に機能する１つ以上のハードな回路の形態において実現することができる。
【０１０８】
動作中、アービタ６１０は、チャネル６３５の１つ以上を介してユーザ回路設計６２５から受信したユーザ要求に対して監視を行なう。アービタ６１０は、メモリコントローラ６１５によって処理するためのユーザ要求を適正に選択しかつ順序づけるための、選択されたアービトレーションスキームを実現することができる。ユーザ回路設計６２５の１つ以上の部分およびアービタ６１０は、クロックドメイン１を規定しユーザ回路設計６２５の１つ以上の部分に対応する動作周波数で動作し、したがって通信することができる。クロックドメイン１、およびしたがってクロックドメイン１を規定する動作周波数は、ＩＣ動作周波数と呼ぶことができる。
【０１０９】
メモリコントローラ６１５は、メモリ装置６３０に関して効率的な読出し／書込みアクセスのために、アービタ６１０から受信したユーザ要求を優先順位付けし再順序付けすることができる。メモリコントローラ６１５はアービタ６１０によって最初に決定された任意の順序から独立してユーザ要求を再順序付けすることができる。メモリコントローラ６１５は、アービタ６１０のように、ＩＣ周波数で動作することができる。メモリコントローラ６１５は、受信したユーザ要求を処理し、メモリ装置６３０における読出しおよび／または書込みのサポートにおいて任意のデータを交換することとともに、信号６４５を介してＩ／Ｏバンク１００に１つ以上のＰＨＹ制御ワードを発行することができる。
【０１１０】
Ｉ／Ｏバンク１００はメモリ装置６３０へのアクセスの制御のためにメモリコントローラ６１５からＰＨＹ制御ワードを受信することができる。Ｉ／Ｏバンク１００は、メモリ装置６３０へのデータおよびコマンドの送信、メモリコントローラ６１５からのＰＨＹ制御ワードの受信、およびメモリ装置６３０から読出されるデータの受信をサポートする、記載されるような１つ以上のＦＩＦＯメモリを含み得る。一般に、ＦＩＦＯメモリは、クロックドメイン１とクロックドメイン２との間で交差することを容易にする。一旦、データ、コマンドおよびＰＨＹ制御ワードが、クロック制御により、Ｉ／Ｏバンク１００内に位置するＦＩＦＯメモリ内に入れられると、Ｉ／Ｏバンク１００の残りはクロックドメイン２を規定する異なる動作周波数で動作することができる。メモリ装置６３０およびＩ／Ｏバンク１００の残りの部分は、ＳＳＤ周波数と呼ばれるこの異なる動作周波数で動作することができる。したがって、チャネル６３５ならびに信号６４０および６４５は、ＩＣ周波数でクロック制御することができる。Ｉ／Ｏバンク１００およびメモリ装置６３０を結合する信号６５０は、ＳＳＤ周波数でクロック制御することができる。
【０１１１】
論じられるように、位相器ブロック、たとえば位相器１３５は、ＩＣのようなシステムにデータをクロック制御で入力するためにストローブ信号の管理に関する機能を実行することができる。この点において、基準信号を、データを送るＳＳＤから受信したストローブ信号と同期させることができる。ストローブ信号上のパルスがデータと終端すると、基準信号はストローブ信号の代わりに１つ以上のサブシステムに伝搬され得る。ストローブ信号の代わりに基準信号をあたえることによって、システムが受信したデータを宛先サブシステムにクロック制御で入れることを完了することができる。基準信号は、ＳＳＤから受信したデータの捕捉および伝搬を完了するために、効果的にストローブ信号を置き換える。
【０１１２】
基準信号を利用するためには、基準信号はストローブ信号と位相および周波数の両方が整列しなければならない。１つ以上の実施例においては、遅延線を、１つ以上の分周器回路との組合せで用いることができる。高周波数基準信号を用いて、ストローブ信号と位相整列および周波数整列した、より低い周波数基準信号を生成することができる。たとえば、高周波数基準信号は、ストローブ信号およびしたがってより低い周波数基準信号より高い所与の倍数である周波数を有することができる。
【０１１３】
遅延線は、高周波数基準信号の周期とおよそ等しい最大量の遅延をあたえるように構成され得る。分周器は、各信号が異なる位相を有する、いくつかの異なる分周された信号をあたえるよう構成され得る。各分周された信号間の位相差は、高周波数基準信号の周期とおよそ等しくすることができる。遅延線を介して高周波数基準信号の周期までの遅延を達成することができる一方で、高周波数基準信号の周期を越える遅延は、遅延線によってあたえられる遅延の量を調整することとの組合せで出力する、所望の位相変動を有する、異なる分周された信号を選択することによって達成することができる。遅延線を１つ以上の分周器との組合せで用いることは、同じ周波数範囲にわたって動作するよう必要とされる数およびサイズの遅延線を含む場合よりも、必要とされる領域が少ない。
【０１１４】
図７は、この明細書内に開示される別の実施例に従ってストローブ信号を管理するためのシステム７００を例示する第７のブロック図である。システム７００は、メモリのようなＳＳＤ（ソース）との通信を容易にするよう、ＩＣ、たとえばターゲット内において位相器１３５のような位相器の形式で実現することができる。たとえば、ソースは、さまざまなＳＤＲＡＭ装置のうちの任意のものを含み得る。しかしながら、メモリは例示の目的でこの明細書内において用いられている一方で、ここに開示される１つ以上の実施例はもっぱらメモリとの使用に限定されることは意図されないことが十分に理解されるべきである。
【０１１５】
システム７００は、遅延モジュール７０５、位相検出器７１０、パルスコントローラ７１５およびマルチプレクサ７２０を含み得る。メモリコントローラ７２５も含まれ得る。遅延モジュール７０５は、基準信号７３０、たとえば第１の基準信号を受信するとともに、選択された量の遅延を基準信号７３０に適用して、信号７３５として示される、基準信号７３０の遅延されたバージョンを生成および／または出力することができる。信号７３５はさらに第２の基準信号とも呼ぶことができる。遅延モジュール７０５によって基準信号７３０に適用される遅延の量は、制御信号７４０を介して位相検出器７１０によって指定および／または決定することができる。
【０１１６】
位相検出器７１０は信号７３５およびストローブ信号７４５を入力として受信することができる。位相検出器７１０は、信号７３５をストローブ信号７４５と比較し、２つの信号間の位相差を測定することができる。基準信号７３５のエッジがストローブ信号７４５の同様のエッジに先立って生じることを位相検出器７１０が検出すると（たとえば、「同様の」は、両方のエッジが立ち上がるかまたは立ち下がることを指す）、位相検出器７１０は遅延モジュール７０５に対して基準信号７３５に適用される遅延の量を増分するように指示することができる。基準信号７３５のエッジがストローブ信号７４５の同様のエッジの後に生じることを位相検出器７１０が検出すると、位相検出器７１０は遅延モジュール７０５に対して基準信号７３５に適用される遅延の量を減分するように指示することができる。
【０１１７】
整列または実質的に整列されると、遅延モジュール７０５は、たとえば、信号７３５に適用される遅延の量を増分することと減分することとの間を行き来して切換えることができる。したがって、遅延の量が相対的に一定にとどまる場合、たとえば、２つの異なる量の遅延の間を絶えず行き来して循環するとき、位相検出器７１０は、信号７３５はストローブ信号７４５と位相および周波数が整列していると判断することができる。
【０１１８】
１つ以上の実施例においては、基準信号７３０はストローブ信号７４５とおよそ同じ周波数を有することができる。その場合、遅延モジュール７０５は、たとえば遅延線を用いて、遅延の追加または除去によってタイムシフトを実行することができる。ここにより詳しく記載される１つ以上の他の実施例においては、基準信号７３０は、ストローブ信号７４５より高い周波数に設定することができる。たとえば、基準信号７３０は、ストローブ信号７４５の周波数の倍数、たとえば２倍、４倍などの周波数を有することができる。
【０１１９】
基準信号７３０がストローブ信号７４５の周波数の倍数である周波数を有するとき、遅延モジュール７０５は、遅延線および１つ以上の分周器を含むよう構成され得る。遅延線は、制御信号７４０によって指定されるように、基準信号７３０に可変の遅延量をあたえるよう制御されることができる。分周器は信号７３５の周波数をストローブ信号７４５の周波数まで下げる。基準信号７３０のより高周波なバージョンを、分周器および遅延線と組合せて用いることにより、システム７００は、遅延線のサイズを周波数分割なしで遅延線を単独で用いるときよりも小さく保持しながら、より大きな周波数範囲にわたってストローブ信号との位相整列を達成することができる。
【０１２０】
パルスコントローラ７１５は、ストローブ信号７４５およびメモリコントローラ７２５に関するいくつかの処理機能を実行するよう構成される回路を含み得る。１つの局面においては、パルスコントローラ７１５は、信号７３５またはストローブ信号７４５をマルチプレクサ７２０を通して渡し、マルチプレクサ７２０にそれに応じて制御信号７６０を介して指示するべきであるかどうかを決定することができる。別の局面においては、パルスコントローラ７１５は、メモリコントローラ７２５によってソース（図示せず）へ発行される、読出要求７５０のような読出要求を検出するよう構成され得る。読出要求７５０の検出に応答して、パルスコントローラ７１５は、ソースから返されるデータ量のような読出要求７５０のさまざまな属性を判断することができる。パルスコントローラ７１５は、さらに、読出要求７５０は複数の連続的な（back-to-back）読出要求の一部かどうかを決定することができる。たとえば、パルスコントローラ７１５は、読出要求７５０に続く所定の期間内に生じるメモリコントローラ７２５からの後の読出要求の発行に対する監視を行なうことができる。後の読出要求が所定の期間内に生じる場合、読出要求は連続的であると考えられる。
【０１２１】
動作中、メモリコントローラ７２５は、ソース、たとえばメモリに読出要求７５０を発行することができる。読出要求７５０は、要求されるデータ量を指定する。パルスコントローラ７１５は読出要求７５０を検出するとともに、要求されるデータ量に少なくとも一部基づいて、読出要求７５０に応答して、ストローブ信号７４５において期待されるパルスの数を決定することができる。たとえば、ソースがＤＤＲタイプのＳＲＡＭである場合を考える。その場合、読出要求７５０が４ビットのデータを要求するときには、データがストローブ信号７４５のパルスの各エッジにおいてクロック制御されるので、わずか２つのパルスがストローブ信号７４５上に期待される。同様に、８ビットのデータが読出要求７５０によって要求されるときには、パルスコントローラ７１５は４つのパルスがストローブ信号７４５上に期待されると判断する。
【０１２２】
注目されるように、ソース同期装置からの受信データが停止すると、データに伴うストローブ信号７４５上のパルスも停止する。注目されるように、いくつかの場合には、読出要求は複数の連続的な読出要求の一部であり得る。連続的な読出要求に関して、ストローブ信号７４５上のパルスは連続的で、連続的な読出要求の最後に応じてソースから送られるデータの最後の部分でしか終了しない。ストローブ信号７４５上のパルスが停止すると、システム７００が配置されるＩＣの付加的な回路へ、受信データをクロック制御するための、付加的なパルスが必要とされ得る。
【０１２３】
たとえば、システム７００がプログラマブルＩＣ内に配置される場合を考える。付加的なパルスは、プログラマブルＩＣのプログラマブルなファブリックのような付加的な回路に任意の受信データを伝搬するために必要とされ得る。ソースからの受信データは、直並列変換器内、およびＦＩＦＯタイプのメモリ内に伝搬することができる。ＦＩＦＯメモリから、データはプログラマブルＩＣのファブリック内に伝搬されることができる。したがって、付加的なパルスが、直並列変換器およびＦＩＦＯメモリの両方を介して、受信データをクロック制御するために必要であり、なぜならば、ストローブ信号７４５上のパルスは、ＳＳＤから送られるデータの最終ビットとともに停止するからである。
【０１２４】
位相検出器７１０は、信号７３５とストローブ信号７４５との間の位相差を測定することができる。注目されるように、信号７３５およびストローブ信号７４５はおよそ同じ周波数であり得る。位相検出器７１０は、上述のように、信号７３５がストローブ信号７４５と位相整列されるまで、基準信号７３０に適用される遅延の量を増分または減分するように、遅延モジュール７０５に対して指示することができる。
【０１２５】
データが読出要求７５０に応じて受信されると、パルスコントローラ７１５は、ストローブ信号７４５を信号７５５として通過させるように、マルチプレクサ７２０に対して指示することができる。したがって、初めに、ストローブ信号７４５を、さまざまなサブシステム、たとえば直並列変換器、ＦＩＦＯメモリなどに伝搬して、ストローブ信号７４５とともに受信したデータをクロック制御することができる。パルスコントローラ７１５は、読出要求７５０に応じて受信したパルスをカウントすることができる。期待された数のパルスが受信されると、たとえば、期待された数のパルスの最後のパルスが検出されると、パルスコントローラ７１５は、ストローブ信号７４５の代わりに信号７３５を信号７５５として通過させるように、マルチプレクサ７２０に指示する。したがって、ストローブ信号７４５は、信号７３５と効果的に置換される。したがって、パルスがストローブ信号７４５上で停止している間、ソースから受信したデータを伝搬し続けるために必要とされる付加的なパルスが、信号７３５からサブシステムにあたえられる。
【０１２６】
１つ以上の実施例においては、パルスコントローラ７１５は、信号７３５からの所定数のパルスが信号７５５として伝搬することを可能にし、その後ストローブ信号７４５を再び信号７５５として通過させるようマルチプレクサ７２０に指示するように構成され得る。１つ以上の他の実施例においては、パルスコントローラ７１５は、さらなる、つまり後続の読出要求、たとえば読出要求７５０の直後に続く読出要求が、メモリコントローラ７２５から発行されることを検出することに応答して、ストローブ信号７４５を通過させるようマルチプレクサ７２０に指示することができる。
【０１２７】
注目されるように、読出要求が複数の連続的な読出要求の一部であるとき、さらなるパルスは、複数の連続的な読出要求の最後に対応する最後のパルスの後にのみ必要である。したがって、パルスコントローラ７１５は、読出要求が複数の連続的な読出要求の一部であるかどうか、および、もしそうであれば、その読出要求が複数の連続的な読出要求の最後であるかどうか、を判断することができる。ストローブ信号７４５の代わりに信号７３５を通過させる手順は、たとえば、個別の読出要求の最後のパルスであれ、複数の連続的な読出要求の最後の要求の最後のパルスであれ、最後のパルスがパルスコントローラ７１５によって検出されると、開始することができる。
【０１２８】
図８は、この明細書内に開示される別の実施例に従って信号を遅延させるためのシステムを例示する第８のブロック図である。特に、図８は、図７を参照して記載される遅延モジュール７０５の例示的な実現例を例示する。図８は、基準信号７３０が、ストローブ信号の周波数より高い周波数、たとえばその倍数に設定される、遅延モジュール７０５の実施例を例示する。たとえば、基準信号７３０の周波数は、ストローブ信号の周波数の１倍、２倍、３倍、４倍などであり得る。その場合、遅延線は、図８に示されるような１つ以上の分周器との組合せにおいて用いることができる。分周器はストローブ信号とおよそ同じ周波数において信号７３５の生成を容易にする。しかしながら、１つ以上の他の実施例においては、基準信号７３０およびストローブ信号はおよそ同じ周波数を有し得ることが十分に理解されるべきである。基準信号７３０およびストローブ信号がおよそ同じ周波数を有するときは分周器は必要ではなく、遅延線を用いて、信号７３５とストローブ信号との間の位相整列を達成するために必要とされる遅延の量の全体を供給することができる。
【０１２９】
図８を続けて参照して、遅延モジュール７０５は、遅延線８０５、カウンタ８２０、１つ以上の分周器８２５および８３０、ならびに出力セレクタ８３５を含み得る。遅延線８０５は、基準信号７３０に可変の遅延量をあたえるよう構成される多タップ遅延線として実現することができる。示されるように、遅延線８０５は複数の遅延素子８１０１〜８１０ｎを含み得る。遅延素子８１０１〜８１０ｎの各々は、所定の、および／またはおよそ等価な遅延量をあたえることができる。遅延素子８１０１〜８１０ｎの各々の、タップとも呼ばれる出力は、ワイヤを介して遅延セレクタ８１５に結合され得る。
【０１３０】
遅延セレクタ８１５は、特定のタップを、制御信号７４０によって指定されるように、信号８３８として通過させる回路を含み得る。このように、遅延線８０５の出力が採用される特定の遅延素子８１０を選択することによって、基準信号７３０に適用される遅延の量は動的に調整することができる。したがって、図７を参照して記載されるように、位相検出器は、遅延セレクタ８１５、およびしたがって遅延線８０５によって基準信号７３０に適用される遅延の量を制御するために信号７４０を生成することができる。
【０１３１】
たとえば、遅延線８０５は、６４のタップ、たとえば６４の異なる遅延素子８１０を含み得る。遅延素子８１０１〜８１０ｎの各々は、「ｎ」が遅延素子８１０の総数である場合に、「ｎ」で除された基準信号７３０の周期とおよそ等しい遅延の量をあたえるよう構成され得る。制御信号７４０は、たとえば、増分信号および減分信号を含む２つの異なる制御信号をあたえるよう構成され得る。位相検出器（図示せず）によって決定される増分信号のアサートは、基準信号７３０の信号経路に遅延素子８１０を追加する。遅延素子８１０を追加することは、「遅延を１つのタップ分だけ増大する」とも言われる。位相検出器によって決定される減分信号のアサートは、基準信号７３０の信号経路から遅延素子８１０を取除く。遅延素子８１０を除去することは、「遅延を１つのタップ分だけ減ずる」とも言われる。増分信号および減分信号は、遅延セレクタ８１５によって通過させられる特定のタップを効果的に選択する。
【０１３２】
左端の信号、つまり信号８３２が信号８３８として遅延セレクタ８１５を通して通過する場合、単一の遅延素子８１０のみが基準信号７３０の信号経路に置かれ、それによって、遅延線８０５から利用可能な最少量の遅延を適用する。遅延線８０５から利用可能な最少量の遅延は、およそ、遅延素子８１０の数、つまり「ｎ」で除された基準信号７３０の周期である。右端の信号、つまり信号８３４が信号８３５として通過する場合、遅延線８０５から利用可能な最大量の遅延が基準信号７３０に適用される。遅延線８０５から利用可能な最大量の遅延は基準信号７３０のおよそ全周期である。
【０１３３】
１つ以上の実施例においては、遅延セレクタ８１５は、順方向および逆方向においてロールオーバー（roll over）するよう構成され得る。たとえば遅延線８０５内において利用可能な最大量の遅延が適用され、遅延の量が増分されることになることを制御信号７４０が示す場合、遅延セレクタ８１５は、信号８３４を通過させることから、遅延線８０５から利用可能な最少量の遅延に対応する信号８３２を通過させることに、ロールオーバーする。遅延線８０５が既に最大量の遅延をあたえているときに、基準信号７３０に適用される遅延の量を増大することは、「順方向ロールオーバー」と呼ばれ得る。
【０１３４】
同様に、遅延線８０５から利用可能な最少量の遅延が適用され、遅延の量が減分されることになることを制御信号７４０が示すとき、遅延セレクタ８１５は、信号８３２を通過させることから、遅延線８０５から利用可能な最大量の遅延に対応する信号８３４を通過させることに、ロールオーバーする。遅延線８０５が既に最少量の遅延をあたえているときに、基準信号７３０に適用される遅延の量を低減することは、「逆方向ロールオーバー」と呼ばれ得る。
【０１３５】
カウンタ８２０は信号８４０を介して遅延セレクタ８１５に結合される。カウンタ８２０は、遅延素子８１０が基準信号７３０の信号経路に追加されると、そこに記憶されたカウントの値を増分することができる。カウンタ８２０は、遅延素子８１０が基準信号７３０の信号経路から取除かれると、そこに記憶されたカウントの値を減分することができる。１つ以上の実施例においては、カウンタ８２０は、遅延線８０５内における遅延素子８１０の数に対応する「ｎ」、または０から「ｎ−１」まで、カウントアップするよう構成され得る。したがって、カウンタ８２０は順方向および逆方向の両方においてロールオーバーすることができる。最高値、たとえば「ｎ」を越えてカウンタを増分すると順方向ロールオーバーを引起し得、カウンタ８２０はロールオーバーするかまたはリセットし、カウントアップを継続する。たとえば０にあるときにカウンタ８２０を減分することは、逆方向ロールオーバーを引起し得、カウンタ８２０は、逆方向に、最大カウント値にロールオーバーし、カウントダウンを継続する。いずれにせよ、カウンタ８２０は、順方向または逆方向で、出力セレクタ８３５にロールオーバーを通知し、信号８４５もしくは８５０、または、８６５、８７０、８７５もしくは８８０のいずれかのうちの異なる１つを、その結果つまり信号７３５として出力させることができる。
【０１３６】
分周器８２５は、信号８３８、たとえば基準信号７３０を遅延したバージョンの周波数を、２で除するよう構成され得る。示されるように、分周器８２５は、受信信号８３８から、信号８４５および８５０を出力として生成することができる。信号８４５および８５０の各々は、信号８３８の周波数の約２分の１の周波数を有することができる。信号８４５は信号８３８と位相整列され、一方、信号８５０は信号８４５の反転つまり位相を１８０度ずらしたバージョンであり得る。
【０１３７】
一般に、出力セレクタ８３５は複数のモードの１つにおいて動作するよう構成され得る。第１のモードにおいては、出力セレクタ８３５は信号８３８を出力するよう構成され得る。第１の動作モードは、周波数分割は必要ではなく、信号７３５はストローブ信号の周波数と同じ周波数を有する動作モードに対応する。第２のモードにおいては、出力セレクタ８３５はカウンタ８２０からの制御信号８５５に応じて信号８４５または信号８５０のいずれかを出力するよう構成され得る。基準信号７３０がストローブ信号の周波数の約２倍であるとき、第２のモードを用いることができる。第３のモードにおいては、出力セレクタ８３５は、制御信号８５５に応答して信号８６５、８７０、８７５、または８８０を通過させるよう構成され得る。基準信号７３０がストローブ信号の周波数の約４倍であるとき、第３のモードを用いることができる。
【０１３８】
出力セレクタ８３５は、さまざまな技術のうちの任意のものを用いて、第１のモード、第２のモードまたは第３のモードに置くことができる。たとえば、制御信号（図示せず）を出力セレクタ８３５にあたえて、出力セレクタ８３５を第１、第２、または第３のモードに置くことができる。別の例においては、システムが配置されるＩＣがプログラマブルＩＣであるとき、プログラマブルＩＣにロードされる設定データによって、出力セレクタ８３５が置かれるべき特定のモードを指定することができる。
【０１３９】
注目されるように、遅延線８０５は基準信号７３０に全周期の遅延をあたえることができる。基準信号７３０がストローブ信号の約２倍の周波数を有する場合を見ると、遅延線８０５は信号８４５および８５０のいずれかにわずか１／２周期の遅延のみをあたえることがわかり、なぜならば、信号８４５および８５０の各々は、基準信号７３０の約２分の１の周波数およびしたがって周期の２倍を有するからである。信号７３５のストローブ信号との位相整列のために必要になり得る遅延の残りの半分の周期を達成するために、たとえば、信号８４５または８５０の１つが信号７３５として出力セレクタ８３５を通過するとき、カウンタ８２０は、遅延線がロールオーバーするかどうかに基づいて信号８４５または信号８５０を通過させることを出力セレクタ８３５に指示するよう構成され得る。
【０１４０】
例示において、遅延セレクタ８１５が信号８３４を信号８３８として通過させる状態で、遅延線８０５が基準信号７３０に最大量の遅延を適用している場合を考える。出力セレクタ８３５は、最初に信号８４５を信号７３５として通過させるよう構成され得る。したがって、信号８３８は、遅延線８０５から利用可能な最大量、つまり信号８４５または８５０のいずれかの周期の２分の１によって、基準信号７３０が遅延されたバージョンである。信号８３８は分周され信号８４５として出力することができ、それは出力セレクタ８３５を通して信号７３５として通過させることができる。制御信号７４０が遅延素子８１０の追加によって遅延の量を増分するよう遅延セレクタ８１５に指示すると、遅延線８０５は順方向にロールオーバーして最少量の遅延をあたえ、たとえば信号８３２を信号８３８として通過させる。カウンタ８２０も順方向にロールオーバーし、出力セレクタ８３５に順方向ロールオーバーの通知をあたえる。
【０１４１】
順方向ロールオーバーを示す信号８５５を介するカウンタ８２０からの命令に応答して、出力セレクタ８３５は信号８５０を信号８４５の代りに通過させる。信号８５０は、信号８４５の反転したものであり、したがって、信号８４５と１８０度位相がずれていることを想起されたい。したがって、単に８４５の代りに信号８５０を通過させることによって信号７３５にあたえられる遅延の量は、約１８０度、たとえば基準信号７３０の周期の約２分の１である。遅延線８０５におけるロールオーバー状態は、最大量の遅延をあたえることから、利用可能な最少量の遅延をあたえることに、遅延線を遷移させる。
【０１４２】
遅延線８０５における順方向ロールオーバーの結果において適用され、信号８５０を信号８４５の代りに通過させる純遅延は、結果として、信号７３５の遅延における１つのタップ、つまり１つの遅延素子の純増加になる。制御信号７４０についてのさらなる増分は基準信号７３０の信号経路に遅延素子８１０を再び追加することによって実行することができる。このように、遅延線８０５が、必要とされる遅延のわずか１／２しかあたえないにもかかわらず、（信号８４５および８５０を参照して）全周期の遅延までを達成することができる。
【０１４３】
同様の手順を、たとえば、より少ない遅延が必要なときに、反対方向において実行することができる。たとえば、遅延セレクタ８１５が信号８３２を信号８３８として通過させる状態で、遅延線８０５が基準信号７３０に最少量の遅延を適用している場合を考える。出力セレクタ８３５は、最初に信号８５０を信号７３５として通過させるよう構成され得る。したがって、信号８３８は、遅延線８０５から利用可能な最少量の遅延、つまり１つの遅延素子８１０によって、基準信号７３０が遅延されたバージョンである。信号８３８は分周されるとともに、信号８５０として出力することができ、それは出力セレクタ８３５を通して信号７３５として通過させることができる。制御信号７４０が遅延素子８１０の除去によって遅延の量を減分するよう遅延セレクタ８１５に指示すると、遅延線８０５は逆方向にロールオーバーして最大量の遅延をあたえ、たとえば信号８３４を信号８３８として通過させる。カウンタ８２０も逆方向にロールオーバーし、出力セレクタ８３５に逆方向ロールオーバーの通知をあたえる。
【０１４４】
逆方向ロールオーバーを示す信号８５５を介するカウンタ８２０からの命令に応答して、出力セレクタ８３５は信号８４５を信号８５０の代りに通過させる。信号８４５は、信号８５０の反転したバージョンであり、したがって、信号８５０と１８０度位相がずれていることを想起されたい。したがって、単に８５０の代りに信号８４５を通過させることによって信号７３５にあたえられる遅延の量は、約１８０度、たとえば基準信号７３０の周期の約２分の１である。遅延線８０５における逆方向ロールオーバー状態は、最少量の遅延をあたえることから、利用可能な最大量の遅延をあたえることに、遅延線を遷移させる。遅延線８０５における逆方向ロールオーバーの結果において適用され、信号８４５を信号８５０の代りに通過させる純遅延は、結果として、信号７３５の遅延における１つのタップ、つまり１つの遅延素子の純低減になる。制御信号７４０についてのさらなる低減は基準信号７３０の信号経路から遅延素子８１０を再び除去することによって実行することができる。
【０１４５】
遅延線８０５の分周器８２５との組合せは、ストローブ信号の周波数より高い基準周波数が用いられるときに遅延線８０５を通してのみ利用可能な遅延より大きな遅延が達成可能な１つの態様を例示する。分周器８３０の追加を通して、さらに大きな柔軟性に到達することができる。
【０１４６】
分周器８３０は分周器８２５から出力信号８６０を受信することができる。信号８６０は、基準信号７３０の周波数の約２分の１の周波数を有する。したがって、分周器８３０は、各々が基準信号７３０の周波数の約１／４の周波数を有する信号８６５〜８８０を生成する。１つ以上の実施例においては、信号８６５は、信号８６０の位相と実質的に等しい位相を有することができる。信号８６５〜８８０の各々は、互いに関して約９０度の位相変動を有することができる。たとえば、信号８７０の位相は信号８６５の位相より約９０度進んでいる。信号８７５の位相は信号８７０の位相より約９０度進んでいる。信号８８０の位相は信号８７５の位相より約９０度進んでいる。
【０１４７】
出力セレクタ８３５は、カウンタ８２０がいつロールオーバーするか、およびロールオーバーの方向、つまり、順方向か逆方向かによって、信号８６５〜８８０の１つを信号７３５として出力、つまり通過させるよう構成され得る。信号８６５〜８８０の各々が基準信号７３０の周波数の約１／４の周波数を有するので、遅延線８０５は遅延に関して信号８６５〜８８０の最大で１／４の周期をあたえることが十分に理解できる。したがって、カウンタ８２０を用いて、遅延セレクタ８１５が４分の１周期境界と交差するかどうか、たとえば、信号８３２を通過させることから８３４に移動するか、または８３４を通過させることから信号８３２に移動するかを決定することができる。
【０１４８】
例示においては、信号８３４を通過させることから信号８３２への遷移、つまり順方向ロールオーバーは、カウンタ８２０が、出力セレクタ８３５に対して、現在通過している信号より９０度進んだ位相変動を有する信号を通過させるように指示させる。たとえば、順方向ロールオーバーが生じる場合に、信号８６５が通過させられるときは、出力セレクタ８３５は信号８６５の代わりに信号８７０を通過させる。同様に、信号８３２を通過させることから信号８３４への遷移、つまり逆方向ロールオーバーは、カウンタ８２０が、出力セレクタ８３５に対して、現在通過している信号より９０度遅れた位相変動を有する信号を通過させるように指示させる。たとえば、逆方向ロールオーバーが生じる場合に信号８７０が通過させられると、出力セレクタ８３５は信号８７０の代わりに信号８６５を通過させる。遅延線８０５によって適用される変動する遅延の量と組み合わされた信号８６５〜８８０の１つを選択することにより、信号７３５は、単一の遅延素子８１０によってあたえられるおよその遅延から、基準信号７３０の周期の約４倍、つまり信号８６５のような信号の１つの全周期である遅延の量までにわたって、調整可能な遅延を有することができる。
【０１４９】
付加的なストローブ信号処理機能はＩＣ内におけるストローブ信号の動的な検出を含み得る。タイミング関係は、制御信号とストローブ信号の第１のパルスとの間において決定することができる。特に、制御信号は、ターゲットからＳＳＤに送ることができる。制御信号に応答して、ＳＳＤはストローブ信号を介して基準信号を指定し始めることができる。たとえばストローブ信号上の第１のパルスを検出することができる。
【０１５０】
制御信号と第１のパルスとの間において測定される時間を用いて、ストローブ信号を後続のトランザクションにおいてスケルチングすることができる。したがって、ストローブ信号は、測定されたタイミング関係を用いて、制御信号によって示される時間からソース同期装置と通信するターゲットシステムによって使用可能である信頼性のある基準信号を指定することにストローブ信号が遷移するおよその時間まで、効果的にゲート制御される。
【０１５１】
図９は、この明細書内において開示される別の実施例に従ってストローブ信号を処理するためのシステム９００を例示する第９のブロック図である。図９は、メモリ９３０のようなＳＳＤと通信するＩＣ９０５を例示する。たとえば、メモリ９３０は、さまざまなＳＤＲＡＭ装置のうちの任意のものとして実現することができる。メモリがこの明細書内において例示の目的で用いられることが十分に理解されるべきである。この明細書内において開示される１つ以上の実施例は、さまざまな異なるＳＳＤのうちの任意のものに適用することができ、メモリとの使用に限定されない。
【０１５２】
示されるように、ＩＣ９０５は、物理インタフェース９１０、たとえばＩ／Ｏバンク１００、ストローブ検出器９１５、メモリコントローラ９２０、およびクロックソース９２５を含み得る。物理インタフェース９１０は、ＩＣ９０５とメモリ９３０との間を通過する信号が伝搬される入出力（Ｉ／Ｏ）ブロック、ピンなどのような回路を含み得る。
【０１５３】
ストローブ検出器９１５は、メモリコントローラ９２０とメモリ９３０との間の通信を容易にするように信号の整列および／または検出に関するさまざまな機能を実行することができる。１つ以上の実施例においては、ストローブ検出器９１５は、読出要求がいつメモリコントローラ９２０から開始、たとえば送られ、メモリ９３０に向けられるかを検出することができる。ストローブ検出器９１５は、読出要求の送信または開始と、トライステート状態から有効な基準信号が指定される状態へのストローブ信号の遷移との間の時間の量を決定することができる。ストローブ信号はデータストローブ信号であり、ＤＱＳ信号とも呼ばれる。
【０１５４】
メモリコントローラ９２０は、メモリ９３０に対して読出しおよび書込みを行うよう構成される回路を含み得る。たとえば、メモリ９３０がＤＲＡＭとして実現される場合、メモリコントローラ９２０は、メモリ９３０と通信して、メモリ９３０に対して読出しまたは書込みを行うことができる。その場合、メモリコントローラ９２０は、さらに、メモリ９３０に電流または電力をあたえることによってメモリ９３０を「リフレッシュする」ための回路を含み得る。
【０１５５】
クロックソース９２５は、物理インタフェース９１０、ストローブ検出器９１５およびメモリコントローラ９２０の各々に分配されるクロック信号を生成するよう構成される回路を含み得る。たとえば、ストローブ検出器９１５は複数の異なるクロック信号を利用することができ、各々はメモリ９３０からのストローブ信号のような選択された信号のオーバーサンプリングを達成するよう位相調整される。クロックソース９２５は、残りの図を参照してこの明細書内においてより詳しく記載されるように、ストローブ信号をオーバーサンプリングするようストローブ検出器９１５によって必要とされる必要クロック信号を生成することができる。クロックソース９２５はさらに物理インタフェース９１０およびメモリコントローラ９２０を駆動するのに必要なクロック信号を生成することができる。クロックソース９２５は、１つ以上の受信基準クロック信号から必要とされる信号を生成するか、または必要とされるクロック信号を内部で生成することができる。
【０１５６】
動作中、メモリコントローラ９２０は、物理インタフェース９１０を介してメモリ９３０に送られる読出要求を開始することができる。１つ以上の実施例においては、読出要求はストローブ検出器９１５を通って伝搬されることができる。たとえば、メモリコントローラ９２０からの読出要求の受信に応答して、ストローブ検出器９１５は、読出要求を物理インタフェース９１０に転送することができる。１つ以上の他の実施例においては、メモリコントローラ９２０は、読出要求を物理インタフェース９１０に直接送信し、読出要求のコピーをストローブ検出器９１５にあたえることができる。
【０１５７】
読出要求がメモリコントローラ９２０によって開始されたかまたは送信されたという決定に応答して、ストローブ検出器９１５は、メモリ９３０から受信したストローブ信号上における第１のパルスの発生に対して監視を始めることができる。一般に、使用されていないとき、メモリ９３０はストローブ信号をトライステートに保つ。たとえば、メモリコントローラ９２０からの要求に応答するまで、ストローブ信号はハイインピーダンス状態、または「ハイｚ」状態のままである。読出要求に応答して、メモリ９３０は、プリアンブルを生成し、それをストローブ信号上に送信することができる。一実施例においては、プリアンブルは、ストローブ信号によってあたえられる基準の周波数における１クロックサイクルまたは約１クロックサイクルの間、ストローブ信号の電圧をＬレベルに引くように、規定することができる。プリアンブルの後、ストローブ信号は、メモリ９３０から受信したデータを読出す際にメモリコントローラ９２０によって用いられるべき基準信号を形成する一連のパルスの第１のパルスを指定する。
【０１５８】
ストローブ検出器９１５は、ストローブ信号のプリアンブルに続く第１のパルスを検出し、したがって、読出要求と第１のパルスの検出との間の時間の量を計算するよう構成され得る。時間の量は、読出要求がメモリ９３０に送られるときとメモリ９３０からのストローブ信号がメモリ９３０からのデータの獲得および処理のために必要とされる基準信号をあたえ始めるときとの間の「往復の」時間である。読出要求が発行される場合、ストローブ信号はトライステートであるため、ストローブ信号は、ストローブ信号が信頼性のある基準信号をあたえることに遷移するまで、ＩＣ９０５のシステムに入ることを妨げられるべきである。したがって、ストローブ信号は、読出要求が送信される時間から、およそ第１のパルスがプリアンブルに続いて受信されるまで、ゲート制御され得る。一般に、ストローブ検出器９１５は、読出要求の検出に応答して、ストローブ信号をスケルチング、たとえば抑制し、測定された時間の量、たとえば先の読出要求と先の読出要求に続く第１のパルスとの間の時間の量が経過した後、ストローブ信号をゲート制御することを停止することができる。ゲート制御は予期される態様で先の測定値を用いて実行することができる。たとえば、読出要求と読出要求に続く第１のパルスとの間の時間の量は、各読出要求に応答して決定することができる。各読出要求に応答して計算された時間の量は、後続の、または後の読出要求のために、ストローブ信号をスケルチングするのに用いることができる。したがって、ストローブ検出器９１５によって実行されるスケルチングの継続期間は、温度および／または電圧における変動に起因し得るストローブ信号のタイミングにおける変化を斟酌するよう継続的に更新することができる。
【０１５９】
１つ以上の実施例においては、ストローブ検出器９１５は物理インタフェース９１０内に組込むことができる。たとえば、ストローブ検出器９１５は、ＩＣ９０５のＩ／Ｏバンク内に配置することができる。別の例においては、ストローブ検出器９１５は、先に記載されたような位相器１３５のような位相器内において、またはその一部として実現することができる。１つ以上の他の実施例においては、クロックソース９２５を、さらに、物理インタフェース９１０とともに配置することができる。たとえば、クロックソース９２５は、ＩＣ９０５のＩ／Ｏバンク内に配置することができる。
【０１６０】
図１０は、別の実施例に従ってストローブ検出器を例示する第２のブロック図である。特に、図１０は、図１を参照して記載されるストローブ検出器９１５を例示する。示されるように、ストローブ検出器９１５は、検出器コントローラ１００２、カウンタ１００４、複数のサンプリングフリップフロップ（ＦＦ）１０１０〜１０２４およびスケルチ回路１０７０を含み得る。
【０１６１】
検出器コントローラ１００２は信号１００６を介してカウンタ１００４に結合される。信号１００６を通して、検出器コントローラ１００２は、カウンタ１００４を開始し、カウンタ１００４を停止し、カウンタ１００４内において記憶されたカウンタ値を読出し、および／またはカウンタ１００４をリセットすることができる。１つ以上の実施例においては、カウンタ１００４は、監視される信号の約８倍の周波数で動作するよう構成され、この場合には信号はストローブ信号である。したがって、カウンタ１００４は、そこに記憶されたカウンタ値を、経過するストローブ信号のクロックサイクルの１／８毎に、１だけ増分することができる。ストローブ信号が一定の基準信号をあたえない間、ストローブ信号の周波数またはクロック周期への参照は、たとえば、プリアンブルに続いて有効な基準信号が指定されるときにストローブ信号の周波数および／またはクロック周期を指すことが理解されるべきである。
【０１６２】
検出器コントローラ１００２は、さらに、信号１００８を介してスケルチ回路１０７０に結合される。スケルチ回路１０７０は所定の時間量に対してストローブ信号をスケルチングするよう構成される。たとえば、スケルチ回路１０７０は、コントローラ１００２によって決定されるカウンタ１００４からのカウンタ値によって決定される時間の量の間ストローブ信号をゲート制御することができる。注目されるように、ストローブ信号はＤＱＳ信号であり得る。したがって、スケルチ回路１０７０は、低静的信号または高静的信号であるよう構成される静的な値を、ストローブ信号がゲート制御されている間に、メモリコントローラ９２０に渡すことができる。
【０１６３】
サンプリングＦＦ１０１０〜１０２４は、クロック信号１０３０〜１０４４によってそれぞれクロック制御することができる。クロック信号１０３０〜１０４４はクロックソース９２５によって生成するか、またはあたえることができる。サンプリングＦＦ１０１０〜１０２４は、検出器コントローラ１００２に、信号１０５０〜１０６４をそれぞれ出力することができる。クロック信号１０３０〜１０４４はストローブ信号とおよそ同じ周波数を有することができる。クロック信号１０３０〜１０４４の各々の周波数が実質的に同じまたは同様であり得る一方で、クロック信号１０３０〜１０４４の各々の位相は互い違いまたは異なることができる。
【０１６４】
例示の目的のために、クロック信号１０３０の位相を、クロック信号１０３２〜１０４４の各々の位相が変化あるいは調整され得るベースライン位相と考える。たとえば、クロック信号１０３０の位相を「θ」と示すと、クロック信号１０３２の位相は、Ｎを所定の値として、「θ＋Ｎ」であり得る。クロック信号１０３４の位相は「θ＋２Ｎ」であり得る。クロック信号１０３６〜１０４４の位相は、それぞれ、「θ＋３Ｎ」、「θ＋４Ｎ」、「θ＋５Ｎ」、「θ＋６Ｎ」および「θ＋７Ｎ」であり得る。１つ以上の実施例においては、Ｎは整数値であるよう選択することができる。Ｎの値は、たとえばストローブ信号をサンプリングするために用いられるサンプリングＦＦの数で３６０度を除することによって判断することができる。図１０を参照して、Ｎの値は「３６０／８」であると決定することができ、それは４５度である。したがって、約４５度の位相変動が、クロック信号対１０３０〜１０３２、１０３２〜１０３４、１０３４〜１０３６、１０３６〜１０３８、１０３８〜１０４０、１０４２〜１０４４の各々の間において存在する。
【０１６５】
したがって、サンプリングＦＦ１０１２は、サンプリングＦＦ１０１０の後、ストローブ信号クロックサイクルの約１／８でストローブ信号の値を捕捉する。サンプリングＦＦ１０１４は、サンプリングＦＦ１０１２の後、ストローブ信号クロックサイクルの約１／８でストローブ信号の値を捕捉し、以下同様である。検出器コントローラ１００２は、サンプリングＦＦ１０１０〜１０２４からのそれぞれの信号１０５０〜１０６４の各々を監視することによって、ストローブ信号のクロックサイクルの１／８の間隔でストローブ信号の状態を判断し、ストローブ信号の８倍のオーバーサンプリングを効果的に達成する。
【０１６６】
図１０に示されるように、信号１０２６はメモリコントローラ９２０から生成され、メモリ９３０にあたえることができる。信号１０２６は検出器コントローラ１００２に結合され得る。検出器コントローラ１００２は、信号１０２６を監視し、読出要求がいつメモリコントローラ９２０によってメモリ９３０に発行されるかを検出することができる。信号１０２６上に読出要求を検出することに応答して、検出器コントローラ１００２はカウンタ１００４を開始することができる。論じられるように、データがメモリコントローラ９２０に送られることになっている場合、メモリ９３０によって実行されるまで、ストローブ信号は「ハイｚ状態」に置かれるかまたはトライステートである。ストローブ信号は、たとえばメモリ９３０がプリアンブルを送信する時間までトライステートであり得る。検出器コントローラ１００２は、サンプリングＦＦ１０１０〜１０２４を介して、変動する時間においてストローブ信号をサンプリングして、プリアンブル、およびメモリコントローラ９２０からの読出要求に応じてメモリ９３０から送信されるプリアンブルに続く第１のパルスを検出することができる。
【０１６７】
検出器コントローラ１００２は、信号１０２６上の読出要求に応答してカウンタ１００４を開始し、カウンタ１００４が動作し続ける、たとえば、サンプリングＦＦ１０１０〜１０２４をまとめて用いてストローブ信号をサンプリングすることによって、所定のビットパターンが検出されるような時間までカウントし続けることを可能にする。示されるように、ストローブ信号はサンプリングＦＦ１０１０〜１０２４の各々に入力としてあたえられる。１つ以上の実施例においては、ストローブ信号のオーバーサンプリングは読出要求の検出に応答して開始することができる。しかしながら、１つ以上の他の実施例においては、ストローブ信号のオーバーサンプリングは、読出要求がメモリコントローラ９２０から検出されていない場合に、検出器コントローラ１００２がストローブ信号のサンプリングされた値を無視することによって、継続的に実行され得る。
【０１６８】
いずれの場合においても、検出器コントローラ１００２は、所定のビットパターンの発生に対して、信号１０５０〜１０６４を介してストローブ信号のサンプリングされた値を監視することができる。たとえば、所定のビットパターンは００００１１、０００００１１、００００００１１などであり得る。特定のビットパターンは、達成されるオーバーサンプリングの量およびストローブ信号の周波数に従って変動し得る。複数の検出された０の値に１つ以上の１の値が後続すると、それは、ストローブ信号内におけるプリアンブルに直ちに続く第１のパルスの立上りエッジの検出を示す。検出器コントローラ１００２は、信号１０５０〜１０６４の各々からの値をビットのシリアルストリームとして評価することができる。たとえば、検出器コントローラ１００２は、信号１０５０、１０５２、１０５４、１０５６、１０５８、１０６０、１０６２および１０６４によって連続して指定される、サンプリングされたビット値を読出し、次いで、サンプリングされたビット値の連続的なストリームを形成するよう繰り返すことができる。
【０１６９】
プリアンブルの後、ストローブ信号は発振を開始し、たとえば、基準信号をあたえることができる。１つ以上の実施例においては、ストローブ信号はプリアンブルに続き、約５０−５０デューティサイクルを有することができる。所定のビットパターンの検出に応答して、検出器コントローラ１００２は、信号１００６を介してカウンタ１００４内におけるカウンタ値を決定することができる。たとえば、カウンタ１００４は、ストローブ信号の立上りエッジの検出に応答して、停止される。カウンタ値は、読出され、検出器コントローラ１００２においてレジスタ内に記憶され得る。そして、検出器コントローラ１００２はカウンタ１００４をクリアすることができる。
【０１７０】
ストローブ信号が読出要求の発行に先立って最初にトライステートであることを想起して、検出器コントローラ１００２は、いくつかの場合には、誤判定を検出し得る。特に、検出器コントローラ１００２は、ノイズまたはストローブ信号上におけるプリアンブルに続く第１のパルスの発生以外の状態により所定のビットパターンを検出し得る。たとえば、ストローブ信号は最初にハイｚ状態にあるため、ストローブ信号に対してサンプリングされる値はランダムであり得、結果として、ランダムなパターンが、所定のビットパターンと一致し得るビットのストリーム内において検出され得る。
【０１７１】
誤判定を回避するために、検出器コントローラ１００２は、ストローブ信号をオーバーサンプリングし、所定のビットパターンの最後に検出されたインスタンスまたは発生に対する監視を行い、その後、ストローブ信号は有効な基準信号として発振を開始した旨を決定する。一般に、一旦、ストローブ信号が、プリアンブルに続く有効な基準信号を指定し始めると、デューティサイクルは固定され、たとえば、５０−５０であり得る。検出器コントローラ１００２は、５０−５０のデューティサイクルでストローブ信号のオーバーサンプリングから生成されたパターンを、プリアンブルに続く第１のパルスを示す所定のビットパターンから区別することができる。たとえば、５０−５０デューティサイクルは、所定のビットパターンの後に続いておよそ４つの１が生じ、その後におよそ４つの０が続き、５０−５０のデューティサイクル基準信号に対応するおよそ４つの１の後におよそ４つの０が続く繰り返すパターンを伴うことを認識することによって、検出器コントローラ１００２により検出することができる。
【０１７２】
注目されるように検出器コントローラ１００２によって判断されたカウンタ値は、後の読出トランザクションにおいて用いるために記憶することができる。特定的には、カウンタ値は、スケルチ回路１０７０内において記憶するか、またはそうでなければ、それにあたえることができる。次の読出要求に応答して、検出器コントローラ１００２は、あたえられたカウンタ値、たとえば先の読出要求に応答して決定されるカウンタ値によって指定される時間の量の間ストローブ信号をスケルチングするようスケルチ回路１０７０に指示することができる。したがって、ストローブ信号がスケルチングまたはゲート制御される時間の量は、各読出要求に応答して更新することができる。カウンタ値によって指定される更新される時間の量は、スケルチ回路によって、将来、つまり次の読出要求に応答して用いることができる。
【０１７３】
図１１は、この明細書内において開示される別の実施例に従って検出および／または測定することができるストローブ信号の異なる状態を例示する信号図１１００である。示されるように、図１１は、読出要求１１０５がメモリコントローラから送信される場合は、ストローブ信号が最初はトライステートであることを示す。ストローブ検出器はストローブ信号のカウンタおよびサンプリングを開始する。読出要求１１０５の受信に応答して、メモリは、ストローブ信号をローに引き込み、プリアンブル開始１１１０によって例示されるようなプリアンブル１１１５を指定する。第１のパルスの立上りエッジ１１２０はプリアンブル１１１５の終わりを示す。ストローブ検出器は、所定のビットパターン１１２５の最後のインスタンスまたは発生を観察した後、ストローブ信号がプリアンブル１１１５から約５０−５０のデューティサイクルに遷移するのを観察することによって、第１のパルスの立上りエッジ１１２０を検出する。ストローブ検出器は、プリアンブル１１１５に続く第１のパルスの立上りエッジ１１２０を検出することに応答して、カウンタ値を読出すかそうでなければ決定して、時間の量１１３０を決定する。
【０１７４】
読出し動作の後、ストローブ信号は再びトライステートであり、後の読出要求１１３５がメモリコントローラから送信される場合には、トライステートのままである。ストローブ検出器は再びカウンタを開始することができ、それはまずリセットされて、ストローブ信号をサンプリングすることができる。読出要求１１３５の受信に応答して、メモリは、ストローブ信号をローに引き込み、プリアンブル開始１１４０によって例示されるようなプリアンブル１１４５を指定することができる。第１のパルスの立上りエッジ１１５０はプリアンブル１１４５の終わりを示す。ストローブ検出器は、所定のビットパターン１１５５の最後のインスタンスまたは発生を観察した後、ストローブ信号がプリアンブル１１４５から約５０−５０のデューティサイクルに遷移するのを観察することによって、第１のパルスの立上りエッジ１１５０を検出する。ストローブ検出器は、プリアンブル１１４５に続く第１のパルスの立上りエッジ１１５０を検出することに応答して、カウンタ値を読出すかそうでなければ決定することにより、さらなる読出要求（図示せず）に応答して、ストローブ信号のゲート制御またはスケルチングにおける使用のための時間の量１１６０を決定することができる。
【０１７５】
注目されるように、読出要求１１０５から決定されるような時間の量１１３０が、ストローブ信号を読出要求１１３５に応答してゲート制御するために用いられる。時間の量１１３０は、ストローブ信号が読出要求１１３５に応答してゲート制御されるべきである実際の時間の近似、つまり時間の量１１６０である。各読出要求に応答してカウンタ値を継続的に更新することによって、信号タイミングにおける変動、たとえば、システムにおける電圧および温度の影響によるストローブ信号におけるドリフトを、低減および／または最小限にすることができる。
【０１７６】
図１２は、この明細書内に開示される別の実施例に従ってストローブ信号をオーバーサンプリングすることによって判断されるビットのストリームの例である。図１２は、この明細書の図９〜図１１を参照して記載されるようなストローブ検出器によって検出することができる、異なるアーティファクトおよび状態遷移の例を例示する。セグメント１は、誤判定の例を例示し、所定のビットパターンは、プリアンブルに続く第１のパルスの立上りエッジの結果においてではなく、ノイズ、ストローブ信号をトライステートにすること、またはストローブ信号に現れる他のなんらかのアーティファクトの結果において検出される。セグメント２も、所定のビットパターンに対応し、ストローブ信号上においてプリアンブルに続く第１のパルスの立上りエッジの発生を示す。セグメント２は、セグメント３による誤判定と区別することができ、なぜならば、セグメント３は、約５０−５０のデューティサイクルを識別するビットパターンに対応し、ストローブ信号が有効な基準信号を指定することに遷移したことを示すからである。したがって、ストローブ検出器は、セグメント２が基準信号を示すビットパターンが直後に続き、セグメント１と区別されるように誤判定ではない、と判断する。
【０１７７】
図は、さまざまな実施例に従ってシステムおよび方法の可能な実現例のアーキテクチャ、機能性および動作を例示する。ある代替的な実現例においては、ブロックに記される機能は図に記される順序外で生じるかもしれないことが注記されるべきである。たとえば、連続して示される２つのブロックは実際は実質的に同時に実行されてもよく、または、ブロックは、ときには、伴われる機能性に依存して、逆の順序で実行されてもよい。
【０１７８】
実施例はハードウェアまたはハードウェアとソフトウェアとの組合せで実現することができる。実施例は、１つのシステムにおいて集中化された態様において、または異なる要素がいくつかの相互接続されたシステムにわたって広げられる分散された態様において、実現することができる。ここに記載される方法の実行のために適合されるどのような種類のデータ処理システムまたは他の装置も好適である。
【０１７９】
ここで用いられる「或る（a/an）」という語は、１つまたは１つより多いものとして規定される。ここで用いられる「複数」という語は、２または２を超えるとして規定される。ここで用いられる「別の（another）」という語は、少なくとも第２のものまたはそれよりより多くのものとして規定される。ここで用いられる「含む」および／または「有する」という語は、含むこととして、つまり開いた文言として規定される。ここで用いられる「結合される（coupled）」という語は、特段の記載がなければ、いかなる介在要素もなしに直接接続されるか、または１つ以上の介在要素を伴って間接的に接続されるものとして規定される。２つの要素は、さらに、機械的にまたは電気的に結合され、あるいは通信チャネル、経路、ネットワークまたはシステムを介して、通信でリンクされる。
【０１８０】
ここに開示される実施例は、それの精神または本質的な属性から逸脱せずに、他の形式で実施することができる。したがって、前述の明細書ではなく、特許請求の範囲が、実施例の範囲を示すとして参照されるべきである。
【図１】
2013531845.tif 000003
【図２】
2013531845.tif 000004
【図３】
2013531845.tif 000005
【図４】
2013531845.tif 000006
【図５】
2013531845.tif 000007
【図６】
2013531845.tif 000008
【図７】
2013531845.tif 000009
【図８】
2013531845.tif 000010
【図９】
2013531845.tif 000011
【図１０】
2013531845.tif 000012
【図１１】
2013531845.tif 000013
【図１２】
2013531845.tif 000014
【手続補正書】
【提出日】平成24年8月20日(2012.8.20)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のバイトクロック群を含む入出力（Ｉ／Ｏ）バンクを備え、
前記複数のバイトクロック群の各々は、前記バイトクロック群に結合されるソース同期装置がデータを通信する周波数で前記バイトクロック群の回路素子をクロック制御するよう構成される位相器を含み、
各前記バイトクロック群は、さらに、
前記Ｉ／Ｏバンク内において、非同期でクロック制御される少なくとも２つのポートを含む出力先入れ先出し（ＦＩＦＯ）メモリを含み、前記出力ＦＩＦＯの入力ポートは、第１の動作周波数でクロック制御され、前記出力ＦＩＦＯの出力ポートは、前記位相器によって、前記ソース同期装置に対応する、前記第１の動作周波数より高い第２の動作周波数でクロック制御され、
各前記バイトクロック群はさらに、
前記Ｉ／Ｏバンク内において、非同期でクロック制御される少なくとも２つのポートを含む入力ＦＩＦＯメモリを含み、前記入力ＦＩＦＯメモリの出力ポートは、前記第１の動作周波数でクロック制御され、前記入力ＦＩＦＯメモリの入力ポートは前記位相器によって前記第２の動作周波数でクロック制御され、
各前記バイトクロック群はさらに、
前記Ｉ／Ｏバンク内において、前記ソース同期装置から受信したデータを非直列化し、前記非直列化されたデータを前記入力ＦＩＦＯメモリの前記入力ポートにあたえるよう構成される複数の入力並直列変換器／直並列変換器（ＳＥＲＤＥＳ）と、
前記Ｉ／Ｏバンク内において、前記ソース同期装置に出力されるよう前記出力ＦＩＦＯメモリの前記出力ポートから受信したデータを直列化するよう構成される複数の出力ＳＥＲＤＥＳとを含み、
前記複数のバイトクロック群の各々内における前記位相器は、前記バイトクロック群の前記複数の入力ＳＥＲＤＥＳの各々および前記複数の出力ＳＥＲＤＥＳの各々にクロック信号を前記第２の動作周波数であたえるよう構成される、集積回路。
【請求項２】
前記複数のバイトクロック群の各々の前記位相器は独立して設定可能である、請求項１に記載の集積回路。
【請求項３】
前記Ｉ／Ｏバンクは、さらに、
前記複数のバイトクロック群の各々の各前記位相器の動作を調整するよう構成される物理インタフェースコントローラを含み、
前記物理インタフェースコントローラは、各前記バイトクロック群に対して、いつ前記バイトクロック群の前記位相器が前記出力ＦＩＦＯメモリからのデータをクロック制御し、前記入力ＦＩＦＯメモリ内へのデータをクロック制御するかを指定する複数のタイマを含む、請求項１または２に記載の集積回路。
【請求項４】
前記第１の動作周波数で動作するよう構成されるメモリコントローラをさらに備え、
前記Ｉ／Ｏバンクは前記メモリコントローラに結合され、
前記Ｉ／Ｏバンクは、前記第１の動作周波数で前記メモリコントローラと通信し、前記第２の動作周波数でメモリ装置と通信するよう構成される、請求項１〜３のいずれかに記載の集積回路。
【請求項５】
前記位相器は、さらに、
第１の読出要求に応答してストローブ信号で受信した前記ソース同期装置からのパルスをカウントするよう構成されるパルスコントローラを含み、前記パルスコントローラは、所定の数の期待されるパルスの最後のパルスを検出するよう構成され、
前記位相器はさらに、
前記パルスコントローラに結合され、前記パルスコントローラから受信した指令に応答して前記ストローブ信号または基準信号を選択的に通過させるよう構成されるマルチプレクサを含み、前記基準信号は、前記ストローブ信号と位相および周波数が整列され、
前記パルスコントローラが前記最後のパルスを検出するのに応答して、前記パルスコントローラは、前記ストローブ信号の代わりに前記基準信号を通過させるよう前記マルチプレクサに指示するよう構成される、請求項１〜４のいずれかに記載の集積回路。
【請求項６】
前記位相器は、さらに、
ある遅延の量を基準信号に適用するよう構成される遅延線と、
前記遅延線に結合されるとともに、前記遅延線から出力される前記基準信号のバージョンから、第１の分周された信号および第２の分周された信号を生成するよう構成される少なくとも１つの分周器とを含み、前記第１の分周された信号および前記第２の分周された信号は同じ周波数で、かつ異なる位相を有し、
前記位相器はさらに、
ストローブ信号と前記第１の分周された信号または前記第２の分周された信号の少なくとも１つとの間の位相関係を判断するよう構成される位相検出器と、
前記少なくとも１つの分周器に結合される出力セレクタとを含み、前記出力セレクタは前記遅延線によって適用される前記遅延の量における調整を示すカウンタに従って前記第１の分周された信号または前記第２の分周された信号を通過させるよう構成され、
前記遅延線は、前記位相検出器によって判断される前記位相関係に応答して、前記基準信号に適用される前記遅延の量を調整し、
前記遅延線がロールオーバーすることに応答して、前記第２の分周された信号が出力される、請求項１〜５のいずれかに記載の集積回路。
【請求項７】
前記位相器は、さらに、
ストローブ信号をオーバーサンプリングする複数のサンプリングフリップフロップを含み、前記複数のサンプリングフリップフロップの各々は、異なる位相で、かつ前記ストローブ信号の周波数とおよそ同じ周波数を有するクロック信号によってクロック制御され、
前記位相器はさらに、
前記ソース同期装置に送られる読出要求を検出し、前記ストローブ信号をオーバーサンプリングする前記複数のサンプリングフリップフロップから受信した値に従って前記読出要求と前記ストローブ信号の第１のパルスとの間の時間の量を判断するよう構成されるコントローラと、
後続の読出要求に応答して、前記時間の量に対して前記ストローブ信号をゲート制御するよう構成されるスケルチ回路とを含む、請求項１〜６のいずれかに記載の集積回路。
【請求項８】
集積回路（ＩＣ）のための動作の方法であって、
前記ＩＣの入出力（Ｉ／Ｏ）バンク内において複数のバイトクロック群を規定するステップを備え、各前記バイトクロック群は位相器を含み、
前記方法はさらに、
前記バイトクロック群の前記位相器を用いて、前記バイトクロック群に結合されるソース同期装置が通信する周波数で各前記バイトクロック群の回路素子をクロック制御するステップと、
前記複数のバイトクロック群のうちの或るバイトクロック群において前記ソース同期装置から受信したデータを非直列化するステップと、
前記複数のバイトクロック群のうちの前記或るバイトクロック群において前記ソース同期装置に出力されるデータを直列化するステップと、
各前記バイトクロック群に対して、前記バイトクロック群内において前記位相器から、
前記ソース同期装置の周波数での前記非直列化および前記直列化のためのクロック信号と、
前記Ｉ／Ｏバンクにおいて、前記バイトクロック群に位置する、非同期でクロック制御される少なくとも２つのポートを含む出力先入れ先出し（ＦＩＦＯ）メモリの出力ポートをクロック制御するためのクロック信号と、
前記Ｉ／Ｏバンクにおいて、前記バイトクロック群に位置する、非同期でクロック制御される少なくとも２つのポートを含む入力ＦＩＦＯメモリの入力ポートをクロック制御するためのクロック信号と、
をあたえるステップとを含み、
前記出力ＦＩＦＯメモリの入力ポートおよび前記入力ＦＩＦＯメモリの出力ポートは、各々、前記ソース同期装置の周波数より低い、異なる周波数でクロック制御される、方法。
【請求項９】
第１の動作周波数でメモリコントローラを動作させるステップをさらに備え、前記Ｉ／Ｏバンクは前記メモリコントローラに結合され、
前記方法はさらに、
前記Ｉ／Ｏバンクが、前記第１の動作周波数で前記メモリコントローラと通信するとともに、第２の動作周波数でメモリ装置と通信するステップを備え、
前記第１の動作周波数は、前記ソース同期装置の周波数より低い異なる周波数であり、前記第２の動作周波数は、前記ソース同期装置の周波数である、請求項８に記載の方法。
【請求項１０】
第１の読出要求に応答してストローブ信号において受信した前記ソース同期装置からのパルスをカウントするステップと、
所定の数の期待されるパルスの最後のパルスを検出するステップと、
前記最後のパルスを検出することに応答して、前記ストローブ信号の代わりに基準信号を通過させるステップとをさらに備え、前記基準信号は、前記ストローブ信号と位相および周波数が整列される、請求項８または９に記載の方法。
【請求項１１】
ある遅延の量を基準信号に適用するステップと、
前記遅延の量が適用される前記基準信号のバージョンから、第１の分周された信号および第２の分周された信号を生成するステップとをさらに備え、前記第１の分周された信号および前記第２の分周された信号は同じ周波数で、かつ異なる位相を有し、
前記方法はさらに、
ストローブ信号と、前記第１の分周された信号または前記第２の分周された信号の少なくとも１つとの間の位相関係を判断するステップと、
前記位相関係に応答して、前記基準信号に適用される前記遅延の量を調整するステップと、
前記基準信号に適用される前記遅延の量を示すカウンタに従って前記第１の分周された信号または前記第２の分周された信号を通過させるステップと、
前記遅延の量がロールオーバーすることに応答して、前記第２の分周された信号を出力するステップとを備える、請求項８〜１０のいずれかに記載の方法。
【請求項１２】
複数のサンプリングフリップフロップを用いてストローブ信号をオーバーサンプリングするステップをさらに備え、前記複数のサンプリングフリップフロップの各々は、異なる位相で、かつ前記ストローブ信号の周波数とおよそ同じ周波数を有するクロック信号によってクロック制御され、
前記方法はさらに、
前記ソース同期装置に送られる読出要求を検出するステップと、
前記ストローブ信号をオーバーサンプリングする前記複数のサンプリングフリップフロップから受信した値に従って前記読出要求と前記ストローブ信号の第１のパルスとの間の時間の量を判断するステップと、
後続の読出要求に応答して、前記時間の量に対して前記ストローブ信号をスケルチングするステップとを備える、請求項８〜１１のいずれかに記載の方法。
【国際調査報告】
2013531845.tif 000015
2013531845.tif 000016