(57)【要約】  メモリコントローラ（１００）は、位相検出部（１２１）と、生成部（１２２）と、遅延制御部（１２３）と、を有している。位相検出部（１２１）は、受信した外部クロック信号と内部クロック信号との位相差に基づき、読み出し動作期間中連続的に第１の遅延量を検出する。生成部（１２２）は、１データ信号分の読み出し時間以上で、読み出し動作開始から受信したデータ信号を出力するまでの一定時間未満の有効期間であり、読み出し動作開始時に有効期間が開始する制御信号を、第１の遅延量との和が一定時間となる第２の遅延量分遅延させることで、あらたな制御信号を生成する。あらたな制御信号は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号、ＰＨＳＥＬ  ＩＮＨ信号、ＬＣ  ＩＮＨ信号である。遅延制御部（１２３）は、生成部（１２２）によって生成された制御信号の有効期間の開始時に位相検出部（１２１）により検出された第１の遅延量分、データ信号を遅延させる。
2013042233.tif 000002
【特許請求の範囲】
【請求項１】
受信した外部クロック信号と内部クロック信号との位相差に基づき、読み出し動作期間中連続的に第１の遅延量を検出する位相検出部と、
１データ信号分の読み出し時間以上で、前記読み出し動作開始から受信したデータ信号を出力するまでの一定時間未満の有効期間であり、前記読み出し動作開始時に前記有効期間が開始される第１の制御信号を、前記第１の遅延量との和が前記一定時間となる第２の遅延量分遅延させることで、第２の制御信号を生成する生成部と、
前記生成部によって生成された前記第２の制御信号の有効期間の開始時に前記位相検出部により検出された前記第１の遅延量分、前記データ信号を遅延させる遅延制御部と、
を有することを特徴とする半導体装置。
【請求項２】
前記生成部は、
前記第１の制御信号を第１の配列開始位置から入力順に配列させて記憶し、配列順に前記第２の制御信号として出力する第１の記憶部と、
前記第２の遅延量に基づき前記第１の配列開始位置を選択する第１の記憶制御部と、
を有することを特徴とする請求項１に記載の半導体装置。
【請求項３】
前記遅延制御部は、
前記データ信号を第２の配列開始位置から入力順に配列させて記憶し、配列順に前記データ信号の読み出しが可能な第２の記憶部と、
前記第１の遅延量に基づき前記第２の配列開始位置を選択する第２の記憶制御部と、
を有することを特徴とする請求項２に記載の半導体装置。
【請求項４】
前記第１の記憶部の配列数と前記第２の記憶部の配列数とが同一であり、前記第１の配列開始位置と、前記第２の配列開始位置とが相反することを特徴とする請求項３に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体装置に関する。
【背景技術】
【０００２】
従来、高速のメモリインタフェイス規格として、ＤＤＲ（Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ）メモリインタフェイス（ＪＥＤＥＣ  ＪＥＳＤ７９−３Ｅ）がある。ＤＤＲメモリインタフェイスは、たとえば、ＤＤＲ  ＳＤＲＡＭ（Ｓｙｎｃｈｒｏｎｏｕｓ  Ｄｙｎａｍｉｃ  Ｒａｎｄａｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などのパーソナルコンピュータで使用される半導体集積回路で構成されるＲＡＭで用いられる。【０００３】
ＤＤＲメモリインタフェイスでは、メモリコントローラからの要求（コマンド）によって、ＲＡＭ内の記憶内容を読み書きすることができる。ＤＤＲメモリは、クロック信号の立ち上がりエッジ（ポジティブエッジ）と立ち下がりエッジ（ネガティブエッジ）の双方でデータの入出力をすることで、クロック周波数の２倍のデータ転送レートでデータ転送をするメモリである。【０００４】
ＤＤＲメモリでは、メモリコントローラの内部で生成させた内部クロック信号（ＣＫ信号）をＤＩＭＭ（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅ）に送信する。ＤＩＭＭはＤＤＲメモリから受信したＣＫ信号によってデータストローブ信号（ＤＱＳ信号）を生成し、ＤＱＳ信号をデータ信号（ＤＱ信号）とともにメモリコントローラに送信する。【０００５】
メモリコントローラでは、ＤＱＳ信号およびＤＱ信号を受信する。メモリコントローラでは、ＤＱＳ信号によってＤＱ信号をリタイミングし、さらに内部クロックに乗り換える。このとき、受信点のラッチ回路で確実にデータ信号を受信するには、内部ＣＫ信号と受信データ信号のタイミング関係が一定範囲内にあることが必要である。【０００６】
また、関連する技術としては、ある信号が入力されてから出力されるまでに遅延させる場合、微小遅延を生成する回路と、粗遅延を生成する回路とを有することで、必要な遅延時間を回路の組み合わせで生成する技術が公開されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００９−１３０４５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、読み出し動作時においては、メモリコントローラがリードコマンドを発行してから、ＤＱＳ信号およびＤＱ信号がメモリコントローラに返ってくるまでの時間（＝フライトタイム）は、ばらつく。ばらつく要因としては、たとえば、メモリコントローラとＤＩＭＭとの配置位置や、電源、温度などの環境変化が挙げられる。さらに、同一ＤＩＭＭチャネル内に多スロットのＤＩＭＭを搭載した場合、アクセス対象とするＤＩＭＭスロットによってばらつきが異なる。【０００９】
また、異なるスロットに連続して読み出しまたは書き込み動作が行われる際、高速にスロットを切り替えながら、ばらつきを抑えるのは困難である。【００１０】
本発明は、上述した従来技術による問題点を解消するため、メモリコントローラ側にてばらつきを吸収し、連続動作時の動作切り替えを高速化させることができる半導体装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するため、本発明の一側面によれば、受信した外部クロック信号と内部クロック信号との位相差に基づき、読み出し動作期間中連続的に第１の遅延量を検出する位相検出部と、１データ信号分の読み出し時間以上で、前記読み出し動作開始から受信したデータ信号を出力するまでの一定時間未満の有効期間であり、前記読み出し動作開始時に前記有効期間が開始される第１の制御信号を、前記第１の遅延量との和が前記一定時間となる第２の遅延量分遅延させることで、第２の制御信号を生成する生成部と、前記生成部によって生成された前記第２の制御信号の有効期間の開始時に前記位相検出部により検出された前記第１の遅延量分、前記データ信号を遅延させる遅延制御部と、を有する半導体装置が提案される。
【発明の効果】
【００１２】
本発明の一側面によれば、メモリコントローラ側にてばらつきを吸収し、連続動作時の動作切り替えを高速化させることができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、実施例１にかかる半導体装置の一例を示すブロック図である。
【図２】図２は、本発明の一動作例を示すタイミングチャートである。
【図３】図３は、実施例２にかかる半導体装置を示すブロック図である。
【図４】図４は、ＤＱＰＨＡＳＥ信号の一例を示す説明図である。
【図５】図５は、ＤＱＰＨＡＳＥ信号の位相を表す例を示す説明図である。
【図６】図６は、生成部１２２の詳細例を示す説明図である。
【図７】図７は、生成部１２２の動作例を示すタイミングチャート（その１）である。
【図８】図８は、生成部１２２の動作例を示すタイミングチャート（その２）である。
【図９】図９は、信号復元回路１１２の詳細例を示す説明図である。
【図１０】図１０は、メモリ１０１に対して連続して読み出し動作を行う例を示す説明図である。
【図１１】図１１は、実施例３にかかる半導体装置の一例を示すブロック図である。
【図１２】図１２は、異なるメモリ１０１に対して読み出し動作が連続した場合の従来例を示す説明図である。
【図１３】図１３は、異なるメモリ１０１に対して読み出し動作が連続した場合の本発明例を示す説明図である。
【図１４】図１４は、実施例４にかかる半導体装置を示すブロック図である。
【図１５】図１５は、マザーボードの一例を示すブロック図である。
【発明を実施するための形態】
【００１４】
以下に添付図面を参照して、本発明にかかる半導体装置の実施の形態を詳細に説明する。本実施の形態では、半導体装置の一例として、メモリコントローラを挙げて説明するが、これに限らず、ＣＰＵやマザーボードであってもよい。
【００１５】
（実施例１）
実施例１では、連続的に変化するデータ信号の遅延量を確定させる制御信号の有効期間が１データ信号の読み出し時間程度まで短くても、制御信号をデータ信号の遅延量との和が一定時間となるように遅延させる。すなわち、データ信号の遅延処理中に制御信号を有効化させることができる。これにより、データ信号の応答を一定時間にしつつ、連続動作（読み出しまたは書き込み）時の動作の切り替えを高速化させることができる。したがって、連続動作時の全体の動作期間を短縮することができる。
【００１６】
図１は、実施例１にかかる半導体装置の一例を示すブロック図である。図１では、半導体装置の一例として、メモリコントローラ１００が挙げられている。メモリコントローラ１００は、本開示のメモリコントローラ１００の一例であって、メモリ１０１のインターフェイス回路であって、データの入出力手段である。
【００１７】
そのため、メモリコントローラ１００は、受信信号としてたとえば、メモリ１０１（ＤＩＭＭ）から外部クロック信号としてＤＱＳ信号やデータ信号としてＤＱ信号を受信する。この場合、メモリ１０１は信号源である。メモリ１０１は、たとえば、ＤＤＲ  ＳＤＲＡＭである。ＤＤＲ  ＳＤＲＡＭは、クロック（ＣＫ）信号の２倍レート（クロック信号の立ち上がりおよび立ち下がりの両方のエッジ）によりデータ転送する。
【００１８】
メモリコントローラ１００は、信号受信回路１１１と、信号復元回路１１２と、を有している。信号受信回路１１１は、生成部１２２と、クロック生成部１３１と、クロック出力部１２４と、位相設定部１２５と、第一の位相遅延部１３２と、第二の位相遅延部１３３と、位相検出部１２１と、データ保持部１２７と、を有している。各部は、アナログ回路、論理回路、ＦＦなどによって実現される。
【００１９】
ここで、各信号について説明する。ＤＱＳ信号と、ｄｑｓ９０信号と、ｄｄｑｓ信号とは、データストローブ信号である。ＣＬＫ信号と、クロック生成部１３１の出力信号と、クロック生成部１４１の出力信号とは、内部クロック信号である。ＤＱ信号と、ｄｑ−ｏｄｄ信号と、ｄｑ−ｅｖｅｎ信号と、ｄｄｑ−ｅｖｅｎ信号と、ｄｄｑ−ｏｄｄ信号と、ｌｄｑ−ｅｖｅｎ信号と、ｌｄｑ−ｏｄｄ信号と、ｄｑ０信号と、ＩＮ信号とは、データ信号である。
【００２０】
また、遅延制御部１２３は、クロック生成部１３１と、第一の位相遅延部１３２と、第二の位相遅延部１３３と、信号復元回路１１２と、を有している。遅延制御部１２３によって、読み出し動作開始時から一定時間経過時にデータ信号をＣＬＫ信号に同期させてＤＱ  ＯＵＴ信号として出力させることができる。
【００２１】
より具体的には、遅延制御部１２３のうち、クロック生成部１３１と、第一の位相遅延部１３２と、第二の位相遅延部１３３とが、ＤＱ信号を遅延させて基準ＣＬＫ信号に同期したデータ信号を生成している。そして、遅延制御部１２３のうち、信号復元回路１１２が、読み出し動作開始時から一定時間経過時にデータ信号をＤＱ  ＯＵＴ信号として出力する。
【００２２】
実施例１では、遅延信号であるＤＱＰＨＡＳＥ信号が、遅延制御部１２３の各部の遅延量となっている。遅延制御部１２３の各部が、ＤＱＰＨＡＳＥ信号に基づいてデータ信号を遅延させている最中に、ＤＱＰＨＡＳＥ信号が変化してしまうと、遅延量が定まらないため、データ信号に論理的なヒゲパルスなどが発生したりデータ信号がずれたりする問題点がある。そこで、遅延制御部１２３の各部は、データ信号を遅延させている最中に、制御信号に基づいてＤＱＰＨＡＳＥ信号が変化しないようにする。
【００２３】
まず、クロック生成部１３１は、ＣＬＫ信号を分周して、複数相のＣＬＫ信号を生成する。クロック出力部１２４は、クロック生成部１３１からＣＬＫ信号を受け、ＣＫ信号を生成してメモリ１０１へ出力する。
【００２４】
メモリ１０１からデータを読み出す場合、メモリ１０１はメモリコントローラ１００から受信したＣＫ信号によりＤＱＳ信号を生成し、ＤＱＳ信号に同期したＤＱ信号を生成する。ＤＱＳ信号及びＤＱ信号は同相である。
【００２５】
位相検出部１２１は、クロック生成部１３１によりＣＬＫ信号が分周されたＤＱＳ信号と同一周波数の信号と、第一の位相遅延部１３２からのＤＱＳ信号を遅延させた信号とを比較して位相差に基づく遅延量を、読み出し期間中連続的に検出する。ここで、ＤＱＰＨＡＳＥ信号が、ＣＬＫ信号が分周されたＤＱＳと同一周波数の信号と、ＤＱＳ信号が遅延された信号と、の位相差に基づく遅延量を表す情報信号である。より具体的な例は後述するが、ＤＱＰＨＡＳＥ信号は、周回数と、ＣＬＫ選択と、ＤＬと、の情報を有している。ＤＱＰＨＡＳＥ信号の周回数は、位相が何周したかを表し、ＤＱＰＨＡＳＥ信号のＣＬＫ選択は、所定位相差を単位とするＣＬＫ選択を表し、ＤＱＰＨＡＳＥ信号のＤＬは、所定位相差（たとえば、１８０度）未満の遅延調整量を表す。
【００２６】
さらに、位相検出部１２１は、読み出し期間終了時に、ＤＱＰＨＡＳＥ信号を記憶する。これにより、つぎの読み出し動作開始時に、後述する生成部１２２が、記憶されたＤＱＰＨＡＳＥ信号を用いて制御信号を遅延させることができる。
【００２７】
つぎに、位相設定部１２５は、メモリ１０１からＤＱＳ信号とＤＱ信号とをＩ／Ｏ  ＩＮＨ信号が“Ｈ”の期間（有効期間）に受信する。そして、位相設定部１２５は、ＤＱＳ信号およびＤＱ信号に所定の位相（９０度）の位相シフトを設定する。ＤＱＳ信号を位相シフトさせた信号がｄｑｓ９０信号である。また、Ｉ／Ｏ  ＩＮＨ信号は、位相設定部１２５が受信動作中であることを示す情報である。
【００２８】
また、位相設定部１２５は、ＤＱＳ信号とＤＱ信号とをＩ／Ｏ  ＩＮＨ信号が“Ｌ”の期間（非有効期間）に受信しない。さらに、位相設定部１２５は、ＤＱ信号をＤＱＳ信号の立ち上がり時のデータ信号と、ＤＱＳ信号の立ち下がり時のデータ信号との２つのデータ信号（それぞれｄｑ−ｅｖｅｎ信号、ｄｑ−ｏｄｄ信号）に分けて、第一の位相遅延部１３２へ出力する。
【００２９】
第一の位相遅延部１３２は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号に基づいて、所定位相差未満の範囲でＤＱＳ信号を遅延させる。さらに、第一の位相遅延部１３２は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した際のＤＱＰＨＡＳＥ信号に基づいて、ＤＱ信号に位相遅延を施す。具体的には、第一の位相遅延部１３２は、可変遅延回路を有する。第一の位相遅延部１３２は、ＤＱＰＨＡＳＥ信号を受け、所定位相差未満の遅延量をＤＱＳ信号に設定する。
【００３０】
また、第一の位相遅延部１３２は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｈ”の期間（有効期間）中に位相検出部１２１によりＤＱＰＨＡＳＥ信号の値が変化しても、“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号の値に基づく遅延量をＤＱＳ信号やＤＱ信号に施す。たとえば、第一の位相遅延部１３２は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号を記憶させるためにラッチ回路を有していてもよい。
【００３１】
これにより、位相検出部１２１が連続的にＤＱＰＨＡＳＥ信号を検出していても、第一の位相遅延部１３２がデータ信号を遅延させる期間中、ＰＨＳＥＬ  ＩＮＨ信号が“Ｈ”であれば、遅延量に用いるＤＱＰＨＡＳＥ信号は変化しない。したがって、ＤＱＰＨＡＳＥ信号の変動によって生じる論理的なヒゲパルスなどを防止することができる。
【００３２】
第二の位相遅延部１３３は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号に基づいて、第二の位相遅延部本体のｄｄｑ−ｏｄｄ信号とｄｄｑ−ｅｖｅｎ信号の取り込みタイミングを決定する。第二の位相遅延部１３３は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｈ”の期間（有効期間）中に位相検出部１２１によりＤＱＰＨＡＳＥ信号の値が変化しても、“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号の値に基づきｄｄｑ−ｅｖｅｎ信号、ｄｄｑ−ｏｄｄ信号の取りこむタイミングを保つ。たとえば、第二の位相遅延部１３３は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号を記憶させるためにラッチ回路を有していてもよい。
【００３３】
より具体的には、第二の位相遅延部１３３は、クロック生成部１４１と、第二の位相遅延部本体１４２とを有している。クロック生成部１４１は、ＣＬＫ信号を分周して、複数相のＣＬＫ信号を生成する。そして、クロック生成部１４１は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号に基づいて分周された複数相のＣＬＫ信号から１つの分周されたＣＬＫ信号を選択して、第二の位相遅延部本体１４２へ出力する。
【００３４】
第二の位相遅延部本体１４２は、クロック生成部１４１から分周されたＣＬＫ信号を受ける。そして、第二の位相遅延部本体１４２は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号に基づいて、ｄｄｑ−ｅｖｅｎ信号と、ｄｄｑ−ｏｄｄ信号とを取り込む。第二の位相遅延部本体１４２は、ｄｄｑ−ｅｖｅｎ信号をリタイミングしたｌｄｑ−ｅｖｅｎ信号と、ｄｄｑ−ｏｄｄ信号をリタイミングしたｌｄｑ−ｏｄｄ信号をセレクタ１２６へ出力する。
【００３５】
これにより、位相検出部１２１が連続的にＤＱＰＨＡＳＥ信号を検出していても、第二の位相遅延部１３３がデータ信号を遅延させる期間中、ＰＨＳＥＬ  ＩＮＨ信号が“Ｈ”であれば、遅延量やクロック選択信号に用いるＤＱＰＨＡＳＥ信号は変化しない。したがって、ＤＱＰＨＡＳＥ信号の変動によって生じる論理的なヒゲパルスなどを防止することができる。
【００３６】
セレクタ１２６は、第二の位相遅延部１３３の複数出力を選択する。具体的には、セレクタ１２６は、クロック生成部１４１で生成されたＣＬＫ信号を受け、ＣＬＫ信号を選択情報としてｌｄｑ−ｅｖｅｎ信号と、ｌｄｑ−ｏｄｄ信号とを交互に選択する。より具体的には、セレクタ１２６は、ＤＱＳ信号の立ち上がりエッジに対するｌｄｑ−ｅｖｅｎ信号と、ＤＱＳ信号の立ち下がり信号に対するｌｄｑ−ｏｄｄ信号とを交互に選択する。
【００３７】
データ保持部１２７は、セレクタ１２６で選択されたｌｄｑ−ｅｖｅｎ信号またはｌｄｑ−ｏｄｄ信号を保持するとともに、データ信号のクロックを基準ＣＬＫ信号に乗り換える。そこで、データ保持部１２７には、メモリコントローラ１００の内部または外部から与えられた基準ＣＬＫ信号がクロック生成部１３１の入力側から加えられる。データ保持部１２７では、基準ＣＬＫ信号に同期してｄｑ０信号を保持し、クロックを基準ＣＬＫ信号に乗り換え、ｄｑ０信号をＩＮ信号として出力する。そして、データ保持部１２７は、ＩＮ信号を信号復元回路１１２へ出力する。
【００３８】
ＤＱ信号における受信データの位相は、電源電圧、装置温度等の環境要因により変動している。そのため、内部クロックに乗り換えた後、受信データも同様に変動する。信号受信回路１１１では、内部クロック信号でＤＱ信号が正規化されたようになる。
【００３９】
しかしながら、内部クロック位相に乗り換えた受信データは、その取り込みクロックをタイムリーに進めたり遅らせたりしている。そのため、この影響でパルス幅はクロックを切り換えたと同時に１クロック幅分（＝ｔＣＫ／２＝２相クロックの相間遅延差分）だけ狭くなったり、広くなったりする。
【００４０】
そこで、信号復元回路１１２は、ＬＣ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号に基づいて、ＩＮ信号の遅延制御を行い、データのパルス幅を再生する処理を実現している。さらに、信号復元回路１１２は、ＬＣ  ＩＮＨ信号が“Ｈ”の期間中、ＤＱＰＨＡＳＥ信号の変化を禁止する。
【００４１】
これにより、位相検出部１２１が連続的にＤＱＰＨＡＳＥ信号を検出していても信号復元回路１１２がデータ信号（ＩＮ信号）を遅延させる期間中、ＬＣ  ＩＮＨ信号が“Ｈ”であれば、遅延量やクロック選択信号に用いるＤＱＰＨＡＳＥ信号は変化しない。したがって、ＤＱＰＨＡＳＥ信号の変動によって生じる論理的なヒゲパルスなどを防止することができる。たとえば、信号復元回路１１２は、ＬＣ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号を記憶させるためにラッチ回路を有していてもよい。
【００４２】
より具体的には、信号復元回路１１２は、データの遅延ばらつきを吸収するに十分なＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ  Ｆｉｒｓｔ−Ｏｕｔ）機能を有し、ＤＱＰＨＡＳＥ信号が持つ遅延量に応じ、ＦＩＦＯを通過する遅延時間を増加又は減少させる。これにより、信号受信回路１１１から出力される受信信号即ち、ＤＱ信号の遅延を一定に保つとともに、データパルス幅を再生している。
【００４３】
信号復元回路１１２による信号復元処理について、より具体的に述べる。ＤＱＰＨＡＳＥ信号が持つ遅延量が大きくなった場合（＝クロック乗り換えのための遅延が大きい場合）には、遅延量分だけＦＩＦＯを早く通過するようにすればよい。また、ＤＱＰＨＡＳＥ信号が持つ遅延量が小さくなれば、遅延量分だけＦＩＦＯを遅く通過するようにすればよい。このように、遅延量の増加又は減少により、データ信号を読み出し動作開始時から一定時間後に出力させることができる。したがって、読み出しデータの応答のばらつきを防止させることができる。
【００４４】
データパルス幅が常に一定になり、信号復元回路１１２の出力信号（ＤＱ  ＯＵＴ信号）が生成される。そして、ＤＱ  ＯＵＴ信号が安定した受信信号となる。即ち、原データ信号を忠実に復元することができる。
【００４５】
つぎに、生成部１２２は、信号復元回路１１２でデータ信号（ＩＮ信号）が遅延される遅延量との和が一定時間となる遅延量分、制御信号を遅延させることで、あらたな制御信号を生成する。あらたな制御信号は、Ｉ／Ｏ  ＩＮＨ信号、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号、ＰＨＳＥＬ  ＩＮＨ信号、ＬＣ  ＩＮＨ信号である。Ｉ／Ｏ  ＩＮＨ信号とＤＬ２  ＤＬＩＲ  ＩＮＨ信号と、ＰＨＳＥＬ  ＩＮＨ信号と、ＬＣ  ＩＮＨ信号との間での遅延量の差は、制御対象となる各部の回路の構成によってあらかじめ決定される。
【００４６】
また、Ｉ／Ｏ  ＩＮＨ信号、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号、ＰＨＳＥＬ  ＩＮＨ信号、ＬＣ  ＩＮＨ信号が“Ｈ”の期間（有効期間）は、制御信号の“Ｈ”の期間（有効期間）と同一時間幅であってもよいし、制御信号の“Ｈ”の期間に対してマージンがあってもよい。Ｉ／Ｏ  ＩＮＨ信号は、ＤＱ信号とＤＱＳ信号の受信を制御するため、マージンを持たせることで、ＤＱ信号とＤＱＳ信号の取り込み精度を向上させることができる。
【００４７】
図２は、本発明の一動作例を示すタイミングチャートである。タイミングチャート２００で示すように、読み出し動作開始から読み出しデータが出力されるまでの期間が一定時間となる。τは、１／基準ＣＬＫ信号である。そして、図２中、ｘ，ｙ，ｚ，ｉは、半導体装置の設計者があらかじめ設計時に定める固定値である。
【００４８】
たとえば、制御信号の立ち上がり時刻から、ＤＱ  ＯＵＴ信号から読み出しデータが出力される時刻までの時間は、図１で示した信号復元回路１１２と生成部１２２によって一定となる。そして、たとえば、制御信号の立ち上がり時刻からＰＨＳＥＬ  ＩＮＨ信号の立ち上がり時刻までの第２の遅延量分の遅延時間は、ｘτ＋（ｉ〜１）τである。そして、たとえば、読み出しデータが信号復元回路１１２に入力される時刻から、ＤＱ  ＯＵＴ信号にデータ信号が表れる時刻までの第１の遅延量分の遅延時間は、ｙτ＋（１〜ｉ）τである。（１〜ｉ）および（ｉ〜１）は、ＤＱＰＨＡＳＥ信号によって決定される。すなわち、第１の遅延量と第２の遅延量とは、相反している。
【００４９】
たとえば、ｘ＝６，ｙ＝１，ｚ＝２，ｉ＝１６の場合、ＤＱ  ＯＵＴ信号から読み出しデータが出力される時刻までの時間は、２４τとなる。そして、制御信号の立ち上がり時刻からＰＨＳＥＬ  ＩＮＨ信号の立ち上がり時刻までの時間は、６＋（１６〜１）τであり、すなわち、２２〜７τである。そして、読み出しデータが信号復元回路１１２に入力される時刻から、ＤＱ  ＯＵＴ信号から読み出しデータが出力される時刻までの時間は、１＋（１〜１６）τであり、すなわち、２〜１７τである。
【００５０】
実施例１によれば、図２で示すように、読み出しデータ信号を遅延させる遅延量と制御信号を遅延させる遅延量の和を一定に保つ。これにより、読み出しデータ信号の遅延処理中のみ制御信号が有効期間となる。したがって、制御信号の有効期間が、読み出し期間中すべてでなく、少なくとも１データ信号の読み出し時間幅あれば、読み出しデータ信号にＤＱＰＨＡＳＥ信号の変化による影響が発生するのを防止できる。そして、制御信号の有効期間を短縮化させることができるため、連続動作の切り替えを高速化させることができる。したがって、連続動作中の合計の動作期間を短縮させることができる。
【００５１】
（実施例２）
つぎに、実施例２では、実施例１で示したメモリコントローラの各部の詳細例について説明する。したがって、実施例２では、実施例１と同様の効果が得られる。また、実施例２では、実施例１で示した構成と同一構成については同一符号を付す。
【００５２】
図３は、実施例２にかかる半導体装置を示すブロック図である。まず、クロック生成部１３１は、クロックジェネレータ２０１と、セレクタ２０２とを有している。クロックジェネレータ２０１は複数相のＣＬＫ信号を生成する。たとえば、クロックジェネレータ２０１は、分周回路を有していてもよい。たとえば、クロックジェネレータ２０１は、分周回路によりＣＬＫ信号を分周し、複数相のＣＬＫ信号を生成する。
【００５３】
より具体的には、たとえば、クロックジェネレータ２０１は、２［ＧＨｚ］のＣＬＫ信号をクロックジェネレータ２０１によって２分周して１［ＧＨｚ］のＣＬＫ信号を得て、０度、１８０度の２相のＣＬＫ信号（それぞれＣＬＫ０ｄｅｇ１信号、ＣＬＫ１８０ｄｅｇ１信号）を生成している。
【００５４】
セレクタ２０２は、ＤＱＰＨＡＳＥ信号（後述するがＤＱＰＨＡＳＥ信号の下位５ビット目の値）をインバータ２２２で反転された値を選択信号として、ＣＬＫ０Ｄｅｇ１信号とＣＬＫ１８０Ｄｅｇ１信号のうち、いずれか一方の信号を位相検出部１２１へ出力する。
【００５５】
クロック出力部１２４は、フリップフロップ（ＦＦ）２０５および出力バッファ２０６を有し、クロックジェネレータ２０１から２分周された１８０度のＣＬＫ信号（ＣＬＫ１８０ｄｅｇ１）を受け、ＣＫ信号をメモリ１０１へ出力する。クロック出力部１２４の出力バッファ２０６とメモリ１０１の入力バッファ２３１との間のＣＫ信号が２本あるのは、差動対を示している。より具体的には、クロック出力部１２４では、ＦＦ２０５がＣＬＫ１８０ｄｅｇ１信号を受け、ＦＦ２０５の出力により出力バッファ２０６が、ＣＫ信号をメモリ１０１に対して出力する。
【００５６】
メモリ１０１からデータを読み出す場合、メモリ１０１は、入力バッファ２３１で受信したＣＫ信号によりＤＱＳ信号を生成し、ＤＱＳ信号に同期したＤＱ信号を生成する。メモリ１０１では、出力バッファ２３２がＤＱＳ信号を出力し、出力バッファ２３３がＤＱ信号を出力する。ＤＱＳ信号およびＤＱ信号は同相である。
【００５７】
位相設定部１２５は、ＤＱＳ信号およびＤＱ信号をＩ／Ｏ  ＩＮＨ信号が“Ｈ”の期間中受信し、所定の位相（９０度）を設定する。位相設定部１２５は、ＤＱＳ信号側に入力バッファ２０７、遅延回路（Ｄｅｌａｙ  Ｃｉｒｃｕｉｔ、以下、単に「ＤＬ」と称する）２０９、インバータ２１０を有し、ＤＱ信号側に入力バッファ２０８、ＦＦ２１１、ＦＦ２１２と、を有する。
【００５８】
入力バッファ２０７は、Ｉ／Ｏ  ＩＮＨ信号が“Ｈ”の期間中にＤＱＳ信号を受信して内部に出力し、“Ｌ”の期間中にＤＱＳ信号を内部に伝達しない。ＤＬ２０９は、入力バッファ２０７で受けたＤＱＳ信号に９０度の位相シフトを施し、ｄｑｓ９０信号を出力する。ＤＬ２０９を通過したＤＱＳ信号は、１〔ＧＨｚ〕のＣＬＫ信号である。
【００５９】
入力バッファ２０８は、Ｉ／Ｏ  ＩＮＨ信号が“Ｈ”の期間中にＤＱ信号を受信して内部に出力し、“Ｌ”の期間中にＤＱ信号を内部に伝達しない。ＦＦ２１１が、入力バッファ２０８が受信したＤＱ信号をｄｑｓ９０信号に同期して取り込み、ｄｑ−ｅｖｅｎ信号として出力する。また、ＦＦ２１２は、入力バッファ２０８が受信したＤＱ信号をインバータ２１０でｄｑｓ９０信号が反転された信号に同期して取り込み、ｄｑ−ｏｄｄ信号として出力する。ここでは、ＦＦ２１１とＦＦ２１２によって、ｄｑｓ９０信号の立ち上がり時のデータ信号（ｄｑ−ｅｖｅｎ信号）と、ｄｑｓ９０信号の立ち下がり時のデータ信号（ｄｑ−ｏｄｄ信号）とにＤＱ信号を分けている。
【００６０】
第一の位相遅延部１３２は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化したときのＤＱＰＨＡＳＥ信号に基づいて、１８０度未満の範囲でｄｑｓ９０信号の位相を遅延させる。さらに、第一の位相遅延部１３２は、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化したときのＤＱＰＨＡＳＥ信号に基づいて、ｄｑ−ｅｖｅｎ信号とｄｑ−ｏｄｄ信号とを遅延させる。
【００６１】
そこで、第一の位相遅延部１３２は、遅延回路（ＤＬ）２１５，２１６，２１７を有している。ＤＬ２１５，２１６，２１７は可変遅延量を入力された信号に対して設定して出力する。ＤＬ２１５は、ＤＱＰＨＡＳＥ信号（後述するがＤＱＰＨＡＳＥ信号の下位４ビット）を受け、ＤＬ２１５の遅延能力の限界値である、１８０度未満の遅延量をｄｑｓ９０信号に設定することで、ｄｄｑｓ信号を出力する。
【００６２】
また、ＤＬ２１６は、ＦＦ２１１側からのｄｑ−ｅｖｅｎ信号を遅延させ、ＤＬ２１７は、ＦＦ２１２側からのｄｑ−ｏｄｄ信号を遅延させる。この場合の位相遅延は、ＤＬ２１６，２１７の遅延能力の限界値である、１８０度未満の遅延量である。
【００６３】
また、たとえば、第一の位相遅延部１３２は、“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号を記憶させるためにラッチ回路を有していてもよく、ラッチ回路から出力される信号をＤＬ２１５，２１６，２１７へ出力してもよい。これにより、位相検出部１２１が連続的にＤＱＰＨＡＳＥ信号を検出していても、第一の位相遅延部１３２がデータ信号を遅延させる期間中、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｈ”であれば、遅延量に用いるＤＱＰＨＡＳＥ信号は変化しない。
【００６４】
位相検出部１２１は、クロック生成部１３１に生成されたクロック信号と、ｄｑｓ９０信号に位相が設定されたｄｄｑｓ信号とを、読み出し動作期間（Ｒｅａｄ  ｓｉｇ信号がＥｎａｂｅｌの期間）中に比較する。そして、位相検出部１２１は、比較結果に基づいて位相差を検出する。そして、位相検出部１２１は、位相差を表す位相情報として遅延情報（ＤＱＰＨＡＳＥ信号）を出力する。
【００６５】
そこで、位相検出部１２１は、サンプルホールド（Ｓ／Ｈ）回路２１３と、位相検出器２１４とを有する。Ｓ／Ｈ回路２１３は、第一の位相遅延部１３２でｄｑｓ９０信号が位相遅延されたｄｄｑｓ信号をサンプルホールドし、位相比較のための２つのクロック信号を生成する。
【００６６】
位相検出器２１４は、Ｓ／Ｈ回路２１３が生成した２つのクロック信号と、セレクタ２０２から出力された信号（ＣＬＫ０ｄｅｇ１信号またはＣＬＫ１８０ｄｅｇ１信号）とを比較して位相差を検出し、ＤＱＰＨＡＳＥ信号を出力する。ＤＱＰＨＡＳＥ信号は、ＤＱＳ信号の遅延量を表す情報信号であって、信号受信回路１１１から位相差情報として出力されるとともに、第一の位相遅延部１３２や信号復元回路１１２に出力される。また、ＤＱＰＨＡＳＥ信号はインバータ２２２で反転した後、選択信号としてセレクタ２２２に出力される。また、ＤＱＰＨＡＳＥ信号インバータ２２３で反転した後、選択信号としてセレクタ２２３に出力される。
【００６７】
図４は、ＤＱＰＨＡＳＥ信号の一例を示す説明図である。図５は、ＤＱＰＨＡＳＥ信号の位相を表す例を示す説明図である。位相追従範囲は、ＤＱＰＨＡＳＥ信号を何［Ｂｉｔ］で表すかによって決定される。たとえば、ＤＱＰＨＡＳＥ信号は、８桁２進数である。ＤＱＰＨＡＳＥ信号は、図４に示すように、任意のビット［Ｂｉｔ］長のディジタル量であり、初期値をたとえば、“０００００００００”とする。実施例２では、１８０度位相を１６等分したうちの一つの遅延（０〜１５／１６×１８０度）を実現している。図５に示すように、周回上の黒丸、斑丸、斜線丸、白丸の角度である。
【００６８】
１周期の３６０度を３２等分して表現しているので、図５において、第一象限（Ｉ）のＤＱＰＨＡＳＥ信号は、ＤＱＰＨＡＳＥ信号が“ｘｘｘｘ０ｘｘｘｘ”となる。第二象限（ＩＩ）のＤＱＰＨＡＳＥ信号は、ＤＱＰＨＡＳＥ信号が“ｘｘｘｘ１ｘｘｘｘ”となる。そして、遅延がｍ周した場合には、下５［Ｂｉｔ］が同じになる。
【００６９】
ここで、ＤＬ２１５を例に挙げると、遅延線を用いて、遅延線の長さが無限であれば、ＤＬ２１５のみで位相調整が可能である。しかしながら、現実には遅延線の長さは有限であり、ＤＬ２１５のみで位相調整をすることができない。しかも、ＤＬ２１５では、遅延を付加することはできるが、マイナス遅延はできない。
【００７０】
そこで、位相調整において、１８０度を１６等分（３６０度を３２等分）した精度で遅延調整する場合には、ＤＱＰＨＡＳＥ信号の下位４［Ｂｉｔ］が１８０度未満の調整量となる。この場合、ＤＱＰＨＡＳＥ信号の中位１［Ｂｉｔ］は、１８０度単位でどの位相を使うかの情報であって、１８０度を単位とする位相遅延を持つクロック信号の選択に用いる（セレクタ２０２やセレクタ２０４の選択信号）。
【００７１】
また、ＤＱＰＨＡＳＥ信号の上位４［Ｂｉｔ］は、位相を何周したかを表す信号であり、後述する−７〜７を表す信号である。たとえば、ＤＱＰＨＡＳＥ信号の上位４［Ｂｉｔ］が、２の補数で表され、“００００”の場合、０であり、“０１１１”の場合、７であり、“１１１１”の場合、−１であり、“１００１”の場合、−７である。
【００７２】
つぎに、図３の説明に戻って、第二の位相遅延部１３３は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した際のＤＱＰＨＡＳＥ信号に基づいて、１８０度を単位としてＤＱ信号の取り込みタイミングを変化させる。これにより、第二の位相遅延部１３３は、ＤＱＳ信号の位相から内部信号のクロック位相への乗り換えが行われる。
【００７３】
そこで、クロック生成部１４１は、クロックジェネレータ２０３と、セレクタ２０４とを有している。クロックジェネレータ２０３は複数相のＣＬＫ信号を生成する。たとえば、クロックジェネレータ２０３は、分周回路を有していてもよい。たとえば、クロックジェネレータ２０３は、分周回路によりＣＬＫ信号を分周し、複数相のＣＬＫ信号を生成する。
【００７４】
より具体的には、たとえば、クロックジェネレータ２０３は、２［ＧＨｚ］のＣＬＫ信号をクロックジェネレータ２０３によって２分周して１［ＧＨｚ］のＣＬＫ信号を得て、０度、１８０度の２相のＣＬＫ信号（それぞれＣＬＫ０ｄｅｇ２信号、ＣＬＫ１８０ｄｅｇ２信号）を生成している。
【００７５】
セレクタ２０４は、ＰＨＳＥＬ  ＩＮＨ信号によって確定された、ＤＱＰＨＡＳＥ信号（後述するＤＱＰＨＡＳＥ信号の下位５ビット目の値）をインバータ２２３で反転された値を選択信号とする。そして、セレクタ２０４は、選択信号に基づいて、ＣＬＫ０ｄｅｇ２信号とＣＬＫ１８０ｄｅｇ２信号のうち、いずれか一方の信号を第２の位相遅延部本体１４２へ出力する。
【００７６】
そこで、第二の位相遅延部本体１４２は、ＦＦ２１８，２１９およびインバータ２２０を有する。ＦＦ２１８は、ＤＱＰＨＡＳＥ信号の反転信号により、セレクタ２０４で選択されたクロック信号に同期してｄｄｑ−ｅｖｅｎ信号を取り込み、ｌｄｑ−ｅｖｅｎ信号を出力する。ＦＦ２１９は、ＤＱＰＨＡＳＥ信号の反転信号により、セレクタ２０４で選択されたクロック信号をインバータ２２０で反転させたクロック信号に同期してｄｄｑ−ｏｄｄ信号を取り込み、ｌｄｑ−ｏｄｄ信号を出力する。これにより、ｌｄｑ−ｅｖｅｎ信号とｄｑ−ｏｄｄ信号とは、内部クロック位相に乗り換えたデータ信号となる。
【００７７】
また、たとえば、第一の位相遅延部１３２は、“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号を記憶させるためにラッチ回路を有していてもよく、ラッチ回路から出力される信号をＤＬ２１５，２１６，２１７へ出力してもよい。これにより、位相検出部１２１が連続的にＤＱＰＨＡＳＥ信号を検出していても、第一の位相遅延部１３２がデータ信号を遅延させる期間中、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が“Ｈ”であれば、遅延量に用いるＤＱＰＨＡＳＥ信号は変化しない。
【００７８】
セレクタ１２６は、セレクタ２０４から出力されたクロック信号に基づいて、第二の位相遅延部１３３から出力されたｌｄｑ−ｅｖｅｎ信号と、ｌｄｑ−ｏｄｄ信号とのうち、いずれか一方の信号を選択する。したがって、セレクタ１２６は、セレクタ２０４から出力されたクロック信号の立ち上がりエッジと立ち下がりエッジに同期したデータ信号を出力する。
【００７９】
データ保持部１２７は、セレクタ１２６から出力されたデータ信号をＣＬＫ信号に同期して保持する。データ保持部１２７は、ＦＦ２２１を有している。ＦＦ２２１は、セレクタ１２６からの出力をＣＬＫ信号（ＤＱＳ信号の２倍周期の信号）に同期して保持し、保持した値をＩＮ信号として信号復元回路１１２へ出力する。これにより、ＩＮ信号は、ＤＱＳ信号の位相からＣＬＫ信号の位相に乗り換えられる。
【００８０】
つぎに、生成部１２２は、制御信号を遅延させてあらたな制御信号を生成し、各部に出力する。ここで、図６を用いて生成部１２２の詳細例について説明する。
【００８１】
図６は、生成部１２２の詳細例を示す説明図である。生成部１２２は、ＤＱＰＨＡＳＥ信号に応じて、制御信号を遅延させてＤＬ２  ＤＬＩＲ  ＩＮＨ信号、ＰＨＳＥＬ  ＩＮＨ信号、Ｉ／Ｏ  ＩＮＨ信号、ＬＣ  ＩＮＨ信号を生成する。具体的には、生成部１２２は、複数の記憶素子（ＦＦ６０１〜６１７）と複数のセレクタ６２１〜６３４とを有している。
【００８２】
ＦＦ６０１〜６１５は、制御信号をＤＱＰＨＡＳＥ信号の周回数に基づく配列開始位置から入力順に配列させて記憶する。そして、ＦＦ６０１〜６１５は、記憶された制御信号をＣＬＫ信号に同期して配列順に出力する。出力結果が、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号、Ｉ／Ｏ  ＩＮＨ信号である。
【００８３】
さらに、ＦＦ６１６が、ＣＬＫ信号に同期してＦＦ６１５の出力を取り込み、ＰＨＳＥＬ  ＩＮＨ信号を出力する。そして、ＦＦ６１７は、ＣＬＫ信号に同期してＦＦ６１６の出力を取り込み、ＬＣ  ＩＮＨ信号を出力する。
【００８４】
セレクタ６２１〜６３４は、ＦＦ６０１〜６１５を制御する記憶制御部である。セレクタ６２１〜６３４は、ＤＱＰＨＡＳＥ信号の周回数に基づき配列開始位置を選択する。より具体的には、ＦＦ６０１〜６１５は、セレクタ６２１〜６３４を介して、シフトレジスタのように接続されている。
【００８５】
ＤＬ２  ＤＬＩＲ  ＩＮＨ信号およびＩ／Ｏ  ＩＮＨ信号とＰＨＳＥＬ  ＩＮＨ信号との間の遅延量、ＰＨＳＥＬ  ＩＮＨ信号とＬＣ  ＩＮＨ信号との間の遅延量は、それぞれメモリコントローラ１００の設計によって決定される。
【００８６】
図３のメモリコントローラ１００の例では、データ信号が、第一の位相遅延部１３２や位相設定部１２５よりも１クロック分後で第二の位相遅延部１３３を通過する。そのため、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号およびＩ／Ｏ  ＩＮＨ信号と、ＰＨＳＥＬ  ＩＮＨ信号との間にＦＦ６１６がある。
【００８７】
図３のメモリコントローラ１００の例では、データ信号が、第二の位相遅延部１３３よりも１クロック分後で信号復元回路１１２を通過する。そのため、ＬＣ  ＩＮＨ信号と、ＰＨＳＥＬ  ＩＮＨ信号との間にＦＦ６１７がある。
【００８８】
また、図６の例では、ｘ＝０の場合を例に挙げているが、ｘ＝６の場合には、ＦＦ６１５の後段であり、かつＤＬ２  ＤＬＩＲ  ＩＮＨ信号の前にシフトレジスタ（ＦＩＦＯ）状態の６個のＦＦが配置される。図６中、ノードａ〜ｅは、図７と図８で示すタイミングチャートの説明用に付されている。
【００８９】
図７は、生成部１２２の動作例を示すタイミングチャート（その１）である。タイミングチャート７００では、ＣＬＫ信号の立ち上がりから次の立ち上がりの直前までを１周期として、理解の容易化のために、ＣＬＫ信号の上に順に番号を付している。１クロック目の立ち上がりは、図７中矢印の箇所である。図７の例では、ＤＱＰＨＡＳＥ信号の周回数が７である。
【００９０】
タイミングチャート７００では、制御信号が２クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化し、１データ信号の読み出し時間分の期間中“Ｈ”となる。ＤＱＰＨＡＳＥ信号の周回数が７であるため、セレクタ６２１が、制御信号を選択して出力する。そのため、ＦＦ６０１の出力であるノードａは、“Ｌ”のままである。
【００９１】
そして、ＦＦ６０２の出力であるノードｂは、２クロック目の立ち上がりで、“Ｌ”から“Ｈ”に変化する。そして、ＦＦ６０３の出力であるノードｃは、３クロック目の立ち上がりで、“Ｌ”から“Ｈ”に変化する。そして、ＦＦ６０４の出力であるノードｄは、４クロック目の立ち上がりで、“Ｌ”から“Ｈ”に変化する。そして、ＦＦ６０５の出力であるノードｅは、５クロック目の立ち上がりで、“Ｌ”から“Ｈ”に変化する。
【００９２】
ＤＬ２  ＤＬＩＲ  ＩＮＨ信号およびＩ／Ｏ  ＩＮＨ信号は、１６クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化する。そして、ＰＨＳＥＬ  ＩＮＨ信号は、１７クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化する。ＬＣ  ＩＮＨ信号は、１８クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化する。
【００９３】
よって、ＤＱＰＨＡＳＥ信号の周回数が７の場合、制御信号の立ち上がり時刻からＰＨＳＥＬ  ＩＮＨ信号の立ち上がり時刻までの時間は、１６τである。図２で示したｘτ＋（ｉ〜１）τにおいて、ｘが０であり、ＤＱＰＨＡＳＥ信号の周回数が７であるため、１５τとなる。ＤＱＰＨＡＳＥ信号の周回数の−７〜７は、それぞれｉの１〜１５に対応する。
【００９４】
図８は、生成部１２２の動作例を示すタイミングチャート（その２）である。図８の例では、ＤＱＰＨＡＳＥ信号の周回数が−７である。タイミングチャート８００では、２クロック目の立ち上がりで制御信号が“Ｌ”から“Ｈ”に変化し、１データ信号の読み出し時間分の期間中“Ｈ”となる。ＤＱＰＨＡＳＥ信号が−７であるため、セレクタ６３４は、制御信号を選択して出力する。
【００９５】
セレクタ６３４以外のセレクタ６２１〜６３３は、前段のＦＦの出力を入力とする。そのため、ノードａ〜ｅは“Ｌ”のままである。そして、ＤＬ２  ＤＬＩＲ  ＩＮＨ信号が、２クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化する。そして、ＰＨＳＥＬ  ＩＮＨ信号が、３クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化する。そして、ＬＣ  ＩＮＨ信号が、４クロック目の立ち上がりで“Ｌ”から“Ｈ”に変化する。
【００９６】
よって、ＤＱＰＨＡＳＥ信号の周回数が−７の場合、制御信号の立ち上がり時刻からＰＨＳＥＬ  ＩＮＨ信号の立ち上がり時刻までの時間は、１τである。図２で示したｘτ＋（ｉ〜１）τにおいて、ｘが０であり、ＤＱＰＨＡＳＥ信号の周回数が−７であるため、１τとなる。ＤＱＰＨＡＳＥ信号の周回数の−７〜７は、ｉの１〜１５にそれぞれ対応する。
【００９７】
つぎに、図３に戻って、信号復元回路１１２は、ＬＣ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＡＨＳＥ信号に応じて、ＩＮ信号の遅延制御を行い、ＩＮ信号のパルス幅を再生する処理を実現している。より具体的には、信号復元回路１１２は、データの遅延ばらつきを吸収するに十分なＦＩＦＯ機能を有し、ＤＱＰＨＡＳＥ信号が持つ遅延量に応じ、ＦＩＦＯを通過する遅延時間を増加又は減少させる。これにより、信号受信回路１１１から出力される受信信号即ち、ＤＱ信号の遅延を一定に保つとともに、データパルス幅を再生している。
【００９８】
図９は、信号復元回路１１２の詳細例を示す説明図である。信号復元回路１１２は、記憶部９０２と記憶制御部９０１とを有している。まず、記憶部９０２は、ＩＮ信号を入力順に配列させて記憶し、配列順にＩＮ信号の読み出しが可能である。記憶部９０２には、ＦＦ９２１〜ＦＦ９３６を有している。
【００９９】
記憶制御部９０１は、ＬＣ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化したときのＤＱＰＨＡＳＥ信号に基づいて、記憶部９０２における配列開始位置を選択する。より具体的には、記憶制御部９０１は、セレクタ群９１１を有している。セレクタ群９１１は、セレクタ９４１〜９５５を有している。
【０１００】
ここで、生成部１２２が有するセレクタ６２１〜６３４に与える選択信号と、信号復元回路１１２が有するセレクタ９４１〜９５５に与える選択信号とは、相反している。すなわち、生成部１２２と、信号復元回路１１２では、ＤＱＰＨＡＳＥ信号の取り扱いが逆である。これにより、読み出しデータに付ける遅延量と制御信号に付ける遅延量の和を一定に保つことができる。
【０１０１】
図１０は、メモリ１０１に対して連続して読み出し動作を行う例を示す説明図である。タイミングチャート１０００では、メモリ１０１がスロット１とスロット２とを有している場合に、メモリコントローラ１００が、スロット１の読み出し動作とスロット２の読み出し動作を連続して行った場合を示している。
【０１０２】
タイミングチャート１０００では、スロット１に対する読み出し期間中であっても、制御信号の有効期間（制御信号の“Ｈ”の期間）が重ならない。そのため、タイミングチャート１０００では、初めの制御信号の立ち下がりから次の制御信号の立ち上がりを定義された期間（ＤＤＲ３の例では、６ｔＣＫ）分空けている。そして、タイミングチャート１０００では、次の制御信号の立ち上がりと共に、スロット２に対する読み出し動作を開始している。したがって、制御信号の有効期間を１データ信号の読み出し時間以上で、一定時間未満にすることで、連続して読み出し動作を行った際の合計の読み出し期間を短縮させることができる。また、読み出し動作に限らず、書き込み動作を行うこともでき、動作の切り替えを高速化す回路全体として、より高速に動作切り替えを行うことが可能となる。
【０１０３】
また、連続的に変化するＤＱＰＨＡＳＥ信号が、データ信号が各部を通過中に変動しないように、制御信号によって各部で用いるＤＱＰＨＡＳＥ信号が確定することで、論理的なヒゲパルスが発生するのを防止することができる。実施例２によれば、実施例１と同様の効果が得られる。
【０１０４】
（実施例３）
実施例３では、読み出し先のメモリ（ＤＩＭＭ）が複数ある場合に、遅延量を検出する位相検出部をメモリごとに設けることで、読み出し先のメモリに沿った遅延量でデータ信号を遅延させることができる。これにより、異なるメモリへのアクセスが連続して動作しても、動作の切り替えを高速に行うことができる。したがって、全体の動作期間を短縮させることができる。また、実施例３では、実施例１，２と同一構成については同一符号を付し、詳細な説明を省略する。
【０１０５】
図１１は、実施例３にかかる半導体装置の一例を示すブロック図である。図１１では、メモリ１０１（メモリ１０１−１〜メモリ１０１−ｎ（ｎ≧２））が複数ある場合の例を示している。メモリ１０１ごとに位相検出部１２１がある。位相検出部１２１−１〜１２１−ｎのうち、ＤＩＭＭ選択信号によって読み出し対象となるメモリ１０１に対応する位相検出部１２１が選択される。
【０１０６】
また、位相検出部１２１−１〜１２１−ｎは、それぞれ対応するメモリ１０１−１〜１０１−ｎへの読み出し期間終了時に、ＤＱＰＨＡＳＥ信号を記憶する。
【０１０７】
図１２は、異なるメモリ１０１に対して読み出し動作が連続した場合の従来例を示す説明図である。図１３は、異なるメモリ１０１に対して読み出し動作が連続した場合の本発明例を示す説明図である。タイミングチャート１２００では、読み出し動作ごとに読み出し動作の開始から読み出し動作の終了までの読み出し期間で制御信号が“Ｈ”となっている。一方、タイミングチャート１３００では、読み出し動作ごとに読み出し動作の開始から１データ信号分の読み出し時間の期間で制御信号が“Ｈ”となっている。
【０１０８】
実施例３によれば、異なるＤＩＭＭへのアクセスが連続して動作しても、動作の切り替えを高速に行うことができる。したがって、全体の動作期間を短縮させることができる。
【０１０９】
（実施例４）
実施例４は、実施例１，２で示したクロック生成部が共通化される例を示す。また、実施例４では、実施例１，２と同一構成については同一符号を付し、詳細な説明を省略する。
【０１１０】
図１４は、実施例４にかかる半導体装置を示すブロック図である。実施例４では、第二の位相遅延部１３３でクロック生成部１４１を有さずに、クロック生成部１３１の出力を位相遅延部本体１４２で用いる。そのため、ＰＨＳＥＬ  ＩＮＨ信号がクロック生成部１３１に入力される。
【０１１１】
クロック生成部１３１は、ＣＬＫ信号を分周して、複数相のＣＬＫ信号を生成する。そして、クロック生成部１３１は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号に基づいて複数相のＣＬＫ信号から１つのＣＬＫ信号を選択して、第二の位相遅延部本体１４２や位相検出部１２１へ出力する。また、たとえば、クロック生成部１３１は、ＰＨＳＥＬ  ＩＮＨ信号が“Ｌ”から“Ｈ”に変化した時のＤＱＰＨＡＳＥ信号を記憶させるためにラッチ回路を有していてもよい。
【０１１２】
実施例４によれば、実施例１，２と同様の効果が得られる。さらに、実施例４によれば、クロック生成部１３１と同一のクロック生成部１４１を有さないことで、実施例１，２と比較してメモリコントローラ１００の回路規模を縮小することができる。
【０１１３】
また、実施例１〜４で示したメモリコントローラ１００は、たとえば、メモリ１０１ボードが装着されるマザーボードなどの基板に設けられていてもよい。
【０１１４】
（マザーボードに適用した例）
図１５は、マザーボードの一例を示すブロック図である。図１５に示すように、マザーボード１５００には、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、中央演算処理装置）１５０１およびソケット１５０２が設けられている。ＣＰＵ１５０１には、メモリコントローラ１００が設けられている。ソケット１５０２には、メモリボード１５０３が取り付けられる。また、ソケット１５０２はマザーボード１５００上に複数設けられていてもよい。
【０１１５】
以上説明したように、実施例１〜４で示した半導体装置によれば、連続的に変化するデータ信号の遅延量を確定させる制御信号の有効期間が読み出し期間より短くても、制御信号を遅延させて、データ信号の遅延処理中に有効化する。さらに、制御信号を遅延させる遅延量と、データ信号を遅延させる遅延量との和を一定にする。これにより、制御信号の有効期間を短縮化させることができるため、読み出し応答のばらつきを抑えつつ、連続動作時に複数の動作の切り替えを高速化させることができる。したがって、連続動作時の全体の動作時間を短縮することができる。
【０１１６】
また、制御信号の入力順に配列へ入力し、配列順に出力する際に、配列への第１の入力位置を制御することで、制御信号の遅延量を調整することができる。さらに、データ信号の入力順に配列へ入力し、配列順に出力する際に、配列への第２の入力位置を制御することで、データ信号の遅延量を調整することができる。さらに、第１の配列開始位置と、第２の配列開始位置が、相反することで、制御信号の遅延量と、データ信号の遅延量との和を一定にすることができる。
【符号の説明】
【０１１７】
１００  メモリコントローラ
１５００  マザーボード
１５０１  ＣＰＵ
１０１  メモリ
１２１  位相検出部
１２２  生成部
１２３  遅延制御部
６０１〜６１７  ＦＦ
６２１〜６３４  セレクタ
９０１  記憶制御部
９０２  記憶部
【図１】
2013042233.tif 000003
【図２】
2013042233.tif 000004
【図３】
2013042233.tif 000005
【図４】
2013042233.tif 000006
【図５】
2013042233.tif 000007
【図６】
2013042233.tif 000008
【図７】
2013042233.tif 000009
【図８】
2013042233.tif 000010
【図９】
2013042233.tif 000011
【図１０】
2013042233.tif 000012
【図１１】
2013042233.tif 000013
【図１２】
2013042233.tif 000014
【図１３】
2013042233.tif 000015
【図１４】
2013042233.tif 000016
【図１５】
2013042233.tif 000017
【国際調査報告】
2013042233.tif 000018
2013042233.tif 000019