(57)【要約】【課題】  ＤＤＲタイプのメモリ素子を使用して、高いパフォーマンスと低消費電力化を両立する。【解決手段】高速動作が要求されない場合においては、ＤＬＬ回路に供給するリファレンスクロック信号を固定したまま、メモリモジュールに供給するクロック信号の周波数を低くすることによって、システム全体の低消費電力化を達成する。高速動作が要求される場合においては、ＤＬＬ回路に供給するリファレンスクロック信号と同じ周波数のクロック信号をメモリモジュールに供給することで、高いパフォーマンスを達成する。【選択図】図１
2008305349.tif 000002
【特許請求の範囲】
【請求項１】
データ信号と、当該データ信号のタイミングを示すデータストローブ信号を出力するメモリモジュールを制御するメモリコントローラであって、
前記データストローブ信号をリファレンスクロック信号に基づいて遅延する遅延回路と、
前記遅延回路へ供給する前記リファレンスクロック信号と前記メモリモジュールへ供給するクロック信号を生成するクロック発生回路と、
前記メモリモジュールが出力する前記データ信号を前記遅延回路で遅延した前記データストローブ信号に同期して取り込むラッチ回路と、を備え、
前記クロック発生回路は、前記遅延回路へ供給する前記リファレンスクロック信号の周波数と、前記メモリモジュールへ供給する前記クロック信号の周波数と、を独立して制御することを特徴とするメモリコントローラ。
【請求項２】
前記クロック発生回路は、前記遅延回路へ供給する前記リファレンスクロック信号と、前記リファレンスクロック信号の周波数の１／Ｎ（Ｎは自然数）の周波数を有する前記クロック信号と、を生成し、前記メモリモジュールへ供給することを特徴とする請求項１に記載のメモリコントローラ。
【請求項３】
前記遅延回路へ供給する前記リファレンスクロック信号と、前記メモリモジュールへ供給するクロック信号は、同期していることを特徴とする請求項１に記載のメモリコントローラ。
【請求項４】
前記遅延回路へ供給する前記リファレンスクロック信号と、前記メモリモジュールへ供給するクロック信号は、非同期であることを特徴とする請求項１に記載のメモリコントローラ。
【請求項５】
前記遅延回路は、ＤＬＬ回路であることを特徴とする請求項１に記載のメモリコントローラ。
【請求項６】
データ信号と、当該データ信号のタイミングを示すデータストローブ信号を受信し、当該データ信号を記憶するメモリモジュールを制御するメモリコントローラであって、
前記データストローブ信号をリファレンスクロック信号に基づいて遅延する遅延回路と、
前記データストローブ信号と前記データ信号を生成する出力データ生成回路と、
前記遅延回路へ供給する前記リファレンスクロック信号と前記メモリモジュール及び前記出力データ生成回路へ供給するクロック信号を生成するクロック発生回路と、を備え、
前記クロック発生回路は、前記遅延回路へ供給する前記リファレンスクロック信号の周波数と、前記メモリモジュール及び前記出力データ生成回路へ供給する前記クロック信号の周波数と、を独立して制御することを特徴とするメモリコントローラ。
【請求項７】
前記クロック発生回路は、前記遅延回路へ供給する前記リファレンスクロック信号と、前記リファレンスクロック信号の周波数の１／Ｎ（Ｎは自然数）の周波数を有する前記クロック信号と、を生成し、前記メモリモジュール及び前記出力データ生成回路へ供給することを特徴とする請求項６に記載のメモリコントローラ。
【請求項８】
前記遅延回路へ供給する前記リファレンスクロック信号と、前記メモリモジュールへ供給するクロック信号は、同期していることを特徴とする請求項６に記載のメモリコントローラ。
【請求項９】
前記遅延回路へ供給する前記リファレンスクロック信号と、前記メモリモジュールへ供給するクロック信号は、非同期であることを特徴とする請求項６に記載のメモリコントローラ。
【請求項１０】
前記遅延回路は、ＤＬＬ回路であることを特徴とする請求項６に記載のメモリコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリコントローラに関し、より具体的には、メモリモジュールに供給するクロック信号の周波数を制御して、メモリモジュールからデータ信号をリードする、または、メモリモジュールへデータ信号をライトするメモリコントローラに関する。
【背景技術】
【０００２】
近年、たとえば電子機器であるデジタルカメラ及びデジタルビデオカメラ等の撮像装置では、高速レスポンス、高速連写性能、長時間動画撮影など、高いパフォーマンスを必要とする機能が必要不可欠になりつつある。これに伴い、使用するクロック信号の高速化や、高速なメモリアクセスが可能なＤｏｕｂｌｅ−Ｄａｔａ−Ｒａｔｅ（以下、ＤＤＲと略す）タイプのメモリの搭載等により、必要なパフォーマンスが達成されている。
【０００３】
しかしながら、高いパフォーマンスを獲得するために、撮像装置全体の消費電力は増加傾向にある。消費電力の増加は、撮像装置のみならず、電池駆動を必要とする電子機器にとっては、大きな問題である。
【０００４】
最近では、動作周波数帯域に制約が無く、高いパフォーマンスを維持したままメモリでの消費電力を削減可能な、遅延回路であるＤＬＬ（Delay-Locked-Loop）回路非搭載のＭｏｂｉｌｅＤＤＲタイプのメモリも開発されている。
【０００５】
特許文献１には、転送するデータ信号の量に応じてメモリに与えるクロック信号の周波数を切り替え、データ信号の転送が少ない期間では、メモリを通常の動作周波数よりも低い周波数のクロック信号で動作させることが記載されている。これにより、メモリでの消費電力を低減することが可能となる。
【０００６】
また特許文献２には、動作する周波数帯域の異なる２種類のＤＬＬ回路をＤＤＲタイプのメモリの内部に搭載する。そして供給されるクロック信号の周波数に応じてＤＬＬ回路を使い分けることで、高いパフォーマンスと低消費電力化の両方を達成することが記載されている。
【特許文献１】特開２０００−３０７５３４号公報
【特許文献２】特開２００４−３５５０８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
同期式のメモリを使用し、高いパフォーマンスを達成しようとする場合、高精度のタイミング調整回路が要求される。特にＤＤＲタイプのメモリにおいては、ＤＬＬ回路のような高精度の遅延を調整する回路がコントローラ側に必要となる。ＤＬＬ回路は、入力周波数に追随して高い精度で遅延量を調整できる一方で、追随可能な周波数帯域には制約がある。ＤＬＬ回路は、低速であるクロック信号の低い周波数で動作させたい場合など、低消費電力化に対しては不向きなメモリデバイスである。特許文献２にあるように、追随可能な周波数帯域の異なるＤＬＬ回路を複数搭載し、入力周波数に応じて使用するＤＬＬ回路切り替える構成は、大きな占有面積を必要とする。
【０００８】
本発明はこのような問題点に鑑み、メモリモジュールの高いパフォーマンスと低消費電力化を可能とするメモリコントローラを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の目的を達成するため、本発明の実施形態に係るメモリコントローラは、
データ信号と、当該データ信号のタイミングを示すデータストローブ信号を出力するメモリモジュールを制御するメモリコントローラであって、
前記データストローブ信号をリファレンスクロック信号に基づいて遅延する遅延回路と、
前記遅延回路へ供給する前記リファレンスクロック信号と前記メモリモジュールへ供給するクロック信号を生成するクロック発生回路と、
前記メモリモジュールが出力する前記データ信号を前記遅延回路で遅延した前記データストローブ信号に同期して取り込むラッチ回路と、を備え、
前記クロック発生回路は、前記遅延回路へ供給する前記リファレンスクロック信号の周波数と、前記メモリモジュールへ供給する前記クロック信号の周波数と、を独立して制御することを特徴とする。
【００１０】
あるいは、データ信号と、当該データ信号のタイミングを示すデータストローブ信号を受信し、当該データ信号を記憶するメモリモジュールを制御するメモリコントローラであって、
前記データストローブ信号をリファレンスクロック信号に基づいて遅延する遅延回路と、
前記データストローブ信号と前記データ信号を生成する出力データ生成回路と、
前記遅延回路へ供給する前記リファレンスクロック信号と前記メモリモジュール及び前記出力データ生成回路へ供給するクロック信号を生成するクロック発生回路と、を備え、
前記クロック発生回路は、前記遅延回路へ供給する前記リファレンスクロック信号の周波数と、前記メモリモジュール及び前記出力データ生成回路へ供給する前記クロック信号の周波数と、を独立して制御することを特徴とする。
【発明の効果】
【００１１】
本発明によれば、メモリモジュールの高いパフォーマンスと低消費電力化を可能とするメモリコントローラを提供することができる。
【発明を実施するための最良の形態】
【００１２】
以下、本発明を実施するための最良の実施形態について、図面を参照して説明する。
図１は、本発明の一実施形態に係るリード側のメモリコントローラの概略構成を示すブロック図である。図１において、メモリコントローラ１１０は、クロック制御回路１１１、クロック発生回路１１２、ＤＬＬ回路１１３、フリップフロップ（以下、ＦＦと略す）１１４、１１５を備える。メモリコントローラ１１０はまた、インバータバッファ１１６、出力インタフェースバッファ１５１、１５２、入力インタフェースバッファ１５３、１５４を備える。
【００１３】
１４１、１４２、１４３、１４４、及び１４５は、メモリコントローラ１１０がＤＬＬ回路非搭載のメモリモジュール１３０に入力する信号ＭＥＭＣＬＫ、ＭＥＭＣＬＫ＿Ｌ、ＤＱＳ、ＤＱ、及びＣＭＤの信号線を示す。それらの信号は、それぞれクロック信号とその反転クロック信号、双方向のデータストローブ信号、双方向のデータ信号である。またＣＭＤは、メモリモジュール１３０に入力するアドレス、バンクアドレス、ＲＡＳ、ＣＡＳ、ＷＥ、ＣＫＥ、ＣＳ等のすべてを含む制御信号である。本実施形態では、ＣＭＤの制御回路と出力インタフェースバッファの説明は省略する。
【００１４】
尚、メモリモジュール１３０は、ＭｏｂｉｌｅＤＤＲ−ＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）からなる。本実施形態において、メモリモジュール１３０は、ＭｏｂｉｌｅＤＤＲ−ＳＤＲＡＭとして説明するが、これに限るわけではない。
【００１５】
以下、メモリコントローラ１１０が、クロック信号ＭＥＭＣＬＫと反転クロック信号ＭＥＭＣＬＫ＿Ｌに同期してメモリモジュール１３０から供給されるデータストローブ信号ＤＱＳとデータ信号ＤＱを受信する構成について説明する。
【００１６】
クロック制御回路１１１は、制御信号ＣＬＫ＿ＣＴＬを信号線１２７を介してクロック発生回路１１２に供給する。制御信号ＣＬＫ＿ＣＴＬは、クロック発生回路１１２から信号線１２０に出力されるクロック信号ＭＥＭＣＬＫの周波数を制御する。
【００１７】
本実施形態において、制御信号ＣＬＫ＿ＣＴＬは、スルーモード、ハーフモード、及びゲーテッドモードを有する。
クロック発生回路１１２は、遅延回路であるＤＬＬ回路１１３へのリファレンスクロック信号ＤＬＬ＿ＣＬＫを信号線１２２に出力し、またクロック信号ＭＥＭＣＬＫを信号線１２０に出力する。リファレンスクロック信号ＤＬＬ＿ＣＬＫは固定周波数のクロックであり、クロック信号ＭＥＭＣＬＫは、制御信号ＣＬＫ＿ＣＴＬに従って、可変制御可能な周波数のクロックである。
ＤＬＬ回路１１３は、Ｄｅｌａｙ−Ｌｏｃｋｅｄ−Ｌｏｏｐ回路と一般的に呼ばれる遅延回路である。
【００１８】
制御信号ＣＬＫ＿ＣＴＬがスルーモード時には、リファレンスクロック信号ＤＬＬ＿ＣＬＫと同じ周波数のクロック信号を信号線２０にクロック信号ＭＥＭＣＬＫとして出力するものとする。またハーフモード時には、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／２の周波数になるように分周したクロック信号を信号線１２０にクロック信号ＭＥＭＣＬＫとして出力するものとする。さらにゲーテッドモード時は、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／３の周波数になるようにロウレベルにゲートしたクロック信号を信号線１２０にクロック信号ＭＥＭＣＬＫとして出力するものとする。本実施形態において、ゲーテッドモードは、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／３の周波数のクロック信号になるようにロウレベルにゲートしたクロック信号を生成するとして説明する。ただし、ゲート信号を変更することにより、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／Ｎ（Ｎは自然数）の周波数のクロック信号を生成することが可能である。上記するように、クロック発生回路１１２は、ＤＬＬ回路１１３へ供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫの周波数とメモリモジュール１３０へ供給するクロック信号ＭＥＭＣＬＫの周波数を独立して制御する。
また、本実施形態では、リファレンスクロック信号ＤＬＬ＿ＣＬＫとクロック信号ＭＥＭＣＬＫが同期しているものとして説明するが、非同期であっても構わない。
【００１９】
クロック信号ＭＥＭＣＬＫは、メモリモジュール１３０のＣＬＫ端子に信号線１４１を介して接続される。また、クロック信号ＭＥＭＣＬＫをインバータバッファ１１６によって反転した反転クロック信号ＭＥＭＣＬＫ＿Ｌは、信号線１４２を介してメモリモジュール１３０のＣＬＫ＿Ｌ端子に接続される。
【００２０】
ＤＱＳは、メモリモジュール１３０から出力されたデータストローブ信号であり、信号線１４３、１２３を介してＤＬＬ回路１１３に接続される。
【００２１】
ＤＬＬ回路１１３は、基本的にデータストローブ信号ＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫに基づいて遅延する遅延回路として動作する。すなわち、信号線１２２のクロック信号ＤＬＬ＿ＣＬＫをリファレンスクロック信号とし、ロックするのに必要な時間が経過した後は、温度、電圧などの変化に追従し、信号線１２３を介して入力されるデータストローブ信号ＤＱＳの遅延量を調整する。
【００２２】
そしてデータストローブ信号ＤＱＳの位相を、リファレンスクロック信号ＤＬＬ＿ＣＬＫを９０度程度遅延した信号ＤＬＬ＿ＯＵＴ９０を信号線１２６に出力する。さらに、信号ＤＬＬ＿ＯＵＴ９０を反転させることによりデータストローブ信号ＤＱＳの位相を、リファレンスクロック信号ＤＬＬ＿ＣＬＫを２７０度程度遅延した信号ＤＬＬ＿ＯＵＴ２７０を信号線１２５に出力する。
【００２３】
ＦＦ１１４は、ラッチ回路として動作し、ＤＬＬ回路１１３からの信号線１２６の信号ＤＬＬ＿ＯＵＴ９０に同期して、メモリモジュール１３０から出力された信号線１２４上のデータ信号ＤＱを取り込む。また、ＦＦ１１５は、同じくラッチ回路として動作し、ＤＬＬ回路１１３からの信号線１２５の信号ＤＬＬ＿ＯＵＴ２７０に同期して、メモリモジュール１３０から出力された信号線１２４上のデータ信号ＤＱを取り込む。図面の簡略化の為、ＦＦ１１４、１１５は１ビット用のラッチ回路として図示してあるが、実際には複数ビットからなり、複数ビットを並列にラッチ処理する。
【００２４】
次に、図２を参照して、高速動作が要求される場合の、図１に示すメモリコントローラ１１０のリードデータ転送動作を説明する。クロック発生回路１１２は、信号線１２２のリファレンスクロック信号ＤＬＬ＿ＣＬＫに同期した同じ周波数のクロック信号をクロック信号ＭＥＭＣＬＫとして信号線１２０に出力する。これは、図示していないがクロック制御回路１１１から供給される信号線１２７のスルーモードでの制御信号ＣＬＫ＿ＣＴＬに従い、クロック発生回路１１２がクロック信号ＭＥＭＣＬＫを出力する。
【００２５】
メモリモジュール１３０は、メモリコントローラ１１０から供給されるクロック信号ＭＥＭＣＬＫの立ち上がり信号と反転クロック信号ＭＥＭＣＬＫ＿Ｌの立ち上がり信号に同期して、データストローブ信号ＤＱＳとデータ信号ＤＱを出力する。
【００２６】
ＤＬＬ回路１１３は、メモリモジュール１３０から供給されるデータストローブ信号ＤＱＳを、リファレンスクロック信号ＤＬＬ＿ＣＬＫの９０度程度分の位相ｔＤＬＬ９０ａだけ遅延した信号ＤＬＬ＿ＯＵＴ９０を生成する。ＤＬＬ回路１１３は信号ＤＬＬ＿ＯＵＴ９０を、ＦＦ１１４にクロック信号として供給する。
【００２７】
さらに信号ＤＬＬ＿ＯＵＴ９０を反転させ、データストローブ信号ＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫの２７０度程度分の位相ｔＤＬＬ２７０ａだけ遅延した信号ＤＬＬ＿ＯＵＴ２７０生成し、ＦＦ１１５にクロック信号として供給する。ＦＦ１１４、１１５のセットアップ時間をｔＤＳ、ホールド時間をｔＤＨとしたとき、ＦＦ１１４は、信号ＤＬＬ＿ＯＵＴ９０をクロックとして、
ｔＤＳ＜Ｔｓａ１      （１）
ｔＤＨ＜Ｔｈａ１      （２）
を満たすことで、メモリモジュール１３０から出力されたデータ信号ＤＱの奇数番目のデータを取り込むことが可能となる。なお、期間Ｔｓａ１とＴｈａ１は、データ信号ＤＱの出力期間と位相ｔＤＬＬ９０ａだけ遅延した信号ＤＬＬ＿ＯＵＴ９０で定まる期間である。
【００２８】
また、ＦＦ１１５は、信号ＤＬＬ＿ＯＵＴ２７０をクロックとして、
ｔＤＳ＜Ｔｓａ２      （３）
ｔＤＨ＜Ｔｈａ２      （４）
を満たすことで、メモリモジュール１３０から出力されたデータ信号ＤＱの偶数番目のデータを取り込むことが可能となる。なお、期間Ｔｓａ２とＴｈａ２は、データ信号ＤＱの出力期間と位相ｔＤＬＬ２７０ａだけ遅延した信号ＤＬＬ＿ＯＵＴ２７０で定まる期間である。
【００２９】
図３及び図４においては、高速動作は要求されないで、低消費電力を要求される場合の、図１に示すメモリコントローラのリードデータ転送動作を表すタイミングチャートの１例を示す。
【００３０】
図３は、クロック発生回路１１２がリファレンスクロック信号ＤＬＬ＿ＣＬＫの１／２の周波数のクロック信号ＭＥＭＣＬＫをメモリモジュール１３０に供給する場合の図１のタイミングチャートである。
【００３１】
クロック発生回路１１２は、図示しないが、クロック制御回路１１１から供給されるハーフモードの制御信号ＣＬＫ＿ＣＴＬに従い、リファレンスクロック信号ＤＬＬ＿ＣＬＫに同期した１／２の周波数のクロックをクロック信号ＭＥＭＣＬＫとして出力する。
【００３２】
メモリモジュール１３０は、メモリコントローラ１１０から供給されるクロック信号ＭＥＭＣＬＫの立ち上がり信号と反転クロック信号ＭＥＭＣＬＫ＿Ｌの立ち上がり信号に同期して、データストローブ信号ＤＱＳとデータ信号ＤＱを出力する。このとき、データストローブ信号ＤＱＳの周波数は、図２のデータストローブ信号ＤＱＳの１／２倍、データ信号ＤＱのデータ周期は、図２のデータ信号ＤＱの２倍となる。
【００３３】
ＤＬＬ回路１１３は、図２で説明したように、メモリモジュール１３０から供給されるデータストローブ信号ＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫの９０度程度分の位相ｔＤＬＬ９０ｂだけ遅延した信号ＤＬＬ＿ＯＵＴ９０を生成する。そして生成した信号ＤＬＬ＿ＯＵＴ９０をＦＦ１１４にクロック信号として供給する。さらに信号ＤＬＬ＿ＯＵＴ９０を反転させてデータストローブ信号ＤＱＳをｔＤＬＬ９０Ｒｂだけ遅延した信号ＤＬＬ＿ＯＵＴ２７０を生成する。そして生成した信号ＤＬＬ＿ＯＵＴ２７０をＦＦ１１５にクロック信号として供給する。
【００３４】
ＦＦ１１４は、信号ＤＬＬ＿ＯＵＴ９０をクロック信号として、
ｔＤＳ＜Ｔｓｂ１      （５）
ｔＤＨ＜Ｔｈｂ１      （６）
を満たすことで、メモリモジュール１３０から出力されたデータ信号ＤＱの奇数番目のデータを取り込むことが可能となる。なお、期間Ｔｓｂ１とＴｈｂ１は、データ信号ＤＱの出力期間と位相ｔＤＬＬ９０ｂだけ遅延した信号ＤＬＬ＿ＯＵＴ９０で定まる期間である。
【００３５】
ＦＦ１１５は、信号ＤＬＬ＿ＯＵＴ２７０をクロック信号として、
ｔＤＳ＜Ｔｓｂ２      （７）
ｔＤＨ＜Ｔｈｂ２      （８）
を満すことで、メモリモジュール１３０から出力されたデータ信号ＤＱの偶数番目のデータを取り込むことが可能となる。なお、期間Ｔｓｂ２とＴｈｂ２は、データ信号ＤＱの出力期間と位相ｔＤＬＬ９０Ｒｂだけ遅延した信号ＤＬＬ＿ＯＵＴ２７０で定まる期間である。
【００３６】
このとき、図３と図２のタイミングの関係は、
Ｔｓａ１＝Ｔｓｂ１    （９）
Ｔｓａ２＝Ｔｓｂ２    （１０）
Ｔｈａ１＜Ｔｈｂ１    （１１）
Ｔｈａ２＜Ｔｈｂ２    （１２）
を満たしている。
【００３７】
図４は、クロック発生回路１１２がリファレンスクロック信号ＤＬＬ＿ＣＬＫをゲーテッド制御したクロック信号ＭＥＭＣＬＫをメモリモジュール１３０に供給する場合のタイミングチャートである。
【００３８】
クロック発生回路１１２は、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／３の周波数になるようにロウレベルにゲートしたクロック信号を、信号線１２０にクロック信号ＭＥＭＣＬＫとして出力する。これは、図示していないがクロック制御回路１１１から供給されるゲーテッドモードの制御信号ＣＬＫ＿ＣＴＬに従い、クロック発生回路１１２がクロック信号ＭＥＭＣＬＫを出力する。
【００３９】
メモリモジュール１３０は、メモリコントローラ１１０から供給されるクロック信号ＭＥＭＣＬＫの立ち上がり信号と反転クロック信号ＭＥＭＣＬＫ＿Ｌの立ち上がり信号に同期して、データストローブ信号ＤＱＳとデータ信号ＤＱを出力する。
【００４０】
ＤＬＬ回路１１３は、図２で説明したように、メモリモジュール１３０から供給されるデータストローブ信号ＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫの９０度程度分の位相ｔＤＬＬ９０ｃだけ遅延した信号ＤＬＬ＿ＯＵＴ９０を生成する。そして、生成した信号ＤＬＬ＿ＯＵＴ９０を、ＦＦ１１４にクロック信号として供給する。さらに信号ＤＬＬ＿ＯＵＴ９０を反転させてデータストローブ信号ＤＱＳをｔＤＬＬ９０Ｒｃだけ遅延した信号ＤＬＬ＿ＯＵＴ２７０を生成する。そして生成した信号ＤＬＬ＿ＯＵＴ２７０を、ＦＦ１１５にクロック信号として供給する。
【００４１】
ＦＦ１１４は、信号ＤＬＬ＿ＯＵＴ９０をクロック信号として、
ｔＤＳ＜Ｔｓｃ１    （１３）
ｔＤＨ＜Ｔｈｃ１    （１４）
を満たすことで、メモリモジュール１３０から出力されたデータ信号ＤＱの奇数番目のデータを取り込むことが可能となる。なお、期間Ｔｓｃ１とＴｈｃ１は、データ信号ＤＱの出力期間と位相ｔＤＬＬ９０ｃだけ遅延した信号ＤＬＬ＿ＯＵＴ９０で定まる期間である。
【００４２】
ＦＦ１１５は、信号ＤＬＬ＿ＯＵＴ２７０をクロック信号として、
ｔＤＳ＜Ｔｓｃ２    （１５）
ｔＤＨ＜Ｔｈｃ２    （１６）
を満たすことで、メモリモジュール１３０から出力されたデータ信号ＤＱの偶数番目のデータを取り込むことが可能となる。なお、期間Ｔｓｃ２とＴｈｃ２は、データ信号ＤＱの出力期間と位相ｔＤＬＬ９０Ｒｃだけ遅延した信号ＤＬＬ＿ＯＵＴ２７０で定まる期間である。
【００４３】
このとき、図４と図２のタイミングの関係は、
Ｔｓａ１＝Ｔｓｃ１    （１７）
Ｔｓａ２＝Ｔｓｃ２    （１８）
Ｔｈａ１＝Ｔｈｃ１    （１９）
Ｔｈａ２＜Ｔｈｃ２    （２０）
を満たしている。
【００４４】
上述した図２、３、および４のラッチ回路であるＦＦ１１４、１１５は、図２のセットアップ時間とホールド時間の仕様を満たせば、図３、図４のタイミングも満たす。したがって、ダイナミックにクロック発生回路１１２を制御しても安定してデータ信号ＤＱを取り込むことが可能である。
【００４５】
図５は、本発明の一実施形態に係るライト側のメモリコントローラの概略構成を示すブロック図である。図５において、メモリコントローラ２１０は、クロック制御回路２１１、クロック発生回路２１２、ＤＬＬ回路２１３を備える。また、メモリコントローラ２１０は、出力データ生成回路として機能するフリップフロップ２６０、２６１、２６２を備える。さらに、メモリコントローラ２１０は、ＡＮＤ回路２６３、２入力１出力セレクタ２６４、インバータバッファ２１６、出力インタフェースバッファ２５１、２５２、出力３−ＳＴＡＴＥインタフェースバッファ２５３、２５４を備える。
【００４６】
２４１、２４２、２４３、２４４、及び２４５は、メモリコントローラ２１０がＤＬＬ回路非搭載のメモリモジュール２３０に入力する信号ＭＥＭＣＬＫ、ＭＥＭＣＬＫ＿Ｌ、ＤＱＳ、ＤＱ、及びＣＭＤの信号線を示す。それらの信号は、それぞれクロック信号とその反転クロック信号、双方向のデータストローブ信号、双方向のデータ信号である。またＣＭＤは、メモリモジュール２３０に入力するアドレス、バンクアドレス、ＲＡＳ、ＣＡＳ、ＷＥ、ＣＫＥ、ＣＳ等のすべてを含む制御信号である。本実施形態では、ＣＭＤの制御回路と出力インタフェースバッファの説明は省略する。
【００４７】
尚、メモリモジュール２３０は、ＭｏｂｉｌｅＤＤＲ−ＳＤＲＡＭからなる。本実施形態において、メモリモジュール２３０は、ＭｏｂｉｌｅＤＤＲ−ＳＤＲＡＭとして説明するが、これに限るわけではない。メモリモジュール２３０は、データ信号と、データ信号のタイミングを示すデータストローブ信号を受信し、データ信号を記憶する。
【００４８】
以下、メモリコントローラ２１０が、クロック信号ＭＥＭＣＬＫと反転クロック信号ＭＥＭＣＬＫ＿Ｌ、データストローブ信号ＤＱＳとデータ信号ＤＱをメモリモジュール２３０へ供給する構成について説明する。
【００４９】
クロック制御回路２１１は、制御信号ＣＬＫ＿ＣＴＬを信号線２２７を介してクロック発生回路２１２に供給する。制御信号ＣＬＫ＿ＣＴＬは、クロック発生回路２１２から信号線２２０に出力されるクロック信号ＭＥＭＣＬＫの周波数を制御する。本実施形態において、制御信号ＣＬＫ＿ＣＴＬは、スルーモード、ハーフモード、及びゲーテッドモードを有する。
【００５０】
クロック発生回路２１２は、遅延回路であるＤＬＬ回路２１３へのリファレンスクロック信号ＤＬＬ＿ＣＬＫを信号線２２２に出力し、またクロック信号ＭＥＭＣＬＫを信号線２２０に出力する。リファレンスクロック信号ＤＬＬ＿ＣＬＫは固定周波数のクロックであり、クロック信号ＭＥＭＣＬＫは、制御信号ＣＬＫ＿ＣＴＬに従って、可変制御可能な周波数のクロックである。
【００５１】
ＤＬＬ回路２１３は、Ｄｅｌａｙ−Ｌｏｃｋｅｄ−Ｌｏｏｐ回路と一般的に呼ばれる遅延回路である。
制御信号ＣＬＫ＿ＣＴＬがスルーモード時には、リファレンスクロック信号ＤＬＬ＿ＣＬＫと同じ周波数のクロック信号を信号線２２０にクロック信号ＭＥＭＣＬＫとして出力するものとする。またハーフモード時には、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／２の周波数になるように分周したクロック信号を信号線２２０にクロック信号ＭＥＭＣＬＫとして出力するものとする。さらにゲーテッドモード時は、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／３の周波数になるようにロウレベルにゲートしたクロック信号を信号線２２０にクロック信号ＭＥＭＣＬＫとして出力するものとする。
【００５２】
本実施形態において、ゲーテッドモードは、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／３の周波数のクロック信号になるようにロウレベルにゲートしたクロック信号を生成するとして説明する。ただし、ゲート信号を変更することにより、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／Ｎ（Ｎは自然数）の周波数のクロック信号を生成することが可能である。上記するように、クロック発生回路２１２は、ＤＬＬ回路２１３へ供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫの周波数とメモリモジュール２３０へ供給するクロック信号ＭＥＭＣＬＫの周波数を独立して制御する。また、本実施形態では、リファレンスクロック信号ＤＬＬ＿ＣＬＫとクロック信号ＭＥＭＣＬＫが同期しているものとして説明するが、非同期であっても構わない。
【００５３】
クロック信号ＭＥＭＣＬＫは、メモリモジュール２３０のＣＬＫ端子に信号線２４１を介して接続される。また、クロック信号ＭＥＭＣＬＫをインバータバッファ２１６によって反転した反転クロック信号ＭＥＭＣＬＫ＿Ｌは、信号線２４２を介してメモリモジュール２３０のＣＬＫ＿Ｌ端子に接続される。
【００５４】
ＡＮＤ回路２６３は、２入力の論理積であり、前記ＷＤＱＳＭＫとクロック信号ＭＥＭＣＬＫを入力信号とし、データストローブ信号ＷＤＱＳを生成して、信号線２２６に出力する。前記ＷＤＱＳＭＫは、クロック信号ＭＥＭＣＬＫの立ち上がりエッジが保存されるようにタイミング調整されているものとする。
【００５５】
本実施形態では図示していないが、クロック信号ＭＥＭＣＬＫに同期してクロック信号ＭＥＭＣＬＫをゲーテッド制御する信号を生成する回路は、ＣＬＫ＿ＭＫを信号線２７２に出力する。
ＦＦ２６０は、ラッチ回路として動作し、ＣＬＫ＿ＭＫを入力信号とし、クロック信号ＭＥＭＣＬＫに同期して、ゲーテッド制御信号ＷＤＱＳＭＫを信号線２２５に出力する。
【００５６】
本実施形態では図示していないが、クロック信号ＭＥＭＣＬＫに同期してメモリモジュール２３０へライトする奇数番目のデータを生成する回路は、ＯＤＤ＿ＤＡＴＡを信号線２７３に出力する。
ＦＦ２６１は、ラッチ回路として動作し、ＯＤＤ＿ＤＡＴＡを入力信号とし、反転したクロック信号ＭＥＭＣＬＫに同期して、メモリモジュール２３０へライトする奇数番目のデータＷＤＡＴＡ＿Ｈを信号線２２８に出力する。
【００５７】
本実施形態では図示していないが、クロック信号ＭＥＭＣＬＫに同期してメモリモジュール２３０へライトする偶数番目のデータを生成する回路は、ＥＶＥＮ＿ＤＡＴＡを信号線２７４に出力する。
ＦＦ２６２は、ラッチ回路として動作し、ＥＶＥＮ＿ＤＡＴＡ入力信号とし、クロック信号ＭＥＭＣＬＫに同期して、メモリモジュール２３０へライトする偶数番目のデータＷＤＡＴＡ＿Ｌを信号線２２９に出力する。
【００５８】
図面の簡略化の為、ＦＦ２６０、２６１、２６２は１ビット用のラッチ回路として図示してあるが、実際には複数ビットからなり、複数ビットを並列にラッチ処理する。
２入力１出力セレクタ２６４は、クロック信号ＭＥＭＣＬＫが‘１’のときは、偶数番目のデータＷＤＡＴＡ＿Ｌを信号線２２４に出力し、クロック信号ＭＥＭＣＬＫが‘０’のときは、奇数番目のデータＷＤＡＴＡ＿Ｈを信号線２２４に出力する。
【００５９】
ＤＬＬ回路２１３は、基本的にデータストローブ信号ＷＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫに基づいて遅延する遅延回路として動作する。すなわち、信号線２２２のクロック信号ＤＬＬ＿ＣＬＫをリファレンスクロック信号とし、ロックするのに必要な時間が経過した後は、温度、電圧などの変化に追従し、信号線２２６を介して入力されるデータストローブ信号ＷＤＱＳの遅延量を調整する。
そしてデータストローブ信号ＷＤＱＳの位相を、リファレンスクロック信号ＤＬＬ＿ＣＬＫを９０度程度遅延した信号ＷＤＱＳ９０を信号線２２３に出力する。
【００６０】
出力３−ＳＴＡＴＥインタフェースバッファ２５３は、データストローブ信号ＤＱＳがメモリモジュール２３０のスペックを満たすように、信号線２７１より入力されるイネーブル信号ＯＤＱＳ＿ＥＮにより制御されているものとする。
【００６１】
また、出力３−ＳＴＡＴＥインタフェースバッファ２５４は、データ信号ＤＱがメモリモジュール２３０のスペックを満たすように、信号線２７１より入力されるイネーブル信号ＯＤＱ＿ＥＮにより制御されているものとする。
【００６２】
次に、図６を参照して、高速動作が要求される場合の、図５に示すメモリコントローラのライトデータ転送動作を説明する。クロック発生回路２１２は、信号線２２２のリファレンスクロック信号ＤＬＬ＿ＣＬＫに同期した同じ周波数のクロック信号をクロック信号ＭＥＭＣＬＫとして信号線２２０に出力する。これは、図示していないがクロック制御回路２１１から供給される信号線２２７のスルーモードでの制御信号ＣＬＫ＿ＣＴＬに従い、クロック発生回路２１２がクロック信号ＭＥＭＣＬＫを出力する。
【００６３】
ＤＬＬ回路２１３は、クロック信号ＭＥＭＣＬＫを、ゲーテッド制御して生成したストローブ信号ＷＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫの９０度程度分の位相ｔＤＬＬ９０ｄだけ遅延したＷＤＱＳ９０を生成し、信号線２２３に出力する。
【００６４】
２入力１出力セレクタ２６４は、クロック信号ＭＥＭＣＬＫが‘１’のときは、クロック信号ＭＥＭＣＬＫに同期した偶数番目のデータＷＤＡＴＡ＿Ｌを信号線２２４に出力する。また、クロック信号ＭＥＭＣＬＫが‘０’のときは、反転したクロック信号ＭＥＭＣＬＫに同期した奇数番目のデータＷＤＡＴＡ＿Ｈを信号線２２４に出力する。
【００６５】
メモリモジュール２３０のデータ信号ＤＱのセットアップ時間をｔＤＤＳ、ホールド時間をｔＤＤＨとしたとき、
ｔＤＤＳ＜Ｔｓｄ１      （２１）
ｔＤＤＨ＜Ｔｈｄ１      （２２）
ｔＤＤＳ＜Ｔｓｄ２      （２３）
ｔＤＤＨ＜Ｔｈｄ２      （２４）
を満たすことで、メモリモジュール２３０は、あらかじめコマンドにて指定されたアドレスにデータ信号を格納する。なお、期間Ｔｓｄ１とＴｈｄ１及びＴｓｄ２とＴｈｄ２は、データ信号ＷＤＱの出力期間と位相ｔＤＬＬ９０ｄだけ遅延した信号ＷＤＱＳ９０で定まる期間である。
【００６６】
図７及び図８においては、高速動作は要求されないで、低消費電力を要求される場合の、図５に示すメモリコントローラ２１０のライトデータ転送動作を表すタイミングチャートの１例を示す。
【００６７】
図７は、クロック発生回路２１２がリファレンスクロック信号ＤＬＬ＿ＣＬＫの１／２の周波数のクロック信号ＭＥＭＣＬＫ信号をメモリモジュール２３０に供給する場合のタイミングチャートである。
【００６８】
クロック発生回路２１２は、図示しないが、クロック制御回路２１１から供給されるハーフモードの制御信号ＣＬＫ＿ＣＴＬに従い、リファレンスクロック信号ＤＬＬ＿ＣＬＫに同期した１／２の周波数のクロックをクロック信号ＭＥＭＣＬＫとして出力する。
【００６９】
本実施形態では、リファレンスクロック信号ＤＬＬ＿ＣＬＫとクロック信号ＭＥＭＣＬＫが同期しているものとして説明するが、非同期でも構わない。
【００７０】
ＤＬＬ回路２１３は、クロック信号ＭＥＭＣＬＫを、ゲーテッド制御して生成したストローブ信号ＷＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫの９０度程度分のｔＤＬＬ９０ｅだけ遅延したＷＤＱＳ９０を生成し、信号線２２３に出力する。
【００７１】
２入力１出力セレクタ２６４は、クロック信号ＭＥＭＣＬＫが‘１’のときは、クロック信号ＭＥＭＣＬＫに同期した偶数番目のデータＷＤＡＴＡ＿Ｌを信号線２２４に出力する。また、クロック信号ＭＥＭＣＬＫが‘０’のときは、反転したクロック信号ＭＥＭＣＬＫに同期した奇数番目のデータＷＤＡＴＡ＿Ｈを信号線２２４に出力する。
【００７２】
メモリモジュール２３０のデータ信号ＤＱのセットアップ時間をｔＤＤＳ、ホールド時間をｔＤＤＨとしたとき、
ｔＤＤＳ＜Ｔｓｅ１      （２５）
ｔＤＤＨ＜Ｔｈｅ１      （２６）
ｔＤＤＳ＜Ｔｓｅ２      （２７）
ｔＤＤＨ＜Ｔｈｅ２      （２８）
を満たすことで、メモリモジュール２３０は、あらかじめコマンドにて指定されたアドレスにデータ信号を格納する。なお、期間Ｔｓｅ１とＴｈｅ１及びＴｓｅ２とＴｈｅ２は、データ信号ＷＤＱの出力期間と位相ｔＤＬＬ９０ｅだけ遅延した信号ＷＤＱＳ９０で定まる期間である。
【００７３】
このとき、図６と図７のタイミングの関係は、
Ｔｓｄ１＝Ｔｓｅ１    （２９）
Ｔｓｄ２＝Ｔｓｅ２    （３０）
Ｔｈｄ１＜Ｔｈｅ１    （３１）
Ｔｈｄ２＜Ｔｈｅ２    （３２）
となる。
【００７４】
図８は、クロック発生回路２１２がリファレンスクロック信号ＤＬＬ＿ＣＬＫをゲーテッド制御したクロック信号ＭＥＭＣＬＫをメモリモジュール２３０に供給する場合のタイミングチャートである。
【００７５】
クロック発生回路２１２は、リファレンスクロック信号ＤＬＬ＿ＣＬＫの１／３の周波数になるようにロウレベルにゲートしたクロック信号を、信号線２２０にクロック信号ＭＥＭＣＬＫとして出力する。これは、図示していないがクロック制御回路２１１から供給されるゲーテッドモードの制御信号ＣＬＫ＿ＣＴＬに従い、クロック発生回路２１２がクロック信号ＭＥＭＣＬＫを出力する。
【００７６】
ＤＬＬ回路２１３は、クロック信号ＭＥＭＣＬＫを、ゲーテッド制御して生成したストローブ信号ＷＤＱＳをリファレンスクロック信号ＤＬＬ＿ＣＬＫの９０度程度分のｔＤＬＬ９０ｆだけ遅延したＷＤＱＳ９０を生成し、信号線２２３に出力する。
【００７７】
２入力１出力セレクタ２６４は、クロック信号ＭＥＭＣＬＫが‘１’のときは、クロック信号ＭＥＭＣＬＫに同期した偶数番目のデータＷＤＡＴＡ＿Ｌを信号線２２４に出力する。また、クロック信号ＭＥＭＣＬＫが‘０’のときは、反転したクロック信号ＭＥＭＣＬＫに同期した奇数番目のデータＷＤＡＴＡ＿Ｈを信号線２２４に出力する。
【００７８】
メモリモジュール２３０のデータ信号ＤＱのセットアップ時間をｔＤＤＳ、ホールド時間をｔＤＤＨとしたとき、
ｔＤＤＳ＜Ｔｓｆ１      （３３）
ｔＤＤＨ＜Ｔｈｆ１      （３４）
ｔＤＤＳ＜Ｔｓｆ２      （３５）
ｔＤＤＨ＜Ｔｈｆ２      （３６）
を満たすことで、メモリモジュール２３０は、あらかじめコマンドにて指定されたアドレスにデータ信号を格納する。なお、期間Ｔｓｆ１とＴｈｆ１及びＴｓｆ２とＴｈｆ２は、データ信号ＷＤＱの出力期間と位相ｔＤＬＬ９０ｆだけ遅延した信号ＷＤＱＳ９０で定まる期間である。
【００７９】
このとき、図６と図８のタイミングの関係は、
Ｔｓｄ１＝Ｔｓｆ１    （３７）
Ｔｓｄ２＝Ｔｓｆ２    （３８）
Ｔｈｄ１＝Ｔｈｆ１    （３９）
Ｔｈｄ２＜Ｔｈｆ２    （４０）
となる。
【００８０】
上述した図６、７、および８のメモリモジュール２３０は、図６のセットアップ時間とホールド時間の仕様を満たせば、図７、図８のタイミングも満たす。したがって、ダイナミックにクロック発生回路２１２とデータストローブの周波数を制御しても安定してデータ信号ＤＱをライトすることが可能である。
【００８１】
以上説明したように、本実施形態によれば、高速動作が要求されないリード側のメモリコントローラの場合においては、遅延回路であるＤＬＬ回路１１３に供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫの周波数を固定したまま、メモリモジュール１３０に供給するクロック信号ＭＥＭＣＬＫの周波数を低くする。これにより、システム全体の低消費電力化を達成することができる。また、高速動作が要求されるリード側のメモリコントローラの場合には、メモリモジュール１３０に供給するクロック信号ＭＥＭＣＬＫの周波数をＤＬＬ回路１１３に供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫと同じ周波数にする。これにより、高いパフォーマンスを達成する。このように、クロック発生回路１１２は、ＤＬＬ回路１１３へ供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫの周波数とメモリモジュール１３０へ供給するクロック信号ＭＥＭＣＬＫの周波数を独立して制御する。これらの動作を適宜に選択することで、高いパフォーマンスと低消費電力化を両立することが可能となる。
【００８２】
また、高速動作が要求されないライト側のメモリコントローラの場合、遅延回路であるＤＬＬ回路２１３に供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫの周波数を固定したまま、メモリモジュール２３０に供給するクロック信号ＭＥＭＣＬＫとデータストローブ信号ＤＱＳの周波数を低くする。これにより、システム全体の低消費電力化を達成する。また、ライト側のメモリコントローラの場合には、メモリモジュール２３０に供給するクロック信号ＭＥＭＣＬＫとデータストローブ信号ＤＱＳの周波数を、ＤＬＬ回路２１３に供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫと同じ周波数にする。これにより、高速動作が要求されるライト側のメモリコントローラにおいて高いパフォーマンスを達成する。このように、クロック発生回路２１２は、ＤＬＬ回路２１３へ供給するリファレンスクロック信号ＤＬＬ＿ＣＬＫの周波数とメモリモジュール２３０へ供給するクロック信号ＭＥＭＣＬＫとデータストローブ信号ＤＱＳの周波数を独立して制御する。これらの動作を適宜に選択することで、高いパフォーマンスと低消費電力化を両立することが可能となる。
【図面の簡単な説明】
【００８３】
【図１】本発明の実施形態に係るリード側のメモリコントローラの概略構成ブロック図である。
【図２】本発明の実施形態に係るリード側のメモリコントローラの高速動作時のタイミングチャートである。
【図３】本発明の実施形態に係るリード側のメモリコントローラの低速動作時のタイミングチャートである。
【図４】本発明の実施形態に係るリード側のメモリコントローラの低速動作時のタイミングチャートである。
【図５】本発明の実施形態に係るライト側のメモリコントローラの概略構成ブロック図である。
【図６】本発明の実施形態に係るライト側のメモリコントローラの高速動作時のタイミングチャートである。
【図７】本発明の実施形態に係るライト側のメモリコントローラの低速動作時のタイミングチャートである。
【図８】本発明の実施形態に係るライト側のメモリコントローラの低速動作時のタイミングチャートである。
【符号の説明】
【００８４】
１１０  リード側のメモリコントローラ
１１１  クロック制御回路
１１２  クロック発生回路
１１３  ＤＬＬ（Delay-Locked-Loop）回路
１１４  フリップフロップ
１１５  フリップフロップ
１１６  インバータ
１３０  メモリモジュール
２１０  ライト側のメモリコントローラ
２１１  クロック制御回路
２１２  クロック発生回路
２１３  ＤＬＬ（Delay-Locked-Loop）回路
２１６  インバータ
２３０  メモリモジュール
２５１  出力インタフェースバッファ
２５２  出力インタフェースバッファ
２５３  出力３−ＳＴＡＴＥインタフェースバッファ
２５４  出力３−ＳＴＡＴＥインタフェースバッファ
２６０  フリップフロップ
２６１  フリップフロップ
２６２  フリップフロップ
２６３  ＡＮＤ回路
２６４  ２入力１出力セレクタ
【図１】
2008305349.tif 000003
【図２】
2008305349.tif 000004
【図３】
2008305349.tif 000005
【図４】
2008305349.tif 000006
【図５】
2008305349.tif 000007
【図６】
2008305349.tif 000008
【図７】
2008305349.tif 000009
【図８】
2008305349.tif 000010