(57)【要約】【課題】転送データと同期してトグルされるデータストローブ信号のポストアンブル終了時のハイインピーダンス状態移行時のグリッジノイズの影響を回避して、高速かつ正確にデータ転送を実行する。【解決手段】ソース側から転送されるデータストローブ信号（ＤＱＳ）を所定期間可変遅延線（２０）で遅延し、この遅延データストローブ信号（ＤＬＤＱＳ）と非遅延データストローブ信号とを検出器（２２）へ与える。検出器（２２）は、非遅延データストローブ信号ＤＱＳのＬレベルからＨレベルの立上がり時の遅延データストローブ信号（ＤＬＤＱＳ）がＬレベルのときに、プリアンブル期間が完了し、有効データが転送されたと判定する。この検出結果（ＤＱＴ）に従って、インターフェイス回路部において、転送データの取込および取込アドレスの初期化を実行する。【選択図】図３
2008040639.tif 000002
【特許請求の範囲】
【請求項１】
データストローブ信号に同期して転送されるデータを受けるインターフェイス回路であって、
前記データストローブ信号を遅延する遅延線を含み、前記データストローブ信号と前記遅延線の出力信号とに従って、前記データの転送開始を示すプリアンブル期間完了を検出するプリアンブル検出回路、
前記プリアンブル検出回路の出力信号に従って起動されて前記データを取込むデータ受信回路とを備える、インターフェイス回路。
【請求項２】
前記データ受信回路は、前記プリアンブル検出回路の出力信号に従って、データ格納位置が初期化されかつデータ格納動作活性化期間が規定される、請求項１記載のインターフェイス回路。
【請求項３】
前記データ受信回路は、
データ格納位置がアドレス指定されるデータ格納回路と、
前記データ転送動作時、所定のタイミングで所定期間活性化されるイネーブル信号と前記プリアンブル検出回路の出力信号とに従って初期値にリセットされ、前記データ格納回路のデータ格納位置を順次指定するアドレス信号を生成するライトポインタ生成回路と、
前記データストローブ信号を遅延して前記データ格納回路に対する動作タイミング信号を生成する移相回路とを備え、
前記データ格納回路は、前記ライトポインタ生成回路からのアドレス信号と前記動作タイミング信号とに従って、アドレス指定された格納位置へ与えられたデータの取込を行なう、請求項１記載のインターフェイス回路。
【請求項４】
前記データは、データ転送指示に従ってデータ転送ソースから転送され、
前記データ受信回路は、
各々が、データ格納位置がアドレス指定されるデータ格納回路を含み、前記データ転送指示発行ごとに順次活性化され、活性化時、前記データの取込を行なう複数のデータ転送回路と、
前記データストローブ信号を遅延して各前記データ格納回路に対する動作タイミング信号を生成する移相回路と、
前記複数のデータ転送回路各々に対応して設けられ、対応のデータ転送回路の活性化を示すイネーブル信号の活性化時、前記プリアンブル検出回路の出力信号に従って書込アドレスが初期値に設定され、前記移相回路の出力信号に従って前記書込アドレスを更新して対応のデータ転送回路に対するアドレス信号を生成する複数の書込アドレス生成回路とを備える、請求項１に記載のインターフェイス回路。
【請求項５】
前記データ格納回路は、ファーストイン／ファーストアウト回路を備え、
各前記書込アドレス生成回路は、
前記プリアンブル検出回路の出力信号と対応のデータ転送回路に対する前記イネーブル信号とを受け、対応のイネーブル信号の活性化時、前記プリアンブル検出回路の出力信号に従ってリセット信号を生成するゲート回路と、
前記ゲート回路からのリセット信号の活性化時、カウント値が初期値にリセットされ、前記移相回路の出力信号に従ってカウント動作を行う書込アドレスカウンタとを備える、請求項４記載のインターフェイス回路。
【請求項６】
前記データは、前記データ転送指示に従ってバースト長で規定される数連続的に転送され、
前記イネーブル信号は、前記データ転送指示発行時、所定の固定されたタイミングで前記バースト長に対応する期間活性状態に維持される、請求項５記載のインターフェイス回路。
【請求項７】
データストローブ信号に同期して転送されるデータを受信するインターフェイス回路であって、前記データは、１つのデータ転送指示に従って複数のデータが連続的に転送され、
前記データストローブ信号に従って転送クロック信号を生成する転送クロック発生回路と、
互いに並列に設けられ、前記転送クロック発生回路からのクロック信号に同期して交互に与えられたデータをファーストイン／ファーストアウト態様で格納する第１および第２のＦＩＦＯ回路を含む第１の転送回路、
互いに並列に設けられ、前記転送クロック発生回路からのクロック信号に同期して交互に与えられたデータをファーストイン／ファーストアウト態様でデータを格納する第３および第４のＦＩＦＯ回路を含む第２の転送回路、および
前記データの転送時、前記データ転送指示毎に前記第１および第２の転送回路を交互に活性化するデータ転送制御回路を備える、インターフェイス回路。
【請求項８】
前記データは前記データストローブ信号の両エッジに同期して転送され、
前記第１および第２のＦＩＦＯ回路は、前記第１の転送回路の活性化時、前記転送クロック信号のエッジごとに交互に与えられたデータを取込み、
前記第３および第４のＦＩＦＯ回路は、前記第２の転送回路の活性化時、前記転送クロック信号のエッジごとに交互に与えられたデータを取込む、請求項７記載のインターフェイス回路。
【請求項９】
前記データストローブ信号に従って、有効データ転送開始サイクルを検出してリセット信号を生成するプリアンブル検出回路をさらに備え、
前記第１の転送回路は、活性化時、前記プリアンブル検出回路からのリセット信号に従って前記第１および第２のＦＩＦＯ回路の書込アドレスの初期化を行ない、
前記第２の転送回路は、活性化時、前記プリアンブル検出回路からのリセット信号に従って前記第３および第４のＦＩＦＯ回路の書込アドレスの初期化を行う、請求項７記載のインターフェイス回路。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ソース側から転送されたデータを受けるインターフェイス回路に関し、特に、データストローブ信号に同期して転送されるメモリからのデータを受けるメモリインターフェイス回路の構成に関する。より特定的には、この発明は、クロック信号の立上がりおよび立下がりに同期してデータを転送するダブルデータレート（ＤＤＲ）モードでデータを転送するメモリからのデータを受けるメモリインターフェイス回路における転送モード検出の構成に関する。
【背景技術】
【０００２】
高速のデータ転送を実現するために、クロック信号に同期してデータを転送するＳＤＲＡＭ（クロック同期型ダイナミック・ランダム・アクセスメモリ）が広く一般に用いられる。ＳＤＲＡＭにおいて、より高速にデータを転送するために、クロック信号の立上がりおよび立下がりに同期してデータを転送するダブル・データ・レート・モード（ＤＤＲモード）が用いられる。
【０００３】
このＤＤＲモードにおいては、クロック信号の２倍の周波数でデータの転送が行なわれるため、クロック信号の立上がりまたは立下がりの一方に同期してデータ転送を行なうシングル・データ・レート（ＳＤＲ）モードよりも、確定データの幅が狭くなる。メモリとコントローラまたはプロセッサ（以下、単にコントローラと称す）との間でデータ転送が行なわれる。したがって、メモリとコントローラとの間の配線長が異なると、転送データが、コントローラのデータ受信回路に到達するまでの時間（時間（フライトタイム））に差が生じる。
【０００４】
データ読出時においては、コントローラからデータ読出指示がメモリに与えられ、この読出指示に従ってメモリからデータが読出されてコントローラへ転送される。したがって、メモリとコントローラとの間の配線長が異なった場合、メモリとコントローラとの間でのデータ転送に要する時間において、少なくともフライトタイムの２倍の時間（ラウンドトリップタイム）の時間差が生じる。したがって、コントローラにおいて、データ読出指示を与えて、同一タイミングで転送データの取込を行なうと、正確にデータの取込を行なうことができなくなる。このため、ＤＤＲモードで動作するメモリにおいては、読出データを転送するタイミングを知らせるために、データストローブ信号ＤＱＳを採用する。このデータストローブ信号ＤＱＳは、双方向のストローブ信号であり、読出／書込動作時に、データ転送のストローブとして機能する。
【０００５】
メモリからのデータ読出時においては、メモリから読出データとデータストローブ信号ＤＱＳとが同期してコントローラに転送される。一方、メモリへのデータ書込時においては、コントローラからデータストローブ信号ＤＱＳを書込データとともにメモリへ転送する。この書込動作時においては、データストローブ信号のエッジは、書込データのウィンドウの中央に位置する。コントローラが、メモリから読出されたデータを受ける場合、与えられたデータストローブ信号を内部で、読出データのウィンドウの中央の位置まで遅らせ（移相し）、内部で生成される移相データストローブ信号に従って読出データの取込を行なう。
【０００６】
このデータストローブ信号ＤＱＳは３値信号であり、データ非転送時においては、ハイインピーダンス状態に設定される。データ転送時、データ転送の１クロックサイクル前に、データストローブ信号ＤＱＳが、Ｌレベル（論理ローレベル）に設定される。このデータストローブ信号ＤＱＳが、実データの転送前にＬレベルに設定される期間は、リード・プリアンブル期間（以下、単にプリアンブル期間と称す）といわれる。メモリからのデータ読出時においては、このプリアンブル期間に続いて、データストローブ信号ＤＱＳが、読出データに同期してトグルされる（ＨレベルおよびＬレベルの間で変化する）。データ転送は、クロック信号に同期して行なわれるため、したがって、データストローブ信号も、クロック信号と同一周波数で変化される。通常、データ転送は、バーストモードで行なわれ、１つの読出指示に従って複数のデータが連続的に読出される。最後のデータが転送されサイクルにおいて、データストローブ信号ＤＱＳがＬレベルに設定された後に、ハイインピーダンス状態に設定される。この最後のデータが転送されるサイクルのＬレベルの期間が、リード・ポストアンブル期間（以下、単にポストアンブル期間と称す）といわれる。このポストアンブル期間は、最後のデータの先頭エッジから、約１／２クロックサイクル期間生じる。
【０００７】
上述のように、データ転送時、データストローブ信号ＤＱＳは、ハイインピーダンス状態からプリアンブル状態に遷移し、またデータ転送後、ポストアンブル状態からハイインピーダンス状態に移行する。このポストアンブル状態からハイインピーダンス状態に移行する場合、信号反射のため、グリッジノイズが発生する。
【０００８】
メモリからのデータ転送のフライトタイムが長くなると、このポストアンブル後のグリッジノイズが次のデータ読出動作時に悪影響を及ぼし、次の転送データが破壊され、メモリから読出されたデータをコントローラ内において正確に読取ることができなくなる問題が生じる。
【０００９】
また、コントローラが複数のデータソースに接続されている場合、これらのメモリとコントローラとの間の配線長が異なる場合があるため、転送されたデータを取り込むとき、グリッジノイズにより転送データが破壊される問題が生じる。特に、高速データ転送時においては、データのウィンドウ（有効データが転送される期間）の時間幅が短く、データ取込タイミングに対してマージンが小さくなるため、このグリッジノイズによるデータ破壊の可能性が大きくなる。
【００１０】
このようなデータストローブ信号のグリッジノイズの問題を解消することを図る構成が、特許文献１（特開２００５−２７６３９６号公報）に示されている。
【００１１】
この特許文献１に示される構成においては、データストローブ信号を遅延する遅延回路と、この遅延回路により遅延された遅延データストローブ信号をもとにマスク信号を生成する回路とを設け、遅延データストローブ信号とマスク信号との組合せにより、疑似データストローブ信号を生成する。この疑似データストローブ信号は、バーストデータの各タイムスロットのデータ確定期間にトグルし、このトグルが終了した時点から、転送データを一時的に保持するバッファ回路から全データの読出が終了する時点までの期間、トグル終了時のレベルを維持する。したがって、バッファ回路は、データラッチ状態に維持され、ることとなる。これにより、グリッジノイズに対しマスクをかけて、グリッジノイズの影響を受けることなく、メモリコントローラ内にデータを正確に読込むことを図る。
【００１２】
また、このポストアンブル完了時のグリッジノイズの影響を抑制することを図る構成が、特許文献２（特開２００６−４０３１８号公報）に示されている。
【００１３】
この特許文献２に示される構成においては、データストローブ信号をそれぞれ互いに異なる時間遅延する第１および第２の遅延回路と、これらの遅延回路からの遅延データストローブ信号に従って転送データを取り込むバッファ回路とを含む。第１の遅延回路からの第１の遅延データストローブ信号をバッファ回路のデータ読込用のクロック信号として用い、転送データを交互にバッファ回路内のフリップフロップで取り込む。このフリップフロップは、転送データを第１の遅延データストローブ信号に従って相補的にデータ取込を行う第１および第２のフリップフロップ回路と、この第２のフリップフロップ回路と同相で第１の遅延データストローブ信号に従ってデータを取り込む第３のフリップフロップ回路とを備える。第１および第２のフリップフロップ回路が直列に接続され、第１および第３のフリップフロップ回路が交互にデータの取り込むを行う。これらの第２および第３のフリップフロップ回路は、第２の遅延データストローブ信号が活性状態のときにイネーブルされて第１の遅延データストローブ信号に従ってデータの取り込みを行なって、コントローラ内部へデータを転送する。
【００１４】
特許文献２は、ポストアンブル期間において、第１の遅延データストローブ信号によるデータ取込時、第２の遅延データストローブ信号は非活性状態である事を利用して、第２および第３のフリップフロップ回路でのグリッジノイズ生成時のデータ取込を禁止する。これにより、グリッジノイズに対してマスクをかけて、グリッジノイズによるデータ破壊を防止することを図る。
【００１５】
また、データストローブ信号のスキュによるデータ破壊の問題を解消することを図る構成が特許文献３（特開２００６−１３９９０号公報）に示されている。具体的に、この特許文献３は、このデータストローブ信号を遅延してメモリコントローラにおいて、転送データの取込タイミングを生成する場合の、複数のデータビットに対するデータストローブタイミングにスキューが存在する場合のデータストローブ信号のスキューを小さくすることにより、正確に、データの取込を行なうことを図る。
【００１６】
この特許文献３に示される構成においては、第１および第２の遅延素子を並列に設け、この第１および第２の遅延素子へ、クロック信号を供給し、これらの第１および第２の遅延素子の出力信号の位相を位相比較器で比較する。この比較結果に従って第２の遅延素子の遅延量を調整する。この第２の遅延素子の出力信号に従って、メモリから読出されたデータの取込を行なう。この第２の遅延素子から位相比較器の入力に至るまでの遅延量が、第２の遅延素子から、転送データを取込むフリップフロップのクロック入力までの遅延とほぼ等しくされる。これにより、データストローブ信号のジッタを低減して、正確にデータ転送を行なうことを図る。
【特許文献１】特開２００５−２７６３９６号公報
【特許文献２】特開２００６−４０３１８号公報
【特許文献３】特開２００６−１３９９０号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
特許文献１に示される構成においては、遅延データストローブ信号を生成する際の遅延量を、キャリブレーション用パターンを用いて調整する。この場合、コントローラまたはプロセッサにおいて、このキャリブレーションを行なう回路または構成が、ソフトウェアまたはハードウェアにおいて必要とされ、ソフトウェアまたはハードウェアの規模が増大する。
【００１８】
また、複数のメモリが設けられる場合、各メモリとコントローラとの間の距離が異なるため、各メモリに対してキャリブレーションを行なう必要があり、遅延時間設定に長時間を要するという問題が生じる。また、動作条件（温度および／または電源電圧）の変動により、メモリおよびコントローラの動作速度が異なり、応じて信号の転送時間が異なり、ラウンドトリップタイム（フライトタイム）が変化する。したがって、このような動作条件に応じて、適宜、キャリブレーションを行なう必要がある。このキャリブレーション実行時、データ転送を行なうことができなくなるため、システムの処理効率が低下する。
【００１９】
また、特許文献２に示される構成においては、マスク信号を生成するための第２の遅延回路の遅延量は、ソフトウェア的またはディレイロックトループ（ＤＬＬ）により設定することが示される。このグリッジノイズが生成されてからコントローラに到達するまでの時間は、メモリとコントローラとの間の配線長さにより異なる。したがって、各メモリに対応して、第２の遅延回路の遅延量を設定する必要が生じる。
【００２０】
また、この特許文献２に示される構成において、第２の遅延回路の遅延量を、たとえば２／５位相の遅延を行なって固定している。この第２の遅延データストローブ信号がＨレベルのときに、１／４位相遅延された第１の遅延回路からの遅延データストローブ信号をクロック信号として、データの取込を行なう。したがって、このデータの内部読出データを生成する回路（フリップフロップ）において、イネーブル状態とされる期間とクロック信号が活性化される期間との重なりが小さく、正確にデータの取込を行なうことができなくなる可能性がある。
【００２１】
また、これらの特許文献１および２においては、ポストアンブル終了時のグリッジノイズが、それまでに転送されたデータに対して影響を及ぼすことを考慮しているものの、配線長によりグリッジノイズが遅延して転送される場合の、次の読出データのコントローラでの取り込みに対する影響については何ら考慮していない。すなわち、異なるメモリに対してバースト長を考慮してデータ読出を連続して行なう場合、次のデータ読出時においてプリアンブル期間に先の読出サイクルのポストアンブルのグリッジノイズが到達した場合、次のデータ読出は、正確に有効データ開始タイミングを検出することができなくなる可能性がある。特許文献１および２は、このような問題は何ら考慮していない。
【００２２】
特許文献３に示される構成においては、内部の読出データを生成するフリップフロップ回路に対するストローブ制御信号のタイミングを、転送データに対応するように調整している。この特許文献３に示される構成においては、コントローラ内部でのデータ転送を検討しており、ポストアンブル期間のグリッジノイズの問題については考慮していない。単に、転送データとデータストローブ信号との同期を確立することを意図しているだけである。
【００２３】
それゆえに、この発明の目的は、簡易な回路構成で、確実に転送データを取込んで内部読出データを生成することのできるインターフェイス回路を提供することである。
【課題を解決するための手段】
【００２４】
この発明に係るインターフェイス回路は、データストローブ信号を遅延する遅延線を含み、このデータストローブ信号と遅延線の出力信号とに従ってデータ転送開始を示すプリアンブル期間を検出するプリアンブル検出回路と、このプリアンブル検出回路の出力信号に従ってデータを取込むデータ受信回路とを備える。
【００２５】
この発明の第２の観点に係るインターフェイス回路は、データストローブ信号に従って転送クロック信号を生成する転送クロック発生回路と、互いに並列に設けられ、転送クロック発生回路からの転送クロック信号に同期して転送されたデータをファーストイン／ファーストアウト態様で交互に取り込む第１および第２のＦＩＦＯ回路とを含む第１の転送回路と、互いに並列に設けられ、転送クロック発生回路からの転送クロック信号に同期して転送されたデータをファーストイン／ファーストアウト態様で交互に取り込む第３および第４のＦＩＦＯ回路とを含む第２の転送回路と、データ転送時、データ転送指示毎に交互に第１および第２の転送回路を活性化するデータ転送制御回路とを含む。
【発明の効果】
【００２６】
第１の発明の観点に従えば、データストローブ信号とデータストローブ信号の遅延信号とに従ってプリアンブル期間の開始を検出している。プリアンブル期間は、仕様値で、０．９ないし１．１クロックサイクル期間と定められている。したがって、このプリアンブル期間の仕様最小値に近くかつそれよりも短い遅延時間を利用すれば、プリアンブル期間において遅延データストローブ信号とデータストローブ信号の論理値が異なり、プリアンブル期間の開始を検出することができる。したがって、この検出信号に従って、転送データの取込動作を開始することにより、正確なデータの取込を行なうことができる。また、ポストアンブル後のグリッジノイズが発生しても、その時点で、データ取込を完了することにより、グリッジノイズの影響を防止することができる。また、このグリッジノイズが次のデータ転送時に到達しても、グリッジノイズ到達後にこの転送データのプリアンブル完了の検出を行うことができるタイミングでグリッジノイズが到達する限り、このグリッジノイズにより起動される動作を正しいプリアンブル検出に従ってリセットすることにより、正確に次の転送データを取り込むことができる。
【００２７】
第２の発明の観点に従えば、それぞれ交互に転送データを取り込むＦＩＦＯ回路を有する転送回路として、第１および第２の転送回路を設け、これらの第１および第２の転送回路を交互にデータ転送指示ごとに活性化している。従って、転送データの伝播遅延が長くなる場合において、データストローブ信号においてグリッジノイズが発生しても正確に出たを取り込んで内部データを生成することができる。また、このデータ転送回路を２つ設けて交互に活性化することにより、１つしかデータ転送回路が設けられていない場合に比べて、長いデータの伝播遅延を許容することができる。
【発明を実施するための最良の形態】
【００２８】
［実施の形態１］
図１は、この発明の実施の形態１に従うメモリインターフェイス回路を備えるコントローラを有する処理システムの構成の一例を示す図である。コントローラは、メモリコントローラであってもよく、また、プロセッサであってもよい。以下の説明においては、ＳＤＲＡＭとデータ転送を行うコントローラであり、メモリコントローラと称す。
【００２９】
図１において、処理システムは、メモリ１と、このメモリ１に対してデータを転送するメモリコントローラ１０とを含む。メモリコントローラ１０は、クロック信号ＣＬＫを受け、このクロック信号ＣＬＫに従って動作サイクルが規定される。メモリ１は、たとえば、ＤＤＲＳＤＲＡＭで構成されて、メモリコントローラ１０から与えられるコマンドＣＭＤがデータ読出モードを指示する時、クロック信号ＣＫおよびＣＫＮに同期して、読出データＤＱをデータストローブ信号ＤＱＳとともにメモリコントローラ１０へ転送する。クロック信号ＣＫ、ＣＫＮは、互いに相補なクロック信号であリ、メモリコントローラ１０から与えられる。
【００３０】
メモリコントローラ１０は、メモリ１から読出されたデータＤＱを受けて内部読出データＲＤを生成するデータ受信回路１２と、メモリ１から与えられるデータストローブ信号ＤＱＳに従ってデータ転送のプリアンブルを検出するプリアンブル検出回路１１と、プリアンブル検出回路１１からの検出信号に従ってデータ受信回路１２の動作を制御するとともにメモリ１に対するデータ転送に必要な制御を行なうデータ転送制御回路１３と、このデータ転送制御回路１３からの制御の下に、コマンドＣＭＤを発行するコマンド発行部１４とを含む。
【００３１】
データ転送制御回路１３は、図示しないプロセッサ（または処理回路）からのデータ要求に従って、コマンド発行部１４を介してデータ読出のコマンドを発行させる。なお、このデータ転送制御回路１３は、コマンドＣＭＤとして、データの書込および読出をメモリ１に対して行なうライトコマンドおよびリードコマンドを発行するが、以下においては、メモリ１から読出されたデータの受信を行なう動作について説明する。
【００３２】
また、図１においては、メモリコントローラ１０に対して１つのメモリが設けられるように示すが、このメモリ１は、複数個設けられ、メモリコントローラからのメモリ指示信号に従って選択メモリがメモリコントローラ１０との間でデータ転送を行なってもよく、また、複数のメモリ１が、並行してメモリコントローラ１０とデータ転送を行っても良い。このメモリシステムの構成は、任意であり、以下の説明においては、単に一例として、１つのメモリが設けられる構成について説明する。
【００３３】
データ受信回路１２は、ファーストイン・ファーストアウト回路（ＦＩＦＯ）を含み、クロック信号ＣＬＫに従って、メモリ１から転送されたデータＱを順次格納し、また、クロック信号ＣＬＫに同期して、該格納したデータを順次読出して内部読出ＲＤを生成する。内部読出データＲＤは、図示しない処理回路（プロセッサ等）において用いられる。
【００３４】
データ転送制御回路１３は、このプリアンブル検出回路１１からのプリアンブル検出信号に従って、データ受信回路１２を活性化するイネーブル信号ＥＮを生成し、かつデータ受信回路１２のファーストイン・ファーストアウト回路（以下ＦＩＦＯ回路と称す）のアドレスを初期値にリセットするリセット信号ＲＳＴを生成する。
【００３５】
図２は、図１に示すメモリ１からのデータ読出時のメモリコントローラ１０の動作波形を示す図である。以下、図２を参照して、図１に示すメモリコントローラ１０の動作について説明する。
【００３６】
これらのクロック信号ＣＫおよびＣＫＮは、それぞれ、Ｈレベル期間がｔＣＨおよびｔＣＬである。２相のクロック信号ＣＫおよびＣＫＮを利用して、クロック信号ＣＫおよびＣＫＮの各Ｈレベル期間にデータを読出し、ダブル・データ・レート（ＤＤＲ）モードでのデータ転送を行なう。
【００３７】
データストローブ信号ＤＱＳおよび補のデータストローブ信号ＤＱＳＢは、データ非転送時においては、ハイインピーダンス状態に設定される。データをメモリ１から読出すとき、メモリ１は、このデータストローブ信号ＤＱＳを、有効データ（正しいデータ）を転送するサイクルよりも１サイクル前のプリアンブル期間、Ｌレベルに設定する。このプリアンブル期間経過終了後、データ転送に応じて、データストローブ信号ＤＱＳおよびＤＱＳＢをトグルする。
【００３８】
このプリアンブル期間は、仕様により、０．９から１．１サイクル期間に設定される。したがって、たとえば、このデータストローブ信号ＤＱＳがＨレベルとなっとき、その０．８サイクル前は、Ｌレベルである。有効データ転送時において、データストローブ信号ＤＱＳの立上がりから０．８サイクル前においては、このデータストローブ信号ＤＱＳはＨレベルである。したがって、たとえば０．８サイクル前のデータストローブ信号と、現時点のデータストローブ信号の論理レベルの一致／不一致を見ることにより、プリアンブル期間が終了し、データ転送が開始されることを検出することができる。また、０．８サイクル期間データストローブ信号ＤＱＳがＬレベルであれば、ほぼ確実にデータストローブ信号ＤＱＳが０．９サイクル期間以上Ｌレベルに設定されていると判断することができ、プリアンブル期間を正確に検出することができる。
【００３９】
読出データＤＱ（Ｑ）は、クロック信号ＣＫまたはデータストローブ信号ＤＱＳの変化に対し、遅延時間ｔＤＱＳＱｍａｘ経過後確定状態に維持される。読出データＱは、時間ｔＱＨの期間、確定状態となる。図２においては、バースト長が４であり、１つの読出指示（リードコマンド）に対して、４つのデータが連続的に読出される場合の動作を示す。最後のデータＱが読出される期間は、（リード）ポストアンブル期間と呼び、この期間は、クロックサイクルの１／２サイクル期間の時間幅ｔＲＰＳＴを有する。
【００４０】
データ読出時、図１に示すプリアンブル検出回路１１は、データストローブ信号ＤＱＳを、内部でたとえば０．８サイクル遅延し、この遅延データストローブ信号と非遅延のデータストローブ信号ＤＱＳの論理の一致／不一致を検出する。このプリアンブル検出回路１１からの出力信号が論理レベルの不一致を示す状態となると、データ転送制御回路１３は、有効データ（正しいデータ）の転送サイクルが開始されたと判断し、このプリアンブル検出回路１１からの検出信号に従って、イネーブル信号ＥＮをバースト長期間活性状態のＨレベルに設定する。また、このプリアンブル検出回路１１の検出信号に従って、データ転送制御回路１３が、リセット信号ＲＳＴを生成し、データ受信回路１２に含まれるＦＩＦＯの先頭アドレスを初期値に設定する。
【００４１】
したがって、この有効データ転送期間に従ってイネーブル信号ＥＮを生成することにより、正確なバースト長データの取込を行なうことができる。データストローブ信号ＤＱＳにおいて、ポストアンブル期間経過後、グリッジノイズが発生しても、データ受信回路１２においては、データ取込は完了しており、このグリッジノイズの影響を受けない。
【００４２】
また、リセット信号ＲＳＴを用いてデータ受信回路１２のＦＩＦＯ回路のアドレスを初期値にリセットすることにより、仮にグリッジノイズによりリセット信号が発生されても、次の有効データ転送時のデータストローブ信号ＤＱＳにより、誤設定されたＦＩＦＯアドレスを、正確な値に再度リセットすることができる。したがって、グリッジノイズが、次のデータ読出に悪影響を及ぼすのを抑制することができる。
【００４３】
図３は、図１に示すプリアンブル検出回路１１の構成の一例を示す図である。図３においては、また、データ転送制御回路１３に含まれるデータ読出に関連する部分の構成を併せて示す。
【００４４】
図３において、プリアンブル検出回路１１は、メモリから転送されたデータストローブ信号ＤＱＳをたとえば０．８クロックサイクル期間（０．８・ｔＣＫ）遅延する可変遅延線２０と、メモリ（１）から転送されたデータストローブ信号ＤＱＳをバッファ処理する実質的に遅延時間０のバッファ回路２１と、可変遅延線２０の出力信号ＤＬＤＱＳとバッファ回路２１の出力信号とを受け、データストローブ信号ＤＱＳがＨレベルに立上がるときの遅延データストローブ信号ＤＬＤＱＳの論理レベルがＬレベルであるかを検出し、その検出結果を示す検出信号ＤＫＴを生成する検出器２２を含む。
【００４５】
検出器２２の出力する検出信号ＤＫＴが、データ転送制御回路１３に含まれるイネーブル信号発生回路２３およびリセット信号発生回路２４へ、プリアンブル検出信号として与えられる。
【００４６】
イネーブル信号発生回路２３は、この検出信号ＤＫＴの活性化に従って、バースト長期間取込イネーブル信号ＷＥＮを活性状態に維持する。リセット信号発生回路２４は、検出器２２の出力する検出信号ＤＫＴの活性化に応答して、ワンショットパルスの形態で、データ取込アドレスをリセットするリセット信号ＷＰＲＳＴ（リセット信号ＲＳＴに含まれる）を生成する。これらのデータ取込イネーブル信号ＷＥＮおよびデータ取込リセット信号ＷＰＲＳＴは、図１に示すイネーブル信号ＥＮおよびリセット信号ＲＳＴに含まれ、図１に示すデータ受信回路１２のデータ取込部の取込動作の活性化およびデータ取り込みようのＦＩＦＯのアドレスの初期化を行なう。このデータ転送制御回路１３は、上述のように、イネーブル信号ＥＮおよびリセット信号ＲＳＴとして、データ受信回路１２の内部転送動作の活性化および初期化を行なう信号を生成するが、この図３においては、主として、データ受信回路１２のデータ取込部（ＦＩＦＯ回路）のデータ取り込みに関連する部分に対するイネーブル信号ＷＥＮおよびリセット信号ＷＰＲＳＴを代表的に示す。
【００４７】
可変遅延線２０は、その遅延時間が、たとえば０．８クロックサイクル期間に設定され、検出器２２において、データストローブ信号ＤＱＳが、最小仕様値の０．９クロックサイクル期間以上Ｌレベルにあることを検出する。したがって、可変遅延線２０の遅延時間は、０．８クロックサイクル期間に限定されない。データストローブ信号ＤＱＳがノイズの影響により変動するのを防止することが可能であれば、可変遅延線２０は、この最大ノイズ持続期間よりも、長くかつ０．９クロックサイクル期間よりも短い期間の遅延時間を有してもよい。
【００４８】
なお、この可変遅延線２０は、例えば複数の縦続接続されるインバータで構成されるインバータチェーンまたはＤＬＬ（ディレイロックトループ）で構成することができる。
【００４９】
検出器２２は、このバッファ２１からのデータストローブ信号ＤＱＳの立上がりエッジで、可変遅延線２０からのデータストローブ信号ＤＬＤＱＳの論理レベルを判定する。したがって、この検出器２２は、たとえば、バッファ２１の出力信号信号の立上がりでラッチ状態となるラッチ回路で構成されてもよく、また、データストローブ信号ＤＱＳがＨレベル、かつ遅延データストローブ信号ＤＬＤＱＳがＬレベルのときにワンショットのパルスを発生するワンショットパルス発生回路で構成されてもよい。
【００５０】
図４は、図３に示すプリアンブル検出回路１１の動作を示す信号波形図である。以下、図４を参照して、図３に示すプリアンブル検出回路１１の動作について説明する。
【００５１】
可変遅延線２０からの遅延データストローブ信号ＤＬＤＱＳが、バッファ２１からのデータストローブ信号ＤＱＳに対して、たとえば０．８クロックサイクル期間（０．８ｔＣＫ）遅延される。したがって、データストローブ信号ＤＱＳが、プリアンブル期間が完了してＬレベルからＨレベルに立上がるとき、可変遅延線２０の出力する遅延データストローブ信号ＤＬＤＱＳはＬレベルである。検出器２２は、その状態を検出して、出力信号ＤＫＴを所定期間、例えばＨレベルに設定する。
【００５２】
図４においては、検出器２２の出力する検出信号ＤＫＴのパルス幅は、このプリアンブル期間が完了して、データ転送が開始されたことを検出することが可能であればよく、この検出信号ＤＫＴのパルス幅は適宜定められればよい。
【００５３】
検出器２２の出力する検出信号ＤＫＴの活性化（立上がり）に従って、イネーブル信号発生回路２３およびリセット信号発生回路２４からのイネーブル信号ＥＮおよびリセット信号ＲＳＴの活性化がトリガされる。
【００５４】
次のデータの転送時において、データストローブ信号ＤＱＳがＨレベルに立上がるとき、遅延データストローブ信号ＤＬＤＱＳは、Ｈレベルである。したがって、この場合には、検出器２２の出力信号はＬレベルである。以降、有効データ転送時、データストローブ信号ＤＱＳがＨレベルに立上がるときには、遅延データストローブ信号ＤＬＤＱＳはＨレベルであり、検出器２２からの検出信号ＤＫＴは非活性状態（例えばＬレベル）に維持される。
【００５５】
これにより、プリアンブル期間完了を検出して、有効データ転送開始タイミングを検出することができ、以降、正しいデータの取込を行なうことができる。
【００５６】
以上のように、この発明の実施の形態１に従えば、データストローブ信号とこのデータストローブ信号の遅延信号とに従って、プリアンブル期間の終了を検出しており、正確な有効データの転送開始タイミングを検出することができ、有効データを確実に取込むことができる。また、ポストアンブル期間において、データストローブ信号ＤＱＳがＬレベルからハイインピーダンス状態になるときに、グリッジノイズが発生しても、このときには、内部で、転送データの取込を完了することにより、グリッジノイズの影響を回避することができる。
【００５７】
また、ポストアンブル期間のグリッジノイズが、このプリアンブル期間と重なるように生成されても、このグリッジノイズによる有効データ転送開始検出が、再度正しい有効データ転送開始検出よりも前であれば、有効データ転送開始検出によりリセット信号ＲＳＴを生成してグリッジノイズによる転送開始検出による動作をリセットすることができ、誤データの取込および内部転送は防止することができる。
【００５８】
また、可変遅延線の遅延時間は固定値でよく、特に、キャリブレーションなどのデータパターン転送を行なって可変遅延線２０の遅延量を調整する必要はない。これは、可変データストローブ信号とバッファされたデータストローブ信号を用いており、ラウンドトリップタイムは、データストローブ信号と遅延データストローブ信号において同じであり、キャリブレーションを行なう必要がないためである。
【００５９】
［実施の形態２］
図５は、この発明の実施の形態２に従うデータ受信回路１２の構成の一例を概略的に示す図である。この図５に示す実施の形態２においては、プリアンブル検出回路１１の出力信号を、ライトポインタリセット信号ＷＰＲＳＴとして利用する。このプリアンブル検出回路１１の構成は、図３に示すプリアンブル検出回路１１の構成と同じである。図３に示すリセット信号発生回路２４の出力するリセット信号に代えて、図３に示す検出器２２の検出信号ＤＫＴをライトポインタリセット信号ＷＰＲＳＴとして利用する。このライトポインタリセット信号ＷＰＲＳＴは、後に詳細に説明するように、データ受信回路１２内に含まれるＦＩＦＯ回路の書込アドレスを示すライトポインタを初期値にリセットする信号である。
【００６０】
データ受信回路１２は、転送クロック信号発生回路として、メモリから与えられるデータストローブ信号ＤＱＳを１／４位相（９０°）遅延する遅延回路３０と、この遅延回路３０の１／４位相遅延信号ＤＱＳＱ０を、さらに１８０°遅延して、３／４位相遅延データストローブ信号ＤＱＳ２７０を生成する遅延回路３１と、補のデータストローブ信号ＤＱＳＮを１／４位相遅延する遅延する遅延回路３２と、遅延回路３２からの１／４位相遅延データストローブ信号ＤＱＳ９０Ｎをさらに２／４位相遅延して、３／４位相遅延データストローブ信号ＤＱＳ２７０Ｎを生成する遅延回路３３を含む。
【００６１】
遅延回路３０から３３により、メモリから読出されたデータＤＱの各タイムスロット（ウィンドウ）の中央位置に、データストローブ信号のエッジを移動させる。
【００６２】
なお、この図５に示す構成においては、メモリからは、８ビットデータＤＱ［７：０］が読出される場合を一例として示す。このデータビットの数は、任意である。
【００６３】
データ受信回路１２は、さらに、遅延データストローブ信号ＤＱＳ９０に従ってデータＤＱ［７：０］を取込み出力するフリップフロップ（ＦＦ）３４と、データストローブ信号ＤＱＳ９０Ｎの立上がりに従って、データＤＱ［７：０］を取込み出力するフリップフロップ３５と、これらのフリップフロップ３４および３５の出力データを、イネーブル信号ＥＮ０の活性化時、順次取込出力する第１の転送回路Ｆ０と、イネーブル信号ＥＮ１の活性化時、フリップフロップ３４および３５からのデータを取込んで出力する第２の転送回路Ｆ１とを含む。
【００６４】
第１の転送回路Ｆ０は、遅延データストローブ信号ＤＱＳ２７０に従ってフリップフロップ３４の出力データＤＱＲを順次取込み、かつマスタクロック信号ＣＬＫＭに同期して順次出力する立上がりＦＩＦＯ回路ＦＦＲ０と、遅延データストローブ信号ＤＱＳ２７０Ｎに従ってフリップフロップ３５の出力データＤＱＦを取込みかつマスタクロック信号ＣＬＫＭに同期して出力する立下がりＦＩＦＯ回路ＦＦＦ０とを含む。
【００６５】
遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎは、互いに相補な信号であり、これらのＦＩＦＯ回路ＦＦＲ０およびＦＦＦ０は、交互に、データの取込を行なう。マスタクロック信号ＣＬＫＭは、メモリコントローラにおいて用いられるクロック信号であり、図１に示すクロック信号ＣＬＫに相当する。
【００６６】
第２の転送回路Ｆ１は、遅延データストローブ信号ＤＱＳ２７０のエッジに従ってフリップフロップ３４の出力データＤＱＲを取込みマスタクロック信号ＣＬＫＭに同期して出力する立上がりＦＩＦＯ回路ＦＦＲ１と、遅延データストローブ信号ＤＱＳ２７０Ｎに従ってフリップフロップ３５の出力データＤＱＳを取込みマスタクロック信号ＣＬＫＭに同期して取込んだデータを出力する立下がりＦＩＦＯ回路ＦＦＦ１とを含む。ＦＩＦＯ回路ＦＦＲ１およびＦＦＦ１も、交互に、データの取込動作を行なう。
【００６７】
転送回路Ｆ０およびＦ１を二重に設け、交互にイネーブル信号ＥＮ０およびＥＮ１に従って活性化することにより、ラウンドトリップタイムとして、２クロックサイクルまでの時間を許容することが可能となる。また、転送回路Ｆ０およびＦ１それぞれにおいて、立上がりＦＩＦＯ回路ＦＦＲおよび立下がりＦＩＦＯ回路ＦＦＦを設けることにより、データの取込動作時、交互にデータ取込を行なうことができ、データストローブ信号ＤＱＳの２倍の周期でこれらのＦＩＦＯ回路ＦＦＲおよびＦＦＲを動作させることができ、余裕を持ってデータの取込を行なうことができる。
【００６８】
データ受信回路１２は、さらに、選択信号ＳＥＬに従って、立上がりＦＩＦＯ回路ＦＦＲ０およびＦＦＲ１の出力データＤＯＲ０およびＤＯＲ１の一方を選択するセレクタ３６と、選択信号ＳＥＬに従って、立下がりＦＩＦＯ回路ＦＦＦ０およびＦＦＦ１の出力データＤ０Ｆ０およびＤＯＦ１の一方を選択するセレクタ３７と、マスタクロック信号ＣＬＫＭに従って、セレクタ３６および３７の選択データを取込み出力するフリップフロップ３８および３９を含む。
【００６９】
フリップフロップ３８から、立上がり時のデータＤＯＴＲ［７：０］が出力され、フリップフロップ３９から、データＤＯＴＦ［７：０］が出力される。
【００７０】
マスタクロック信号ＣＬＫＭは、前述のように、このコントローラ（図１のメモリコントローラ１０）を動作させるクロック信号ＣＬＫに対応する信号であり、また、データストローブ信号ＤＱＳのデータ転送時の周波数と同じ周波数のクロック信号である。イネーブル信号ＥＮ０およびＥＮ１は、実施の形態１の構成と異なり、図１に示すデータ転送制御回路１３から、リードコマンド発行時、リードコマンド発行ごとに所定期間（例えばバースト長の期間）交互に活性化される。
【００７１】
選択信号ＳＥＬは、リードコマンド発行時、イネーブル信号ＥＮ０およびＥＮ１のいずれが活性化されているかに応じて活性化される。図５に示す構成においては、セレクタ３６および３７は、選択信号ＳＥＬが“０”のときに、第１転送回路Ｆ０の出力データＤＯＲ０およびＤＯＦ０を選択し、“１”のときに、第２転送回路Ｆ１の出力データＤＯＲ１およびＤＯＦ１を選択するように示される。
【００７２】
図６は、図５に示すデータ受信回路１２のメモリからのラウンドトリップタイムが０の場合の動作を示すタイミング図である。すなわち、メモリにおいては、リードコマンドが与えられると、コラムレイテンシ（ＣＡＳレイテンシ）経過後に有効データを転送する。この有効データ転送の１クロックサイクル前にデータストローブ信号ＤＱＳが、Ｌレベルに設定される。
【００７３】
従って、図６において、リードコマンド発行は、メモリのコラムレイテンシに応じて、その発行タイミングが設定されるため、リードコマンドは示していない。コラムレイテンシを考慮した固定されたタイミングで、リードコマンド発行後イネーブル信号ＥＮ０またはＥＮ１がバースト長期間活性化される。
【００７４】
すなわち、イネーブル信号ＥＮ（ＥＮ０、ＥＮ１）は、リードコマンド発行後、コラムレイテンシより１サイクル短い期間経過後にメモリコントローラにおいてバースト長期間活性状態に維持される。データ転送遅延が０であり、イネーブル信号ＥＮ０およびＥＮ１は、プリアンブル期間経過後のサイクルからバースト長期間（２クロックサイクル）活性状態に維持される。
【００７５】
リードコマンドが与えられると、メモリ（１）から、配線伝播遅延０で、データＤＱとして、データＤ０−Ｄ４が、マスタクロック信号ＣＬＫＭのエッジ（立上がりおよび立下がりエッジ両者）に同期して順次転送される。データストローブ信号ＤＱＳは、データＤＱと同じタイミングでマスタクロック信号ＣＬＫＭに同期して変化する。
【００７６】
プリアンブル期間経過後に、データストローブ信号ＤＱＳがＬレベルからＨレベルとなると、プリアンブル検出回路１１からのライトポインタリセット信号ＷＰＲＳＴが、所定期間Ｌレベルに設定される。これにより、第１の転送回路Ｆ０において、ライトポインタが初期値にリセットされる。ここでは、第１の転送回路Ｆ０が先にデータの取込を行ない、次のリードコマンド発行時においては、第２の転送回路Ｆ１がイネーブルされる動作シーケンスを一例として示す。
【００７７】
次いで、遅延データストローブ信号ＤＱＳ９０が、データストローブ信号ＤＱＳに対し、１／４位相の遅れを持って変化し、遅延データストローブ信号ＤＱＳ９０Ｎが、補のデータストローブ信号ＤＱＳＮに対し、１／４位相の遅延を持って変化する。これらの遅延データストローブ信号ＤＱＳ９０およびＤＱＳ９０Ｎは、図５に示すフリップフロップ３４および３５のクロック入力へそれぞれ与えられる。これらのフリップフロップ３４および３５が、それぞれそのクロック入力に与えられる信号の立上がりで、与えられたデータの取込および出力を行なう。したがって、フリップフロップ３４および３５から、遅延データストローブ信号ＤＱＳ９０に従ってデータＤＱＲとして、データＤ０およびＤ２が順次出力され、フリップフロップ３５から、データストローブ信号ＤＱＳ９０Ｎの立上がりエッジに従って、データＤＱＦとしてデータＤ１およびＤ３が順次出力される。
【００７８】
第１の転送回路Ｆ０は、イネーブル信号ＥＮ０に従って活性化される。リセット信号ＷＰＲＳＴに従って内部でライトポインタが初期値にリセットされる。次いで、３／４位相遅延した遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎに従って、ＦＩＯＦ回路ＦＦＲ０およびＦＦＦ０がデータの書込を行なう。遅延データストローブ信号ＤＱＳ２７０の立上がりエッジは、フリップフロップ３４の出力データＤＱＲのタイムスロットの中央値に位置し、また、遅延データストローブ信号ＤＱＳ２７０Ｎは、フリップフロップ３５の出力データＤＱＦ（データＤ１）のタイムスロットの中央値に位置する。
【００７９】
読出データのバースト長は４であり、４つのデータＤ０−Ｄ３が、交互にＦＩＦＯ回路ＦＦＲ０およびＦＦＦ０に格納されると、イネーブル信号ＥＮ０が非活性化される。また、このとき、ポストアンブル期間が終了し、データストローブ信号ＤＱＳおよびＤＱＳＮが、ハイインピーダンス状態になる。このポストアンブル完了時のハイインピーダンス状態への移行時、たとえグリッジノイズが発生しても、データＤ２およびＤ３は、フリップフロップ３４および３５により、既にラッチされており、また、フリップフロップ３４および３５はラッチ状態にあり、このグリッジノイズの影響はフリップフロップ３４および３５の出力データＤＱＲおよびＤＱＦに対しては及ぼさない。したがって、確実に、データＤ０−Ｄ３を、第１転送回路Ｆ０内に格納することができる。
【００８０】
すなわち、所定のサイクル経過後、データ読出が行なわれ、ＦＩＦＯ回路ＦＦＲ０およびＦＦＦ０に書込まれたデータが、マスタクロック信号ＣＬＫＭの立上がりに同期して順次読出される。この内部データ読出時においては、内部読出データＤＯＲ０およびＤＯＦ１が、ともにマスタクロック信号ＣＬＫＭに同期して、並列に読出される。
【００８１】
第１転送回路Ｆ０の選択時、選択信号ＳＥＬは、Ｌレベル（“０”）であり、セレクタ３６および３７は、第１転送回路Ｆ０からのデータＤＯＲ０およびＤＯＦ０を選択する。フリップフロップ３８および３９が、マスタクロック信号ＣＬＫＭの立上がりに同期して、順次データを読出す。したがって、このデータ受信回路１２からの出力データＤＯＴＲおよびＤＯＴＦは、第１転送回路Ｆ０からデータが並列に読出された後、マスタクロック信号ＣＬＫＭの１クロックサイクル遅れて内部へ転送される。
【００８２】
最初にリードコマンドが発行されてから、４クロックサイクル経過後に、再びリードコマンドが与えられると、メモリから、読出データＤＱとして、データＤ４−Ｄ７が、順次転送される。このときには、イネーブル信号ＥＮ１が活性化され、第２の転送回路Ｆ１がデータの取込および内部読出を行なう。この２回目のリードコマンドに従って、イネーブル信号ＥＮ１が、４クロックサイクル期間Ｈレベルに設定される。ラウンドトリップタイムが、０であるため、このイネーブル信号ＥＮ１が活性化されるサイクルにおいて、また、データストローブ信号ＤＱＳがＬレベルからＨレベルに変化する。
【００８３】
第１転送回路Ｆ０に対するデータ取込と同様にして、今度は、第２転送回路Ｆ１において、ＦＩＦＯ回路ＦＦＲ１およびＦＦＦ１において、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎの立上がりエッジに従ってデータＤ４−Ｄ７が格納される。この後、選択信号ＳＥＬが、イネーブル信号ＥＮ１がＬレベルとなってから１クロックサイクル経過後にＨレベルとなり、第２転送回路Ｆ１からの出力データＤＯＲ１およびＤＯＦ１を選択する。フリップフロップ３８および３９から、再び、データＤ２およびＤ３が並列に読出された後、２クロックサイクル経過後に、データＤＯＴＲおよびＤＯＴＦとして、データＤ４／Ｄ５およびＤ６／Ｄ７の各組が順次読出される。
【００８４】
上述のデータ読出シーケンスにおいては、リードコマンドの発行間隔は、４サイクルごとであり、データ列において、２クロックサイクルの間がある。バースト長４を考慮して、連続的にバースト長以上のデータを連続的に読出す場合には、リードコマンドの発行は、２クロックサイクルの間を置く（リード／ノップ（ＮＯＰ）／ノップ（ＮＯＰ）／リードのシーケンスで、コマンドを各クロックサイクルにおいて発行する）。しかしながら、転送回路が二重に設けられているため、このリードコマンドの発行間隔は、１クロックサイクルであってもよい（イネーブル信号ＥＮ０およびＥＮ１の活性化期間が重ならなければ良い）。
【００８５】
図７は、図５に示す転送回路Ｆ０およびＦ１の構成の一例を概略的に示す図である。これらの転送回路Ｆ０およびＦ１は、同一構成を有するため、図７においては、第１転送回路Ｆ０の構成を示す。第２転送回路Ｆ１は、図７において括弧内において示す。
【００８６】
図７において、第１転送回路Ｆ０は、図５に示すプリアンブル検出回路１１からのライトポインタリセット信号ＷＰＲＳＴとイネーブル信号ＥＮ０とを受けるゲート回路４０と、ゲート回路４０の出力信号の立下がりに応答してそのカウント値が初期値にリセットされ、遅延データストローブ信号ＤＱＳ２７０に従ってカウント値を順次増分するライトアドレスカウンタ４１と、ゲート回路４０の出力信号の立下がりに応答してそのカウント値がリセットされ、遅延データストローブ信号ＤＱＳ２７０Ｎに従ってカウント動作を行なうライトアドレスカウンタ４２と、ライトアドレスカウンタ４１の出力するカウント値を書込アドレスＷＡＲとしてアドレス入力ＷＡに受け、遅延データストローブ信号ＤＱＳ２７０をクロック入力ＷＣＫに受け、データ入力ＤＩに与えられたデータＤＱＲを取込み格納するＦＩＦＯメモリ４３と、ライトアドレスカウンタ４２の出力するカウント値ＷＡＦを書込アドレス入力ＷＡに受け、遅延データストローブ信号ＤＱＳ２７０Ｎをクロック入力ＷＣＫに受け、データ入力ＤＩに与えられるデータＤＱＦを、書込アドレスＷＡに与えられるアドレスに書込むＦＩＦＯメモリ４４とを含む。これらの回路要素により、データＤＱＲおよびＤＱＦのＦＩＦＯメモリ４３および４４への書込が実現される。
【００８７】
ライトアドレスカウンタ４１および４２は、そのカウント値が所定値に到達すると、再度、初期値にカウント値が復帰してカウント動作を実行する。カウント値の最大値はバースト長に応じて適切に定められる。
【００８８】
第１転送回路Ｆ０は、さらに、マスタクロック信号ＣＬＫＭの立上がりに応答してイネーブル信号ＥＮ０を取込み出力するフリップフロップ（ＦＦ）４５と、補のマスタクロック信号ＣＬＫＭＮに従って、フリップフロップ４５の出力信号を取込み出力するフリップフロップ４６と、フリップフロップ４６の出力信号に従ってそのカウント値がリセットされて、マスタクロック信号ＣＬＫＭの立上がりに応答してカウント動作を行なうリードアドレスカウンタ４８と、フリップフロップ４６の出力信号に従って、そのカウント値がリセットされ、マスタクロック信号ＣＬＫＭの立上がりに応答してカウント動作を行なうリードアドレスカウンタ４９を含む。
【００８９】
リードアドレスカウンタ４８からのリードポインタ（カウント値）が、ＦＩＦＯメモリ４３のリードアドレス入力ＲＡに与えられ、リードアドレスカウンタ４９からのリードポインタが、ＦＩＦＯメモリ４４のリードアドレス入力ＲＡへ与えられる。これらのＦＩＦＯメモリ４３および４４は、リードアドレス入力ＲＡに与えられたアドレス信号（ポインタ）に従って、対応のアドレスのデータをそれぞれデータ出力ＤＯからデータＤＯＴＲおよびＤＯＴＦとして出力する。
【００９０】
図７に示すＦＩＦＯメモリ４３および４４は、データ書込時においては、活性化時、１クロックサイクルごとに、データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎに従って交互に書込動作を実行する。ＦＩＦＯメモリ４３および４４において、読出用のクロック入力は示していないが、リードアドレス入力ＲＡに与えられるアドレス信号（リードポインタ）の変化に従って読出イネーブル信号を内部で生成してデータの読出を行なう（アドレス変化検出回路の構成が利用されればよい）。
【００９１】
このＦＩＦＯメモリ４３および４４の書込活性化期間を設定する構成としては、対応のゲート回路４０の出力信号が活性化されて、ライトアドレスカウンタ４１および４２がリセットされると、このリセット期間からバースト長期間活性化される構成が利用されればよい。一例として、ゲート回路４０の出力信号の活性化（Ｌレベル）に応答してセットされバースト長期間経過後にリセットされるセット／リセットフリップフロップの出力信号を、ＦＩＦＯメモリ４３および４４のイネーブル信号として利用することにより、この書込活性制御部の構成は実現することができる。
【００９２】
イネーブル信号ＥＮ０およびＥＮ１は、データ読出時、交互に、バースト長期間、マスタクロック信号ＣＬＫＭに同期して活性化される。図５に示すプリアンブル検出回路１１からのライトポインタリセット信号ＷＰＲＳＴは、活性化時Ｌレベルである。したがって、ゲート回路４０は、対応のイネーブル信号ＥＮ０またはＥＮ１が活性状態のＨレベル（“１”）のときに、ライトポインタリセット信号ＷＰＲＳＴに従って、その出力信号をＬレベルに設定して、ライトアドレスカウンタ４１および４２のカウント値をリセットする。ゲート回路４０は、イネーブル信号ＥＮ０またはＥＮ１がＬレベルとなると、その出力信号が、強制的にＨレベルに設定される。応じて、これらのライトアドレスカウンタ４１および４２のカウント値のリセットはマスクされる（実行されない）。
【００９３】
図８は、図７に示す転送回路Ｆ（Ｆ０またはＦ１）のラウンドトリップタイムが０の理想状態におけるデータ取込動作を示すタイミング図である。以下、図８を参照して、図７に示す転送回路の動作について説明する。
【００９４】
リードコマンドが発行されると、メモリからは、このリードコマンドに従ってメモリセルデータの読出が行なわれる。読出データ転送の１クロックサイクル前に、データストローブ信号ＤＱＳがＬレベルに設定される。コントローラ側においては、メモリのコラムレイテンシを考慮して、メモリセルデータが読出されるサイクルにおいて、イネーブル信号ＥＮをマスタクロック信号ＣＬＫＭに同期して活性状態（Ｈレベル）に設定する。
【００９５】
データストローブ信号ＤＱＳがＬレベルからＨレベルに立上がり、プリアンブル期間が終了すると、プリアンブル検出回路１１からのライトポインタリセット信号ＷＰＲＳＴがＬレベルの活性状態となる。このとき、イネーブル信号ＥＮ（ＥＮ０またはＥＮ１）がＨレベルであり、ゲート回路４０により、図７に示すライトアドレスカウンタ４１および４２のカウント値が初期値（“０”）にリセットされる。
【００９６】
遅延データストローブ信号ＤＱＳ２７０の立上りに従って、ライトアドレスカウンタ４１がカウント動作を行なって、そのカウント値ＷＡＲを更新し、ライトアドレスカウンタ４２が、遅延データストローブ信号ＤＱＳ２７０Ｎの立上りエッジに従ってカウント動作を行ない、そのカウント値ＷＡＦの値を更新する。したがって、ＦＩＦＯメモリ４３へは、データ入力ＤＩに与えられるデータＤＱＲが、遅延データストローブ信号ＤＱＳ２７０の立上がりエッジに同期して書込まれる。データＤＱＲは、遅延データストローブ信号ＤＱＳ９０に従って変化しており、したがって、データＤ０およびＤ２が、それぞれのウィンドウの中央位置で、順次ＦＩＦＯメモリ４３のアドレス０および１にそれぞれ書込まれる。
【００９７】
一方、ＦＩＦＯメモリ４４は、補の遅延データストローブ信号ＤＱＳ２７０Ｎの立上がりエッジに従ってデータ書込動作を行ない、ライトアドレスカウンタ４２からのカウント値ＷＡＦを書込アドレスとして、アドレス０および１に、それぞれＤ１およびＤ３を書込む。
【００９８】
イネーブル信号ＥＮは、バースト長期間、すなわち２クロックサイクル期間Ｈレベルの活性状態に維持され、この２クロックサイクル期間が経過すると、Ｌレベルに設定される。応じて、ゲート回路４０の出力信号は、Ｈレベルに維持され、この期間に、ノイズが発生しても、ライトアドレスカウンタ４１および４２のカウント値の更新は行なわれない。したがって、データストローブ信号ＤＱＳのポストアンブル期間後にグリッジノイズが発生し、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎにおいて同様のノイズが発生しても、そのときには、次のアドレスに対する誤データの書込が次のアドレスに対して行なわれるだけであり、アドレス０および１のＦＩＦＯメモリ４３および４４の格納データに悪影響は生じない（リードアドレスカウンタ４８および４９のリードポインタがこの誤アドレスを指定しないため、誤アドレスのデータの読出は、行なわれない）。
【００９９】
次いで、イネーブル信号ＥＮ（ＥＮ０またはＥＮ１）が活性化されて、１．５クロックサイクルが経過すると、フリップフロップ４６の出力信号がＨレベルとなり、リードアドレスカウンタ４８および４９のカウント値（リードポインタ）ＲＡＲおよびＲＡＦが初期値（０）にリセットされる。このリセット完了後、リードアドレスカウンタ４８および４９がマスタクロック信号ＣＬＫＭの立上がりエッジに従ってカウント動作を行ない、このカウント値ＲＡＲおよびＲＡＦの変化に従ってＦＩＦＯメモリ４３および４４から、データの読出が行なわれる。図８においては、リードアドレスカウンタ４８および４９が、カウント値がリセットされてから１クロックサイクル経過後にデータの読出が行なわれている。しかしながら、ＦＩＦＯメモリ４３および４４からのデータ読出が、イネーブル信号ＥＮ（ＥＮ０、ＥＮ１）が非活性化されるサイクルからデータの読出しが行われても良い。リードアドレスカウンタ４８および４９においてアドレス出力が１クロックサイクル遅延して出力する構成を設けるか否かにより、ＦＩＦＯメモリ４３および４４に対する読出アドレスＲＡＲおよびＲＡＦの出力サイクルは設定することができる。
【０１００】
これにより、読出データＤＯＴＲおよびＤＯＴＦとして、データＤ０およびＤ１の組およびデータＤ２およびＤ３の組が、順次、１クロックサイクル期間ずつマスタクロック信号ＣＬＫＭの立上がりに同期して読出される。
【０１０１】
なお、この図７に示す構成において、フリップフロップ４６の出力信号は、イネーブル信号ＥＮ（ＥＮ０またはＥＮ１）を１．５クロックサイクル遅れて出力して生成しており、したがって、２クロックサイクル期間Ｈレベルとなる。リードアドレスカウンタ４８および４９は、そのリセット入力ＳＲＳＴに与えられる信号の立上がりに同期して、そのカウント値が初期値にリセットされ、マスタクロック信号ＣＬＫＭの立上がりに同期して、その初期値を、カウント値ＲＡＲおよびＲＡＦとして出力する。これらのリードアドレスカウンタ４８および４９は、このリセット入力ＳＲＳＴに与えられる信号の立上がりに同期して次の次のクロックサイクルから、カウント値を読出アドレスとして出力する。しかしながら、上述のように、リセット入力ＳＲＳＴに与えられる信号の立上りに応答して、カウント値が初期値にリセットされ、そのカウント値を次のサイクルから読出アドレスとして出力しても良い。この場合には、読出データＤＯＴＲおよびＤＯＴＦの出力サイクルは、図８に示すサイクルより１クロックサイクル早くなる。
【０１０２】
これらの構成に代えて、フリップフロップ４５および４６が、３クロックサイクル期間イネーブル信号ＥＮ（ＥＮ０またはＥＮ１）を遅延して転送し、リードアドレスカウンタ４８および４９は、フリップフロップ４６の出力信号の立上がりに同期してカウント値が初期値にリセットされ、次いで、このフリップフロップ４７の出力が活性期間の間、マスタクロック信号ＣＬＫＭの立上がりエッジに従ってカウント動作を行なうように構成されてもよい。各リードポインタの変化に従ってＦＩＦＯメモリ４３および４４に対するデータ読出が実行される。
【０１０３】
図９は、図７に示すデータ転送回路Ｆ（Ｆ０またはＦ１）のラウンドトリップタイムが１クロックサイクルの場合のデータ転送動作を示すタイミング図である。以下、図９を参照して、図７に示すデータ転送回路の動作について説明する。リードコマンドがメモリ（１）へ与えられ、メモリ（１）から読出データが転送される。この読出データの転送時、読出データの１クロックサイクル前に、データストローブ信号ＤＱＳがハイインピーダンス状態からＬレベルに設定され、１クロックサイクル経過後、データストローブ信号ＤＱＳが、マスタクロック信号ＣＬＫＭに従って立上がり有効データ転送期間中トグルされる。
【０１０４】
一方、データ転送回路Ｆ（Ｆ０またはＦ１）においては、イネーブル信号ＥＮが、通常のコラムレイテンシを考慮した遅延０のタイミングで活性化される。伝播遅延（ラウンドトリップタイム）が１サイクルであり、このデータストローブ信号ＤＱＳがＬレベルに設定される期間から２クロックサイクル期間Ｈレベルとなる。したがって、イネーブル信号ＥＮがＨレベルの活性状態に設定されてから、マスタクロック信号ＣＬＫＭの１クロックサイクル経過後に、データＤ０−Ｄ３が、順次マスタクロック信号ＣＬＫＭのエッジに同期して転送される。
【０１０５】
このデータ転送時、データストローブ信号ＤＱＳがＬレベルからＨレベルに立上がり、また補のデータストローブ信号ＤＱＳＮが、ＨレベルからＬレベルに立下がると、プリアンブル検出回路（図５の回路１１）からの、ライトポインタリセット信号ＷＰＲＳＴがＬレベルに駆動される。このとき、データ取り込みを行う転送回路においては、対応のイネーブル信号ＥＮがＨレベルであり、ゲート回路４０の出力信号が、ライトポインタリセット信号ＷＰＲＳＴに従ってＬレベルとなり、ライトアドレスカウンタ４１および４２のカウント値ＷＡＲおよびＷＡＦが、初期値（０）にリセットされる。
【０１０６】
ライトアドレスカウンタ４１および４２が、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎの立上がりエッジに同期してカウント動作を行なって、書込アドレス（ライトポインタ）を生成する。ＦＩＦＯメモリ４３および４４が、それぞれ、同様、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎの立上がりエッジに同期して、データの書込を行なう。
【０１０７】
すなわち、図５に示すフリップフロップ３４および３５からのデータＤＱＲおよびＤＱＦは、遅延データストローブ信号ＤＱＳ９０およびＤＱＳ９０Ｎに従ってそれぞれ確定している。したがって、ライトポインタリセット信号ＷＰＲＳＴが活性化され、ライトアドレスカウンタ４１および４２がリセットされた後、それぞれ、データＤ０およびＤ２が、データＤＱＲとしてＦＩＦＯメモリ４３へ与えられ、また、データＤ１およびＤ３が、補の遅延データストローブ信号ＤＱＳ９０Ｎの立上がりエッジ（データストローブ信号ＤＱＳ２７０Ｎの立下がりエッジ）に同期して順次転送される。ＦＩＦＯメモリ４３および４４へは、これらのライトアドレスカウンタ４１および４２のカウント値ＷＡＲおよびＷＡＦがそれぞれ書込アドレス入力ＷＡに与えられ、データＤ０、Ｄ２、およびＤ１およびＤ３が、それぞれ書込まれる。
【０１０８】
次いで、イネーブル信号ＥＮが活性化されてから１．５クロックサイクル期間経過すると、フリップフロップ４６の出力信号がＨレベルとなり、リードアドレスカウンタ４８および４９のカウント値がリセットされる。このカウント値のリセット後の次のマスタクロック信号ＣＬＫＭの立上がりに同期して、リードアドレスカウンタ４８および４９からのアドレス信号に従って、ＦＩＦＯメモリ４３および４４の記憶データの読出が行なわれる（このリードアドレスカウンタ４８および４９のカウント値のリセットと読出アドレス生成のタイミングは図８を参照して説明した場合と同じである）。イネーブル信号ＥＮ（ＥＮ０、ＥＮ１）が非活性化されてから１クロックサイクル経過後に、読出アドレス０および１に従って、これらのＦＯＦＯメモリ４３および４４からデータＤＯＴＲおよびＤＯＴＦとして、データＤ０／Ｄ１の組およびデータＤ２／Ｄ３の組が順次読出される。
【０１０９】
このラウンドトリップタイムが１の場合においても、イネーブル信号ＥＮがＬレベルのときには、ゲート回路４０の出力信号は強制的にＨレベルに設定されるため、ライトアドレスカウンタ４１および４２のデータストローブ信号ＤＱＳのグリッジノイズによる誤ったリセットは防止することができる。バースト長が４のデータを読出す場合、効率的にデータを読出すためには、リード／ノップ（ＮＯＰ）／ノップ（ＮＯＰ）／リードの動作シーケンスが行なわれる。この場合、最初のリードのポストアンブルと次のリードのプリアンブルの間に、データストローブ信号の変化により、ノイズが重畳する場合がある。以下、このノイズの問題について説明する。
【０１１０】
図１０は、データストローブ信号ＤＱＳのラウンドトリップタイム（遅延）が０であり、アクセスシーケンスとして、リード／ノップ（ＮＯＰ）／ノップ（ＮＯＰ）／リードのシーケンスでコマンドが発行された場合の動作を示すタイミング図である。図１０において、各コマンドは、コラムレイテンシＣＬを想定してコマンドが発行されるが、このコラムレイテンシは、任意であり、各コマンドの発行シーケンスを示す。コラムレイテンシは、メモリにおいてリードコマンドが与えられてから、有効データが出力されるまでに要する時間を表わす。また、バースト長は４である。
【０１１１】
この遅延０の理想状態の場合、メモリにおいてリードコマンドが与えられると、データストローブ信号ＤＱＳが、ハイインピーダンス状態からＬレベルとなり、また補のデータストローブ信号ＤＱＳＮが、ハイインピーダンス状態からＨレベルとなる。プリアンブル期間が経過すると、次いで、データストローブ信号ＤＱＳが、Ｈレベルとなり、補のデータストローブ信号ＤＱＳＮが、Ｌレベルとなる。
【０１１２】
このプリアンブル期間が完了し、有効データの転送が行なわれると、プリアンブル検出回路１１（図５参照）からの検出信号（ライトポインタリセット信号）ＷＰＲＳＴが所定期間Ｌレベルとなる。今、第１のデータ転送回路Ｆ０が先に活性化される場合を考える。この場合、イネーブル信号ＥＮ０が、リードコマンド発行から１クロックサイクル経過後に、Ｈレベルとなり、この検出信号ＷＰＲＳＴに従って、図７に示すゲート回路４０の出力信号がＬレベルとなり、ライトアドレスカウンタ４１および４２のリセット入力ＲＳＴＮが活性状態となり、これらのライトアドレスカウンタのカウント値ＷＡＲおよびＷＡＦが、初期値（０）にリセットされる。
【０１１３】
次いで、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎに従って、ライトアドレスカウンタ（４１，４２）のカウント値ＷＡＲおよびＷＡＦが、それぞれ更新される。バースト長が４であり、２クロックサイクル期間が経過すると、イネーブル信号ＥＮ０が、Ｌレベルの非活性状態となる。次のリードコマンドに従って、メモリにおいてデータ読出が再度行われる。このとき、データストローブ信号ＤＱＳは、ポストアンブル期間が完了し、続いてプリアンブル期間に移行するため、この移行期間においてノイズが発生する可能性がある。いま、このノイズにより、プリアンブル検出回路が、誤ってプリアンブル検出信号ＷＰＲＳＴを活性状態（Ｌレベル）に駆動した場合を考える。この場合、既に、イネーブル信号ＥＮ０は、Ｌレベルである。また、イネーブル信号ＥＮ１も、Ｌレベルである。したがって、データ転送回路Ｆ０およびＦ１において、ゲート回路４０の出力信号はＨレベルに強制的に設定されており、ライトアドレスカウンタ（４１，４２）のライトポインタのリセットは、禁止される。
【０１１４】
従って、このノイズに起因してライトポインタリセット信号ＷＰＲＳＴが、誤って活性状態とされても、ライトアドレスカウンタ（４１，４２）のカウント値ＷＡＲおよびＷＡＦに対して影響は及ぼさない。
【０１１５】
また、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎにおいて、このデータストローブ信号のグリッジノイズに従ってノイズが発生して、ライトアドレスカウンタ（４１、４２）がカウント動作を行っても、次のアドレス（２）に対し、不定データの書込が行なわれるだけである。この不定データの書込アドレス（２）は、リードポインタが、指定しないため、不定データの内部読出は生じない。このとき、また、イネーブル信号ＥＮ（ＥＮ０、ＥＮ１）がＬレベルのとき、ＦＩＦＯメモリ４３および４４に対するデータの書込を禁止する構成を用いれば、このような不定データの書込も禁止することができる。
【０１１６】
次のリードコマンドに従って、第２のデータ転送回路Ｆ１において、イネーブル信号ＥＮ１が、プリアンブル期間経過後、Ｈレベルに立上がる。これと並行して、プリアンブル検出回路１１からのライトポインタリセット信号ＷＰＲＳＴに従って、ライトアドレスカウンタ（４１，４２）のカウント値ＷＡＲおよびＷＡＦのリセットが実行される。次いで、第２の転送回路Ｆ１において、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎに従って、データの書込が行なわれ、また、ライトポインタの更新が実行される。
【０１１７】
第２のデータ転送回路Ｆ１におけるデータ書込と並行して、第１のデータ転送回路において、リードアドレスカウンタ４８および４９が、フリップフロップ４７からの遅延イネーブル信号に従ってそのカウント値がリセットされ、マスタクロック信号ＣＬＫＭに従って、そのカウント値（リードポインタ）ＲＡＲおよびＲＡＦが更新され、このリードポインタＲＡＲおよびＲＡＦを読出アドレスＲＡとして、ＦＯＦＯメモリ４３および４４からデータの読出が行なわれる。
【０１１８】
このとき、リードアドレスカウンタからのポインタＲＡＲおよびＲＡＦは、０，１であり、アドレス（２）はアクセスされないため、例え不定データが、この誤アドレス（２）に格納されている場合においても、不定データの読出は防止される。
【０１１９】
この第１の転送回路Ｆ０において、データの読出が完了すると、第１の転送回路Ｆ０は、次のリードコマンド発行によるデータ転送を待つ状態となる。
【０１２０】
また、第２の転送回路Ｆ１においても、有効データ転送開始から３クロックサイクル経過後、リードアドレスＲＡＲおよびＲＡＦに従ってデータの読出が行なわれる。
【０１２１】
このデータストローブ信号のラウンドトリップタイム（遅延）が０の場合、第１の転送回路Ｆ０のみを用いて、転送データの取込および内部読出データの生成を行なっても、図１０において破線でイネーブル信号ＥＮ０の波形を示すように、何ら誤動作は生じない。すなわち、イネーブル信号ＥＮ（ＥＮ０、ＥＮ１）がＬレベルのときにノイズが発生しても、このノイズによる誤データ書込は確実に防止され、ノイズによるデータ破壊は回避することができる。
【０１２２】
図１１は、リード／ノップ／ノップ／リードのシーケンスでコマンド印加を行なったときの、ラウンドトリップタイム（遅延）が１クロックサイクル期間の場合の動作を示すタイミング図である。以下、図１１を参照して、図７に示す転送回路の遅延１のときのノイズの影響について説明する。
【０１２３】
図１１において、まず、第１のデータ転送回路Ｆ０において、リードコマンド発行後所定のタイミング（理想状態と同じタイミング）で、イネーブル信号ＥＮ０が２クロックサイクル期間活性化される。遅延が１クロックサイクルであり、イネーブル信号ＥＮ０の活性化が、プリアンブル期間の開始と並行して行われる。
【０１２４】
このイネーブル信号ＥＮ０が活性化されて１クロックサイクル経過後、プリアンブル期間が終了し、データストローブ信号ＤＱＳがＬレベルからＨレベルとなる。応じて、プリアンブル検出回路（１１）からのライトポインタリセット信号ＷＰＲＳＴがＬレベルとなる。イネーブル信号ＥＮ０がＨレベルであるため、このライトポインタリセット信号ＷＰＲＳＴにより、図７に示すゲート回路４０からライトアドレスカウンタ４１および４２のリセット入力ＲＳＴＮへ与えられる信号が、Ｌレベルとなる。このリセット動作により、ライトアドレスカウンタ４１および４２のカウント値ＷＡＲおよびＷＡＦが、初期値（０）にリセットされる。これらのライトアドレスカウンタからのカウント値ＷＡＲおよびＷＡＦは、それぞれ、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎの立上がりに同期して更新される。
【０１２５】
遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎの立上がりに同期して、第１の転送回路Ｆ０において、それぞれ、データが、ＦＩＦＯメモリ４３および４４のアドレス０および１に書込まれる。
【０１２６】
次いで、イネーブル信号ＥＮ０が非活性状態となってから、１クロック経過後に、図７に示すリードアドレスカウンタ４８および４９からのカウント値が、マスタクロック信号ＣＬＫＭの立上がりに同期して、更新されて、アドレス０および１からのデータの読出が行なわれる。
【０１２７】
この最初のリードコマンドに従ったデータＤ０−Ｄ３の読出後、データストローブ信号ＤＱＳのポストアンブル期間が完了すると、続いて、次のリードコマンドに対するデータのプリアンブル期間が開始される。この移行期間において、グリッジノイズが発生した場合を考える。このグリッジノイズに従って、プリアンブル検出回路（１１）が、プリアンブル完了と判断し、ライトポインタリセット信号ＷＰＲＳＴを活性状態とする。このとき、遅延が１クロックサイクルであり、第２のデータ転送回路Ｆ１において、対応のリードコマンドに対するプリアンブル期間開始と並行してイネーブル信号ＥＮ１が活性状態に駆動される。従って、この誤ライトポインタリセット信号に従って、ライトアドレスカウンタ４１および４２に対してリセットが行なわれ、そのカウント値ＷＡＲおよびＷＡＦが、０に初期化される。しかしながら、続いて、正常なデータに対するプリアンブル期間の完了により、プリアンブル検出回路が再び、正常な、ライトポインタリセット信号ＷＰＲＳＴを生成する。応じて、再び、ライトアドレスカウンタのリセット入力ＲＳＴＮに対し活性状態のＬレベルの信号が伝達され、再びそのカウント値が０にリセットされる。このカウント値ＷＡＲおよびＷＡＦに従って、遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７０Ｎの立上がりエッジに同期して、データの書込が、ＦＩＦＯメモリ（４３，４４）に対して順次実行される。
【０１２８】
したがって、ノイズにより、ライトアドレスポインタの誤リセットが行なわれ、不定データが、アドレス０および１にそれぞれ書込まれても、再び正常なライトポインタリセット信号により、アドレスが初期値にリセットされて正常データの書込が行なわれるため、不定データの重ね書きが行なわれて、正常なデータが格納される。
【０１２９】
イネーブル信号ＥＮ１が、活性化から２クロックサイクル経過後に、リセットされると、次の１クロックサイクル後に、リードアドレスカウンタＲＡＲおよびＲＡＦのリセットされたカウント値が順次マスタクロック信号に従って更新されて、データの読出が行なわれる。このイネーブル信号ＥＮ１が非活性化されると、ゲート回路４０の出力信号が強制的にＨレベルに設定されて、ライトポインタの初期化は禁止される。
【０１３０】
この図１１に示すように、リードコマンド発行ごとに、転送回路Ｆ０およびＦ１を交互に利用することにより、以下の効果が得られる。ラウンドトリップタイムが、１クロックサイクルの場合、データ取込を行なう転送回路においてノイズにより、ライトアドレスカウンタが誤ってリセットされても、有効データ転送時に正常なライトポインタリセット信号に従って再びライトポインタがリセットされる。従って、正常な書込アドレスに対するデータの書込が行なわれ、ノイズにより書込まれた不定データは、正常データで書換えられる。したがって、常に正常データの書込を行なうことができる。
【０１３１】
一方、遅延が１クロックサイクルの場合において、転送回路Ｆ０のみを利用する場合を考える。この場合、図１１において、イネーブル信号ＥＮ０において破線の波形で示すように、イネーブル信号ＥＮ０が非活性化されて１クロックサイクル経過後に、再びイネーブル信号ＥＮ０が活性化される。この移行期間において、ノイズが発生した場合、すでにイネーブル信号ＥＮ０が活性状態であり、ライトアドレスカウンタのカウント値ＷＡＲおよびＷＡＦが、初期値にリセットされる。この誤まってリセットされたアドレスに対して、このノイズによる遅延データストローブ信号ＤＱＳ２７０およびＤＱＳ２７Ｎの立上がりおよび立下がりに従ってデータの書込が行なわれ、不定データによる正常データの書換が行なわれ、先に読込まれたデータが破壊される。リードポインタＲＡＲおよびＲＡＦによる内部データ読出は、このライトポインタの誤った初期化と並行して行われるため、内部読出データが破壊され、正常なデータの内部読出を行うことができない。
【０１３２】
したがって、これらの転送回路Ｆ０およびＦ１を設け、リードコマンド発行ごとに交互に利用することにより、ラウンドトリップタイムとして、２クロックサイクル以内までの遅延を吸収することが可能となる。
【０１３３】
転送回路Ｆ０およびＦ１を交互に利用する場合、ラウンドトリップタイムが、２クロックサイクルを超えると、正常なライトポインタリセット信号が有効データ転送に従って発生されたときには、対応のイネーブル信号ＥＮ（ＥＮ０，ＥＮ１）が非活性状態となっており、ライトアドレスカウンタのリセットを行なうことができない。したがって、転送回路を２重に設けて交互に使用することにより、２クロックサイクル以内のラウンドトリップタイムに対して、誤リセットをマスクすることができる。
【０１３４】
一般に、転送回路を２系統設けて交互に利用する場合、ＤＤＲモードでバースト長ＢＬのデータが転送される場合、（ＢＬ／２）クロックサイクル以内のラウンドトリップタイムにおけるデータストローブ信号のグリッジノイズをマスクすることができる（リードコマンドの発行間隔は、（ＢＬ／２）クロックサイクルとなるため）。
【０１３５】
図１２は、この発明の実施の形態２に従うメモリインターフェイス回路を用いる処理システムの構成を概略的に示す図である。この図１２に示す処理システムは、図１に示す構成と同様、メモリ１と、メモリ１との間でデータ転送を行なうメモリコントローラ１０とを含む。メモリ１は、ＤＤＲＳＤＲＡＭで構成され、クロック信号ＣＫおよびＣＫＮに同期してデータの転送を行う。
【０１３６】
メモリコントローラ１０は、以下の点で、図１に示すメモリコントローラとその構成が異なる。すなわち、データ転送制御回路５０が、コマンド発行部１４に対してリードコマンド発行を指示すると、このリードコマンド発行指示に従ってイネーブル信号ＥＮ０およびＥＮ１を、交互に所定期間、所定のタイミングでマスタクロック信号ＣＬＫＭに同期して活性状態に維持する。データ転送制御回路５０は、さらに、このイネーブル信号ＥＮ０、ＥＮ１に従って選択信号ＳＥＬを活性状態のイネーブル信号に対応する転送回路を選択する状態に設定してデータ受信回路１２へ与える。クロック信号ＣＫおよびＣＫＮは、マスタクロック信号に同期したクロック信号である。
【０１３７】
プリアンブル検出回路１１が、データストローブ信号ＤＱＳに従ってプリアンブル期間の完了を検出すると、ライトポインタリセット信号ＷＰＲＳＴを活性化してデータ受信回路５２へ与える。データ受信回路５２は、図５および７において示したデータ転送回路を含み、メモリ１から転送されたデータＤＱを取り込んで内部読出データＤＯＴＲおよびＤＯＴＦを生成する。コマンド発行部１４は、図１に示すコマンド発行部１４の構成と同じであり、データ転送制御回路５０の制御の下にメモリ１に対するコマンドをマスタクロック信号ＣＬＫＭに同期して転送する。
図１３は、図１２に示すデータ転送制御部の動作を示すタイミング図である。以下、図１３を参照して、図１２に示すデータ転送制御部の動作について簡単に説明する。なお、図１３においては、バースト長が４であり、コラムレイテンシが１の場合の動作を示す。
【０１３８】
コマンド発行部１４から、リードコマンドが発行されるときに、データ転送制御回路５０は、コマンド発酵部１４に与えるリードコマンド発行指示に従って、コラムレイテンシおよびバースト長を考慮して、メインクロック信号ＣＬＫＭに同期して所定のタイミングでメインイネーブル信号ＭＥＮを活性状態とする。このメインイネーブル信号ＭＥＮは、ラウンドトリップ値が０の理想状態を想定して、リードコマンド発行後、コラムレイテンシ期間に相当する期間経過後に活性化され、バースト長幅／２クロックサイクル期間の間活性状態に維持される。このメインイネーブル信号ＭＥＮに従って交互にイネーブル信号ＥＮ０およびＥＮ１が活性化される。
【０１３９】
リードコマンドが発行されるとき、このリードコマンド発行の指示に従って、マスタクロック信号ＭＣＬＫに同期してリードコマンド発行から１クロックサイクル経過後に、メインイネーブル信号ＭＥＮがＨレベルへ駆動される。このメインイネーブル信号ＭＥＮは、バースト長に対応する２クロックサイクル期間Ｈレベルに保持される。メインイネーブル信号ＭＥＮの活性化は、有効データの転送開始と同じサイクルにおいて行われる（メモリにおいてはリードコマンドが与えられると、そのサイクルにおいてデータストローブ信号ＤＱＳがＬレベルに設定されて、プリアンブル期間が開始する）。
【０１４０】
このメインイネーブル信号ＭＥＮに従って、まず、イネーブル信号ＥＮ０がＨレベルの活性状態に駆動される。イネーブル信号ＥＮ０が、２クロックサイクル経過後に、Ｌレベルとなる。選択信号ＳＥＬは、初期化時においては、イネーブル信号ＥＮ０が活性化する転送回路の出力データを選択する状態（論理値“０”）に設定される。このイネーブル信号ＥＮ０が始めて非活性化されても、選択信号ＳＥＬの状態は変化しない。
【０１４１】
次いで、２クロックサイクル期間のＮＯＰの発行後、再びリードコマンドが発行されると、このリードコマンド発行指示に従って再び、メインイネーブル信号ＭＥＮが、Ｈレベルに立上がる。このとき、このメインイネーブル信号ＭＥＮに従って、今度は、イネーブル信号ＥＮ１がＨレベルとなる。
【０１４２】
イネーブル信号ＥＮ１が、Ｌレベルに立下がると、１クロックサイクル経過後に、選択信号ＳＥＬがＨレベルに駆動される。これにより、イネーブル信号ＥＮ１により活性化される転送回路の出力データが選択されて読出される。
【０１４３】
以降、リードコマンドが発行されるごとにメインイネーブル信号ＭＥＮが、バースト長期間活性化され、このメインイネーブル信号ＭＥＮに従って、交互にイネーブル信号ＥＮ０、ＥＮ１が活性化される。選択信号ＳＥＬは、このイネーブル信号ＥＮ０、ＥＮ１の非活性化への移行に従って１クロックサイクル経過後にその論理状態を変更する。
【０１４４】
この図１２に示すデータ転送制御回路５０を利用して、リードコマンド発行に従ってメインイネーブル信号ＭＥＮを生成することにより、各リードコマンド発行ごとに、データ転送制御回路Ｆ０およびＦ１を交互に活性化させてデータの取込を行なうことができる。
【０１４５】
以上のように、この発明の実施の形態２に従えば、データ転送制御回路を二重化してリードコマンド発行ごとにインタリーブ態様でデータ受信動作を実行させている。また、このデータ転送制御回路のイネーブル信号とプリアンブル検出回路の出力信号とに従って、データ取込のライトポインタを発生するライトアドレスカウンタをリセットしている。従って、簡易な回路構成で、データストローブ信号のポストアンブル期間完了時のグリッジノイズによる誤動作を防止することができる。また、単に遅延データストローブ信号を用いているだけであり、メモリとコントローラとの間の距離に応じて遅延時間を調整するためのキャリブレーションを行なう必要がなく、遅延設定のための構成が簡略化される。
【産業上の利用可能性】
【０１４６】
この発明は、データ転送ソースが、転送データに同期してデータストローブ信号を発生する処理システムのデータ受信部のインターフェイスに適用することができる。特に、ＤＤＲモードで動作するＳＤＲＡＭを利用する処理システムに適用することにより、コントローラまたはプロセッサのメモリインターフェイス部のデータ受信回路の構成を簡略化して、安定にデータ受信を行なうことができる。
【０１４７】
また、メモリとしては、データ転送時に転送データに同期してデータストローブ信号をトグルして転送するメモリであれば、本発明のインターフェース回路を適用することができる。
【０１４８】
また、データ転送ソースとしては、メモリに限定されず、データストローブ信号がプリアンブルとポストアンブルとを有し、かつ転送データと同期してデータストローブ信号を変化させるデータ転送ソースであれば、本発明は適用可能である。
【図面の簡単な説明】
【０１４９】
【図１】この発明に従う処理システムの構成およびコントローラのメモリインターフェイス部の構成を概略的に示す図である。
【図２】この発明の実施の形態１に従うメモリインターフェイス回路の動作を示すタイミング図である。
【図３】この発明の実施の形態１に従うプリアンブル検出回路の構成およびメモリコントローラの要部の構成を概略的に示す図である。
【図４】図３に示す回路の動作を示すタイミング図である。
【図５】この発明の実施の形態２に従うメモリインターフェイス回路を備えるデータ受信回路の構成を概略的に示す図である。
【図６】図５に示すデータ受信回路の動作を示すタイミング図である。
【図７】図５に示すデータ転送回路の構成を概略的に示す図である。
【図８】図７に示すデータ転送回路の動作を示すタイミング図である。
【図９】図７に示すデータ転送回路の動作を示すタイミング図である。
【図１０】図５に示すデータ転送回路の動作を示すタイミング図である。
【図１１】図５に示すデータ転送回路の動作を示すタイミング図である。
【図１２】この発明の実施の形態２におけるデータ処理システムの構成の一例を概略的に示す図である。
【図１３】図１２に示すデータ転送制御回路の動作を示すタイミング図である。
【符号の説明】
【０１５０】
１  メモリ、１０  メモリコントローラ、１１  プリアンブル検出回路、１２  データ受信回路、１３  データ転送制御回路、２０  可変遅延線、２１  バッファ、２２  検出器、２３  イネーブル信号発生回路、２４  リセット信号発生回路、３０−３３  遅延回路、３４，３５，３８，３９  フリップフロップ、Ｆ０  第１のデータ転送回路、Ｆ１  第２のデータ転送回路、ＦＦＲ０，ＦＦＦ０，ＦＦＲ１，ＦＦＦ１  ＦＩＦＯ回路、３６，３７  セレクタ、４０  ゲート回路、４１，４２  ライトアドレスカウンタ、４３，４４  ＦＩＦＯメモリ、４５−４７  フリップフロップ、４８，４９  リードアドレスカウンタ、５０  データ転送制御回路、５２  データ受信回路。
【図１】
2008040639.tif 000003
【図２】
2008040639.tif 000004
【図３】
2008040639.tif 000005
【図４】
2008040639.tif 000006
【図５】
2008040639.tif 000007
【図６】
2008040639.tif 000008
【図７】
2008040639.tif 000009
【図８】
2008040639.tif 000010
【図９】
2008040639.tif 000011
【図１０】
2008040639.tif 000012
【図１１】
2008040639.tif 000013
【図１２】
2008040639.tif 000014
【図１３】
2008040639.tif 000015