(57)【要約】      （修正有）【課題】ＤＤＲＳＤＲＡＭ仕様において、データストローブ信号の信号不定状態に影響されることのないメモリコントローラを提供することを目的とする。【解決手段】メモリコントローラは、データストローブ信号の受信端に結合されデータストローブ信号を遅延した第１のタイミング信号を出力する遅延回路と、遅延回路の出力とデータ信号の受信端とに結合されデータ信号を第１のタイミング信号に応答して取り込む第１のフリップフロップと、遅延回路の出力に結合され第１のタイミング信号を処理した第２のタイミング信号を出力する信号確定状態維持回路と、信号確定状態維持回路の出力とデータ信号の受信端とに結合されデータ信号を第２のタイミング信号に応答して取り込む第２のフリップフロップを含み、信号確定状態維持回路は第１のタイミング信号が不定状態となってから所定の時間の間は第２のタイミング信号の確定状態を維持する。【選択図】図５
2006107352.tif 000002
【特許請求の範囲】
【請求項１】
データストローブ信号の受信端に結合され該データストローブ信号を遅延した第１のタイミング信号を出力する遅延回路と、
該遅延回路の出力とデータ信号の受信端とに結合され該データ信号を該第１のタイミング信号に応答して取り込む第１のフリップフロップと、
該遅延回路の該出力に結合され該第１のタイミング信号を処理した第２のタイミング信号を出力する信号確定状態維持回路と、
該信号確定状態維持回路の出力と該データ信号の該受信端とに結合され該データ信号を該第２のタイミング信号に応答して取り込む第２のフリップフロップ
を含み、該信号確定状態維持回路は該第１のタイミング信号が不定状態となってから所定の時間の間は該第２のタイミング信号の確定状態を維持することを特徴とするメモリコントローラ。
【請求項２】
該第１のタイミング信号の該不定状態は、該データストローブ信号のＨＩＧＨインピーダンス状態に対応することを特徴とする請求項１記載のメモリコントローラ。
【請求項３】
該第１及び第２のフリップフロップの出力に結合され該第１及び第２のフリップフロップが格納する該データ信号を交互に取り込む第３のフリップフロップ
を更に含み、該所定の時間は、該第３のフリップフロップにおいて該第２のフリップフロップが格納する該データ信号を取り込むに十分な長さであることを特徴とする請求項１記載のメモリコントローラ。
【請求項４】
該信号確定状態維持回路は固定の遅延量を有する遅延バッファを含み、該遅延バッファの遅延により該所定の時間を設定することを特徴とする請求項１記載のメモリコントローラ。
【請求項５】
該信号確定状態維持回路はプログラマブルな遅延回路を含み、該プログラマブルな遅延回路の遅延により該所定の時間を設定することを特徴とする請求項１記載のメモリコントローラ。
【請求項６】
該プログラマブルな遅延回路は、
複数の遅延素子と、
複数のセレクタ
を含み、該複数の遅延素子と該複数のセレクタは交互に直列に接続され、該複数のセレクタの各々は前段の遅延素子の出力と該前段の遅延素子への入力との何れかを選択して出力可能に構成されていることを特徴とする請求項５記載のメモリコントローラ。
【請求項７】
該信号確定状態維持回路はＤＬＬ回路を含み、該ＤＬＬ回路の遅延により該所定の時間を設定することを特徴とする請求項１記載のメモリコントローラ。
【請求項８】
該ＤＬＬ回路は、
第１のクロック信号を遅延して第２のクロック信号を出力する第１の遅延素子列と、
該第１のクロック信号の位相と該第２のクロック信号の位相とを比較する位相検出器と、
該位相比較器の位相比較結果に応じて該第１の遅延素子列の遅延量を制御する制御信号を生成する制御信号生成器と、
該遅延回路の該出力に結合され該制御信号により遅延量が制御される第２の遅延素子列
を含むことを特徴とする請求項１記載のメモリコントローラ。
【請求項９】
データストローブ信号の受信端に結合され該データストローブ信号を遅延した第１のタイミング信号を出力する第１の遅延回路と、
該第１の遅延回路の出力とデータ信号の受信端とに結合され該データ信号を該第１のタイミング信号に応答して取り込む第１のフリップフロップと、
該第１の遅延回路の該出力に結合され該第１のタイミング信号を処理して第２のタイミング信号を出力する信号処理回路と、
該信号処理回路の出力と該データ信号の該受信端とに結合され該データ信号を該第２のタイミング信号に応答して取り込む第２のフリップフロップ
を含み、該信号処理回路は該第１のタイミング信号を所定の時間分遅延する第２の遅延回路を含むことを特徴とするメモリコントローラ。
【請求項１０】
該第１及び第２のフリップフロップの出力に結合され該第１及び第２のフリップフロップが格納する該データ信号を交互に取り込む第３のフリップフロップ
を更に含み、該所定の時間は、該第３のフリップフロップにおいて該第２のフリップフロップが格納する該データ信号を取り込むに十分な長さであることを特徴とする請求項９記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にメモリコントローラに関し、詳しくはＤＤＲＳＤＲＡＭ仕様のメモリを制御するメモリコントローラに関する。
【背景技術】
【０００２】
ＤＤＲＳＤＲＡＭ（Double Data Rate Synchronous Dynamic Random Access Memory）は、クロックに同期して信号を入出力するシンクロナスＤＲＡＭのうちで、クロック信号の倍のレートでデータ転送するメモリのことである。具体的には、クロック信号のポジティブエッジとネガティブエッジとの両方においてデータ入出力することにより、クロック周波数の倍のデータ転送レートを実現している。
【０００３】
メモリコントローラからＤＤＲＳＤＲＡＭには、クロック信号ＣＬＫ及び反転クロック信号／ＣＬＫからなる差動クロックを供給する。コマンド（アドレス及び制御信号）は、クロック信号ＣＬＫのポジティブエッジでメモリコントローラからメモリに供給される。メモリコントローラとメモリと間のデータ転送は、双方向データストローブ信号ＤＱＳに同期して実行される。データストローブ信号ＤＱＳはデータ送出側のデバイスがデータと同時に出力するものであり、書き込み動作中はメモリコントローラがデータストローブ信号ＤＱＳを供給し、読み出し動作中はメモリがデータストローブ信号ＤＱＳを送出する。メモリのアクセスはバースト形式で行われ、選択した位置からデータ読み出しが始まり、プログラムされた順序でプログラムされた数のデータが連続して読み出される。
【０００４】
従来技術には例えば、第１遅延したＤＳでＤＤＲ信号を並列信号に分けてラッチし、更に第２遅延した信号でラッチして、ＣＬＫに同期して内部回路に供給している技術がある（特許文献１）。
【０００５】
図１は、ＤＤＲＳＤＲＡＭのリード仕様を示すタイミングチャートである。図１に示すように、まずメモリに供給するクロック信号ＣＬＫの立ち上がりエッジに同期して、読み出しコマンドＲｅａｄをメモリコントローラからメモリ装置に入力する。また図示を省略してあるが、アドレス信号が読み出しコマンドＲｅａｄと同時にメモリに入力される。
【０００６】
読み出しコマンドＲｅａｄに応答して、メモリ装置からデータストローブ信号ＤＱＳが出力され、このデータストローブ信号ＤＱＳに同期してデータｄ０乃至ｄ３が連続して出力される。ダブルデータレート仕様であるので、データｄ０乃至ｄ３は、データストローブ信号ＤＱＳの半サイクルに１つのデータの速度で出力される。図１に示されるのは、バースト長が４の場合であり、またＣＡＳレイテンシ（読み出しコマンドＲｅａｄ入力から最初のデータ読み出しまでのレイテンシ）は２サイクルとなっている。
【０００７】
図２は、メモリコントローラ側の読み出しデータ取り込み回路の従来の構成の一例を示す回路図である。メモリコントローラ（ＭＣＵ）１０とメモリ（ＤＤＲＤＲＡＭ）１１との間は、プリント基板上の信号線で接続され、データ信号Ｄａｔａ、データストローブ信号ＤＱＳ、クロック信号ＣＬＫ及び／ＣＬＫ等がやり取りされる。
【０００８】
メモリコントローラ１０のクロック信号出力回路部及び読み出しデータ取り込み回路部は、フリップフロップ２１乃至２７、出力バッファ２８、入力バッファ２９及び３０、インバータ３１及び３２、遅延回路３３、及びセレクタ３４を含む。このうちフリップフロップ２１、インバータ３１、及び出力バッファ２８が、クロック信号出力回路部を構成する。
【０００９】
図３は、図２に示す回路の動作を説明するためのタイミング図である。以下、図２及び図３を用いて読み出しデータ取り込み動作について説明する。
【００１０】
図２において、フリップフロップ２１がシステムクロックｓｃｌｋの立ち上がりをトリガとして、自らの出力の反転信号を取り込むことで、システムクロックｓｃｌｋの２倍の周期を有するクロック信号を生成する。このクロック信号に基づいて、出力バッファ２８が、クロック信号ＣＬＫ及び反転クロック信号／ＣＬＫをメモリ１１に供給する。メモリ１１は、クロック信号ＣＬＫ及び反転クロック信号／ＣＬＫに同期してメモリコア回路からデータを読み出し、データストローブ信号ＤＱＳと共にデータ信号Ｄａｔａを出力する。この様子が、図３の（ａ）から（ｄ）に示される。データ信号Ｄａｔａはデータストローブ信号ＤＱＳに同期しており、ｄ０乃至ｄ３の４つのデータがバースト出力される。
【００１１】
図２において、メモリ１１から出力されたデータストローブ信号ＤＱＳが、メモリコントローラ１０の入力バッファ２９で受信される。受信されたデータストローブ信号ＤＱＳは、入力バッファ２９から遅延回路３３を介してフリップフロップ２３に信号Ａとして供給されると共に、入力バッファ２９から遅延回路３３及びインバータ３２を介してフリップフロップ２２に信号Ｂとして供給される。信号Ａ及び信号Ｂは、図３の（ｅ）及び（ｆ）に示される。
【００１２】
またメモリ１１から送出されたデータ信号Ｄａｔａは、メモリコントローラ１０の入力バッファ３０で受信される。受信データ信号Ｄａｔａは、フリップフロップ２３に信号Ａの立ち上がりで取り込まれると共に、フリップフロップ２２に信号Ｂの立ち上がりで取り込まれる。フリップフロップ２３に取り込まれた信号Ｃが図３の（ｇ）に、フリップフロップ２２に取り込まれた信号Ｄが図３の（ｈ）に示される。
【００１３】
このようにして、ダブルレート（クロック信号ＣＬＫの倍の速度）でのデータ取り込みが実現される。なお遅延回路３３は、データストローブ信号ＤＱＳとデータ信号Ｄａｔａとが互いにエッジが揃った状態で同期しているので、受信データストローブ信号ＤＱＳを遅延させて受信データ信号を取り込むための適切なタイミングを生成するためのものである。遅延回路３３は遅延量ｄｅｌａｙ１を有する。
【００１４】
図２のフリップフロップ２５及び２４は、それぞれ信号Ｃ及び信号Ｄをシステムクロックｓｃｌｋの立ち上がりに同期して取り込み、信号Ｅ及び信号Ｆとして出力する。これにより、取り込んだデータを制御回路１１内部のシステムクロックｓｃｌｋに同期させることができる。システムクロックｓｃｌｋに同期した信号Ｅ及び信号Ｆが、図３の（ｊ）及び（ｋ）に示される。
【００１５】
図２のセレクタ３４は、システムクロックｓｃｌｋをフリップフロップ２６で２分周したクロック信号Ｇを受け取り、このクロック信号Ｇに同期して信号Ｅ及び信号Ｆを交互に選択し、信号Ｉとして出力する。具体的には、信号ＧがＬＯＷのときに信号Ｅを選択して出力し、信号ＧがＨＩＧＨのときに信号Ｆを選択して出力する。フリップフロップ２７は、システムクロックｓｃｌｋに同期して信号Ｉを取り込むことで、システムクロックｓｃｌｋに同期したデータ信号Ｈを出力する。セレクタの制御信号Ｇが図３の（ｌ）に示され、データ信号Ｈが図３の（ｍ）に示される。
【特許文献１】特開２００３−１５１２７１号公報
【発明の開示】
【発明が解決しようとする課題】
【００１６】
図３の（ｍ）において、システムクロックｓｃｌｋに同期したデータ信号Ｈには、最後の読み出しデータｄ３が存在しない。これは以下に説明するような誤動作に起因するものである。
【００１７】
図３の（ｃ）に示すように、データストローブ信号ＤＱＳは、データ信号ｄ０乃至ｄ３に同期してＨＩＧＨ及びＬＯＷを繰り返した後、データ信号ｄ３が終了すると同時にＨＩＧＨインピーダンス状態（“ＨｉＺ”：浮遊状態）に設定される。これはＤＤＲＳＤＲＡＭの仕様に従った信号変化である。このようにデータストローブ信号ＤＱＳが浮遊状態になると、入力バッファ２９の出力がＨＩＧＨとＬＯＷとを不規則に繰り返す不定状態となり、フリップフロップ２２及び２３がそれまで格納していたデータが失われる。即ち、図３の（ｈ）に示すように、フリップフロップ２２の出力信号Ｄは、データストローブ信号ＤＱＳがＨＩＧＨインピーダンス状態になるタイミングに応答して不定状態に変化し、それまで格納していた２番目のデータ信号ｄ３が破壊される。
【００１８】
このデータ信号ｄ３が失われるタイミングは、図３の（ｇ）に示すフリップフロップ２３の格納データｄ２が失われるタイミングと同一である。この結果、データ信号ｄ２についてはクロック信号ＣＬＫの１サイクル分維持されるが、データ信号ｄ３についてはクロック信号ＣＬＫの半サイクル分しか維持されないことになる。
【００１９】
このために、データ信号をセレクタ３４で信号選択した後にフリップフロップ２７でシステムクロックｓｃｌｋに同期して取り込むと、データ信号ｄ３については信号選択及び取り込み動作に失敗してしまう。この結果、図３の（ｍ）に示すシステムクロックｓｃｌｋに同期したデータ信号Ｈにおいては、データ信号ｄ３が消失してしまう。
【００２０】
図３に示す動作は、データ信号ｄ３の取り込みに失敗するタイミングを故意に設定して示したものであり、データ信号ｄ３の取り込みが絶対に不可能な分けではない。遅延回路３３の遅延時間を適切に設定してやれば、データ信号ｄ３を問題なく取り込めるようなタイミング設定が可能である。しかしながらこの場合、遅延回路３３の遅延時間やその他の動作マージンに余裕がないために、動作条件の設定において自由度が少なく不便であると共に、動作条件が変化すると誤動作する可能性がある等の問題がある。
【００２１】
以上を鑑みて本発明は、ＤＤＲＳＤＲＡＭ仕様において、データストローブ信号のＨＩＧＨインピーダンス状態に起因して発生する信号不定状態に影響されることなく、動作マージンに余裕のあるメモリコントローラを提供することを目的とする。
【課題を解決するための手段】
【００２２】
本発明によるメモリコントローラは、データストローブ信号の受信端に結合され該データストローブ信号を遅延した第１のタイミング信号を出力する遅延回路と、該遅延回路の出力とデータ信号の受信端とに結合され該データ信号を該第１のタイミング信号に応答して取り込む第１のフリップフロップと、該遅延回路の該出力に結合され該第１のタイミング信号を処理した第２のタイミング信号を出力する信号確定状態維持回路と、該信号確定状態維持回路の出力と該データ信号の該受信端とに結合され該データ信号を該第２のタイミング信号に応答して取り込む第２のフリップフロップを含み、該信号確定状態維持回路は該第１のタイミング信号が不定状態となってから所定の時間の間は該第２のタイミング信号の確定状態を維持することを特徴とする。
【発明の効果】
【００２３】
本発明の少なくとも１つの実施例によれば、信号確定状態維持回路は、第２のフリップフロップの取り込みタイミング信号である第２のタイミング信号の信号確定状態を所望の長さ維持することができる。これにより第２のフリップフロップにデータ信号を取り込んでから所望の時間の間、格納データを保持することが可能になる。信号確定状態維持回路が信号確定状態を維持する時間長により、取り込みタイミング信号の信号確定状態の長さ、ひいてはデータ信号が保持される長さが決定されるので、遅延回路の遅延量やその他の動作条件にそれ程影響されることなく、安定した読み出しデータ取り込み動作を実現することができる。また遅延回路の遅延量やその他の動作条件に十分なマージンが存在するために、動作条件設定の自由度が大きく設計が簡便である。
【発明を実施するための最良の形態】
【００２４】
以下に、本発明の実施例を添付の図面を用いて詳細に説明する。
【００２５】
図４は、本発明を適用するメモリコントローラの構成を示す構成図である。メモリコントローラ４０は、メモリ制御回路４１、クロック出力回路部４２、コマンド／アドレス出力回路部４３、読み出しデータ取り込み回路部４４、及び書き込みデータ出力回路部４５を含む。メモリコントローラ４０とメモリ（ＤＤＲＳＤＲＡＭ）１１との間は、プリント基板上の信号線で接続され、データ信号Ｄａｔａ、データストローブ信号ＤＱＳ、コマンド／アドレス信号ＣＭＤ／Ａｄｄ、クロック信号ＣＬＫ及び／ＣＬＫ等がやり取りされる。
【００２６】
メモリ１１は、ＤＤＲＳＤＲＡＭ仕様に従うものであり、コマンド信号及びアドレス信号は、クロック信号ＣＬＫのポジティブエッジでメモリコントローラ４０からメモリ１１に供給される。メモリコントローラ４０とメモリ１１と間のデータ転送は、双方向データストローブ信号ＤＱＳに同期して実行される。
【００２７】
データストローブ信号ＤＱＳはデータ送出側のデバイスがデータと同時に出力するものであり、書き込み動作中はメモリコントローラ４０がデータストローブ信号ＤＱＳを供給し、読み出し動作中はメモリ１１がデータストローブ信号ＤＱＳを送出する。メモリ１１のアクセスはバースト形式で行われ、選択した位置からデータ読み出しが始まり、プログラムされた順序でプログラムされた数のデータが連続して読み出される。具体的には、図１に示すＤＤＲＳＤＲＡＭの読み出し動作仕様に従って読み出し動作が実行される。
【００２８】
メモリ制御回路４１が、クロック出力回路部４２、コマンド／アドレス出力回路部４３、読み出しデータ取り込み回路部４４、及び書き込みデータ出力回路部４５を制御して、メモリ１１との信号のやり取りが行われる。具体的には、コマンド／アドレス出力回路部４３がコマンド信号ＣＭＤ及びアドレス信号Ａｄｄをメモリ１１に供給する。コマンド信号ＣＭＤにより読み出し動作及び書き込み動作等を指定すると共に、アドレス信号Ａｄｄで読み出しアドレス及び書き込みアドレスを指定する。
【００２９】
クロック出力回路部４２は、システムクロックｓｃｌｋに基づいてクロック信号ＣＬＫ及び反転クロック信号／ＣＬＫを生成し、メモリ１１に供給する。メモリ１１はこれらのクロック信号ＣＬＫ及び／ＣＬＫに同期して内部動作を実行する。書き込み動作の場合、書き込みデータ出力回路部４５がデータストローブ信号ＤＱＳと共に書き込みデータ信号Ｄａｔａを出力し、メモリ１１が書き込みデータを指定されたアドレスに書き込む。読み出し動作の場合、メモリ１１がデータストローブ信号ＤＱＳと共に読み出しデータ信号Ｄａｔａを出力し、読み出しデータ取り込み回路部４４がデータストローブ信号ＤＱＳに同期して読み出しデータを取り込む。メモリコントローラ４０の各回路部分は、外部から供給されるシステムクロックｓｃｌｋに同期して動作する。
【００３０】
図５は、メモリコントローラ４０のクロック出力回路部４２及び読み出しデータ取り込み回路部４４の一実施例を示す回路図である。図５において、図２と同一の要素は同一の番号で参照する。
【００３１】
クロック出力回路部４２は、フリップフロップ２１、インバータ３１、及び出力バッファ２８を含む。読み出しデータ取り込み回路部４４は、フリップフロップ２２乃至２７、入力バッファ２９及び３０、インバータ３２、遅延回路３３、セレクタ３４、及び信号確定状態維持回路５０を含む。信号確定状態維持回路５０は、遅延回路５１、インバータ５２、及びＯＲゲート５３を含む。信号確定状態維持回路５０は、後で説明するように、フリップフロップ２２の取り込みタイミング信号Ｂの信号確定状態が所望の時間維持するように信号を制御する。
【００３２】
なお遅延回路３３及び遅延回路５１は、単純なディレイバッファで構成してよい。或いは後の実施例で説明するように、遅延回路３３及び遅延回路５１はプログラマブルな遅延回路、或いはＤＬＬ（Delay Locked Loop）回路により構成してもよい。
【００３３】
図６は、図５に示す回路の動作を説明するためのタイミング図である。以下、図５及び図６を用いて本発明による読み出しデータ取り込み動作について説明する。
【００３４】
図５において、フリップフロップ２１がシステムクロックｓｃｌｋの立ち上がりをトリガとして、自らの出力の反転信号を取り込むことで、システムクロックｓｃｌｋの２倍の周期を有するクロック信号を生成する。このクロック信号に基づいて、出力バッファ２８が、クロック信号ＣＬＫ及び反転クロック信号／ＣＬＫをメモリ１１に供給する。メモリ１１は、クロック信号ＣＬＫ及び反転クロック信号／ＣＬＫに同期してメモリコア回路からデータを読み出し、データストローブ信号ＤＱＳと共にデータ信号Ｄａｔａを出力する。この様子が、図６の（ａ）から（ｄ）に示される。データ信号Ｄａｔａはデータストローブ信号ＤＱＳに同期しており、ｄ０乃至ｄ３の４つのデータがバースト出力される。
【００３５】
図５において、メモリ１１から出力されたデータストローブ信号ＤＱＳが、メモリコントローラ１０の入力バッファ２９で受信される。受信されたデータストローブ信号ＤＱＳは、入力バッファ２９から遅延回路３３を介してフリップフロップ２３に取り込みタイミング信号Ａとして供給されると共に、入力バッファ２９から遅延回路３３、信号確定状態維持回路５０、及びインバータ３２を介してフリップフロップ２２に取り込みタイミング信号Ｂとして供給される。取り込みタイミング信号Ａ及び取り込みタイミング信号Ｂは、図６の（ｅ）及び（ｈ）に示される。
【００３６】
信号確定状態維持回路５０は、遅延回路３３の出力（取り込みタイミング信号Ａ）をまず遅延回路５１で所定の遅延時間（ｄｅｌａｙ２）だけ遅延させる。この遅延後の信号Ａ’が図６の（ｆ）に示される。この信号Ａ’をインバータ５２で反転させて、図６の（ｇ）に示す信号Ｂ’を生成する。これらの信号Ａ’及び信号Ｂ’においては、図６の（ｆ）及び（ｇ）に示されるように、遅延時間ｄｅｌａｙ２に等しい長さだけ信号確定状態が信号Ａと比較して延長されている。
【００３７】
この結果、図６の（ｈ）に示される取り込みタイミング信号Ｂにおいても、遅延時間ｄｅｌａｙ２に等しい長さだけ信号確定状態が信号Ａと比較して延長されることになる。言い方を変えれば、遅延時間ｄｅｌａｙ２に等しい長さだけ信号不確定状態をマスクしていることになる。このようにして本発明では、取り込みタイミング信号Ｂの信号確定状態を所望の長さ維持することができる。この結果、以下に説明するように、フリップフロップ２２に受信データ信号ｄ３を取り込んでから所望の時間の間、格納データを保持することが可能になる。
【００３８】
メモリ１１から送出されたデータ信号Ｄａｔａは、メモリコントローラ１０の入力バッファ３０で受信される。受信データ信号Ｄａｔａは、フリップフロップ２３に信号Ａの立ち上がりで取り込まれると共に、フリップフロップ２２に信号Ｂの立ち上がりで取り込まれる。フリップフロップ２３に取り込まれた信号Ｃが図６の（ｉ）に、フリップフロップ２２に取り込まれた信号Ｄが図６の（ｊ）に示される。
【００３９】
このようにして、ダブルレート（クロック信号ＣＬＫの倍の速度）でのデータ取り込みが実現される。図６の（ｊ）に示される信号Ｄにおいては、取り込みタイミング信号Ｂの信号確定状態が継続する間、読み出しデータｄ３が維持されている。従って、図３に示す従来技術の場合の動作波形と異なり、読み出しデータｄ３が読み出しデータｄ２と同時に失われることはない。
【００４０】
図５のフリップフロップ２５及び２４は、それぞれ信号Ｃ及び信号Ｄをシステムクロックｓｃｌｋの立ち上がりに同期して取り込み、信号Ｅ及び信号Ｆとして出力する。これにより、取り込んだデータを制御回路１１内部のシステムクロックｓｃｌｋに同期させることができる。システムクロックｓｃｌｋに同期した信号Ｅ及び信号Ｆが、図６の（ｌ）及び（ｍ）に示される。図６の（ｍ）に示される信号Ｆにおいては、図３の（ｋ）に示す従来技術の場合の動作波形と異なり、読み出しデータｄ３が読み出しデータｄ２と同時に失われることなく、所望の時間だけデータが維持されている。
【００４１】
図５のセレクタ３４は、システムクロックｓｃｌｋをフリップフロップ２６で２分周したクロック信号Ｇを受け取り、このクロック信号Ｇに同期して信号Ｅ及び信号Ｆを交互に選択し、信号Ｉとして出力する。具体的には、信号ＧがＬＯＷのときに信号Ｅを選択して出力し、信号ＧがＨＩＧＨのときに信号Ｆを選択して出力する。フリップフロップ２７は、システムクロックｓｃｌｋに同期して信号Ｉを取り込むことで、システムクロックｓｃｌｋに同期したデータ信号Ｈを出力する。セレクタの制御信号Ｇが図６の（ｎ）に示され、データ信号Ｈが図６の（ｏ）に示される。
【００４２】
詳しくは、図３の（ｌ）に示す信号Ｅが、タイミングＴ１及びＴ３においてシステムクロックｓｃｌｋの立ち上がりエッジにより取り込まれ、図６の（ｏ）に示すデータ信号Ｈのｄ０及びｄ２となる。また図３の（ｍ）に示す信号Ｆが、タイミングＴ２及びＴ４においてシステムクロックｓｃｌｋの立ち上がりエッジにより取り込まれ、図６の（ｏ）に示すデータ信号Ｈのｄ１及びｄ３となる。この際、信号Ｆにおいて読み出しデータｄ３が適切な時間だけ維持されているので、タイミングＴ４において読み出しデータｄ３をフリップフロップ２７に取り込むことができる。
【００４３】
以上のようにして、システムクロックｓｃｌｋに同期された後のデータ信号Ｈにおいて、全ての読み出しデータｄ０乃至ｄ３が存在することになる。また信号確定状態維持回路５０の遅延回路５１の遅延量ｄｅｌａｙ２により、取り込みタイミング信号Ｂの信号確定状態の長さ、ひいては信号Ｆの読み出しデータｄ３が維持される長さが決定されるので、遅延回路３３の遅延量ｄｅｌａｙ１やその他の動作条件にそれ程影響されることなく、安定した動作を実現することができる。また遅延回路３３の遅延量やその他の動作条件に十分なマージンが存在するために、動作条件設定の自由度が大きく設計が簡便である。
【００４４】
図７は、遅延回路５１の回路構成の一例を示す回路図である。遅延回路３３についても同様の回路構成を用いてよい。上記説明からも分かるように、遅延回路５１の遅延量は、メモリコントローラ４０の読み出しデータ取り込み動作の成否及び安定性を決定する重要なパラメータであり、自由に所望の値に設定できることが好ましい。
【００４５】
図７の遅延回路５１は、遅延バッファ６１乃至６４及びセレクタ６５乃至６８を含む。セレクタ６５乃至６８は、制御信号ｃ１乃至ｃ３により選択動作が制御され、例えば制御信号が０のときに上側の入力端子の入力を選択し、制御信号が１のときに下側の入力端子の入力を選択する。従って、例えば制御信号ｃ１乃至ｃ３が全て０のときには、入力信号ｉｎは遅延バッファ６１乃至６４を通過することなくセレクタ６５乃至６８を通過して出力信号ｏｕｔとなる。この場合、セレクタの遅延を無視すれば遅延量はゼロである。また制御信号ｃ１乃至ｃ３が全て１のときには、入力信号ｉｎは遅延バッファ６１乃至６４を通過して出力信号ｏｕｔとなる。この場合、遅延量は遅延回路５１で設定できる最大の遅延量となる。
【００４６】
図７に示されるように、遅延バッファ６１乃至６４はそれぞれ、単位長さの遅延量、単位長さの２倍の遅延量、単位長さの４倍の遅延量、単位長さの８倍の遅延量を有する。従って、例えば４ビットのレジスタに制御信号ｃ１乃至ｃ３の値を格納するようにすれば、このレジスタに格納した２進数の値（０〜１５）に応じて、その値に比例する遅延量を遅延回路５１で実現することができる。例えば、メモリコントローラ４０において、プログラムでサイクルタイムを計算して、適切な遅延量を設定するようにしてよい。このようにして、プログラマブルな遅延回路を提供することができる。
【００４７】
図８は、遅延回路５１の回路構成の別の一例を示す回路図である。遅延回路３３についても同様の回路構成を用いてよい。図７の遅延回路５１の遅延量は、レジスタ設定値等により設定される所定の値であり、メモリコントローラ４０の動作周波数が変化したとしても、レジスタ設定値を変更しない限りは固定の遅延値のままである。それに対して図８に示す構成では、動作周波数に応じて動的に遅延量を設定することができる。
【００４８】
図８の遅延回路５１は、電圧制御遅延素子７１乃至７８、電圧制御信号生成器８１、及び位相検出器８２を含む。電圧制御遅延素子７１乃至７８は、電圧制御信号生成器８１から供給される電圧制御信号ＶＣの電位レベルに応じて信号遅延量が変化する。電圧制御遅延素子７１乃至７４が直列接続されて一列の遅延素子列を形成し、電圧制御遅延素子７５乃至７８が直列接続されてもう一列の遅延素子列を形成する。
【００４９】
電圧制御遅延素子７５乃至７８が形成する遅延素子列は、システムクロックｓｃｌｋを入力として受け取り、これを遅延して遅延クロックｓｃｌｋ＿ｄを出力する。位相検出器８２は、システムクロックｓｃｌｋと遅延クロックｓｃｌｋ＿ｄとの位相差を検出して、検出した位相差に応じた信号を電圧制御信号生成器８１に供給する。
【００５０】
電圧制御信号生成器８１は、位相検出器８２からの信号に応じて電圧制御信号ＶＣの電位レベルを調整して、電圧制御遅延素子７５乃至７８の遅延量を制御する。この際、電圧制御信号生成器８１は、位相検出器８２が検出する位相差がゼロになるように、電圧制御信号ＶＣの電位レベルを調整する。具体的には、遅延クロックｓｃｌｋ＿ｄの位相がシステムクロックｓｃｌｋの位相よりも早い場合には、電圧制御遅延素子７５乃至７８の遅延量が大きくなるように電圧制御信号ＶＣを変化させる。また遅延クロックｓｃｌｋ＿ｄの位相がシステムクロックｓｃｌｋの位相よりも遅い場合には、電圧制御遅延素子７５乃至７８の遅延量が小さくなるように電圧制御信号ＶＣを変化させる。これによりＤＬＬ（delay locked loop）回路を形成する。
【００５１】
以上の制御動作により、遅延クロックｓｃｌｋ＿ｄの位相がシステムクロックｓｃｌｋの位相と一致するように電圧制御遅延素子７５乃至７８の遅延量が調整される。即ち、電圧制御遅延素子７５乃至７８の遅延は、システムクロックｓｃｌｋの１サイクル分の長さとなる。ここで電圧制御遅延素子７５乃至７８は同一の構成であり、各素子の遅延量は同一である。システムクロックｓｃｌｋ、電圧制御遅延素子７５乃至７７の出力ｃｋ１乃至ｃｋ３、電圧制御遅延素子７８の出力ｓｃｌｋ＿ｄが図９の（ａ）乃至（ｅ）に示される。
【００５２】
電圧制御遅延素子７１乃至７４は電圧制御遅延素子７５乃至７８と同一の構成であり、同一の電圧制御信号ＶＣにより制御される。従って、電圧制御遅延素子７１乃至７４の遅延量と電圧制御遅延素子７５乃至７８の遅延量とは同一である。この結果、出力信号ｏｕｔ１は入力信号ｉｎからシステムクロックｓｃｌｋの１／４サイクル分遅れ、出力信号ｏｕｔ２は入力信号ｉｎからシステムクロックｓｃｌｋの１／２サイクル分遅れ、出力信号ｏｕｔ３は入力信号ｉｎからシステムクロックｓｃｌｋの３／４サイクル分遅れ、出力信号ｏｕｔ４は入力信号ｉｎからシステムクロックｓｃｌｋの１サイクル分遅れることになる。入力信号ｉｎ及び出力信号ｏｕｔ１乃至ｏｕｔ３が図９の（ｆ）乃至（ｉ）に示される。これらの出力信号のうちで、適切な遅延量の信号を選択して、遅延回路５１の出力信号とすればよい。
【００５３】
図１０は、メモリコントローラ４０のクロック出力回路部４２及び読み出しデータ取り込み回路部４４の別の実施例を示す回路図である。図１０において図５と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００５４】
図５の実施例と比較して、図１０に示す実施例においては、遅延回路３３の代わりにＤＬＬ回路３３Ａを用い、遅延回路５１の代わりにＤＬＬ回路５１Ａを用いている。
【００５５】
ＤＬＬ回路５１Ａの出力信号としては、システムクロックｓｃｌｋの３／４サイクルから４／４サイクル程度遅れた信号を用いることが好ましい。例えば４／４サイクル（１サイクル）遅れた信号を用いた場合、図６の（ｊ）に示すフリップフロップ２２に取り込んだ後の信号Ｄにおいて、読み出しデータｄ３の継続時間が、他の読み出しデータｄ０乃至ｄ２の継続時間と同じくデータストローブ信号ＤＱＳの１サイクル分となる。図１０に示す構成例では、ｏｕｔ３即ち３／４サイクル遅れた信号を出力信号として出力している。
【００５６】
ＤＬＬ回路３３Ａの出力信号としては、システムクロックｓｃｌｋの１／２サイクル遅れた信号を用いることが好ましい。これにより、図６（ｄ）に示されるデータ信号Ｄａｔａの各データ有効期間の丁度真中のタイミングにおいて、データ取り込み動作を実行することができる。
【００５７】
図８の動作説明において述べたように、ＤＬＬ回路の遅延量はシステムクロックｓｃｌｋのサイクル長に応じて動的に調整される。従って図１０に示す実施例においては、システムクロックｓｃｌｋが変化した場合であっても、自動的に遅延量も調整されて、常に最適な遅延時間が提供される。
【００５８】
図１１は、メモリコントローラのクロック出力回路部及び読み出しデータ取り込み回路部の更に別の実施例を示す回路図である。図１１において図５と同一の構成要素は同一の番号で参照し、その説明は省略する。
【００５９】
図１１の実施例において、メモリコントローラ４０Ａは、図１０の信号確定状態維持回路５０の代わりに信号確定状態維持回路５０Ａを含む。また図１０に示されるインバータ３２が図１１においては削除されている。信号確定状態維持回路５０Ａは、ＤＬＬ回路５１Ａ、インバータ９１、及びＡＮＤゲート９２を含む。この信号確定状態維持回路５０Ａは、図１０の信号確定状態維持回路５０及びインバータ３２からなる回路部分と同一の論理を構成するものである。即ち、図１０においてフリップフロップ２２に入力される取り込みタイミング信号Ｂと、図１１においてフリップフロップ２２に入力される取り込みタイミング信号Ｂとは、論理的に全く同一のものである。
【００６０】
図１１の実施例において、信号確定状態維持回路５０Ａは、図１０の実施例と同一の論理構成を実現する回路であるとしたが、別の論理構成を実現する回路を用いてもよい。要は、ＨＩＧＨインピーダンス状態となったデータストローブ信号ＤＱＳを入力バッファ２９で受信して得られる信号の不定状態が、フリップフロップ２２の格納データを所定の時間の間は破壊しないような構成であればよい。
【００６１】
以上、本発明を実施例に基づいて説明したが、本発明は上記実施例に限定されるものではなく、特許請求の範囲に記載の範囲内で様々な変形が可能である。
【図面の簡単な説明】
【００６２】
【図１】ＤＤＲＳＤＲＡＭのリード仕様を示すタイミングチャートである。
【図２】メモリコントローラ側の読み出しデータ取り込み回路の従来の構成の一例を示す回路図である。
【図３】図２に示す回路の動作を説明するためのタイミング図である。
【図４】本発明を適用するメモリコントローラの構成を示す構成図である。
【図５】メモリコントローラのクロック出力回路部及び読み出しデータ取り込み回路部の一実施例を示す回路図である。
【図６】図５に示す回路の動作を説明するためのタイミング図である。
【図７】遅延回路の回路構成の一例を示す回路図である。
【図８】遅延回路の回路構成の別の一例を示す回路図である。
【図９】図８の回路の動作を説明するためのタイミング図である。
【図１０】メモリコントローラのクロック出力回路部及び読み出しデータ取り込み回路部の別の実施例を示す回路図である。
【図１１】メモリコントローラのクロック出力回路部及び読み出しデータ取り込み回路部の更に別の実施例を示す回路図である。
【符号の説明】
【００６３】
１１  メモリ
４０  メモリコントローラ
４１  メモリ制御回路
４２  クロック出力回路部
４３  コマンド／アドレス出力回路部
４４  読み出しデータ取り込み回路部
４５  書き込みデータ出力回路部
５０  信号確定状態維持回路
５１  遅延回路
５２  インバータ
５３  ＯＲゲート
６１〜６４  遅延バッファ
６５〜６８  セレクタ
７１〜７８  電圧制御遅延素子
８１  電圧制御信号生成器
８２  位相検出器
【図１】
2006107352.tif 000003
【図２】
2006107352.tif 000004
【図３】
2006107352.tif 000005
【図４】
2006107352.tif 000006
【図５】
2006107352.tif 000007
【図６】
2006107352.tif 000008
【図７】
2006107352.tif 000009
【図８】
2006107352.tif 000010
【図９】
2006107352.tif 000011
【図１０】
2006107352.tif 000012
【図１１】
2006107352.tif 000013