(57)【要約】【課題】データ異常の発生を軽減する信号制御回路、情報処理装置及び信号制御方法を提供する。【解決手段】ＥＶＥＮ成分選択部１３及びＯＤＤ成分選択部２２は、ＤＱＳ信号の立上りを基にＤＱ信号から第１信号を取得し、ＤＱＳ信号の立下りを基にＤＱ信号から第２信号を取得する。可変遅延付加部１４及び２３は、内部クロック信号とＤＱＳ信号の立上りとの位相差を基に第１信号に第１の遅延を与え、内部クロック信号とＤＱＳ信号の立下りとの位相差を基に前記第２信号に第２の遅延を与える。データ取込部１５及び２４は、内部クロック信号を基に、第１の遅延が与えられた第１信号及び前記第２の遅延が与えられた第２信号からデータを取り込む。【選択図】図２
2015088065.tif 000002
【特許請求の範囲】
【請求項１】
参照信号の立上りを基にデータ信号から第１信号を取得し、前記参照信号の立下りを基に前記データ信号から第２信号を取得する取得部と、
基準信号と前記参照信号の立上りとの位相差を基に前記第１信号に第１の遅延を与え、前記基準信号と前記参照信号の立下りとの位相差を基に前記第２信号に第２の遅延を与える遅延付加部と、
前記基準信号を基に、前記第１の遅延が与えられた前記第１信号及び前記第２の遅延が与えられた前記第２信号からデータを取り込むデータ取込部と
を備えたことを特徴とする信号制御回路。
【請求項２】
前記遅延付加部は、
前記基準信号と前記参照信号の立上りとの位相差を検出する第１位相差検出部と、
前記第１位相差検出部により検出された位相差を基に前記第１信号に第１の遅延を与える第１遅延付加部と、
前記第１位相差検出部による位相差の検出と並行して、前記基準信号と前記参照信号の立下りとの位相差を検出する第２位相差検出部と、
前記第２位相差検出部により検出された位相差を基に前記第２信号に第２の遅延を与える第２遅延付加部と
を備えたことを特徴とする請求項１に記載の信号制御回路。
【請求項３】
前記遅延付加部は、
前記基準信号と前記参照信号の立上りとの位相差の検出と、前記基準信号と前記参照信号の立下りの位相差を検出とを所定のタイミングで切り替えて行う切替位相差検出部と、
前記切替位相差検出部により検出された位相差を基に前記第１信号に第１の遅延を与える第１遅延付加部と、
前記切替位相差検出部により検出された位相差を基に前記第２信号に第２の遅延を与える第２遅延付加部と、
を備えたことを特徴とする請求項１に記載の信号制御回路。
【請求項４】
演算部及びメモリコントローラを有する情報処理装置であって、
前記メモリコントローラは、
参照信号の立上りを基にデータ信号から第１信号を取得し、前記参照信号の立下りを基に前記データ信号から第２信号を取得する取得部と、
基準信号と前記参照信号の立上りとの位相差を基に前記第１信号に第１の遅延を与え、前記基準信号と前記参照信号の立下りとの位相差を基に前記第２信号に第２の遅延を与える遅延付加部と、
前記基準信号を基に、前記第１の遅延が与えられた前記第１信号及び前記第２の遅延が与えられた前記第２信号からデータを取り込むデータ取込部とを備え、
前記演算部は、前記データ取込部により取り込まれた前記データを用いて演算を行う
ことを特徴とする情報処理装置。
【請求項５】
参照信号の立上りを基にデータ信号から第１信号を取得し、
前記参照信号の立下りを基に前記データ信号から第２信号を取得し、
基準信号と参照信号の立上りとの位相差を基に前記第１信号に第１の遅延を与え、
前記基準信号と前記参照信号の立下りとの位相差を基に前記第２信号に第２の遅延を与え、
前記基準信号を基に、前記第１の遅延が与えられた前記第１信号及び前記第２の遅延が与えられた前記第２信号からデータを取り込む
ことを特徴とする信号制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号制御回路、情報処理装置及び信号制御方法に関する。
【背景技術】
【０００２】
信号制御回路であるメモリコントローラは、例えば、Double  Data  Rate（ＤＤＲ）３に代表されるＤＤＲメモリインタフェース（Memory  Interface）回路を有する。ＤＤＲメモリは、クロック信号のポジティブエッジとネガティブエッジの双方でデータの入出力をし、クロック周波数の２倍のデータ転送レートでデータ転送をするメモリである。
【０００３】
ＤＤＲメモリでは、メモリコントローラが、その内部で生成させた内部クロック信号をDual  In-line  Memory  Module（ＤＩＭＭ）に送信する。
【０００４】
そして、メモリコントローラからのリード要求に応じて、ＤＩＭＭはそのクロック信号からデータストローブ（ＤＱＳ）信号を生成し、このＤＱＳ信号をデータ（ＤＱ）信号とともにメモリインタフェースへ送出する。
【０００５】
メモリインタフェースは、これらＤＱＳ信号及びＤＱ信号を受信する。次に、メモリインタフェースは、受信したＤＱＳ信号に含まれる位相情報（エッジ）を基に、最適なＤＱ信号の取り込みタイミングを決定する。そして、メモリコントローラは、決定したタイミングでＤＱ信号を取り込む。
【０００６】
ＤＱＳ信号やＤＱ信号が経由する、メモリコントローラ、Printed  Circuit  Board（ＰＣＢ）、及びメモリ素子などの途中経路において発生する遅延は、温度や電源電圧などの装置動作環境により変化する。そのため、ＤＱＳ信号及びＤＱ信号がメモリコントローラに到着するタイミングは、装置動作環境の変化により変動する。近年、データ転送速度が高速化しており、この遅延のばらつきの影響が大きくなってきている。そのため、信号の到着タイミングの変動に追従して最適なデータ取り込みタイミングを決定することが行われている。
【０００７】
さらに、近年のメモリインタフェースの高速化に伴い、ＤＱ信号を読み込む際のタイミングマージンが縮小している。そのため、ＤＱ信号を読み込むタイミングの精度を向上させることが好ましい。
【０００８】
なお、データを適切なタイミングで読み込むために、０と１の出現確率を考慮して、データ信号の位相のずれ、立上り及び立下りを基に、デューティサイクルを調整する従来技術がある。
【０００９】
信号の立上り用の遅延量と立下り用の遅延量とを保持させ、立上りと立下りに異なる遅延量を与える従来技術がある。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２００９−２３２３６６号公報
【特許文献２】特開２００７−２２８０４４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
しかしながら、ＤＱＳ信号は、メモリコントローラ内部の電圧からメモリコントローラ外部での電圧へ変換するレベルコンバータや伝送路上でデューティ劣化が発生するおそれがある。ここで、ＤＤＲメモリでは、ＤＱＳ信号の立上りと立下りの両エッジでＤＱ信号を取り込む。この時、ＤＱＳ信号にデューティ劣化が発生していると、ＤＱ信号の取込みにおけるタイミングマージンが減少してしまう。それにより、ＤＤＲメモリがＤＱ信号を正確に取り込めず、データ異常が発生するおそれがある。
【００１２】
この点、０と１の出現確率を考慮してデューティサイクルを調整する従来技術を用いても、デューティが劣化した場合、ＤＱＳ信号の立上り又は立下りにおけるデータの取り込みを正確に行うことは困難である。
【００１３】
また、異なる遅延量により立上りにおける遅延と立下りにおける遅延を異ならせる従来技術を用いても、デューティ劣化が変化した場合には、ＤＱＳ信号の立上り又は立下りにおけるデータの取り込みを正確に行うことは困難である。
【００１４】
開示の技術は、上記に鑑みてなされたものであって、データ異常の発生を軽減する信号制御回路、情報処理装置及び信号制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本願の開示する信号制御回路、情報処理装置及び信号制御方法は、一つの態様において、取得部は、参照信号の立上りを基にデータ信号から第１信号を取得し、前記参照信号の立下りを基に前記データ信号から第２信号を取得する。遅延付加部は、基準信号と前記参照信号の立上りとの位相差を基に前記第１信号に第１の遅延を与え、前記基準信号と前記参照信号の立下りとの位相差を基に前記第２信号に第２の遅延を与える。データ取込部は、前記基準信号を基に、前記第１の遅延が与えられた前記第１信号及び前記第２の遅延が与えられた前記第２信号からデータを取り込む。
【発明の効果】
【００１６】
本願の開示する信号制御回路、情報処理装置及び信号制御方法の一つの態様によれば、データ異常の発生を軽減することができるという効果を奏する。
【図面の簡単な説明】
【００１７】
【図１】図１は、情報処理装置の概略構成図である。
【図２】図２は、実施例１に係るメモリインタフェース回路及び情報処理装置のブロック図である。
【図３】図３は、立上用先行信号及び立上用後行信号の位相情報の取得を表す図である。
【図４】図４は、位置判定テーブルの一例の図である。
【図５】図５は、立下用先行信号及び立下用後行信号の位相情報の取得を表す図である。
【図６】図６は、実施例１に係るメモリコントローラによるデータの取り込み処理のフローチャートである。
【図７】図７は、ＤＱＳ信号の位相が進んでいる場合の位相調整処理のタイミングチャートである。
【図８】図８は、ＤＱＳ信号の位相が遅れている場合の位相調整処理のタイミングチャートである。
【図９】図９は、デューティが劣化していない状態での各信号のタイミングを表す図である。
【図１０】図１０は、デューティ劣化時に立上りのタイミングのみで位相調整を行った場合の各信号のタイミングを表す図である。
【図１１】図１１は、実施例１に係るメモリインタフェース回路を使用した場合のＤｕｔｙ劣化時の各信号のタイミングを表す図である。
【図１２】図１２は、実施例２に係るメモリインタフェース回路及び情報処理装置のブロック図である。
【図１３】図１３は、実施例２に係る位相判定部の詳細を表すブロック図である。
【図１４】図１４は、実施例２に係る位相判定部による立下りの位相判定を説明するための図である。
【図１５】図１５は、実施例２に係るメモリコントローラによるデータの取り込み処理のフローチャートである。
【発明を実施するための形態】
【００１８】
以下に、本願の開示する信号制御回路、情報処理装置及び信号制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する信号制御回路、情報処理装置及び信号制御方法が限定されるものではない。
【実施例１】
【００１９】
図１は、情報処理装置の概略構成図である。本実施例に係る情報処理装置は、チップセット１００、Dual  Inline  Memory  Module（ＤＩＭＭ）２、及びCentral  Processing  Unit（ＣＰＵ）３を有する。
【００２０】
チップセット１００は、メモリコントローラ１０を搭載する。そして、メモリコントローラ１０は、メモリインタフェース回路１を有する。
【００２１】
ＤＩＭＭ２は、記憶媒体であるＤＲＡＭ（Dynamic  Random  Access  Memory）を有する記憶装置である。ＤＩＭＭ２は、データのリード要求及びクロック信号（ＣＬＫ）を後述するメモリインタフェース回路１から受信する。そして、ＤＩＭＭ２は、受信したクロック信号（ＣＬＫ）からデータストローブ（ＤＱＳ）信号を生成する。そして、ＤＩＭＭ２は、ＤＱＳ信号をデータ（ＤＱ）信号とともにメモリインタフェース回路１へ送信する。
【００２２】
ＣＰＵ３は、ＤＩＭＭ２からデータを読み出す命令であるリード要求のコマンドをチップセット１００上のメモリコントローラ１０へ送信する。そして、ＣＰＵ３は、リード要求で指定したデータをメモリコントローラ１０から受信する。その後、ＣＰＵ３の演算処理部３１は、受信したデータに対して処理を実行する。
【００２３】
メモリコントローラ１０は、リード要求のコマンドをＣＰＵ３から受信する。そして、メモリコントローラ１０は、内部クロック信号を生成し、生成した内部クロック信号とともにリード要求をメモリインタフェース回路１に対して送信する。その後、メモリコントローラ１０は、メモリインタフェース回路１が取り込んだデータを取得する。そして、メモリコントローラ１０は、取得したデータをＣＰＵ３へ送信する。
【００２４】
メモリインタフェース回路１は、リード要求をメモリコントローラ１０から受信する。さらに、メモリインタフェース回路１は、内部クロック信号をメモリコントローラ１０から受信する。そして、メモリインタフェース回路１は、リード要求とともにクロック（ＣＫ）信号をＤＩＭＭ２へ送信する。
【００２５】
その後、メモリインタフェース回路１は、データストローブ（ＤＱＳ）信号及びデータ（ＤＱ）信号を受信する。このＤＱＳ信号が、「参照信号」の一例にあたる。
【００２６】
次に、メモリインタフェース回路１は、ＤＱＳ信号に遅延を与えて内部クロック信号との同期をとる。この内部クロック信号が、「基準信号」の一例にあたる。
【００２７】
具体的には、メモリインタフェース回路１は、ＤＱＳ信号の立上りとＤＱＳ信号に固定遅延を与えた信号の立上りが内部クロック信号の立下りの前後にくるように、ＤＱＳ信号に遅延を与える。これにより、メモリインタフェース回路１は、ＤＱＳ信号の立上りの位相と内部クロック信号の位相とを一致させる遅延量を求める。この遅延量を「立上り側遅延量」という。また、メモリインタフェース回路１は、ＤＱＳ信号の立下りとＤＱＳ信号に固定遅延を与えた信号の立下りが内部クロック信号の立下りの前後にくるように、ＤＱＳ信号に遅延を与える。これにより、メモリインタフェース回路１は、ＤＱＳ信号の立下りの位相と内部クロック信号の位相とを一致させる遅延量を求める。この遅延量を「立下り側遅延量」という。
【００２８】
ここで、メモリインタフェース回路１は、ＤＱ信号をＤＱＳ信号の立上りのタイミングと立下りのタイミングの２つのタイミングで取り込む。すなわち、ＤＱ信号には、ＤＱＳ信号の立上りのタイミングで取り込まれる信号成分と、ＤＱＳ信号の立下りのタイミングで取り込まれる信号成分とを有する。そして、ＤＱＳ信号の立上りと立下りは交互に到来するので、ＤＱＳ信号の立上りのタイミングで取り込まれる信号成分とＤＱＳ信号の立下りのタイミングで取り込まれる信号成分とは、ＤＱ信号において交互に繰り返されることになる。すなわち、これらの信号成分の一方をＤＱ信号の偶数番目のデータとすると他方は奇数番目のデータとなる。そこで、以下では、説明の都合上、ＤＱＳ信号の立上りのタイミングで取り込まれる信号成分を、偶数番目のデータとして「ＥＶＥＮ成分」といい、ＤＱＳ信号の立下りのタイミングで取り込まれる信号成分を、奇数番目のデータとして「ＯＤＤ成分」という。
【００２９】
そして、メモリインタフェース回路１は、ＤＱ信号のＥＶＥＮ成分に立上り側遅延量を与える。そして、内部クロック信号を用いて、立上り側遅延量を与えたＤＱ信号のＥＶＥＮ成分からデータを取り込む。また、メモリインタフェース回路１は、ＤＱ信号のＯＤＤ成分に立下り側遅延量を与える。そして、内部クロック信号を用いて、立下り側遅延量を与えたＤＱ信号のＯＤＤ成分からデータを取り込む。その後、メモリインタフェース回路１は、取り込んだデータをＣＰＵ３へ送信する。このように、ＤＱＳ信号のクロック取り扱われるデータを、内部クロックで取り扱えるデータへ変換することを、「クロックドメインチェンジ」と呼ぶことがある。
【００３０】
図２を参照して、本実施例に係るメモリインタフェース回路１の詳細を説明する。図２は、実施例１に係るメモリインタフェース回路及び情報処理装置のブロック図である。図２では、クロックドメインチェンジの機能について説明するため、例えば、ＤＩＭＭ２へのクロック（ＣＬＫ）信号の送信などの機能については省略してある。
【００３１】
図２に示すように、本実施例に係るメモリインタフェース回路１は、立上側位相比較回路１１、ＥＶＥＮ成分選択部１３、可変遅延付加部１４及びデータ取込部１５を有する。また、メモリインタフェース回路１は、立下側位相比較回路１２、位相反転部２１、ＯＤＤ成分選択部２２、可変遅延付加部２３及びデータ取込部２４を有する。
【００３２】
立上側位相比較回路１１は、内部クロック信号の立下りとＤＱＳ信号の立上りのタイミングを合わせるための遅延量を求める回路である。以下に、立上側位相比較回路１１の詳細について説明する。
【００３３】
立上側位相比較回路１１は、可変遅延付加部１１１、固定遅延付加部１１２、ラッチ１１３、位相判定部１１４及び可変遅延制御部１１５を有する。この立上側位相比較回路１１が、「第１位相差検出部」の一例にあたる。
【００３４】
可変遅延付加部１１１は、ＤＱＳ信号をＤＩＭＭ２から受信する。また、可変遅延付加部１１１は、ＤＱＳ信号に与える遅延量を指定する可変遅延設定値を可変遅延制御部１１５から受ける。そして、可変遅延付加部１１１は、可変遅延設定値で指定されるステップ数分の遅延量をＤＱＳ信号に与える。ここで、ステップとは、予め決められた遅延量をＤＱＳ信号に与える単位である。すなわち、可変遅延付加部１１１は、可変遅延制御部１１５から受信したステップ数に予め決められた遅延量を乗算した値を遅延量としてＤＱＳ信号に与える。以下では、可変遅延付加部１１１が与える遅延量を「立上用可変遅延量」という。そして、可変遅延付加部１１１は、立上用可変遅延量を与えたＤＱＳ信号をラッチ１１３及び固定遅延付加部１１２へ出力する。
【００３５】
固定遅延付加部１１２は、立上用可変遅延量が与えられたＤＱＳ信号の入力を可変遅延付加部１１１から受ける。そして、固定遅延付加部１１２は、立上用可変遅延量が与えられたＤＱＳ信号に予め決められた遅延量を与える。以下では、固定遅延付加部１１２が与える遅延量を「立上用固定遅延量」という。その後、固定遅延付加部１１２は、立上用可変遅延量及び立上用固定遅延量が付加されたＤＱＳ信号をラッチ１１３へ出力する。
【００３６】
ラッチ１１３は、立上用可変遅延量が与えられたＤＱＳ信号の入力を可変遅延付加部１１１から受ける。また、ラッチ１１３は、立上用可変遅延量及び立上用固定遅延量が付加されたＤＱＳ信号の入力を固定遅延付加部１１２から受ける。以下では、可変遅延付加部１１１から出力された信号を「立上用先行信号」と呼び、固定遅延付加部１１２から出力された信号を「立上用後行信号」と呼ぶ。
【００３７】
また、ラッチ１１３は、内部クロック信号の入力をクロック発生部４０から受ける。さらに、ラッチ１１３は、立上用インヒビット（Inhibit：ＩＨ）信号の入力を可変遅延制御部１１５から受ける。
【００３８】
ラッチ１１３は、立上用ＩＨ信号がＬｏｗの場合、内部クロック信号の立下りのタイミングで立上用先行信号及び立上用後行信号の位相情報を取り込む。本実施例では、ラッチ１１３は、立上用ＩＨ信号がＨｉｇｈレベルの場合、位相情報を「１」として取り込み、立上用ＩＨ信号がＬｏｗレベルの場合、位相情報を「０」として取り込む。例えば、内部クロック信号が立下りのタイミングで、立上用先行信号がＨｉｇｈで、立上用後行信号がＬｏｗの場合、立上用先行信号の位相情報として「１」を取り込み、立上用後行信号の位相情報として「０」を取り込む。
【００３９】
ここで、図３を参照して、ラッチ１１３による位相情報の取得について説明する。図３は、立上用先行信号及び立上用後行信号の位相情報の取得を表す図である。図３の１番上のグラフが内部クロック信号を表す。また、上から２番目のグラフが立上用ＩＨ信号を表す。そして、図３におけるグラフ（ａ）及びグラフ（ｂ）のグラフ対２０１〜２０４において、グラフ（ａ）が立上用先行信号を表し、グラフ（ｂ）が立上用後行信号を表す。グラフ対２０１〜２０４は、それぞれ立上用先行信号及び立上用後行信号の組の位相の状態が異なる場合を示している。
【００４０】
ラッチ１１３は、ＩＨ信号がＬｏｗの状態で内部クロック信号の立下りのタイミングで立上用先行信号及び立上用後行信号の値を取得する。すなわち、ラッチ１１３は、タイミング２０５で立上用先行信号及び立上用後行信号の値を取得する。
【００４１】
グラフ対２０１の場合、立上用先行信号及び立上用後行信号のいずれもＨｉｇｈであり、ラッチ１１３は、位相情報としていずれも「１」を取得する。また、グラフ対２０２の場合、立上用先行信号はＨｉｇｈであり、立上用後行信号はＬｏｗである。すなわち、ラッチ１１３は、立上用先行信号の位相情報として「１」を取得し、立上用後行信号の位相情報として「０」を取得する。また、グラフ対２０３の場合、立上用先行信号及び立上用後行信号のいずれもＬｏｗであり、ラッチ１１３は、位相情報としていずれも「０」を取得する。また、グラフ対２０４の場合、立上用先行信号はＬｏｗであり、立上用後行信号はＨｉｇｈである。すなわち、ラッチ１１３は、立上用先行信号の位相情報として「０」を取得し、立上用後行信号の位相情報として「１」を取得する。
【００４２】
そして、ラッチ１１３は、立上用先行信号及び立上用後行信号の位相情報を位相判定部１１４へ出力する。
【００４３】
位相判定部１１４は、位相情報の組み合わせに対応する位相状態を記憶している。例えば、位相判定部１１４は、図４で表される判定テーブル２１０を記憶している。図４は、位置判定テーブルの一例の図である。図４では、位相情報を２ビットの情報で示す。位相情報は、２ビットのうち、上位ビットが立上用後行信号の値を表し、下位ビットが立上用先行信号の値を表す。
【００４４】
位相判定部１１４は、立上用先行信号及び立上用後行信号の位相情報の入力をラッチ１１３から受ける。そして、位相判定部１１４は、受信した位相情報の組み合わせに対応する位相状態を判定テーブル２１０から取得する。その後、位相判定部１１４は、取得した位相状態を可変遅延制御部１１５へ出力する。以下では、ＤＱＳ信号の位相が内部クロック信号の位相に比べて遅れている位相状態を、「位相遅延状態」という。また、ＤＱＳ信号の位相がクロック信号の位相に比べて進んでいる位相状態を、「位相前進状態」という。また、ＤＱＳ信号の位相とクロック信号の位相とが一致している位相状態を、「位相一致状態」という。さらに、ＤＱＳ信号の位相とクロック信号の位相とが本来発生しないはずの異常状態となっている状態を「位相異常状態」という。
【００４５】
可変遅延制御部１１５は、位相状態の入力を位相判定部１１４から受ける。そして、可変遅延制御部１１５は、位相遅延状態の場合、ＤＱＳ信号の位相を１ステップ分前進させる可変遅延設定値を求める。すなわち、可変遅延制御部１１５は、可変遅延付加部１１１へ通知したステップ数から１を減算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１１５は、求めた可変遅延設定値を可変遅延付加部１１１へ送信する。
【００４６】
また、可変遅延制御部１１５は、位相前進状態の場合、現在のＤＱＳ信号の位相からさらに予め決められた１ステップ分遅らせる可変遅延設定値を求める。すなわち、可変遅延制御部１１５は、可変遅延付加部１１１へ通知したステップ数に１を加算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１１５は、求めた可変遅延設定値を可変遅延付加部１１１へ送信する。
【００４７】
また、可変遅延制御部１１５は、位相一致状態の場合、可変遅延設定値を保持する指示を可変遅延付加部１１１へ送信する。
【００４８】
これに対して、位相状態が位相異常状態の場合、可変遅延制御部１１５は、ＤＱＳ信号の位相の調整を行わない。
【００４９】
さらに、可変遅延制御部１１５は、立上用先行信号及び立上用後行信号の位相情報からＩＨ信号を生成する。そして、可変遅延制御部１１５は、立上用ＩＨ信号をラッチ１１３へ出力する。
【００５０】
ＥＶＥＮ成分選択部１３は、ＤＱ信号の入力をＤＩＭＭ２から受ける。さらに、ＥＶＥＮ成分選択部１３は、ＤＱＳ信号の入力をＤＩＭＭ２から受ける。
【００５１】
そして、ＥＶＥＮ成分選択部１３は、ＤＱＳ信号の立上りのタイミングでＤＱ信号からＥＶＥＮ成分を取得する。その後、ＥＶＥＮ成分選択部１３は、取得したＤＱ信号のＥＶＥＮ成分を可変遅延付加部１４へ出力する。このＥＶＥＮ成分選択部１３が、「取得部」の一例にあたる。
【００５２】
可変遅延付加部１４は、位相一致状態とするための立上用可変遅延量を可変遅延付加部１１１から取得する。
【００５３】
また、可変遅延付加部１４は、ＤＱ信号のＥＶＥＮ成分の入力をＥＶＥＮ成分選択部１３から受ける。
【００５４】
そして、可変遅延付加部１４は、一致した位相状態となる立上用可変遅延量である立上り側遅延量をＤＱ信号のＥＶＥＮ成分に付加する。その後、可変遅延付加部１４は、立上り側遅延量を付加したＤＱ信号のＥＶＥＮ成分をデータ取込部１５へ送信する。この可変遅延付加部１４が、「第１遅延付加部」の一例にあたる。また、立上り側遅延量が、「第１の遅延」にあたる。
【００５５】
データ取込部１５は、立上り側遅延量が付加されたＤＱ信号のＥＶＥＮ成分の入力を可変遅延付加部１４から受ける。また、データ取込部１５は、可変遅延制御部１１５からＩＨ信号の入力を受ける。さらに、データ取込部１５は、クロック発生部４０から内部クロック信号の入力を受ける。
【００５６】
そして、データ取込部１５は、立上用ＩＨ信号がＬｏｗになっている間の内部クロック信号の立下りのタイミングで、ＤＱ信号のＥＶＥＮ成分からデータを取り込む。その後、データ取込部１５は、ＤＱ信号のＥＶＥＮ成分から取り込んだデータをＣＰＵ３へ出力する。
【００５７】
次に、立下り側の位相調整について説明する。位相反転部２１は、ＤＱＳ信号の入力をＤＩＭＭ２から受ける。次に、位相反転部２１は、受信したＤＱＳ信号の位相を反転させる。そして、位相反転部２１は、位相を反転させたＤＱＳ信号を可変遅延付加部１２１及びＯＤＤ成分選択部２２へ出力する。以下では、位相が反転したＤＱＳ信号を「反転ＤＱＳ信号」という。
【００５８】
立下側位相比較回路１２は、内部クロック信号の立下りとＤＱＳ信号の立下りのタイミングを合わせるための遅延量を求める回路である。以下に、立下側位相比較回路１２の詳細について説明する。
【００５９】
立下側位相比較回路１２は、可変遅延付加部１２１、固定遅延付加部１２２、ラッチ１２３、位相判定部１２４、可変遅延制御部１２５及び位相反転部１２６を有する。この立下側位相比較回路１２が、「第２位相差検出部」の一例にあたる。
【００６０】
可変遅延付加部１２１は、反転ＤＱＳ信号を位相反転部２１から受信する。また、可変遅延付加部１２１は、反転ＤＱＳ信号に与える遅延量を指定する可変遅延設定値を可変遅延制御部１２５から受ける。そして、可変遅延付加部１２１は、可変遅延設定値で指定されるステップ数分の遅延量を反転ＤＱＳ信号に与える。以下では、可変遅延付加部１２１が与える遅延量を「立下用可変遅延量」という。そして、可変遅延付加部１２１は、立下用可変遅延量を与えた反転ＤＱＳ信号をラッチ１２３及び固定遅延付加部１２２へ出力する。
【００６１】
固定遅延付加部１２２は、立下用可変遅延量が与えられた反転ＤＱＳ信号の入力を可変遅延付加部１２１から受ける。そして、固定遅延付加部１２２は、立下用可変遅延量が与えられた反転ＤＱＳ信号に予め決められた遅延量を与える。以下では、固定遅延付加部１２２が与える遅延量を「立下用固定遅延量」という。その後、固定遅延付加部１２２は、立下用可変遅延量及び立下用固定遅延量が付加された反転ＤＱＳ信号をラッチ１２３へ出力する。
【００６２】
ラッチ１２３は、立下用可変遅延量が与えられた反転ＤＱＳ信号の入力を可変遅延付加部１２１から受ける。また、ラッチ１２３は、立下用可変遅延量及び立下用固定遅延量が付加された反転ＤＱＳ信号の入力を固定遅延付加部１２２から受ける。以下では、可変遅延付加部１２１から出力された信号を「立下用先行信号」と呼び、固定遅延付加部１２２から出力された信号を「立下用後行信号」と呼ぶ。
【００６３】
また、ラッチ１２３は、内部クロック信号の入力をクロック発生部４０から受ける。さらに、ラッチ１２３は、立下用ＩＨ信号の入力を位相反転部１２６から受ける。立下用ＩＨ信号は、後述する可変遅延制御部１２５が出力する立上用ＩＨ信号の位相を反転した信号である。
【００６４】
ラッチ１２３は、立下用ＩＨ信号がＬｏｗの場合、内部クロック信号の立下りのタイミングで立下用先行信号及び立下用後行信号の位相情報を取り込む。本実施例では、ラッチ１２３は、信号がＨｉｇｈレベルの場合、位相情報を「１」として取り込み、立下用ＩＨ信号がＬｏｗレベルの場合、位相情報を「０」として取り込む。例えば、内部クロック信号が立下りのタイミングで、立下用先行信号がＨｉｇｈで、立下用後行信号がＬｏｗの場合、立下用先行信号の位相情報として「１」を取り込み、立下用後行信号の位相情報として「０」を取り込む。
【００６５】
ここで、ラッチ１２３が用いる反転ＤＱＳ信号の位相はラッチ１１３で用いるＤＱＳ信号の位相を反転させたものである。そして、後述するように、ラッチ１２３が用いる立下用ＩＨ信号は、可変遅延制御部１２５が生成したＩＨ信号の位相を反転させたものである。すなわち、ラッチ１２３は、立下用ＩＨ信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで反転ＤＱＳ信号の立上りの位相状態を取得することで、ＤＱＳ信号の立下りの位相状態を取得することができる。
【００６６】
ここで、図５を参照して、ラッチ１２３による位相情報の取得について説明する。図５は、立下用先行信号及び立下用後行信号の位相情報の取得を表す図である。図５の１番上のグラフが内部クロック信号を表す。また、上から２番目のグラフが立下用ＩＨ信号を表す。そして、図５におけるグラフ（ｃ）及びグラフ（ｄ）のグラフ対２２１〜２２４において、グラフ（ｃ）が立下用先行信号を表し、グラフ（ｄ）が立下用後行信号を表す。グラフ対２２１〜２２４は、それぞれ立下用先行信号及び立下用後行信号の組の位相の状態が異なる場合を示している。
【００６７】
ラッチ１２３は、ＩＨ信号がＬｏｗの状態で内部クロック信号の立下りのタイミングで立下用先行信号及び立下用後行信号の値を取得する。すなわち、ラッチ１２３は、タイミング２２５で立下用先行信号及び立下用後行信号の値を取得する。
【００６８】
グラフ対２２１の場合、立下用先行信号及び立下用後行信号のいずれもＨｉｇｈであり、ラッチ１２３は、位相情報としていずれも「１」を取得する。また、グラフ対２２２の場合、立下用先行信号はＨｉｇｈであり、立下用後行信号はＬｏｗである。すなわち、ラッチ１２３は、立下用先行信号の位相情報として「１」を取得し、立下用後行信号の位相情報として「０」を取得する。また、グラフ対２２３の場合、立下用先行信号及び立下用後行信号のいずれもＬｏｗであり、ラッチ１２３は、位相情報としていずれも「０」を取得する。また、グラフ対２２４の場合、立下用先行信号はＬｏｗであり、立下用後行信号はＨｉｇｈである。すなわち、ラッチ１２３は、立下用先行信号の位相情報として「０」を取得し、立下用後行信号の位相情報として「１」を取得する。
【００６９】
そして、ラッチ１２３は、立下用先行信号及び立下用後行信号の位相情報を位相判定部１２４へ出力する。
【００７０】
位相判定部１２４は、位相情報の組み合わせに対応する位相状態を記憶している。例えば、位相判定部１２４も、図４の判定テーブル２１０を記憶している。上述したように反転ＤＱＳ信号の位相はＤＱＳ信号の位相を反転させたものであり、立下用ＩＨ信号は可変遅延制御部１２５が生成した立上用ＩＨ信号の位相を反転させたものである。そのため、位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報を用いた判定論理として位相判定部１１４が用いる判定論理と同様となる。このように、判定論理を一致させることで回路設計時間を短縮することができる。
【００７１】
ただし、ＤＱＳ信号の位相の反転や立上用ＩＨ信号の位相の反転を行わずに、位相判定部１２４における立下り用の判定論理として、立上り用の判定論理と異なる位相判定テーブルを用いることで、同様の動作が可能である。例えば、立下り用の位相判定テーブルは、立下用先行信号及び立下用後行信号の位相信号を並べた２ビットの位相情報が、「００」の場合に「位相前進状態」、「１０」の場合に「位相一致状態」、「１１」の場合に「位相遅延状態」、「０１」の場合に「位相異常状態」となる判定論理を有するテーブルである。
【００７２】
位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報の入力をラッチ１２３から受ける。そして、位相判定部１２４は、受信した位相情報の組み合わせに対応する位相状態を判定テーブル２１０から取得する。その後、位相判定部１２４は、取得した位相状態を可変遅延制御部１２５へ出力する。
【００７３】
可変遅延制御部１２５は、位相状態の入力を位相判定部１２４から受ける。そして、可変遅延制御部１２５は、位相遅延状態の場合、反転ＤＱＳ信号の位相を１ステップ分前進させる可変遅延設定値を求める。すなわち、可変遅延制御部１２５は、可変遅延付加部１２１へ通知したステップ数から１を減算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１２５は、求めた可変遅延設定値を可変遅延付加部１２１へ送信する。
【００７４】
また、可変遅延制御部１２５は、位相前進状態の場合、現在の反転ＤＱＳ信号の位相からさらに１ステップ分遅延させる可変遅延設定値を求める。すなわち、可変遅延制御部１２５は、可変遅延付加部１２１へ通知したステップ数に１を加算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１２５は、求めた可変遅延設定値を可変遅延付加部１２１へ送信する。
【００７５】
また、可変遅延制御部１２５は、位相一致状態の場合、可変遅延設定値を保持する指示を可変遅延付加部１２１へ送信する。
【００７６】
これに対して、位相状態が位相異常状態の場合、可変遅延制御部１２５は、反転ＤＱＳ信号の位相の調整を行わない。
【００７７】
さらに、可変遅延制御部１２５は、立下用先行信号及び立下用後行信号の位相情報からＩＨ信号を生成する。そして、可変遅延制御部１２５は、ＩＨ信号を位相反転部１２６へ出力する。
【００７８】
位相反転部１２６は、立下用ＩＨ信号の入力を可変遅延制御部１２５から受ける。そして、位相反転部１２６は、受信した立下用ＩＨ信号の位相を反転させる。そして、位相反転部１２６は、位相を反転させた立下用ＩＨ信号をラッチ１２３及びデータ取込部２４へ出力する。
【００７９】
ＯＤＤ成分選択部２２は、ＤＱ信号の入力をＤＩＭＭ２から受ける。さらに、ＯＤＤ成分選択部２２は、反転ＤＱＳ信号の入力を位相反転部２１から受ける。
【００８０】
そして、ＯＤＤ成分選択部２２は、反転ＤＱＳ信号の立上りのタイミングでＤＱ信号のＯＤＤ成分を取得する。その後、ＯＤＤ成分選択部２２は、取得したＤＱ信号のＯＤＤ成分を可変遅延付加部２３へ出力する。このＯＤＤ成分選択部２２が、「取得部」の一例にあたる。
【００８１】
可変遅延付加部２３は、反転ＤＱＳ信号の立上りの位相と内部クロック信号の立下りの位相とが一致した位相状態となる立下用可変遅延量である立下り側遅延量を可変遅延付加部１２１から取得する。言い換えれば、可変遅延付加部２３は、ＤＱＳ信号の立下りの位相と内部クロック信号の立下りの位相とが一致した位相状態となるような立下用可変遅延量を可変遅延付加部１２１から取得する。以下では、ＤＱＳ信号の立下りの位相と内部クロック信号の立下りの位相とが一致した位相状態を「位相一致状態」として説明する。
【００８２】
また、可変遅延付加部２３は、ＤＱ信号のＯＤＤ成分の入力をＯＤＤ成分選択部２２から受ける。
【００８３】
そして、可変遅延付加部２３は、立下り側遅延量をＤＱ信号のＯＤＤ成分に付加する。その後、可変遅延付加部２３は、立下り側遅延量を付加したＤＱ信号のＯＤＤ成分をデータ取込部２４へ送信する。この可変遅延付加部２３が、「第２遅延付加部」の一例にあたる。また、立下り側遅延量が、「第２の遅延」の一例にあたる。
【００８４】
データ取込部２４は、立下り側遅延量が付加されたＤＱ信号のＯＤＤ成分の入力を可変遅延付加部２３から受ける。また、データ取込部２４は、位相反転部１２６から反転ＩＨ信号の入力を受ける。さらに、データ取込部２４は、クロック発生部４０から内部クロック信号の入力を受ける。
【００８５】
そして、データ取込部２４は、立下用ＩＨ信号がＬｏｗになっている間の内部クロック信号の立下りのタイミングで、ＤＱ信号のＯＤＤ成分からデータを取り込む。その後、データ取込部２４は、ＤＱ信号のＯＤＤ成分から取り込んだデータをＣＰＵ３へ出力する。
【００８６】
次に、図６を参照して、本実施例に係るメモリコントローラ１０によるデータの取り込み処理の全体的な流れについて説明する。図６は、実施例１に係るメモリコントローラによるデータの取り込み処理のフローチャートである。図６のフローチャートにおいて、ステップＳ１〜Ｓ４、Ｓ９がＤＱＳ信号の立上りを用いたデータの取り込み処理である。一方、ステップＳ５〜Ｓ９がＤＱＳ信号の立下りを用いたデータの取り込み処理である。図６に示すフローチャートでは、ステップＳ１〜Ｓ４、Ｓ９及びステップＳ５〜Ｓ９それぞれの処理が並行して行われることを示している。
【００８７】
ラッチ１１３は、立上用先行信号及び立上用後行信号の入力を可変遅延付加部１１１及び固定遅延付加部１１２から受ける。そして、ラッチ１１３は、立上用先行信号及び立上用後行信号それぞれの位相状態を取得する。その後、ラッチ１１３は、立上用先行信号及び立上用後行信号それぞれの位相状態を位相判定部１１４へ出力する。位相判定部１１４は、ラッチ１１３から受信した立上用先行信号及び立上用後行信号それぞれの位相状態から、ＤＱＳ信号の立上りの位相が一致しているか否かを判定する（ステップＳ１）。
【００８８】
位相が一致していない場合（ステップＳ１：否定）、可変遅延制御部１１５は、立上の可変遅延設定値の調整を行う（ステップＳ２）。その後、立上側位相比較回路１１は、ステップＳ１へ処理を戻す。
【００８９】
これに対して、位相が一致している場合（ステップＳ１：肯定）、可変遅延付加部１４は、ＤＱ信号のＥＶＥＮ成分に、ＤＱＳ信号の立上りと内部クロック信号との位相を一致させるための立上用可変遅延量を付加する（ステップＳ３）。
【００９０】
データ取込部１５は、可変遅延制御部１１５により生成された立上用ＩＨ信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで、立上用可変遅延量が付加されたＤＱ信号のＥＶＥＮ成分からデータを取り込む（ステップＳ４）。
【００９１】
一方、ラッチ１２３は、反転ＤＱＳ信号から生成された立下用先行信号及び立下用後行信号の入力を可変遅延付加部１２１及び固定遅延付加部１２２から受ける。そして、ラッチ１２３は、立下用先行信号及び立下用後行信号それぞれの位相状態を取得する。その後、ラッチ１２３は、立下用先行信号及び立下用後行信号それぞれの位相状態を位相判定部１２４へ出力する。位相判定部１２４は、ラッチ１２３から受信した立下用先行信号及び立下用後行信号それぞれの位相状態から、ＤＱＳ信号の立下りの位相が一致しているか否かを判定する（ステップＳ５）。
【００９２】
位相が一致していない場合（ステップＳ５：否定）、可変遅延制御部１２５は、立下の可変遅延設定値の調整を行う（ステップＳ６）。その後、立下側位相比較回路１２は、ステップＳ５へ戻る。
【００９３】
これに対して、位相が一致している場合（ステップＳ５：肯定）、可変遅延付加部２３は、ＤＱ信号のＯＤＤ成分に、ＤＱＳ信号の立下りと内部クロック信号との位相を一致させる立下用可変遅延量を付加する（ステップＳ７）。
【００９４】
データ取込部２４は、可変遅延制御部１２５により生成されたＩＨ信号の位相を反転させた信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで、立下用可変遅延量が付加されたＤＱ信号のＯＤＤ成分からデータを取り込む（ステップＳ８）。
【００９５】
その後、ＣＰＵ３は、ＤＱ信号のＥＶＥＮ成分から取り込まれたデータ及びＤＱ信号のＯＤＤ成分から取り込まれたデータを取得する（ステップＳ９）。これにより、ＣＰＵ３は、ＤＩＭＭ２からデータを読み出すことができる。
【００９６】
次に、図７を参照して、ＤＱＳ信号の位相が内部クロック信号（ＣＬＫ）に対し、進んでいる場合の位相調整処理の全体的な流れを説明する。図７は、ＤＱＳ信号の位相が進んでいる場合の位相調整処理のタイミングチャートである。
【００９７】
図７の横軸は時間の経過を表す。ＣＬＫは、内部クロック信号を表す。ＤＱＳは、ＤＱＳ信号を表す。信号３０１は、立上用先行信号を表す。また、信号３０２は、立上用後行信号を表す。また、信号３０３は、立上用ＩＨ信号を表す。また、立上設定値は、立上り側の位相調整に用いる可変遅延設定値を表す。また、反転ＤＱＳは、反転ＤＱＳ信号を表す。また、信号３０４は、立下用先行信号を表す。また、信号３０５は、立下用後行信号を表す。また、信号３０６は、立下用ＩＨ信号を表す。また、立下設定値は、立下り側の位相調整に用いる可変遅延設定値を表す。
【００９８】
信号３０１及び信号３０２は、立上用ＩＨ信号３０３がＬｏｗの場合に値が取得される。すなわち、Ｂ０、Ｂ１、及びＢ２のタイミングで、ラッチ１１３は、信号３０１及び信号３０２の値を取得する。信号３０４及び信号３０５は、立下用ＩＨ信号３０６がＬｏｗの場合に値が取得される。すなわち、Ａ０、Ａ１、及びＡ２のタイミングで、ラッチ１２３は、信号３０４及び信号３０５の値を取得する。
【００９９】
立上り側位相調整では、可変遅延付加部１１１は、信号３０１に可変遅延設定値が「ｎ−１」分の立上用可変遅延量を有する可変遅延を与えている（ステップＳ１０）。信号３０２は、信号３０１に固定遅延が付加された信号となっている。
【０１００】
ラッチ１１３は、信号３０３がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ１１）。すなわち、タイミングＢ０において、ラッチ１１３は、信号３０１及び信号３０２の値を取得する（ステップＳ１２）。この場合、ラッチ１１３は、信号３０１の値として「１」を取得し、信号３０２の値として「１」を取得する。位相判定部１１４は、「１１」という位相情報の組の入力をラッチ１１３から受ける（ステップＳ１３）。ここで、位相情報の組を２ビット表現する。「１１」は、上位ビットが立上用後行信号の値を表し、下位ビットが立上用先行信号の値を表す。以下では、先行信号及び後行信号の位相情報の組を、単に「位相情報」という場合がある。
【０１０１】
位相判定部１１４は、位相前進状態であると判定する。そして、位相判定部１１４は、位相前進状態である旨を可変遅延制御部１１５へ通知する（ステップＳ１４）。可変遅延制御部１１５は、可変遅延設定値に１を加算し新たな可変遅延設定値を求める。図７では、可変遅延制御部１１５は、「ｎ−１」であった可変遅延設定値に１を加算して、新たな可変遅延設定値として「ｎ」を求めている。そして、可変遅延制御部１１５は、求めた可変遅延設定値を可変遅延付加部１１１へ通知する（ステップＳ１５）。
【０１０２】
可変遅延付加部１１１は、可変遅延設定値の入力を可変遅延制御部１１５から受けて、１ステップ分遅延量を増加させた立上用可変遅延量をＤＱＳ信号に与える（ステップＳ１６）。ここで、立上用可変遅延量は前回加えた値に比べて増えているので、信号３０１及び３０２の遅延は増加する。
【０１０３】
次に、ラッチ１１３は、信号３０３がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ１７）。すなわち、タイミングＢ１において、ラッチ１１３は、信号３０１及び信号３０２の値を取得する（ステップＳ１８）。この場合、ラッチ１１３は、信号３０１の値として「１」を取得し、信号３０２の値として「０」を取得する。位相判定部１１４は、「０１」という位相情報の入力をラッチ１１３から受ける（ステップＳ１９）。
【０１０４】
位相判定部１１４は、位相情報が「０１」であることから、ＤＱＳ信号の位相が一致したと判定する（ステップＳ２０）。そして、位相判定部１１４は、一致した位相状態である旨を可変遅延制御部１１５へ通知する。可変遅延制御部１１５は、位相が一致したことから、可変遅延量の保持を可変遅延付加部１４へ指示する（ステップＳ２１）。
【０１０５】
一方、立下り側位相調整では、可変遅延付加部１２１は、信号３０４に可変遅延設定値が「ｍ−１」分の立下用可変遅延量を有する可変遅延を与えている（ステップＳ２２）。信号３０５は、信号３０４に固定遅延が付加された信号となっている。
【０１０６】
ラッチ１２３は、信号３０６がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ２３）。すなわち、タイミングＡ０において、ラッチ１２３は、信号３０４及び信号３０５の値を取得する（ステップＳ２４）。この場合、ラッチ１２３は、信号３０４の値として「１」を取得し、信号３０５の値として「１」を取得する。位相判定部１２４は、「１１」という位相情報をラッチ１２３から受ける（ステップＳ２５）。
【０１０７】
位相判定部１２４は、進んだ位相状態であると判定する。そして、位相判定部１２４は、進んだ位相状態である旨を可変遅延制御部１２５へ通知する（ステップＳ２６）。可変遅延制御部１２５は、可変遅延設定値に１を加算し新たな可変遅延設定値を求める。図７では、可変遅延制御部１２５は、「ｍ−１」であった可変遅延設定値に１を加算して、新たな可変遅延設定値として「ｍ」を求めている。そして、可変遅延制御部１２５は、求めた可変遅延設定値を可変遅延付加部１２１へ通知する（ステップＳ２７）。
【０１０８】
可変遅延付加部１２１は、可変遅延設定値の入力を可変遅延制御部１２５から受けて、１ステップ分遅延量を増加させた立下用可変遅延量をＤＱＳ信号に与える（ステップＳ２８）。ここで、立下用可変遅延量は前回加えたものに比べて増えているので、信号３０４及び３０５の遅延は増加する。
【０１０９】
続いて、ラッチ１２３は、信号３０６がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ２９）。すなわち、タイミングＡ１において、ラッチ１２３は、信号３０４及び信号３０５の値を取得する（ステップＳ３０）。この場合、ラッチ１２３は、信号３０４の値として「１」を取得し、信号３０５の値として「０」を取得する。位相判定部１２４は、「０１」という位相情報の入力をラッチ１２３から受ける（ステップＳ３１）。
【０１１０】
位相判定部１２４は、位相情報が「０１」であることから、ＤＱＳ信号の位相が一致したと判定する（ステップＳ３２）。そして、位相判定部１２４は、一致した位相状態である旨を可変遅延制御部１２５へ通知する。可変遅延制御部１２５は、立下用可変遅延量の保持を可変遅延付加部１２１へ指示する（ステップＳ３３）。
【０１１１】
次に、図８を参照して、ＤＱＳ信号の位相が内部クロック信号（ＣＬＫ）に対し、遅れている場合の位相調整処理の全体的な流れを説明する。図８は、ＤＱＳ信号の位相が遅れている場合の位相調整処理のタイミングチャートである。
【０１１２】
図８の横軸は時間の経過を表す。また、信号３１１は、立上用先行信号を表す。また、信号３１２は、立上用後行信号を表す。また、信号３１３は、立上用ＩＨ信号を表す。また、信号３１４は、立下用先行信号を表す。また、信号３１５は、立下用後行信号を表す。また、信号３１６は、立下用ＩＨ信号を表す。信号３１１及び信号３１２は、立上用ＩＨ信号３１３がＬｏｗの場合に値が取得される。すなわち、Ｂ０、Ｂ１、及びＢ２のタイミングで、ラッチ１１３は、信号３１１及び信号３１２の値を取得する。信号３１４及び信号３１５は、立下用ＩＨ信号３１６がＬｏｗの場合に値が取得される。すなわち、Ａ０、Ａ１、及びＡ２のタイミングで、ラッチ１２３は、信号３１４及び信号３１５の値を取得する。
【０１１３】
立上り側位相調整では、可変遅延付加部１１１は、信号３１１に可変遅延設定値が「ｎ＋１」分の立上用可変遅延量を有する可変遅延を与えている（ステップＳ４１）。信号３１２は、信号３１１に固定遅延が付加された信号となっている。
【０１１４】
ラッチ１１３は、信号３１３がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ４２）。すなわち、タイミングＢ０において、ラッチ１１３は、信号３１１及び信号３１２の値を取得する（ステップＳ４３）。この場合、ラッチ１１３は、信号３１１の値として「０」を取得し、信号３１２の値として「０」を取得する。位相判定部１１４は、「００」という位相情報の入力をラッチ１１３から受ける（ステップＳ４４）。
【０１１５】
位相判定部１１４は、遅れた位相状態であると判定する。そして、位相判定部１１４は、遅れた位相状態である旨を可変遅延制御部１１５へ通知する（ステップＳ４５）。可変遅延制御部１１５は、可変遅延設定値から１を減算し新たな可変遅延設定値を求める。図８では、可変遅延制御部１１５は、「ｎ＋１」であった可変遅延設定値から１を減算して、新たな可変遅延設定値として「ｎ」を求めている。そして、可変遅延制御部１１５は、求めた可変遅延設定値を可変遅延付加部１１１へ通知する（ステップＳ４６）。
【０１１６】
可変遅延付加部１１１は、立上りの可変遅延設定値の入力を可変遅延制御部１１５から受けて、１ステップ分遅延量を減少させた遅延をＤＱＳ信号に与える（ステップＳ４７）。ここで、立上用可変遅延量は前回加えた値に比べて減っているので、信号３１１及び３１２の遅延は減少する。
【０１１７】
続いて、ラッチ１１３は、信号３１３がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ４８）。すなわち、タイミングＢ１において、ラッチ１１３は、信号３１１及び信号３１２の値を取得する（ステップＳ４９）。この場合、ラッチ１１３は、信号３１１の値として「１」を取得し、信号３１２の値として「０」を取得する。位相判定部１１４は、「０１」という位相情報の入力をラッチ１１３から受ける（ステップＳ５０）。
【０１１８】
位相判定部１１４は、位相情報が「０１」であることから、一致した位相状態であると判定する（ステップＳ５１）。そして、位相判定部１１４は、一致した位相状態である旨を可変遅延制御部１１５へ通知する。可変遅延制御部１１５は、位相が一致したことから、可変遅延量の保持を可変遅延付加部１４へ指示する（ステップＳ５２）。
【０１１９】
一方、立下り側位相調整では、可変遅延付加部１２１は、信号３１４に可変遅延量が「ｍ＋１」分の立下用可変遅延量を有する可変遅延を与えている（ステップＳ５３）。信号３１５は、信号３１４に固定遅延が付加された信号となっている。
【０１２０】
ラッチ１２３は、信号３１６がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ５４）。すなわち、タイミングＡ０において、ラッチ１２３は、信号３１４及び信号３１５の値を取得する（ステップＳ５５）。この場合、ラッチ１２３は、信号３１４の値として「０」を取得し、信号３１５の値として「０」を取得する。位相判定部１２４は、「００」という位相情報をラッチ１２３から受ける（ステップＳ５６）。
【０１２１】
そして、位相判定部１２４は、位相遅延状態であると判定する。そして、位相判定部１２４は、位相遅延状態である旨を可変遅延制御部１２５へ通知する（ステップＳ５７）。可変遅延制御部１２５は、可変遅延設定値から１を減算し新たな可変遅延設定値を求める。図８では、可変遅延制御部１２５は、「ｍ＋１」であった可変遅延設定値から１を減算して、新たな可変遅延設定値として「ｍ」を求めている。そして、可変遅延制御部１２５は、求めた可変遅延設定値を可変遅延付加部１２１へ通知する（ステップＳ５８）。
【０１２２】
可変遅延付加部１２１は、可変遅延設定値の入力を可変遅延制御部１２５から受けて、１ステップ分遅延量を減少させた立下用可変遅延量をＤＱＳ信号に与える（ステップＳ５９）。ここで、立下用可変遅延量は前回加えた値に比べて減っているので、信号３１４及び３１５の遅延は減少する。
【０１２３】
続いて、ラッチ１２３は、信号３１６がＬｏｗで且つ内部クロック信号の立下りのタイミングを検知し位相情報の取得を行う（ステップＳ６０）。すなわち、タイミングＡ１において、ラッチ１２３は、信号３１４及び信号３１５の値を取得する（ステップＳ６１）。この場合、ラッチ１２３は、信号３１４の値として「１」を取得し、信号３１５の値として「０」を取得する。位相判定部１２４は、「０１」という位相情報をラッチ１２３から受ける（ステップＳ６２）。
【０１２４】
位相判定部１２４は、位相情報が「０１」であることから、一致した位相状態であると判定する（ステップＳ６３）。そして、位相判定部１２４は、一致した位相状態である旨を可変遅延制御部１２５へ通知する。可変遅延制御部１２５は、立下用可変遅延量の保持を可変遅延付加部１２１へ指示する（ステップＳ６４）。
【０１２５】
次に、図９〜１１を参照して、本実施例に係るメモリインタフェース回路によるデューティ劣化時のタイミングマージンの確保について説明する。図９は、デューティが劣化していない状態での各信号のタイミングを表す図である。図１０は、デューティ劣化時に立上りのタイミングのみで位相調整を行った場合の各信号のタイミングを表す図である。図１１は、実施例１に係るメモリインタフェース回路を使用した場合のＤｕｔｙ劣化時の各信号のタイミングを表す図である。
【０１２６】
まず、図９を参照して、デューティ劣化が無い状態について説明する。図９の各グラフは左端に記載している各信号に対応する信号を表している。ＣＬＫは、内部クロック信号である。ＤＱＳは、ＤＱＳ信号である。ＤＱは、ＤＱ信号である。ｄｑｅは、ＤＱ信号のＥＶＥＮ成分である。ｄｑｏは、ＤＱ信号のＯＤＤ成分である。ｄｄｑｓは、ＤＱＳ信号に遅延を加えて立上りの位相を内部クロック信号に一致させた信号である。ｄｄｑｅは、ＤＱＳの立上りの位相を内部クロック信号と一致させるためにＤＱＳ信号に加えた遅延と同じ遅延をｄｑｅに加えた信号である。ｄｄｑｏは、ＤＱＳの立上りの位相を内部クロック信号と一致させるためにＤＱＳ信号に加えた遅延と同じ遅延をｄｑｏに加えた信号である。ＥＶＥＮ  ＩＨは、ｄｑｅ用の立上用ＩＨ信号である。ＯＤＤ  ＩＨは、ｄｑｏ用の立上用ＩＨ信号である。ＤＱＥＶＥＮは、取り込まれたＤＱ信号のＥＶＥＮ成分のデータである。ＤＱＯＤＤは、取り込まれたＤＱ信号のＯＤＤ成分のデータである。
【０１２７】
さらに、Ｐ１より上方にある内部クロック信号以外の信号は、ＤＱＳ信号を用いて動作を行うＤＱＳドメイン内の信号である。また、Ｐ２より下方にある信号は、内部クロック信号を用いて動作を行う信号である。
【０１２８】
ＤＱＳ信号は、デューティ劣化が発生していないので、各周期における信号４０１のようにＨｉｇｈ及びＬｏｗの割合が等しくなっている。ここで、ＤＱＳ信号に遅延量Ｘを付加することで、内部クロック信号と位相が一致したものとする。
【０１２９】
まず、可変遅延付加部１１１は、ＤＱＳ信号の立上りと内部クロック信号の位相を一致させる遅延量ＸをＤＱＳ信号に付加することで遅延４０２を与えてｄｄｑｓを生成する。すなわち、ｄｄｑｓの立上りと内部クロック信号との位相が一致する。
【０１３０】
そして、タイミング４０３で、ＥＶＥＮ成分選択部１３は、ＤＱ信号のＥＶＥＮ成分を抽出し、遷移４０４で示されるようにｄｑｅを生成する。そして、可変遅延付加部１４は、ｄｑｅに遅延量Ｘを付加することで遅延４０５を与えｄｄｑｅを生成する。
【０１３１】
その後、データ取込部１５は、ＤＱ信号のＥＶＥＮ成分の立下用ＩＨ信号がＬｏｗの状態における内部クロック信号の立下りのタイミング４０６で、ｄｄｑｅからデータを取り込む。ここで、遅延量Ｘは、ＤＱＳ信号の立上りと内部クロック信号との位相を合わせることで求められた値であるので、ＤＱＳ信号の立上りで抽出されるＥＶＥＮ成分に対応するｄｄｑｅでは、正確なタイミングマージンが確保される。そして、データ取込部１５は、遷移４０７で示すようにｄｄｑｅから取り込んだデータを取得する。
【０１３２】
また、ＯＤＤ成分選択部２２は、タイミング４０８で、ＤＱ信号のＯＤＤ成分を抽出し、遷移４０９で示されるようにｄｑｏを生成する。そして、可変遅延付加部２３は、ｄｑｏに遅延量Ｘを付加することで遅延４１０を与えてｄｄｑｏを生成する。
【０１３３】
その後、データ取込部２４は、ＤＱ信号のＯＤＤ成分の立下用ＩＨ信号がＬｏｗの状態における内部クロック信号の立下りのタイミング４１１で、ｄｄｑｅからデータを取り込む。ここで、デューティ劣化が無いので立上り及び立下りの内部クロック信号に対する位相差は同じである。そのため、この場合、ｄｄｑｅと同様にＯＤＤ成分に対応するｄｄｑｏにおいても、正確なタイミングマージン４１２が確保される。そして、データ取込部２４は、遷移４１３で示すように、ｄｄｑｅから取り込んだデータを取得する。
【０１３４】
次に、図１０を参照して、デューティ劣化が発生した状態で立上りのタイミングのみで位相を調整する方式で位相調整を行った場合について説明する。各信号は、図９と同様である。
【０１３５】
この場合、ＤＱＳ信号は、デューティ劣化が発生しており、信号４２０に示すように、ＨｉｇｈとＬｏｗとの割合が崩れている。すなわち、ＤＱＳ信号の立上り及び立下りの内部クロック信号に対する位相差が異なる。
【０１３６】
この場合、可変遅延付加部１１１は、ＤＱＳ信号の立上りと内部クロック信号の位相を一致させる遅延量ＸをＤＱＳ信号に付加することで遅延４２１を与えてｄｄｑｓを生成する。すなわち、ｄｄｑｓの立上りと内部クロック信号との位相が一致する。これに対して、ＤＱＳ信号の立上り及び立下りの内部クロック信号に対する位相差が異なるため、遅延量Ｘを付加した場合、ｄｄｑｓの立下りと内部クロック信号との位相は一致していない。
【０１３７】
そして、可変遅延付加部１４は、ｄｑｅに遅延量Ｘを付加することで遅延４２２を与えてｄｄｑｅを生成する。この場合も、図９と同様にデータ取込部１５は、ｄｄｑｅからデータを取得する。
【０１３８】
これに対して、可変遅延付加部２３は、ｄｑｏに遅延量Ｘを付加することで遅延４２３を与えてｄｄｑｏを生成する。しかし、ｄｄｑｓの立下りと内部クロック信号との位相は一致していないので、遅延量Ｘを付加して生成されたｄｄｑｏは、内部クロック信号に対する最適な位相からずれた位相を有する。そのため、ｄｄｑｏが内部クロック信号に対する最適な位相を有する場合のタイミングマージン４２５に比較して、この場合のタイミングマージン４２６では、差分４２７分のマージンの減少が発生してしまう。マージンの減少が大きくなれば、タイミング４２４でｄｄｑｏからデータを取得することが困難になってしまい、データ異常が発生してしまう。
【０１３９】
次に、図１１を参照して、デューティ劣化が発生した状態で実施例１のメモリインタフェース回路１を用いて位相調整を行った場合について説明する。ｄｄｑｓｒは、ＤＱＳ信号に遅延を加えて立上りの位相を内部クロック信号の位相に一致させた信号である。ｄｄｑｆは、反転ＤＱＳ信号に遅延を加えて立下りの位相を内部クロック信号に一致させた信号である。その他の各信号は、図９と同様である。
【０１４０】
この場合、ＤＱＳ信号は、デューティ劣化が発生しており、信号４３０に示すように、ＨｉｇｈとＬｏｗとの割合が等しくない。すなわち、ＤＱＳ信号の立上り及び立下りの内部クロック信号に対する位相差が異なる。
【０１４１】
この場合、可変遅延付加部１１１は、ＤＱＳ信号の立上りと内部クロック信号の位相を一致させる遅延量ＸをＤＱＳ信号に付加することで遅延４３１を与えてｄｄｑｓｒを生成する。すなわち、ｄｄｑｓｒの立上りと内部クロック信号との位相が一致する。
【０１４２】
そして、可変遅延付加部１４は、ｄｑｅに遅延量Ｘを付加することで遅延４３３を与えてｄｄｑｅを生成する。この場合も、図９と同様にデータ取込部１５は、ｄｄｑｅからデータを取得する。
【０１４３】
これに対して、可変遅延付加部１２１は、ＤＱＳ信号の立下りと内部クロック信号の位相を一致させる遅延量Ｙを反転ＤＱＳ信号に付加することで遅延４３２を与えてｄｄｑｓｆを生成する。すなわち、ｄｄｑｓｆの立上りと内部クロック信号との位相が一致する。
【０１４４】
そして、可変遅延付加部２３は、ｄｑｏに遅延量Ｙを付加することで遅延４３４を与えてｄｄｑｏを生成する。ここで、遅延量Ｙは、反転ＤＱＳ信号の立上りと内部クロック信号との位相を合わせることで求められた値であるので、ＤＱＳ信号の立下りで抽出されるＯＤＤ成分に対応するｄｄｑｏにおいて、正確なタイミングマージン４３６が確保される。そして、データ取込部１５は、タイミング４３５でデータを取り込み、遷移４３７で示すようにｄｄｑｅから取り込んだデータを取得する。
【０１４５】
以上に説明したように、本実施例に係るメモリインタフェース回路は、ＤＱＳ信号の立上りを用いてＤＱＳ信号と内部クロック信号との位相を一致させた場合の遅延を求める。そして、本実施例に係るメモリインタフェース回路は、求めた遅延をＤＱＳ信号の立上りで取り込まれるＤＱ信号の信号成分に与えて、内部クロック信号を用いてデータの取り込みを行う。また、本実施例に係るメモリインタフェース回路は、ＤＱＳ信号の立下りを用いてＤＱＳ信号と内部クロック信号との位相を一致させた場合の遅延を求める。そして、本実施例に係るメモリインタフェース回路は、求めた遅延をＤＱＳ信号の立下りで取り込まれるＤＱ信号の信号成分に与えて、内部クロック信号を用いてデータの取り込みを行う。
【０１４６】
これにより、ＤＱＳ信号にデューティ劣化が発生しても、ＤＱ信号の取り込みタイミングを適切に調整することができる。すなわち、タイミングマージンの減少を軽減でき、データ異常の発生を軽減することができる。言い換えれば、ＤＱＳ信号の立上り及び立下りそれぞれに最適な位相でクロックドメインチェンジを行うことができる。
【実施例２】
【０１４７】
図１２は、実施例２に係るメモリインタフェース回路及び情報処理装置のブロック図である。本実施例に係る情報処理システムは、立上用可変遅延量及び立下用可変遅延量を同じ位相比較回路を用いて求めることが実施例１と異なるものである。以下の説明では、実施例１と同じ機能を有する各部については説明を省略する。
【０１４８】
位相比較回路１６は、図２における立上側位相比較回路１１及び立下側位相比較回路１２の機能をまとめた回路である。動作の概要としては、位相比較回路１６は、最初に立上側位相比較回路１１と同様の動作を行い立上用可変遅延量を求め、次に立下側位相比較回路１２と同様の動作を行い立下用可変遅延量を求める。以下に詳細を説明する。
【０１４９】
位相比較回路１６は、可変遅延付加部１６１、固定遅延付加部１６２、ラッチ１６３、位相判定部１６４、及び可変遅延制御部１６５を有する。さらに、位相比較回路１６は、位相反転部１６６、エッジ切替部１６７、立上用可変遅延設定値保持部１６８、立下用可変遅延設定値保持部１６９、位相反転部１７１及びエッジ切替信号生成部１７０を有する。この位相比較回路１６が、「切替位相差検出部」の一例にあたる。
【０１５０】
可変遅延付加部１６１は、図２における可変遅延付加部１１１及び可変遅延付加部１２１と同様の動作を行う。
【０１５１】
固定遅延付加部１６２は、図２における固定遅延付加部１１２及び固定遅延付加部１２２と同様の動作を行う。
【０１５２】
ラッチ１６３は、立上りの位相判定を行う場合には、立上用ＩＨ信号の入力をエッジ切替部１６７から受ける。そして、ラッチ１６３は、図２におけるラッチ１１３と同様の動作を行う。また、立下りの位相判定を行う場合には、立下用ＩＨ信号の入力をエッジ切替部１６７から受ける。そして、ラッチ１６３は、図２におけるラッチ１２３と同様の動作を行う。
【０１５３】
位相判定部１６４は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替信号をエッジ切替部１６７から受ける。その場合、位相判定部１６４は、図２における位相判定部１１４と同様の動作を行う。また、位相判定部１６４は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替信号をエッジ切替部１６７から受ける。その場合、位相判定部１６４は、図２における位相判定部１２４と同様の動作を行う。
【０１５４】
そして、位相判定部１６４は、求めた位相情報をエッジ切替信号生成部１７０へ出力する。
【０１５５】
ここで、図１３を参照して、本実施例に係る位相判定部１６４の詳細について説明する。図１３は、実施例２に係る位相判定部の詳細を表すブロック図である。位相判定部１６４は、ＸＯＲ回路６４１及び６４２、並びに、位相判定回路６４３を有している。
【０１５６】
エッジ切替部１６７は、立上りのエッジを用いた位相判定を行うためのエッジ切替信号として、「０」をＸＯＲ回路６４１及び６４２に入力する。また、エッジ切替部１６７は、立下りのエッジを用いた位相判定を行うためのエッジ切替信号として、「１」をＸＯＲ回路６４１及び６４２に入力する。
【０１５７】
ＸＯＲ回路６４１には、立上りの位相判定を行う場合、立上用先行信号の位相情報がラッチ１６３から入力される。また、立下りの位相判定を行う場合、ＸＯＲ回路６４１には、立下用先行信号の位相情報がラッチ１６３から入力される。
【０１５８】
立上りの位相判定の場合、ＸＯＲ回路６４１は、エッジ切替部１６７から入力された「０」と立上用先行信号の位相情報との排他的論理和を求めて出力する。すなわち、立上りの位相判定の場合、ＸＯＲ回路６４１は、ラッチ１６３から入力された立上用先行信号の位相情報をそのまま出力する。
【０１５９】
これに対して、立下りの位相判定の場合、ＸＯＲ回路６４１は、エッジ切替部１６７から入力された「１」と立下用先行信号との排他的論理和を求めて出力する。すなわち、立上りの位相判定の場合、ＸＯＲ回路６４１は、ラッチ１６３から入力された立上用先行信号の位相情報を反転させて出力する。
【０１６０】
ＸＯＲ回路６４２には、立上りの位相判定を行う場合、立上用後行信号の位相情報がラッチ１６３から入力される。また、立下りの位相判定を行う場合、ＸＯＲ回路６４２には、立下用後行信号の位相情報が固定遅延付加部１６３から入力される。
【０１６１】
立上りの位相判定の場合、ＸＯＲ回路６４２は、エッジ切替部１６７から入力された「０」と立上用後行信号の位相情報との排他的論理和を求めて出力する。すなわち、立上りの位相判定の場合、ＸＯＲ回路６４２は、ラッチ１６３から入力された立上用後行信号の位相情報をそのまま出力する。
【０１６２】
これに対して、立下りの位相判定の場合、ＸＯＲ回路６４２は、エッジ切替部１６７から入力された「１」と立下用後行信号の位相情報との排他的論理和を求めて出力する。すなわち、立下りの位相判定の場合、ＸＯＲ回路６４２は、ラッチ１６３から入力された立下用後行信号の位相情報を反転させて出力する。
【０１６３】
位相判定回路６４３は、図２における位相判定部１１４と同様の動作を行う。すなわち、位相判定回路６４３は、立上り又は立下りの先行信号及び後行信号の位相情報の入力をＸＯＲ回路６４１及び６４２から受ける。そして、位相判定回路６４３は、図４の判定テーブル２１０で示される対応を用いてＤＱＳ信号の位相状態を判定する。
【０１６４】
ここで、立下りの位相判定について説明する。図１４は、実施例２に係る位相判定部による立下りの位相判定を説明するための図である。
【０１６５】
図１４における位相情報の列は、可変遅延付加部１６１及び固定遅延付加部１６２から入力される位相情報である。２ビットで表現される位相情報のうち、上位ビットが立下用後行信号の値を示し、下位ビットが立下用先行信号の値を示す。また、ＸＯＲ後位相情報は、上位ビットがＸＯＲ回路６４２から出力され、下位ビットがＸＯＲ回路６４１からの出力される。
【０１６６】
立上りと立下りでは、ＨｉｇｈとＬｏｗが反転しているので、立下りの場合の位相情報を反転させた信号は、立上りの位相判定と同じ論理で判定することができる。そして、図１４に示すように、ＸＯＲ後位相情報は位相情報を反転したものになる。すなわち、ＸＯＲ後位相情報を用いる場合、図１４に示すように、位相判定部１６４は、立上りの位相判定と同じ論理で位相状態を判定することができる。このように、ＸＯＲ回路６４１及び６４２を配置することで、立上りの位相判定と立下り位相判定とのいずれにおいても同じ論理で判定することができ、位相判定回路６４３を共通化することができる。
【０１６７】
図１２に戻って説明を続ける。可変遅延制御部１６５は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替部１６７から受ける。その場合、可変遅延制御部１６５は、立上用可変遅延設定値保持部１６８に格納されている可変遅延設定値を読み出し、図２における可変遅延制御部１１５と同様に立上りの位相判定の処理における可変遅延設定値を求める。そして、可変遅延制御部１６５は、立上りの可変遅延設定値を順次上書きしながら立上用可変遅延設定値保持部１６８に格納する。その後、位相が一致すると、可変遅延制御部１６５は、立上りの可変遅延設定値の算出完了の通知を立上用可変遅延設定値保持部１６８へ出力する。
【０１６８】
また、可変遅延制御部１６５は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替部１６７から受ける。その場合、可変遅延制御部１６５は、立下用可変遅延設定値保持部１６９に格納されている可変遅延設定値を読み出し、図２における可変遅延制御部１２５と同様に立下りの可変遅延設定値を求める。そして、可変遅延制御部１６５は、求めた立下りの可変遅延設定値を順次上書きしながら立下用可変遅延設定値保持部１６９に格納する。その後、立下りの位相が一致すると、可変遅延制御部１６５は、立下りの可変遅延設定値の算出完了の通知を立下用可変遅延設定値保持部１６９へ出力する。
【０１６９】
エッジ切替部１６７は、ＩＨ信号の入力を可変遅延制御部１６５から受ける。このＩＨ信号は、実施例１における立上用ＩＨ信号と同様の信号である。また、エッジ切替部１６７は、可変遅延制御部１６５が出力したＩＨ信号の反転信号の入力を位相反転部１６６から受ける。
【０１７０】
さらに、エッジ切替部１６７は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号生成部１７０から受ける。この場合、エッジ切替部１６７は、可変遅延制御部１６５から受信したＩＨ信号をラッチ１６３、位相判定部１６４及び可変遅延制御部１６５へ出力する。
【０１７１】
また、エッジ切替部１６７は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号生成部１７０から受ける。この場合、エッジ切替部１６７は、位相反転部１６６から受信した信号であり、可変遅延制御部１６５から出力されたＩＨ信号の反転信号をラッチ１６３、位相判定部１６４及び可変遅延制御部１６５へ出力する。
【０１７２】
立上用可変遅延設定値保持部１６８は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号生成部１７０から受ける。そして、立上用可変遅延設定値保持部１６８は、立上りの位相判定における可変遅延設定値を可変遅延制御部１６５から受信し、順次上書きしながら格納していく。
【０１７３】
そして、立上用可変遅延設定値保持部１６８は、立上の可変遅延設定値の算出完了の通知の入力を可変遅延制御部１６５から受ける。この場合、立上用可変遅延設定値保持部１６８は、格納する可変遅延設定値を可変遅延付加部１４へ出力する。
【０１７４】
立下用可変遅延設定値保持部１６９は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号を位相反転部１７１から受ける。そして、立下用可変遅延設定値保持部１６９は、立下りの位相判定における可変遅延設定値を可変遅延制御部１６５から受信し、順次上書きしながら格納していく。
【０１７５】
そして、立下用可変遅延設定値保持部１６９は、立下の可変遅延設定値の算出完了の通知の入力を可変遅延制御部１６５から受ける。この場合、立下用可変遅延設定値保持部１６９は、格納する可変遅延設定値を可変遅延付加部２３へ出力する。
【０１７６】
エッジ切替信号生成部１７０は、位相情報の入力を位相判定部１６４から受ける。そして、エッジ切替信号生成部１７０は、位相情報の入力が所定の条件に達すると、位相判定を行うエッジを切り替えるための信号を立上用可変遅延設定値保持部１６８、エッジ切替部１６７及び位相反転部１７１へ出力する。以下に、エッジ切替信号生成部１７０によるエッジ切替信号の生成の例を説明する。
【０１７７】
例えば、エッジ切替信号生成部１７０は、位相比較の結果、一致状態を検出した場合にエッジ切替信号を反転させる。他にも、エッジ切替信号生成部１７０は、位相比較の結果、一致状態を規定回数検出した場合にエッジ切替信号を反転させてもよい。この場合、規定回数は、１以上であれば何回でもよい。また、エッジ切替信号生成部１７０は、データ取込部１５又は２４からデータ読み出しの通知を受けて、データ読み出しを規定ビット数行った場合にエッジ切替信号を反転させてもよい。また、エッジ切替信号生成部１７０は、ＣＰＵ３などから連続データの情報を受信して、連続データ読み出しの終了を契機にエッジ切替信号を反転させてもよい。
【０１７８】
次に、図１５を参照して、実施例２に係るメモリコントローラ１０によるデータの取り込みの処理について説明する。図１５は、実施例２に係るメモリコントローラによるデータの取り込み処理のフローチャートである。
【０１７９】
エッジ切替信号生成部１７０は、エッジ切替信号は立下りか否かを判定する（ステップＳ１０１）。エッジ切替信号が立上りの場合（ステップＳ１０１：肯定）、エッジ切替信号生成部１７０は、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号を立上用可変遅延設定値保持部１６８、エッジ切替部１６７及び位相反転部１７１へ出力する。エッジ切替部１６７は、可変遅延制御部１６５から出力されたＩＨ信号をラッチ１６３へ出力する。また、エッジ切り替え部１６７は、エッジ切り替え信号を位相判定部１６４及び可変遅延制御部１６５へ出力する。
【０１８０】
ラッチ１６３は、立上用先行信号及び立上用後行信号の入力を可変遅延付加部１６１及び固定遅延付加部１６２から受ける。そして、ラッチ１６３は、立上用先行信号及び立上用後行信号それぞれの位相状態を取得する。その後、ラッチ１６３は、立上用先行信号及び立上用後行信号それぞれの位相状態を位相判定部１６４へ出力する。位相判定部１６４は、ラッチ１６３から受信した立上用先行信号及び立上用後行信号それぞれの位相状態から、ＤＱＳ信号の立上りの位相が一致しているか否かを判定する（ステップＳ１０２）。
【０１８１】
位相が一致していない場合（ステップＳ１０２：否定）、可変遅延制御部１６５は、立上の可変遅延設定値の調整を行う（ステップＳ１０３）。その後、位相比較回路１６は、ステップＳ１０２へ戻る。
【０１８２】
これに対して、位相が一致している場合（ステップＳ１０２：肯定）、立上用可変遅延設定値保持部１６８は、ＤＱＳ信号の立上りと内部クロック信号との位相を一致させる立上の可変遅延設定値を保持する（ステップＳ１０４）。
【０１８３】
可変遅延付加部１４は、ＤＱＳ信号の立上りと内部クロック信号との位相を一致させる立上の可変遅延設定値を立上用可変遅延設定値保持部１６８から読み込む（ステップＳ１０５）。
【０１８４】
次に、可変遅延付加部１４は、ＤＱ信号のＥＶＥＮ成分に、ＤＱＳ信号の立上りと内部クロック信号との位相を一致させる立上用可変遅延量を付加する（ステップＳ１０６）。
【０１８５】
データ取込部１５は、可変遅延制御部１６５により生成されたＩＨ信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで、立上用可変遅延量が付加されたＤＱ信号のＥＶＥＮ成分からデータを取り込む（ステップＳ１０７）。
【０１８６】
一方、可変遅延付加部２３は、ＤＱＳ信号の立下りと内部クロック信号との位相を一致させる立下の可変遅延設定値を立下用可変遅延設定値保持部１６９から読み込む（ステップＳ１０８）。
【０１８７】
次に、可変遅延付加部２３は、ＤＱ信号のＯＤＤ成分に、ＤＱＳ信号の立下りと内部クロック信号との位相を一致させる立下用可変遅延量を付加する（ステップＳ１０９）。
【０１８８】
データ取込部２４は、可変遅延制御部１６５により生成されたＩＨ信号を反転させた信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで、立下用可変遅延量が付加されたＤＱ信号のＯＤＤ成分からデータを取り込む（ステップＳ１１０）。その後、位相比較回路１６は、ステップＳ１２０へ進む。
【０１８９】
一方、エッジ切替信号が立下りで始まる場合（ステップＳ１０１：否定）、エッジ切替信号生成部１７０は、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号を立下用可変遅延設定値保持部１６９、エッジ切替部１６７及び位相反転部１７１へ出力する。エッジ切替部１６７は、可変遅延制御部１６５から出力されたＩＨ信号の反転信号をラッチ１６３、位相判定部１６４及び可変遅延制御部１６５へ出力する。
【０１９０】
ラッチ１６３は、立下用先行信号及び立下用後行信号の入力を可変遅延付加部１６１及び固定遅延付加部１６２から受ける。そして、ラッチ１６３は、立下用先行信号及び立下用後行信号それぞれの位相状態を取得する。その後、ラッチ１６３は、立下用先行信号及び立下用後行信号それぞれの位相状態を位相判定部１６４へ出力する。位相判定部１６４は、ラッチ１６３から受信した立下用先行信号及び立下用後行信号それぞれの位相状態から、ＤＱＳ信号の立下りの位相が一致しているか否かを判定する（ステップＳ１１１）。
【０１９１】
位相が一致していない場合（ステップＳ１１１：否定）、可変遅延制御部１６５は、立下の可変遅延設定値の調整を行う（ステップＳ１１２）。その後、位相比較回路１６は、ステップＳ１１１へ戻る。
【０１９２】
これに対して、位相が一致している場合（ステップＳ１１１：肯定）、立下用可変遅延設定値保持部１６９は、ＤＱＳ信号の立下りと内部クロック信号との位相を一致させる立下の可変遅延設定値を保持する（ステップＳ１１３）。
【０１９３】
可変遅延付加部２３は、ＤＱＳ信号の立下りと内部クロック信号との位相を一致させる立下の可変遅延設定値を立下用可変遅延設定値保持部１６９から読み込む（ステップＳ１１４）。
【０１９４】
次に、可変遅延付加部２３は、ＤＱ信号のＯＤＤ成分に、ＤＱＳ信号の立下りと内部クロック信号との位相を一致させる立下用可変遅延量を付加する（ステップＳ１１５）。
【０１９５】
データ取込部２４は、可変遅延制御部１６５により生成されたＩＨ信号を反転させた信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで、立下用可変遅延量が付加されたＤＱ信号のＯＤＤ成分からデータを取り込む（ステップＳ１１６）。
【０１９６】
可変遅延付加部１４は、ＤＱＳ信号の立上りと内部クロック信号との位相を一致させる立上の可変遅延設定値を立上用可変遅延設定値保持部１６８から読み込む（ステップＳ１１７）。
【０１９７】
次に、可変遅延付加部１４は、ＤＱ信号のＥＶＥＮ成分に、ＤＱＳ信号の立上りと内部クロック信号との位相を一致させる立上用可変遅延量を付加する（ステップＳ１１８）。
【０１９８】
データ取込部１５は、可変遅延制御部１６５により生成されたＩＨ信号がＬｏｗの状態における内部クロック信号の立下りのタイミングで、立上用可変遅延量が付加されたＤＱ信号のＥＶＥＮ成分からデータを取り込む（ステップＳ１１９）。
【０１９９】
ＣＰＵ３は、ＤＱ信号のＥＶＥＮ成分から取り込まれたデータ及びＤＱ信号のＯＤＤ成分から取り込まれたデータを受信する（ステップＳ１２０）。これにより、ＣＰＵ３は、ＤＩＭＭ２からデータを読み出すことができる。
【０２００】
そして、メモリインタフェース回路１は、自己を搭載する情報処理装置の動作が停止したか否かを判定する（ステップＳ１２１）。動作が停止していない場合（ステップＳ１２１：否定）、メモリインタフェース回路１は、ステップＳ１０１へ戻る。
【０２０１】
これに対して、動作が停止した場合（ステップＳ１２１：肯定）、メモリインタフェース回路１も動作を停止する。
【０２０２】
以上に説明したように、本実施例に係るメモリインタフェース回路は、１つの位相比較回路を用いて、ＤＱＳ信号の立上りを用いた位相調整における可変遅延設定値及びＤＱＳ信号の立下りを用いた位相調整における可変遅延設定値を求める。すなわち、実施例１に比べて位相比較回路１つ分程度実装規模を縮小することができる。
【０２０３】
また、以上の説明では、図１に示すように、メモリコントローラ１０が、ＣＰＵ３とは異なるチップセット１００上に配置されている構成で説明したが、ハードウェア構成はこれに限らない。
【０２０４】
各実施例に係るメモリインタフェース回路１を搭載したメモリコントローラ１０は、ＣＰＵ３上に搭載されていてもよい。この場合、ＣＰＵ３には、演算処理部３１及びメモリコントローラ１０が搭載される。
【符号の説明】
【０２０５】
１  メモリインタフェース回路
２  ＤＩＭＭ
３  ＣＰＵ
１０  メモリコントローラ
１１  立上側位相比較回路
１２  立下側位相比較回路
１３  ＥＶＥＮ成分選択部
１４  可変遅延付加部
１５  データ取込部
１６  位相比較回路
２１  位相反転部
２２  ＯＤＤ成分選択部
２３  可変遅延付加部
２４  データ取込部
３１  演算処理部
４０  クロック発生部
１００  チップセット
１１１，１２１，１６１  可変遅延付加部
１１２，１２２，１６２  固定遅延付加部
１１３，１２３，１６３  ラッチ
１１４，１２４，１６４  位相判定部
１１５，１２５，１６５  可変遅延制御部
１２６，１６６  位相反転部
１６７  エッジ切替部
１６８  立上用可変遅延設定値保持部
１６９  立下用可変遅延設定値保持部
１７０  エッジ切替信号生成部
１７１  位相反転部
【図１】
2015088065.tif 000003
【図２】
2015088065.tif 000004
【図３】
2015088065.tif 000005
【図４】
2015088065.tif 000006
【図５】
2015088065.tif 000007
【図６】
2015088065.tif 000008
【図７】
2015088065.tif 000009
【図８】
2015088065.tif 000010
【図９】
2015088065.tif 000011
【図１０】
2015088065.tif 000012
【図１１】
2015088065.tif 000013
【図１２】
2015088065.tif 000014
【図１３】
2015088065.tif 000015
【図１４】
2015088065.tif 000016
【図１５】
2015088065.tif 000017
【手続補正書】
【提出日】平成26年10月7日(2014.10.7)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
【図１】図１は、情報処理装置の概略構成図である。
【図２】図２は、実施例１に係るメモリインタフェース回路及び情報処理装置のブロック図である。
【図３】図３は、立上用先行信号及び立上用後行信号の位相情報の取得を表す図である。
【図４】図４は、位相判定テーブルの一例の図である。
【図５】図５は、立下用先行信号及び立下用後行信号の位相情報の取得を表す図である。
【図６】図６は、実施例１に係るメモリコントローラによるデータの取り込み処理のフローチャートである。
【図７】図７は、ＤＱＳ信号の位相が進んでいる場合の位相調整処理のタイミングチャートである。
【図８】図８は、ＤＱＳ信号の位相が遅れている場合の位相調整処理のタイミングチャートである。
【図９】図９は、デューティが劣化していない状態での各信号のタイミングを表す図である。
【図１０】図１０は、デューティ劣化時に立上りのタイミングのみで位相調整を行った場合の各信号のタイミングを表す図である。
【図１１】図１１は、実施例１に係るメモリインタフェース回路を使用した場合のＤｕｔｙ劣化時の各信号のタイミングを表す図である。
【図１２】図１２は、実施例２に係るメモリインタフェース回路及び情報処理装置のブロック図である。
【図１３】図１３は、実施例２に係る位相判定部の詳細を表すブロック図である。
【図１４】図１４は、実施例２に係る位相判定部による立下りの位相判定を説明するための図である。
【図１５】図１５は、実施例２に係るメモリコントローラによるデータの取り込み処理のフローチャートである。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００３８
【補正方法】変更
【補正の内容】
【００３８】
ラッチ１１３は、立上用ＩＨ信号がＬｏｗの場合、内部クロック信号の立下りのタイミングで立上用先行信号及び立上用後行信号の位相情報を取り込む。本実施例では、ラッチ１１３は、信号がＨｉｇｈレベルの場合、位相情報を「１」として取り込み、信号がＬｏｗレベルの場合、位相情報を「０」として取り込む。例えば、内部クロック信号が立下りのタイミングで、立上用先行信号がＨｉｇｈで、立上用後行信号がＬｏｗの場合、立上用先行信号の位相情報として「１」を取り込み、立上用後行信号の位相情報として「０」を取り込む。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００４３
【補正方法】変更
【補正の内容】
【００４３】
位相判定部１１４は、位相情報の組み合わせに対応する位相状態を記憶している。例えば、位相判定部１１４は、図４で表される位相判定テーブル２１０を記憶している。図４は、位相判定テーブルの一例の図である。図４では、位相情報を２ビットの情報で示す。位相情報は、２ビットのうち、上位ビットが立上用後行信号の値を表し、下位ビットが立上用先行信号の値を表す。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００４４
【補正方法】変更
【補正の内容】
【００４４】
位相判定部１１４は、立上用先行信号及び立上用後行信号の位相情報の入力をラッチ１１３から受ける。そして、位相判定部１１４は、受信した位相情報の組み合わせに対応する位相状態を位相判定テーブル２１０から取得する。その後、位相判定部１１４は、取得した位相状態を可変遅延制御部１１５へ出力する。以下では、ＤＱＳ信号の位相が内部クロック信号の位相に比べて遅れている位相状態を、「位相遅延状態」という。また、ＤＱＳ信号の位相がクロック信号の位相に比べて進んでいる位相状態を、「位相前進状態」という。また、ＤＱＳ信号の位相とクロック信号の位相とが一致している位相状態を、「位相一致状態」という。さらに、ＤＱＳ信号の位相とクロック信号の位相とが本来発生しないはずの異常状態となっている状態を「位相異常状態」という。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００６４
【補正方法】変更
【補正の内容】
【００６４】
ラッチ１２３は、立下用ＩＨ信号がＬｏｗの場合、内部クロック信号の立下りのタイミングで立下用先行信号及び立下用後行信号の位相情報を取り込む。本実施例では、ラッチ１２３は、信号がＨｉｇｈレベルの場合、位相情報を「１」として取り込み、信号がＬｏｗレベルの場合、位相情報を「０」として取り込む。例えば、内部クロック信号が立下りのタイミングで、立下用先行信号がＨｉｇｈで、立下用後行信号がＬｏｗの場合、立下用先行信号の位相情報として「１」を取り込み、立下用後行信号の位相情報として「０」を取り込む。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００７０
【補正方法】変更
【補正の内容】
【００７０】
位相判定部１２４は、位相情報の組み合わせに対応する位相状態を記憶している。例えば、位相判定部１２４も、図４の位相判定テーブル２１０を記憶している。上述したように反転ＤＱＳ信号の位相はＤＱＳ信号の位相を反転させたものであり、立下用ＩＨ信号は可変遅延制御部１２５が生成した立上用ＩＨ信号の位相を反転させたものである。そのため、位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報を用いた判定論理として位相判定部１１４が用いる判定論理と同様となる。このように、判定論理を一致させることで回路設計時間を短縮することができる。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００７２
【補正方法】変更
【補正の内容】
【００７２】
位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報の入力をラッチ１２３から受ける。そして、位相判定部１２４は、受信した位相情報の組み合わせに対応する位相状態を位相判定テーブル２１０から取得する。その後、位相判定部１２４は、取得した位相状態を可変遅延制御部１２５へ出力する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】０１６０
【補正方法】変更
【補正の内容】
【０１６０】
ＸＯＲ回路６４２には、立上りの位相判定を行う場合、立上用後行信号の位相情報がラッチ１６３から入力される。また、立下りの位相判定を行う場合、ＸＯＲ回路６４２には、立下用後行信号の位相情報がラッチ１６３から入力される。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】０１６３
【補正方法】変更
【補正の内容】
【０１６３】
位相判定回路６４３は、図２における位相判定部１１４と同様の動作を行う。すなわち、位相判定回路６４３は、立上り又は立下りの先行信号及び後行信号の位相情報の入力をＸＯＲ回路６４１及び６４２から受ける。そして、位相判定回路６４３は、図４の位相判定テーブル２１０で示される対応を用いてＤＱＳ信号の位相状態を判定する。