(57)【要約】【課題】データ異常における原因の切り分けを容易にする信号制御回路、情報処理装置及びデューティ算出方法を提供することを目的とする。【解決手段】メモリインタフェース回路１における立上側位相判定回路１１及び立下側位相判定回路１２は、入力信号の立上りと基準信号の立下りまたは立上りとのタイミングを調整するための前記入力信号に付加する第１遅延量及び前記入力信号の立下りと前記基準信号の立下りまたは立上りとのタイミングを調整するための前記入力信号に付加する第２遅延量を求める。デューティ算出部１４は、前記第１遅延量及び前記第２遅延量の差を基に、前記入力信号のデューティを算出する。【選択図】図２
2015026295.tif 000002
【特許請求の範囲】
【請求項１】
入力信号の立上りと基準信号の立下りまたは立上りとのタイミングを調整するための前記入力信号に付加する第１遅延量及び前記入力信号の立下りと前記基準信号の立下りまたは立上りとのタイミングを調整するための前記入力信号に付加する第２遅延量を求める遅延量取得部と、
前記第１遅延量及び前記第２遅延量の差を基に、前記入力信号のデューティを算出するデューティ算出部と
を備えたことを特徴とする信号制御回路。
【請求項２】
前記遅延量取得部は、前記入力信号に前記第１遅延量を与えた遅延信号の立上りが、前記基準信号の立下りまたは立上りに位置するように前記第１遅延量を求め、前記入力信号に前記第２遅延量を与えた前記遅延信号の立下りが、前記基準信号の立下りまたは立上りに位置するように前記第２遅延量を求めることを特徴とする請求項１に記載の信号制御回路。
【請求項３】
前記遅延量取得部は、第１所定位相差を単位とする遅延量を前記入力信号に繰り返し与えて前記第１遅延量を求め、第２所定位相差を単位とする遅延量を前記入力信号に繰り返し与えて前記第２遅延量を求めることを特徴とする請求項１又は請求項２に記載の信号制御回路。
【請求項４】
前記第１遅延量と前記第２遅延量の差を基に、前記入力信号のデューティの異常を検出する異常検出部をさらに備えたことを特徴とする請求項１〜３のいずれか一つに記載の信号制御回路。
【請求項５】
演算部及びメモリコントローラを有する情報処理装置であって、
前記メモリコントローラは、
入力信号の立上りと基準信号の立上りまたは立下りとのタイミングを調整するための前記入力信号に付加する第１遅延量及び前記入力信号の立下りと前記基準信号の立下りまたは立下りとのタイミングを調整するための前記入力信号に付加する第２遅延量を求める遅延量取得部と、
前記第１遅延量を前記入力信号に与えた信号を用いてデータをメモリから取り込むデータ取込部とを備え、
前記演算部は、前記データ取込部から受信したデータを処理する演算処理部を備え、
前記第１遅延量及び前記第２遅延量の差を基に、前記入力信号のデューティを算出するデューティ算出部を備えた
ことを特徴とする情報処理装置。
【請求項６】
入力信号の立上りと基準信号の立下りまたは立上りとのタイミングを調整するための前記入力信号に付加する第１遅延量を求め、
前記入力信号の立下りと前記基準信号の立下りとのタイミングを調整するための前記入力信号に付加する第２遅延量を求め、
前記第１遅延量及び前記第２遅延量の差を基に、前記入力信号のデューティを算出する
ことを特徴とするデューティ算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、信号制御回路、情報処理装置及びデューティ算出方法に関する。
【背景技術】
【０００２】
メモリコントローラは、例えば、ＤＤＲ（Double  Data  Rate）３に代表されるＤＤＲメモリインタフェース（Memory  Interface）回路を有する。ＤＤＲメモリは、クロック信号のポジティブエッジとネガティブエッジの双方でデータの入出力をし、クロック周波数の２倍のデータ転送レートでデータ転送をするメモリである。
【０００３】
ＤＤＲメモリでは、メモリコントローラの内部で生成させた内部クロック信号をDual  In-line  Memory  Module（ＤＩＭＭ）に送信する。
【０００４】
そして、メモリコントローラからのリード要求に応じて、ＤＩＭＭはそのクロック信号からデータストローブ（ＤＱＳ）信号を生成し、このＤＱＳ信号をデータ（ＤＱ）信号とともにメモリインタフェースへ送出する。
【０００５】
メモリインタフェース側では、これらＤＱＳ信号及びＤＱ信号を受信する。次に、メモリインタフェースは、受信したＤＱＳ信号に含まれる位相情報（エッジ）を基に、最適なＤＱ信号の取り込みタイミングを決定する。そして、メモリコントローラは、決定したタイミングでＤＱ信号を取り込む。
【０００６】
ＤＱＳ信号やＤＱ信号が経由する、メモリコントローラ、Printed  Circuit  Board（ＰＣＢ）、及びメモリ素子などの途中経路において発生する遅延は、温度や電源電圧などの装置動作環境により変化する。そのため、ＤＱＳ信号及びＤＱ信号がメモリコントローラに到着するタイミングは、装置動作環境の変化により変動する。近年、データ転送速度が高速化しており、この遅延のばらつきの影響が大きくなってきている。
【０００７】
信号の到着タイミングの変動に追従して最適なデータ取り込みタイミングを決定するため、メモリインタフェースが、リード動作の度にＤＱＳ信号のタイミングを監視し、その結果に基づいて受信信号の遅延量を調整し変動分を吸収する従来技術がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００３／００１７３２号
【特許文献２】国際公開第２０１１／０７７５７３号
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、ＤＤＲ３からＤＤＲ４への変更など、近年のメモリインタフェースの高速化に伴い、ＤＱＳ信号によりＤＱ信号を取り込むためのタイミングマージンが減少する。また、ＤＱＳ信号は、メモリコントローラ内部のＩＯ電源からコア電源に電圧を変換するレベルコンバータや伝送路などを経由する間に、デューティ（Duty）劣化が発生する場合がある。
【００１０】
そして、メモリインタフェースがデータの読み出しを行うにあたり、ＤＱＳ信号のデューティ劣化によりＤＱ信号を取り込むためのタイミングマージンが減少することで、減少されたタイミングマージンから読み出しのタイミングが外れてしまう場合がある。この場合、メモリインタフェースは正確なデータの取り込みが行えず、データ異常が発生するおそれがある。
【００１１】
特に、メモリインタフェース内で発生したデューティ劣化の観測は困難であり、デューティ劣化がデータ異常の原因となっているかを特定することは困難である。
【００１２】
ＤＱＳ信号のタイミングを監視して受信信号の遅延量を調整する従来技術などでは、デューティ劣化の検出は行っていないため、データ異常がデューティ劣化により発生したか否かを判定することは困難である。
【００１３】
開示の技術は、上記に鑑みてなされたものであって、データ異常における原因の切り分けを容易にする信号制御回路、情報処理装置及びデューティ算出方法を提供することを目的とする。
【課題を解決するための手段】
【００１４】
本願の開示する信号制御回路、情報処理装置及びデューティ算出方法は、一つの態様において、遅延量取得部は、入力信号の立上りと基準信号の立上り又は立上りとのタイミングを調整するための前記入力信号に付加する第１遅延量及び前記入力信号の立下りと前記基準信号の立下り又は立下りとのタイミングを調整するための前記入力信号に付加する第２遅延量を求める。デューティ算出部は、前記第１遅延量及び前記第２遅延量の差を基に、前記入力信号のデューティを算出する。
【発明の効果】
【００１５】
本願の開示する信号制御回路、情報処理装置及びデューティ算出方法の一つの態様によれば、データ異常における原因の切り分けを容易にすることができるという効果を奏する。
【図面の簡単な説明】
【００１６】
【図１】図１は、情報処理装置の概略構成図である。
【図２】図２は、実施例１に係るメモリインタフェース回路及び情報処理装置のブロック図である。
【図３Ａ】図３Ａは、立上用判定テーブルの一例の図である。
【図３Ｂ】図３Ｂは、立下用判定テーブルの一例の図である。
【図４Ａ】図４Ａは、デューティが５０％の場合のＤＱＳ信号の両エッジの遅延を表す図である。
【図４Ｂ】図４Ｂは、デューティが５０％以外の場合のＤＱＳ信号の両エッジの遅延を表す図である。
【図５】図５は、両エッジの遅延とデューティのズレ量との関係を表す図である。
【図６】図６は、立上用設定値及び立下用設定値とデューティ算出部によって算出されるデューティとの関係を表す図である。
【図７】図７は、実施例１に係るメモリインタフェース回路によるデューティ算出処理のフローチャートである。
【図８】図８は、ＤＱＳ信号の位相が進んでいる場合のデューティ算出処理のタイミングチャートである。
【図９】図９は、ＤＱＳ信号の位相が遅れている場合のデューティ算出処理のタイミングチャートである。
【図１０】図１０は、実施例２に係るメモリインタフェース回路を含む情報処理システムのブロック図である。
【図１１Ａ】図１１Ａは、デューティが正常な状態のＤＱＳ信号を用いたデータ取得を表す図である。
【図１１Ｂ】図１１Ｂは、デューティが劣化した状態のＤＱＳ信号を用いたデータ取得を表す図である。
【図１２】図１２は、デューティ異常判定テーブルの一例を示す図である。
【図１３】図１３は、実施例３に係るメモリインタフェース回路のブロック図である。
【図１４Ａ】図１４Ａは、エッジ切替信号の生成方法の一例における条件判定を説明するための図である。
【図１４Ｂ】図１４Ｂは、エッジ切替信号の生成方法の一例のタイミングチャートである。
【図１５】図１５は、エッジ切替信号の生成の一例を用いた場合のデューティ算出処理のフローチャートである。
【図１６】図１６は、エッジ切替信号の生成方法の他の例のタイミングチャートである。
【図１７】図１７は、エッジ切替信号の生成の他の例を用いた場合のデューティ算出処理のフローチャートである。
【図１８】図１８は、ハードウェア構成の他の例の図である。
【発明を実施するための形態】
【００１７】
以下に、本願の開示する信号制御回路、情報処理装置及びデューティ算出方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例により本願の開示する信号制御回路、情報処理装置及びデューティ算出方法が限定されるものではない。
【実施例１】
【００１８】
図１は、情報処理装置の概略構成図である。本実施例に係る情報処理装置は、チップセット１００、ＤＩＭＭ２、及びCentral  Processing  Unit（ＣＰＵ）３を有する。
【００１９】
チップセット１００は、メモリコントローラ１０を搭載する。そして、メモリコントローラ１０は、メモリインタフェース回路１を有する。
【００２０】
ＤＩＭＭ２は、記憶媒体であるＤＲＡＭ（Dynamic  Random  Access  Memory）を有する記憶装置である。ＤＩＭＭ２は、データのリード要求及びクロック信号を後述するメモリインタフェース回路１から受信する。そして、ＤＩＭＭ２は、受信したクロック信号からデータストローブ（ＤＱＳ）信号を生成する。そして、ＤＩＭＭ２は、ＤＱＳ信号をデータ（ＤＱ）信号とともにメモリインタフェース回路１へ送信する。
【００２１】
ＣＰＵ３は、ＤＩＭＭ２からデータを読み出す命令であるリード要求のコマンドをチップセット１００上のメモリコントローラ１０へ送信する。そして、ＣＰＵ３は、リード要求で指定したデータをメモリコントローラ１０から受信する。その後、ＣＰＵ３の演算処理部３１は、受信したデータに対して処理を実行する。
【００２２】
メモリコントローラ１０は、リード要求のコマンドをＣＰＵ３から受信する。そして、メモリコントローラ１０は、内部クロック信号を生成し、生成した内部クロック信号とともにリード要求をメモリインタフェース回路１に対して送信する。その後、メモリコントローラ１０は、メモリインタフェース回路１が取り込んだデータを取得する。そして、メモリコントローラ１０は、取得したデータをＣＰＵ３へ送信する。
【００２３】
メモリインタフェース回路１は、リード要求をメモリコントローラ１０から受信する。さらに、メモリインタフェース回路１は、内部クロック信号をメモリコントローラ１０から受信する。そして、メモリインタフェース回路１は、リード要求とともにクロック（ＣＫ）信号をＤＩＭＭ２へ送信する。
【００２４】
その後、メモリインタフェース回路１は、データストローブ（ＤＱＳ）信号及びデータ（ＤＱ）信号を受信する。次に、メモリインタフェース回路１は、ＤＱＳ信号に遅延を与えて内部クロック信号との同期をとる。具体的には、メモリインタフェース回路１は、ＤＱＳ信号の立上りとＤＱＳ信号に固定遅延を与えた信号の立上りが内部クロック信号の立下りの前後にくるように、データストローブ（ＤＱＳ）信号に遅延を与える。そして、メモリインタフェース回路１は、遅延を与えたＤＱＳ信号のエッジのタイミングで、ＤＱ信号からデータを取り込む。その後、メモリインタフェース回路１は、取り込んだデータをＣＰＵ３へ送信する。
【００２５】
また、本実施例に係るメモリインタフェース回路１は、ＤＱＳ信号の立上りの位相を内部クロック信号に合わせた場合のＤＱＳに与えた遅延及びＤＱＳ信号の立下りの位相を内部クロック信号に合わせた場合のＤＱＳに与えた遅延を求める。そして、メモリインタフェース回路１は、メモリコントローラ１０の外部、例えばＣＰＵ３に求めた各遅延を通知する。そして、ＣＰＵ３は、メモリインタフェース回路１が求めた各遅延からＤＱＳ信号のデューティをデューティ算出部１４で算出する。
【００２６】
この場合、例えば、ＣＰＵ３は、ＤＱＳ信号のデューティをモニタ（不図示）へ表示するなどにより、情報処理装置の管理者などにＤＱＳ信号のデューティの状態を通知する。これにより、管理者は、デューティ異常の発生を迅速に把握することができ、データ異常発生時の原因の切り分けを迅速に行うことができる。
【００２７】
そこで、次に、図２を参照して、本実施例に係るデューティの算出を行うメモリインタフェース回路１及び情報処理装置の詳細を説明する。図２は、実施例１に係るメモリインタフェース回路及び情報処理装置のブロック図である。図２では、デューティ算出の機能について説明するため、例えば、ＤＩＭＭ２へのクロック（ＣＫ）信号の送信などの機能を有する各部は省略してある。
【００２８】
図２に示すように、本実施例に係るメモリインタフェース回路１は、立上側位相判定回路１１、立下側位相判定回路１２、可変遅延設定値比較部１３、及びデータ取込部３０を有する。
【００２９】
立上側位相判定回路１１は、内部クロック信号の立下りとＤＱＳ信号の立上りのタイミングを合わせるための遅延量を求める回路である。データ取込部３０は、立上側位相判定回路１１で求められた遅延量が与えられたＤＱＳ信号を用いて、ＤＱ信号からデータの取り込みを行う。次に、立上側位相判定回路１１の詳細について説明する。
【００３０】
立上側位相判定回路１１は、可変遅延付加部１１１、固定遅延付加部１１２、ラッチ１１３、位相判定部１１４、及び可変遅延制御部１１５を有する。
【００３１】
可変遅延付加部１１１は、ＤＱＳ信号をＤＩＭＭ２から受信する。また、可変遅延付加部１１１は、ＤＱＳ信号に与える遅延量を指定する可変遅延設定値を可変遅延制御部１１５から受ける。そして、可変遅延付加部１１１は、可変遅延設定値で指定されるステップ数分の遅延量をＤＱＳ信号に与える。ここで、ステップとは、予め決められた遅延量をＤＱＳ信号に与える単位である。すなわち、可変遅延付加部１１１は、ステップ数を可変遅延制御部１１５から受信し、受信したステップ数で予め決められた遅延量を乗算した値を遅延量としてＤＱＳ信号に与える。以下では、可変遅延付加部１１１が与える遅延量を「立上用可変遅延量」という。そして、可変遅延付加部１１１は、立上用可変遅延量を与えたＤＱＳ信号をラッチ１１３及び固定遅延付加部１１２へ出力する。
【００３２】
固定遅延付加部１１２は、立上用可変遅延量が与えられたＤＱＳ信号の入力を可変遅延付加部１１１から受ける。そして、固定遅延付加部１１２は、立上用可変遅延量が与えられたＤＱＳ信号に予め決められた遅延量を与える。以下では、固定遅延付加部１１２が与える遅延量を「立上用固定遅延量」という。その後、固定遅延付加部１１２は、立上用可変遅延量及び立上用固定遅延量が付加されたＤＱＳ信号をラッチ１１３へ出力する。
【００３３】
ラッチ１１３は、立上用可変遅延量が与えられたＤＱＳ信号の入力を可変遅延付加部１１１から受ける。また、ラッチ１１３は、立上用可変遅延量及び立上用固定遅延量が付加されたＤＱＳ信号の入力を固定遅延付加部１１２から受ける。以下では、可変遅延付加部１１１から出力された信号を「立上用先行信号」と呼び、固定遅延付加部１１２から出力された信号を「立上用後行信号」と呼ぶ。
【００３４】
また、ラッチ１１３は、内部クロック信号の入力をクロック発生部１５から受ける。さらに、ラッチ１１３は、立上用インヒビット（Inhibit：ＩＨ）信号の入力を可変遅延制御部１１５から受ける。
【００３５】
ラッチ１１３は、立上用ＩＨ信号がＬｏｗの場合、内部クロック信号の立下りのタイミングで立上用先行信号及び立上用後行信号の位相情報を取り込む。本実施例では、ラッチ１１３は、信号がＨｉｇｈレベルの場合、位相情報を「１」として取り込み、信号がＬｏｗレベルの場合、位相情報を「０」として取り込む。例えば、内部クロック信号が立下りのタイミングで、立上用先行信号がＨｉｇｈで、立上用後行信号がＬｏｗの場合、立上用先行信号の位相情報として「１」を取り込み、立上用後行信号の位相情報として「０」を取り込む。
【００３６】
そして、ラッチ１１３は、立上用先行信号及び立上用後行信号の位相情報を位相判定部１１４へ出力する。
【００３７】
位相判定部１１４は、位相情報の組み合わせに対応する位相状態を記憶する。例えば、位相判定部１１４は、図３Ａで表される立上用判定テーブル２０１を記憶する。図３Ａは、立上用判定テーブルの一例の図である。図３Ａでは、位相情報として数字を２つ並べているが、前段が立上用後行信号の値を表し、後段が立上用先行信号の値を表す。
【００３８】
位相判定部１１４は、立上用先行信号及び立上用後行信号の位相情報の入力をラッチ１１３から受ける。そして、位相判定部１１４は、受信した位相情報の組み合わせに対応する位相状態を立上用判定テーブル２０１から取得する。その後、位相判定部１１４は、取得した位相状態を可変遅延制御部１１５へ出力する。以下では、ＤＱＳ信号の位相が内部クロック信号の位相に比べて遅れた位相状態を、「遅れた位相状態」という。また、ＤＱＳ信号の位相がクロック信号の位相に比べて進んだ位相状態を、「進んだ位相状態」という。さらに、ＤＱＳ信号の位相とクロック信号の位相が一致している位相状態を、「一致した位相状態」という。
【００３９】
可変遅延制御部１１５は、位相状態の入力を位相判定部１１４から受ける。そして、可変遅延制御部１１５は、遅れた位相状態の場合、ＤＱＳ信号の位相を１ステップ分進ませた可変遅延設定値を求める。すなわち、可変遅延制御部１１５は、可変遅延付加部１１１へ通知したステップ数から１を減算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１１５は、求めた可変遅延設定値を可変遅延付加部１１１へ送信する。
【００４０】
また、可変遅延制御部１１５は、進んだ位相状態の場合、現在のＤＱＳ信号の位相からさらに予め決められた１ステップ分遅らせる可変遅延設定値を求める。すなわち、可変遅延制御部１１５は、可変遅延付加部１１１へ通知したステップ数に１を加算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１１５は、求めた可変遅延設定値を可変遅延付加部１１１へ送信する。
【００４１】
また、可変遅延制御部１１５は、一致した位相状態の場合、可変遅延設定値を保持する指示を可変遅延付加部１１１へ送信する。さらに、可変遅延制御部１１５は、可変遅延付加部１１１へ通知した可変遅延設定値を可変遅延設定値比較部１３へ出力する。以下、この可変遅延制御部１１５から出力される可変遅延設定値を、「立上用設定値」という。この立上用設定値が、「第１遅延量」の一例にあたる。
【００４２】
立下側位相判定回路１２は、内部クロック信号の立下りとＤＱＳ信号の立下りのタイミングを合わせるための遅延量を求める回路である。
【００４３】
立下側位相判定回路１２は、可変遅延付加部１２１、固定遅延付加部１２２、ラッチ１２３、位相判定部１２４、及び可変遅延制御部１２５を有する。
【００４４】
可変遅延付加部１２１は、ＤＱＳ信号をＤＩＭＭ２から受信する。また、可変遅延付加部１２１は、ＤＱＳ信号に与える遅延量を指定する可変遅延設定値を可変遅延制御部１２５から受ける。そして、可変遅延付加部１２１は、可変遅延設定値により指定された遅延量をＤＱＳ信号に与える。以下では、可変遅延付加部１２１が与える遅延量を「立下用可変遅延量」という。そして、可変遅延付加部１２１は、立下用可変遅延量を与えたＤＱＳ信号をラッチ１２３及び固定遅延付加部１２２へ出力する。
【００４５】
固定遅延付加部１２２は、立下用可変遅延量が与えられたＤＱＳ信号の入力を可変遅延付加部１２１から受ける。そして、固定遅延付加部１２２は、立下用可変遅延量が与えられたＤＱＳ信号に予め決められた遅延量を与える。以下では、固定遅延付加部１２２が与える遅延量を「立下用固定遅延量」という。その後、固定遅延付加部１２２は、立下用可変遅延量及び立下用固定遅延量が付加されたＤＱＳ信号をラッチ１２３へ出力する。
【００４６】
ラッチ１２３は、立下用可変遅延量が与えられたＤＱＳ信号の入力を可変遅延付加部１２１から受ける。また、ラッチ１２３は、立下用可変遅延量及び立下用固定遅延量が付加されたＤＱＳ信号の入力を固定遅延付加部１２２から受ける。以下では、可変遅延付加部１２１から出力された信号を「立下用先行信号」と呼び、固定遅延付加部１２２から出力された信号を「立下用後行信号」と呼ぶ。
【００４７】
また、ラッチ１２３は、クロック信号の入力をクロック発生部１５から受ける。さらに、ラッチ１２３は、立下用インヒビット（Inhibit：ＩＨ）信号の入力を可変遅延制御部１２５から受ける。
【００４８】
ラッチ１２３は、立下用ＩＨ信号がＬｏｗの場合、クロック信号の立下りのタイミングで立下用先行信号と立下用後行信号の位相情報を取り込む。
【００４９】
そして、ラッチ１２３は、立下用先行信号及び立下用後行信号の位相情報を位相判定部１２４へ出力する。
【００５０】
位相判定部１２４は、位相情報の組み合わせに対応する位相状態を記憶する。例えば、位相判定部１２４は、図３Ｂで表される立下用判定テーブル２０２を記憶する。図３Ｂは、立下用判定テーブルの一例の図である。
【００５１】
位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報の入力をラッチ１２３から受ける。そして、位相判定部１２４は、受信した位相情報の組み合わせに対応する位相状態を立下用判定テーブル２０２から取得する。その後、位相判定部１２４は、取得した位相状態を可変遅延制御部１２５へ出力する。
【００５２】
可変遅延制御部１２５は、位相状態の入力を位相判定部１２４から受ける。そして、可変遅延制御部１２５は、遅れた位相状態の場合、ＤＱＳ信号の位相を予め決められた１ステップ分進ませた可変遅延設定値を求める。すなわち、可変遅延制御部１１５は、可変遅延付加部１１１へ通知したステップ数から１を減算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１２５は、求めた可変遅延設定値を可変遅延付加部１２１へ送信する。
【００５３】
また、可変遅延制御部１２５は、進んだ位相状態の場合、ＤＱＳ信号の位相を予め決められた１ステップ分遅らせる可変遅延設定値を求める。すなわち、可変遅延制御部１１５は、可変遅延付加部１１１へ通知したステップ数に１を加算したステップ数を可変遅延設定値とする。そして、可変遅延制御部１２５は、求めた可変遅延設定値を可変遅延付加部１２１へ送信する。
【００５４】
また、可変遅延制御部１２５は、一致した位相状態の場合、可変遅延設定値を保持する指示を可変遅延付加部１２１へ送信する。さらに、位相が一致した場合、可変遅延制御部１２５は、可変遅延設定値を可変遅延設定値比較部１３へ出力する。以下、この可変遅延制御部１２５から出力される可変遅延設定値を、「立下用設定値」という。この立下用設定値が、「第２遅延量」の一例にあたる。
【００５５】
可変遅延設定値比較部１３は、立上用設定値の入力を可変遅延制御部１１５から受ける。また、可変遅延設定値比較部１３は、立下用設定値の入力を可変遅延制御部１２５から受ける。
【００５６】
可変遅延設定値比較部１３は、立上用設定値と立下用設定値の差分を求める。そして、可変遅延設定値比較部１３は、求めた立上用設定値と立下用設定値の差分をデューティ算出部１４へ出力する。以上に説明した、立上側位相判定回路１１及び立下側位相判定回路１２が、「遅延量取得部」の一例にあたる。
【００５７】
デューティ算出部１４は例えば図１におけるＣＰＵ３などで実現される。デューティ算出部１４は、立上用設定値と立下用設定値の差分を可変遅延設定値比較部１３から受信する。
【００５８】
そして、デューティ算出部１４は、受信した立上用設定値と立下用設定値の差分を用いてＤＱＳ信号のデューティを算出する。以下、図４Ａ、図４Ｂ、及び図５を参照して、デューティ算出部１４によるデューティの算出方法について説明する。図４Ａは、デューティが５０％の場合のＤＱＳ信号の両エッジの遅延を表す図である。図４Ｂは、デューティが５０％以外の場合のＤＱＳ信号の両エッジの遅延を表す図である。また、図５は、両エッジの遅延とデューティのズレ量との関係を表す図である。
【００５９】
図４Ａの信号３０１は、デューティが５０％の場合のＤＱＳ信号を表す。信号３０２は、立上用ＩＨ信号を表す。信号３０３は、立上用先行信号を表す。信号３０４は、立上用後行信号を表す。信号３０３及び信号３０４は、信号３０２がＬｏｗの場合に値が取得される。すなわち、タイミング３０８で、信号３０３及び信号３０４の値が取得される。
【００６０】
また、信号３０５は、立下用ＩＨ信号を表す。信号３０６は、立下用先行信号を表す。信号３０７は、立下用後行信号を表す。信号３０６及び信号３０７は、信号３０５がＬｏｗの場合に値が取得される。すなわち、タイミング３０９で、信号３０６及び信号３０７の値が取得される。
【００６１】
本実施例では、ＤＱＳ信号の周期がクロック信号の周期の２倍であるため、ＤＱＳ信号のデューティが５０％の場合、立上用先行信号である信号３０３に与えられる遅延３１０と、立下用先行信号である信号３０６に与えられる遅延３１１とは等しい。
【００６２】
図４Ｂの信号３１２は、デューティが５０％より大きい場合のＤＱＳ信号を表す。信号３１３は、立上用ＩＨ信号を表す。信号３１４は、立上用先行信号を表す。信号３１５は、立上用後行信号を表す。信号３１４及び信号３１５は、信号３１３がＬｏｗの場合に値が取得される。すなわち、タイミング３１９で、信号３１４及び信号３１５の値が取得される。
【００６３】
信号３１６は、立下用ＩＨ信号を表す。信号３１７は、立下用先行信号を表す。信号３１８は、立下用後行信号を表す。信号３１７及び信号３１８は、信号３１６がＬｏｗの場合に値が取得される。すなわち、タイミング３２０で、信号３１７及び信号３１８の値が取得される。
【００６４】
ＤＱＳ信号のデューティが５０％以外の場合、立上用先行信号である信号３１４に与えられる遅延３２１と、立下用先行信号である信号３１７に与えられる遅延３２２とは一致しない。
【００６５】
そして、図５に示すように、信号３０１と信号３１２との差である期間３２３は、信号３１４に与えられる遅延３２１と信号３１７に与えられる遅延３２２との差分と等しくなる。
【００６６】
そして、可変遅延付加部１１１及び可変遅延付加部１２１が与える遅延量は、立上用設定値及び立下用設定値から算出される。すなわち、遅延３２１は、立上用設定値に１ステップ分の単位遅延量を乗算した値である。また、遅延３２２は、立下用設定値に１ステップ分の単位遅延量を乗算した値である。
【００６７】
そこで、デューティ算出部１４は、受信した立上用設定値及び立下用設定値のそれぞれに１ステップ分の単位遅延量を乗算し、求めた値同士の差分を求めることで、ＤＱＳ信号のデューティのズレ量が算出できる。
【００６８】
そして、ＤＱＳ信号のデューティは、ＤＱＳ信号のＨｉｇｈレベル部分の幅をＤＱＳ信号の周期で除算した値をパーセンテージで表示することで得られる。そこで、デューティは、立上用設定値と立下用設定値との差分をＸとした場合、デューティ＝５０＋ａＸという関数で表すことができる。ここで、ａは、１ステップ分の単位遅延量をＤＱＳ信号の周期で除算した値をパーセンテージに直した値である。すなわち、デューティ算出部１４は、立上用設定値と立下用設定値との差分を５０＋ａＸに代入してデューティを算出する。
【００６９】
立上用設定値及び立下用設定値とデューティ算出部１４によって算出されるデューティとの関係は、図６の表３３０のようになる。図６は、立上用設定値及び立下用設定値とデューティ算出部によって算出されるデューティとの関係を表す図である。表３３０に示すように、Ｘが０より大きければ、デューティは５０％より大きい。すなわち、Ｈｉｇｈレベルの幅がＬｏｗレベルの幅に比べて大きい。Ｘが０であれば、デューティは５０％である。すなわち、Ｈｉｇｈレベルの幅とＬｏｗレベルの幅が等しい。Ｘが０より小さければ、デューティは５０％より小さい。すなわち、Ｈｉｇｈレベルの幅がＬｏｗレベルの幅に比べて小さい。
【００７０】
例えば、Ｘが３で、ＤＱＳ信号の周期が１０００ｐｓで、１ステップ分の単位遅延量が２０ｐｓの場合で具体例を説明する。この場合、デューティが５０％であれば、ＤＱＳ信号のＨｉｇｈレベルの幅は５００ｐｓとなる。また、係数ａは、ａ＝（２０／１０００）×１００＝２となる。そこで、Ｘが３の場合のデューティは、５０＋（２×３）＝５６％となる。このように、デューティ算出部１４は、立上用設定値及び立下用設定値からデューティを算出する。
【００７１】
図２に戻り説明を続ける。デューティ算出部１４は、算出したデューティをモニタに表示するなどして、現在のデューティ比を情報処理装置の操作者に通知する。
【００７２】
次に、図７を参照して、本実施例に係るメモリインタフェース回路によるデューティ算出処理の流れについて説明する。図７は、実施例１に係るメモリインタフェース回路によるデューティ算出処理のフローチャートである。
【００７３】
ラッチ１１３は、立上用先行信号及び立上用後行信号の位相情報を取得する（ステップＳ１）。
【００７４】
次に、位相判定部１１４は、立上用先行信号及び立上用後行信号の位相情報の入力をラッチ１１３から受ける。そして、位相判定部１１４は、立上用先行信号及び立上用後行信号の位相情報からＤＱＳ信号の位相状態を判定する。そして、位相判定部１１４は、ＤＱＳ信号の位相状態を可変遅延制御部１１５へ出力する。
【００７５】
可変遅延制御部１１５は、ＤＱＳ信号の位相状態の入力を位相判定部１１４から受信する。そして、可変遅延制御部１１５は、ＤＱＳ信号の立上りの位相と内部クロック（ＣＬＫ）の位相との関係を判定する（ステップＳ２）。位相が一致した場合（ステップＳ２：一致）、可変遅延制御部１１５は、立上用設定値を可変遅延設定値比較部１３へ出力する。
【００７６】
これに対して、位相が進んでいる場合（ステップＳ２：進んでいる）、可変遅延制御部１１５は、立上用設定値に１を加算し（ステップＳ３）、ステップＳ１へ戻る。また、位相が遅れている場合（ステップＳ２：遅れている）、立上用設定値から１を減算し（ステップＳ４）、ステップＳ１へ戻る。
【００７７】
一方、ラッチ１２３は、立下用先行信号及び立下用後行信号の位相情報を取得する（ステップＳ５）。
【００７８】
次に、位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報の入力をラッチ１２３から受ける。そして、位相判定部１２４は、立下用先行信号及び立下用後行信号の位相情報からＤＱＳ信号の位相状態を判定する。そして、位相判定部１２４は、ＤＱＳ信号の位相状態を可変遅延制御部１２５へ出力する。
【００７９】
可変遅延制御部１２５は、ＤＱＳ信号の位相状態の入力を位相判定部１２４から受信する。そして、可変遅延制御部１２５は、ＤＱＳ信号の立下りの位相と内部クロック（ＣＬＫ）の位相との関係を判定する（ステップＳ６）。位相が一致した場合（ステップＳ６：一致）、可変遅延制御部１２５は、立下用設定値を可変遅延設定値比較部１３へ出力する。
【００８０】
これに対して、位相が進んでいる場合（ステップＳ６：進んでいる）、可変遅延制御部１２５は、立下用設定値に１を加算し（ステップＳ７）、ステップＳ５へ戻る。また、位相が遅れている場合（ステップＳ６：遅れている）、可変遅延制御部１２５は、立下用設定値から１を減算し（ステップＳ８）、ステップＳ５へ戻る。
【００８１】
可変遅延設定値比較部１３は、立上用設定値の入力を可変遅延制御部１１５から受け、立下用設定値の入力を可変遅延制御部１２５から受ける。そして、可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分を求める（ステップＳ９）。可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分をデューティ算出部１４へ出力する。
【００８２】
デューティ算出部１４は、立上用設定値と立下用設定値との差分の入力を可変遅延設定値比較部１３から受ける。そして、デューティ算出部１４は、受信した差分を用いてＤＱＳ信号のデューティを算出する（ステップＳ１０）。
【００８３】
次に、図８を参照して、ＤＱＳ信号の位相が内部クロック（ＣＬＫ）に対し、進んでいる場合のデューティ算出処理の全体的な流れを説明する。図８は、ＤＱＳ信号の位相が進んでいる場合のデューティ算出処理のタイミングチャートである。
【００８４】
図８の横軸は時間の経過を表す。また、信号４０１は、立上用先行信号を表す。また、信号４０２は、立上用後行信号を表す。また、信号４０３は、立上用ＩＨ信号を表す。また、信号４０４は、立下用先行信号を表す。また、信号４０５は、立下用後行信号を表す。また、信号４０６は、立下用ＩＨ信号を表す。信号４０１及び信号４０２は、立上用ＩＨ信号４０３がＬｏｗの場合に値が取得される。すなわち、Ｂ０、Ｂ１、及びＢ２のタイミングで、ラッチ１１３は、信号４０１及び信号４０２の値を取得する。信号４０４及び信号４０５は、立下用ＩＨ信号４０６がＬｏｗの場合に値が取得される。すなわち、Ａ０、Ａ１、及びＡ２のタイミングで、ラッチ１２３は、信号４０４及び信号４０５の値を取得する。
【００８５】
立上り側位相調整では、可変遅延付加部１１１は、信号４０１に立上用設定値が「ｎ−１」分の可変遅延を与えている（ステップＳ２０）。信号４０２は、信号４０１に固定遅延が付加された信号となっている。
【００８６】
タイミングＢ０において、ラッチ１１３は、信号４０１及び信号４０２の値を取得する（ステップＳ２１）。この場合、ラッチ１１３は、信号４０１の値として「１」を取得し、信号４０２の値として「１」を取得する。位相判定部１１４は、「１１」という位相情報の組をラッチ１１３から受ける（ステップＳ２２）。ここで、位相情報の組を表す「１１」は、先頭ｂｉｔが後行信号の値を表し、末尾ｂｉｔが先行信号の値を表す。以下では、先行信号及び後行信号の位相情報の組を、単に「位相情報」という場合がある。
【００８７】
位相判定部１１４は、進んだ位相状態であると判定する。そして、位相判定部１１４は、進んだ位相状態である旨を可変遅延制御部１１５へ通知する（ステップＳ２３）。可変遅延制御部１１５は、立上用設定値に１を加算し新たな立上用設定値を求める。図８では、可変遅延制御部１１５は、「ｎ−１」であった立上用設定値に１を加算して、新たな立上用設定値として「ｎ」を求めている。そして、可変遅延制御部１１５は、求めた立上用設定値を可変遅延付加部１１１へ通知する（ステップＳ２４）。
【００８８】
可変遅延付加部１１１は、立上用設定値の入力を可変遅延制御部１１５から受けて、１ステップ分遅延量を増加させた遅延をＤＱＳ信号に与える（ステップＳ２５）。
【００８９】
タイミングＢ１において、ラッチ１１３は、信号４０１及び信号４０２の値を取得する（ステップＳ２６）。この場合、ラッチ１１３は、信号４０１の値として「１」を取得し、信号４０２の値として「０」を取得する。位相判定部１１４は、「０１」という位相情報をラッチ１１３から受ける（ステップＳ２７）。
【００９０】
位相判定部１１４は、位相情報が「０１」であることから、ＤＱＳ信号の位相が一致したと判定する（ステップＳ２８）。そして、位相判定部１１４は、一致した位相状態である旨を可変遅延制御部１１５へ通知する。可変遅延制御部１１５は、位相が一致したことから、この時の立上用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ２９）。
【００９１】
一方、立下り側位相調整では、可変遅延付加部１２１は、信号４０４に立下用設定値が「ｍ−１」分の可変遅延を与えている（ステップＳ３０）。信号４０５は、信号４０４に固定遅延が付加された信号となっている。
【００９２】
タイミングＡ０において、ラッチ１２３は、信号４０４及び信号４０５の値を取得する（ステップＳ３１）。この場合、ラッチ１２３は、信号４０４の値として「０」を取得し、信号４０５の値として「０」を取得する。位相判定部１２４は、「００」という位相情報をラッチ１２３から受ける（ステップＳ３２）。
【００９３】
位相判定部１２４は、進んだ位相状態である判定する。そして、位相判定部１２４は、進んだ位相状態である旨を可変遅延制御部１２５へ通知する（ステップＳ３３）。可変遅延制御部１２５は、立下用設定値に１を加算し新たな立下用設定値を求める。図８では、可変遅延制御部１２５は、「ｍ−１」であった立下用設定値に１を加算して、新たな立下用設定値として「ｍ」を求めている。そして、可変遅延制御部１２５は、求めた立下用設定値を可変遅延付加部１２１へ通知する（ステップＳ３４）。
【００９４】
可変遅延付加部１２１は、立下用設定値の入力を可変遅延制御部１２５から受けて、１ステップ分遅延量を増加させた遅延をＤＱＳ信号に与える（ステップＳ３５）。
【００９５】
タイミングＡ１において、ラッチ１２３は、信号４０４及び信号４０５の値を取得する（ステップＳ３６）。この場合、ラッチ１２３は、信号４０４の値として「０」を取得し、信号４０５の値として「１」を取得する。位相判定部１２４は、「１０」という位相情報をラッチ１２３から受ける（ステップＳ３７）。
【００９６】
位相判定部１２４は、位相情報が「１０」であることから、ＤＱＳ信号の位相が一致したと判定する。そして、位相判定部１２４は、一致した位相状態である旨を可変遅延制御部１２５へ通知する（ステップＳ３８）。可変遅延制御部１２５は、位相が一致したことから、この時の立下用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ３９）。
【００９７】
可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分を求める（ステップＳ４０）。
【００９８】
その後、可変遅延設定値比較部１３は、求めた差分をデューティ算出部１４へ通知する。デューティ算出部１４は、受信した立上用設定値と立下用設定値との差分を用いてＤＱＳ信号のデューティを算出し、操作者に通知する。
【００９９】
次に、図９を参照して、ＤＱＳ信号の位相が内部クロック（ＣＬＫ）に対し、遅れている場合のデューティ算出処理の全体的な流れを説明する。図９は、ＤＱＳ信号の位相が遅れている場合のデューティ算出処理のタイミングチャートである。
【０１００】
図９の横軸は時間の経過を表す。また、信号５０１は、立上用先行信号を表す。また、信号５０２は、立上用後行信号を表す。また、信号５０３は、立上用ＩＨ信号を表す。また、信号５０４は、立下用先行信号を表す。また、信号５０５は、立下用後行信号を表す。また、信号５０６は、立下用ＩＨ信号を表す。信号５０１及び信号５０２は、立上用ＩＨ信号５０３がＬｏｗの場合に値が取得される。すなわち、Ｂ０、Ｂ１、及びＢ２のタイミングで、ラッチ１１３は、信号５０１及び信号５０２の値を取得する。信号５０４及び信号５０５は、立下用ＩＨ信号５０６がＬｏｗの場合に値が取得される。すなわち、Ａ０、Ａ１、及びＡ２のタイミングで、ラッチ１２３は、信号５０４及び信号５０５の値を取得する。
【０１０１】
立上り側位相調整では、可変遅延付加部１１１は、信号５０１に立上用設定値が「ｎ＋１」分の可変遅延を与えている（ステップＳ５０）。信号５０２は、信号５０１に固定遅延が付加された信号となっている。
【０１０２】
タイミングＢ０において、ラッチ１１３は、信号５０１及び信号５０２の値を取得する（ステップＳ５１）。この場合、ラッチ１１３は、信号５０１の値として「０」を取得し、信号５０２の値として「０」を取得する。位相判定部１１４は、「００」という位相情報をラッチ１１３から受ける（ステップＳ５２）。
【０１０３】
位相判定部１１４は、遅れた位相状態であると判定する。そして、位相判定部１１４は、遅れた位相状態である旨を可変遅延制御部１１５へ通知する（ステップＳ５３）。可変遅延制御部１１５は、立上用設定値から１を減算し新たな立上用設定値を求める。図９では、可変遅延制御部１１５は、「ｎ＋１」であった立上用設定値から１を減算して、新たな立上用設定値として「ｎ」を求めている。そして、可変遅延制御部１１５は、求めた立上用設定値を可変遅延付加部１１１へ通知する（ステップＳ５４）。
【０１０４】
可変遅延付加部１１１は、立上用設定値の入力を可変遅延制御部１１５から受けて、１ステップ分遅延量を減少させた遅延をＤＱＳ信号に与える（ステップＳ５５）。
【０１０５】
タイミングＢ１において、ラッチ１１３は、信号５０１及び信号５０２の値を取得する（ステップＳ５６）。この場合、ラッチ１１３は、信号５０１の値として「１」を取得し、信号５０２の値として「０」を取得する。位相判定部１１４は、「０１」という位相情報をラッチ１１３から受ける（ステップＳ５７）。
【０１０６】
位相判定部１１４は、位相情報が「０１」であることから、一致した位相状態であると判定する（ステップＳ５８）。そして、位相判定部１１４は、一致した位相状態である旨を可変遅延制御部１１５へ通知する。可変遅延制御部１１５は、位相が一致したことから、この時の立上用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ５９）。
【０１０７】
一方、立下り側位相調整では、可変遅延付加部１２１は、信号５０４に立下用設定値が「ｍ＋１」分の可変遅延を与えている（ステップＳ６０）。信号５０５は、信号５０４に固定遅延が付加された信号となっている。
【０１０８】
タイミングＡ０において、ラッチ１２３は、信号５０４及び信号５０５の値を取得する（ステップＳ６１）。この場合、ラッチ１２３は、信号５０４の値として「１」を取得し、信号５０５の値として「１」を取得する。位相判定部１２４は、「１１」という位相情報をラッチ１２３から受ける（ステップＳ６２）。
【０１０９】
位相判定部１２４は、遅れた位相状態であると判定する。そして、位相判定部１２４は、遅れた位相状態である旨を可変遅延制御部１２５へ通知する（ステップＳ６３）。可変遅延制御部１２５は、立下用設定値から１を減算し新たな立下用設定値を求める。図９では、可変遅延制御部１２５は、「ｍ＋１」であった立下用設定値から１を減算して、新たな立下用設定値として「ｍ」を求めている。そして、可変遅延制御部１２５は、求めた立下用設定値を可変遅延付加部１２１へ通知する（ステップＳ６４）。
【０１１０】
可変遅延付加部１２１は、立下用設定値の入力を可変遅延制御部１２５から受けて、１ステップ分遅延量を減少させた遅延をＤＱＳ信号に与える（ステップＳ６５）。
【０１１１】
タイミングＡ１において、ラッチ１２３は、信号５０４及び信号５０５の値を取得する（ステップＳ６６）。この場合、ラッチ１２３は、信号５０４の値として「０」を取得し、信号５０２の値として「１」を取得する。位相判定部１２４は、「１０」という位相情報をラッチ１２３から受ける（ステップＳ６７）。
【０１１２】
位相判定部１２４は、位相情報が「１０」であることから、位相が一致した位相状態であると判定する。そして、位相判定部１２４は、一致した位相状態である旨を可変遅延制御部１２５へ通知する（ステップＳ６８）。可変遅延制御部１２５は、位相が一致したことから、この時の立下用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ６９）。
【０１１３】
可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分を求める（ステップＳ７０）。
【０１１４】
その後、可変遅延設定値比較部１３は、求めた差分をデューティ算出部１４へ通知する。デューティ算出部１４は、受信した立上用設定値と立下用設定値との差分を用いてＤＱＳ信号のデューティを算出し、操作者に通知する。
【０１１５】
以上に説明したように、本実施例に係る信号制御回路であるメモリインタフェース回路は、ＤＱＳ信号の立上りと内部クロック信号の立下りの位相を合わせるための立上用設定値に加えて、ＤＱＳ信号の立下りと内部クロック信号の立下りの位相を合わせるための立下用設定値とを求める。そして、メモリインタフェース回路は、立上用設定値と立下用設定値の差分からＤＱＳ信号のデューティを求める。これにより、ＤＱＳ信号の実際の状態に応じたデューティの測定が可能となる。また、操作者は、迅速にデューティの劣化を把握することができる。
【０１１６】
なお、本実施例では、内部クロック信号の立下りでＤＱＳ信号の位相情報を取得する例で説明したが、内部クロック信号は立下りに限定するものではない。
【０１１７】
また、既存の立上りの位相を合わせるための回路に加えて、立下り用の位相を合わせてその場合の遅延量を求める回路を設けることで、本願の機能を実現することができ、回路規模の増大を抑えつつ、デューティ測定の回路を実装することができる。
【０１１８】
また、本実施例では、メモリコントローラ１０の外部でデューティの算出を行ったが、これに限らず、メモリコントローラ１０が、同様の計算を用いてデューティの算出を行い、求めたデューティをメモリコントローラ１０の外部へ出力してもよい。
【実施例２】
【０１１９】
図１０は、実施例２に係るメモリインタフェース回路を含む情報処理システムのブロック図である。本実施例に係る情報処理システムは、メモリインタフェース回路で求めた立上用設定値と立下用設定値の差分を用いてデューティ異常を検出することが実施例１と異なるものである。以下の説明では、実施例１と同じ機能を有する各部については説明を省略する。
【０１２０】
本実施例に係るメモリインタフェース回路１は、図１０に示すように、実施例１の各部に加えてデューティ異常検出部１６をさらに有する。
【０１２１】
可変遅延設定値比較部１３は、立上用設定値と立下用設定値の差分を求める。そして、可変遅延設定値比較部１３は、立上用設定値と立下用設定値の差分をデューティ算出部１４に加えて、デューティ異常検出部１６へ通知する。
【０１２２】
デューティ異常検出部１６は、立上用設定値と立下用設定値の差分を入力として可変遅延設定値比較部１３から受ける。そして、デューティ異常検出部１６は、差分の絶対値がデューティ異常判定用閾値を超えているか否かを判定する。本実施例では、デューティ異常判定用閾値はステップ数で表されている。また、デューティ異常判定用閾値は、ＤＱＳ信号によりＤＱ信号を取り込むためのタイミングマージンなどに応じて適宜決定されることが好ましい。
【０１２３】
ここで、図１１Ａ及び図１１Ｂを参照して、デューティ異常判定閾値の決定方法の一例について説明する。図１１Ａは、デューティが正常な状態のＤＱＳ信号を用いたデータ取得を表す図である。また、図１１Ｂは、デューティが劣化した状態のＤＱＳ信号を用いたデータ取得を表す図である。図１１Ａ及び図１１Ｂの横軸は時間の経過を表す。また、縦軸は、ＤＱＳ信号に対しては信号レベルを表す。
【０１２４】
ここでは、ＤＱＳ信号の周期が１０００ｐｓであり、可変遅延の単位遅延が２０ｐｓであり、ラッチ１１３及び１２３のセットアップが１８０ｐｓ、ホールドが１８０ｐｓであり、信号の取り込みのタイミングマージンが±７０ｐｓの場合で説明する。可変遅延の単位遅延とは、１ステップで与えられる遅延量である。また、タイミングマージンが±７０ｐｓとは、デューティ５０％時にＨ幅が±７０ｐｓ以上ずれるとエラー発生するということを指す。
【０１２５】
図１１Ａでは、信号６０１がＤＱＳ信号を表し、信号６０２がＤＱ信号を表す。ＤＱ信号は、データの始まりから１８０ｐｓの期間６０３がセットアップの期間である。また、データの終わりまでの１８０ｐｓの期間６０５がホールドの期間である。そして、その間の期間６０４がタイミングマージンである。図１１Ａに示すように、デューティが５０％であれば５００ｐｓ経過時にＤＱＳ信号が立ち下がる。この立下りのタイミングでＤＱ信号のデータが読み取られる。この場合、読み取りのタイミングはタイミングマージンのちょうど真ん中であり、この場合の読み取りのタイミングの前後７０ｐｓがタイミングマージンとなっている。
【０１２６】
これに対して、デューティが正常の状態からタイミングマージンの７０ｐｓ以上読み取りのタイミングがずれると読み取りエラーが発生する。ここで、図１１Ｂでは、信号６０６でデューティが劣化したＤＱＳ信号を表し、信号６０７でＤＱ信号を表す。例えば、図１１Ｂのように、ＤＱＳ信号のＨ幅が５７０ｐｓ以上になると、タイミング６０８でデータが読み取られる。タイミング６０８は、期間６０５に入っており、タイミング６０８でデータが読み取られると、ホールドエラーが発生する。同様に、タイミング６０９でのデータの読み取りでも、ホールドエラーが発生する。このように、読み取りのタイミングにデューティが５０％の状態のタイミングからタイミングマージンの絶対値以上のずれが発生するとエラーが発生する。そこで、デューティ異常判定閾値を、タイミングマージンの絶対値を１ステップに対応する遅延で除算したステップ数と決定することができる。ここでは、７０ｐｓを２０ｐｓで除算すると、３．５ステップとなる。そして、エラーが発生する可能性のあるデューティ異常を確実に検出するため、立上用設定値と立下用設定値との差分の絶対値が３ステップ以上の場合デューティ異常と判定するように、デューティ異常判定閾値を３とする。
【０１２７】
この場合、デューティ異常検出部１６は、例えば、図１２に示すようなデューティ異常判定テーブル６２０を有する。図１２は、デューティ異常判定テーブルの一例を示す図である。デューティ異常検出部１６は、立上用設定値と立下用設定値との差分を取得し、デューティ異常判定テーブル６２０と比較する。そして、差分が＋３ステップ以上又は−３ステップ以下であれば、デューティ異常検出部１６は、デューティ異常を検出する。その後、デューティ異常検出部１６は、例えば、ＣＰＵ３などのメモリコントローラ１０の外部の装置にデューティ異常を通知する。
【０１２８】
以上に説明したように、本実施例に係る信号制御回路であるメモリインタフェース回路は、ＤＱＳ信号の立上りと内部クロック信号の立下りの位相を合わせた場合の立上用設定値と、ＤＱＳ信号の立下りと内部クロック信号の立下がりの位相を合わせた場合の立下用設定値とを求めて、それらの差分からデューティ異常を検出する。これにより、デューティに異常が発生した場合、すぐにデューティ異常を検出することができ、データ異常の原因がデューティ異常であるか否かの切り分けを迅速に行うことができる。
【実施例３】
【０１２９】
図１３は、実施例３に係るメモリインタフェース回路のブロック図である。本実施例に係る情報処理システムは、立上用設定値と立下用設定値を同じ位相判定回路を用いて求めることが実施例１と異なるものである。以下の説明では、実施例１と同じ機能を有する各部については説明を省略する。
【０１３０】
位相判定回路１７は、図２における立上側位相判定回路１１及び立下側位相判定回路１２の機能をまとめた回路である。動作の概要としては、位相判定回路１７は、最初に立上側位相判定回路１１と同様の動作を行い立上用設定値を求め、次に立下側位相判定回路１２と同様の動作を行い立下用設定値を求める。以下に詳細を説明する。
【０１３１】
位相判定回路１７は、可変遅延付加部１７１、固定遅延付加部１７２、ラッチ１７３、位相判定部１７４、及び可変遅延制御部１７５を有する。
【０１３２】
可変遅延付加部１７１は、図２における可変遅延付加部１１１及び可変遅延付加部１２１と同様の動作を行う。
【０１３３】
固定遅延付加部１７２は、図２における固定遅延付加部１１２及び固定遅延付加部１２２と同様の動作を行う。
【０１３４】
ラッチ１７３は、立上りの位相判定を行う場合には、立上用ＩＨ信号の入力をエッジ切替部２１から受ける。そして、ラッチ１７３は、図２におけるラッチ１１３と同様の動作を行う。また、立下りの位相判定を行う場合には、立下用ＩＨ信号の入力をエッジ切替部２１から受ける。そして、ラッチ１７３は、図２におけるラッチ１２３と同様の動作を行う。
【０１３５】
位相判定部１７４は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替信号をエッジ切替信号発生部２０から受ける。その場合、位相判定部１７４は、図２における位相判定部１１４と同様の動作を行う。また、位相判定部１７４は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替信号をエッジ切替信号発生部２０から受ける。その場合、位相判定部１７４は、図２における位相判定部１２４と同様の動作を行う。
【０１３６】
加えて、位相判定部１７４は、求めた位相情報をエッジ切替信号発生部２０へ出力する。
【０１３７】
可変遅延制御部１７５は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。また、立上りの位相判定を行う場合、可変遅延制御部１７５は、可変遅延付加部１７１に返す可変遅延設定値として、立上用設定値をエッジ切替部２２から受信する。その場合、可変遅延制御部１７５は、図２における可変遅延制御部１１５と同様に立上りの位相判定の処理における可変遅延設定値を求める。そして、可変遅延制御部１７５は、求めた立上りの位相判定処理における可変遅延設定値を順次上書きしながら立上用可変遅延設定値保持部１８に格納する。その後、立上りの位相が一致すると、可変遅延制御部１７５は、立上用設定値の算出完了の通知を立上用可変遅延設定値保持部１８へ出力する。
【０１３８】
また、可変遅延制御部１７５は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。また、立下りの位相判定を行う場合、可変遅延制御部１７５は、可変遅延付加部１７１に返す可変遅延設定値として、立下用設定値をエッジ切替部２２から受信する。その場合、可変遅延制御部１７５は、図２における可変遅延制御部１２５と同様に立下りの位相判定の処理における可変遅延設定値を求める。そして、可変遅延制御部１７５は、求めた立下りの位相判定における可変遅延設定値を順次上書きしながら立下用可変遅延設定値保持部１９に格納する。その後、立下りの位相が一致すると、可変遅延制御部１７５は、立下用設定値の算出完了の通知を立上用可変遅延設定値保持部１８へ出力する。
【０１３９】
エッジ切替部２１は、ＩＨ信号の入力を可変遅延制御部１７５から受ける。このＩＨ信号は、実施例１における立上用ＩＨ信号と同様の信号である。
【０１４０】
また、エッジ切替部２１は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。この場合、エッジ切替部２１は、可変遅延制御部１７５から受信したＩＨ信号をラッチ１７３へ出力する。
【０１４１】
また、エッジ切替部２１は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。この場合、エッジ切替部２１は、可変遅延制御部１７５から受信したＩＨ信号を反転させ、実施例１における立下用ＩＨ信号と同様のＩＨ信号を生成する。そして、エッジ切替部２１は、生成したＩＨ信号をラッチ１７３へ出力する。
【０１４２】
立上用可変遅延設定値保持部１８は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。そして、立上用可変遅延設定値保持部１８は、立上りの位相判定における可変遅延設定値を可変遅遅延制御部１７５から受信し、順次上書きしながら格納していく。
【０１４３】
そして、立上用可変遅延設定値保持部１８は、立上用設定値の算出完了の通知の入力を可変遅延制御部１７５から受ける。この場合、立上用可変遅延設定値保持部１８は、格納する可変遅延設定値を立上用設定値として可変遅延設定値比較部１３へ出力する。
【０１４４】
立下用可変遅延設定値保持部１９は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。そして、立下用可変遅延設定値保持部１９は、立下りの位相判定における可変遅延設定値を可変遅遅延制御部１７５から受信し、順次上書きしながら格納していく。
【０１４５】
そして、立下用可変遅延設定値保持部１９は、立下用設定値の算出完了の通知の入力を可変遅延制御部１７５から受ける。この場合、立下用可変遅延設定値保持部１９は、格納する可変遅延設定値を立下用設定値として可変遅延設定値比較部１３へ出力する。
【０１４６】
エッジ切替部２２は、立上りの位相判定を行う場合、立上りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。この場合、エッジ切替部２２は、現在の立上りの位相判定処理における可変遅延設定値を立上用可変遅延設定値保持部１８から取得する。そして、エッジ切替部２２は、取得した可変遅延設定値を、可変遅延付加部１７１へ返す可変遅延設定値として可変遅延制御部１７５へ出力する。
【０１４７】
また、エッジ切替部２２は、立下りの位相判定を行う場合、立下りのエッジを用いた位相判定を行うためのエッジ切替の信号をエッジ切替信号発生部２０から受ける。この場合、エッジ切替部２２は、現在の立下りの位相判定処理における可変遅延設定値を立下用可変遅延設定値保持部１９から取得する。そして、エッジ切替部２２は、取得した可変遅延設定値を、可変遅延付加部１７１へ返す可変遅延設定値として可変遅延制御部１７５へ出力する。
【０１４８】
可変遅延設定値比較部１３は、立上用設定値の入力を立上用可変遅延設定値保持部１８から受ける。また、可変遅延設定値比較部１３は、立下用設定値の入力を立下用可変遅延設定値保持部１９から受ける。その後、可変遅延設定値比較部１３は、実施例１と同様の動作を行い立上り用設定値と立下用設定値の差分を求め、求めた差分をデューティ算出部１４へ出力する。
【０１４９】
エッジ切替信号発生部２０は、位相情報の入力を位相判定部１７４から受ける。そして、エッジ切替信号発生部２０は、位相情報の入力が所定の条件に達すると、位相判定を行うエッジを切り替えるための信号を位相判定部１７４、可変遅延制御部１７５、立上用可変遅延設定値保持部１８、立下用可変遅延設定値保持部１９、エッジ切替部２１、及びエッジ切替部２２へ出力する。以下に、エッジ切替信号発生部２０によるエッジ切替信号の生成の例を説明する。
【０１５０】
図１４Ａは、エッジ切替信号の生成方法の一例における条件判定を説明するための図である。また、図１４Ｂは、エッジ切替信号の生成方法の一例のタイミングチャートである。
【０１５１】
図１４Ａの表７０１におけるエッジ切替信号において値が「０」の場合は、立上りのエッジを位相判定に用いることを示す。また、表７０１におけるエッジ切替信号において値が「１」の場合は、立下りのエッジを位相判定に用いることを示す。また、表７０１の位相情報における２つ並んだ数字の組は、末尾ｂｉｔが先行信号の位相情報を表し、先頭ｂｉｔが後行信号の位相情報を表す。ここでも、先行信号及び後行信号の位相情報の組みを、単に「位相情報」という場合がある。
【０１５２】
エッジ切替信号発生部２０は、図１４Ａの表７０１に示すように、立上りの位相判定を行っている状態で位相情報が０１になると、エッジ切替信号の値を「０」から「１」に変更する。また、エッジ切替信号発生部２０は、立上りの位相判定を行っている状態で位相情報が０１以外の場合、エッジ切替信号の値を「０」のまま保持する。さらに、エッジ切替信号発生部２０は、立下りの位相判定を行っている状態で位相情報が１０になると、エッジ切替信号の値を「１」から「０」に変更する。また、エッジ切替信号発生部２０は、立下りの位相判定を行っている状態で位相情報が１０以外の場合、エッジ切替信号の値を「１」のまま保持する。
【０１５３】
この場合の、図１４Ｂを参照して、位相情報の変化によるエッジ切替信号の変化を説明する。図１４Ｂのタイムチャートは、立上りの位相判定を行っている場合から始まる。期間７０２では、位相情報は「０１」以外である。この場合、エッジ切替信号発生部２０は、「０」の値のエッジ切替信号を出力する。そして、タイミング７０３で位相情報が「０１」に変化する。この場合、エッジ切替信号発生部２０は、タイミング７０４でエッジ切替信号の値を「０」から「１」に変更する。続いて、期間７０５では、位相情報は「１０」以外である。この場合、エッジ切替信号発生部２０は、「１」の値のエッジ切替信号を出力する。そして、タイミング７０６で位相情報が「１０」に変化する。この場合、エッジ切替信号発生部２０は、タイミング７０７でエッジ切替信号の値を「１」から「０」に変更する。
【０１５４】
次に、図１５を参照して、エッジ切替信号の生成の一例を用いた場合のデューティ算出処理の流れを説明する。図１５は、エッジ切替信号の生成の一例を用いた場合のデューティ算出処理のフローチャートである。
【０１５５】
エッジ切替信号発生部２０は、エッジ切替信号の値を「０」にする（ステップＳ１０１）。
【０１５６】
位相判定回路１７は、立上りを用いて位相判定を行う（ステップＳ１０２）。
【０１５７】
エッジ切替信号発生部２０は、位相情報の入力を位相判定部１７４から受ける。そして、エッジ切替信号発生部２０は、位相情報が「０１」となったか否かを判定する（ステップＳ１０３）。位相情報が「０１」になっていない場合（ステップＳ１０３：否定）、エッジ切替信号発生部２０は、ステップＳ１０２へ戻る。
【０１５８】
これに対して、位相情報が「０１」になった場合（ステップＳ１０３：肯定）、立上用可変遅延設定値保持部１８は、立上用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ１０４）。
【０１５９】
そして、エッジ切替信号発生部２０は、エッジ切替信号の値を「１」に変更する（ステップＳ１０５）。
【０１６０】
位相判定回路１７は、立下りを用いて位相判定を行う（ステップＳ１０６）。
【０１６１】
エッジ切替信号発生部２０は、位相情報の入力を位相判定部１７４から受ける。そして、エッジ切替信号発生部２０は、位相情報が「１０」となったか否かを判定する（ステップＳ１０７）。位相情報が「１０」になっていない場合（ステップＳ１０７：否定）、エッジ切替信号発生部２０は、ステップＳ１０６へ戻る。
【０１６２】
これに対して、位相情報が「１０」になった場合（ステップＳ１０７：肯定）、立下用可変遅延設定値保持部１９は、立下用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ１０８）。
【０１６３】
そして、可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分を求め、求めた差分をデューティ算出部１４へ出力する。デューティ算出部１４は、ＤＱＳ信号のデューティを算出し（ステップＳ１０９）、操作者へ通知する。
【０１６４】
次に、エッジ切替信号の生成方法の他の例を説明する。この例では、エッジ切替信号発生部２０は、位相情報の入力が所定回数行われると、位相判定を行うエッジを切り替える。例えば、エッジ切替信号発生部２０は、位相情報が１００回入力されると、立上りのエッジを位相判定に用いることを示す「０」の値のエッジ切替信号から、立下りのエッジを位相判定に用いることを示す「１」の値のエッジ切替信号へと切り替える。
【０１６５】
図１６は、エッジ切替信号の生成方法の他の例のタイミングチャートである。例えば、タイミング７１１で、エッジ切替信号発生部２０が、エッジ切替信号の値を「０」から「１」に変更する。そして、エッジ切替信号発生部２０は、位相情報の受信回数をカウントする。そして、エッジ切替信号発生部２０は、位相情報の受信回数が１００回になるまで値が「１」のエッジ切替信号を出力する。期間７１２で位相情報の受信回数が１００回になったとすると、エッジ切替信号発生部２０は、タイミング７１３で、エッジ切替信号の値を「１」から「０」に変更する。エッジ切替信号発生部２０は、この処理を立上りの位相及び立下り信号の位相が一致するまで繰り返す。
【０１６６】
次に、図１７を参照して、エッジ切替信号の生成の他の例を用いた場合のデューティ算出処理の流れを説明する。図１７は、エッジ切替信号の生成の他の例を用いた場合のデューティ算出処理のフローチャートである。
【０１６７】
エッジ切替信号発生部２０は、エッジ切替信号の値を「０」にする（ステップＳ２０１）。
【０１６８】
そして、位相判定回路１７は、立上りを用いて位相判定を行う（ステップＳ２０２）。
【０１６９】
次に、エッジ切替信号発生部２０は、位相情報の入力回数が１００回終了したか否かを判定する（ステップＳ２０３）。
【０１７０】
位相情報の入力回数が１００回終了していない場合（ステップＳ２０３：否定）、エッジ切替信号発生部２０は、ステップＳ２０２へ戻る。
【０１７１】
これに対して、位相情報の入力回数が１００回終了した場合（ステップＳ２０３：肯定）、位相判定回路１７は、位相が一致したか否かを判定する（ステップＳ２０４）。
【０１７２】
位相が一致していない場合(ステップＳ２０４：否定)、エッジ切替信号発生部２０は、エッジ切替信号の値を「１」にする（ステップＳ２０５）。
【０１７３】
そして、位相判定回路１７は、立下りを用いて位相判定を行う（ステップＳ２０６）。
【０１７４】
次に、エッジ切替信号発生部２０は、位相情報の入力回数が１００回終了したか否かを判定する（ステップＳ２０７）。
【０１７５】
位相情報の入力回数が１００回終了していない場合（ステップＳ２０７：否定）、エッジ切替信号発生部２０は、ステップＳ２０６へ戻る。
【０１７６】
これに対して、位相情報の入力回数が１００回終了した場合（ステップＳ２０７：肯定）、位相判定回路１７は、位相が一致したか否かを判定する（ステップＳ２０８）。
【０１７７】
位相が一致していない場合(ステップＳ２０８：否定)、位相判定回路１７は、ステップＳ２０１へ戻る。
【０１７８】
一方、立上りの位相判定において位相が一致した場合（ステップＳ２０４：肯定）、立上用可変遅延設定値保持部１８は、立上用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ２０９）。
【０１７９】
そして、位相判定回路１７は、立下りの位相が一致しているか否かを判定する（ステップＳ２１０）。立下りの位相が一致していない場合（ステップＳ２１０：否定）、メモリインタフェース回路１は、ステップＳ２０５へ進む。
【０１８０】
これに対して、立下りの位相が一致している場合（ステップＳ２１０：肯定）、可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分を求め、求めた差分をデューティ算出部１４へ出力する。デューティ算出部１４は、ＤＱＳ信号のデューティを算出し（ステップＳ２１３）、操作者へ通知する。
【０１８１】
また、一方、立下りの位相判定において位相が一致した場合（ステップＳ２０８：肯定）、立下用可変遅延設定値保持部１９は、立下用設定値を可変遅延設定値比較部１３へ出力する（ステップＳ２１１）。これにより、立下りの位相判定は完了する。
【０１８２】
そして、位相判定回路１７は、立上りの位相が一致しているか否かを判定する（ステップＳ２１２）。立上りの位相が一致していない場合（ステップＳ２１２：否定）、メモリインタフェース回路１は、ステップＳ２０１へ進む。
【０１８３】
これに対して、立上りの位相が一致している場合（ステップＳ２１２：肯定）、可変遅延設定値比較部１３は、立上用設定値と立下用設定値との差分を求め、求めた差分をデューティ算出部１４へ出力する。デューティ算出部１４は、ＤＱＳ信号のデューティを算出し（ステップＳ２１３）、操作者へ通知する。
【０１８４】
ここでは、２つのエッジ切替信号の生成方法を説明したが、最終的に立上用設定値と立下用設定値が求まるのであれば方法はこれに限らない。
【０１８５】
以上に説明した、位相判定回路１７が、「遅延量取得部」の一例にあたる。
【０１８６】
以上に説明したように、本実施例に係るメモリインタフェース回路は、１つの位相判定回路を用いて、立上用設定値及び立下用設定値を求める。すなわち、実施例１に比べて位相比較回路１つ分程度実装規模を縮小することができる。
【０１８７】
また、以上の説明では、図１に示すように、メモリコントローラ１０が、ＣＰＵ３とは異なるチップセット１００上に配置されている構成で説明したが、ハードウェア構成はこれに限らない。
【０１８８】
図１８は、ハードウェア構成の他の例の図である。各実施例に係るメモリインタフェース回路１を搭載したメモリコントローラ１０は、図１８に示すように、ＣＰＵ３上に搭載されていてもよい。この場合、ＣＰＵ３には、演算処理部３１及びメモリコントローラ１０が搭載される。
【０１８９】
また、以上の説明では、デューティ算出部１４がＣＰＵ３に含まれる場合を例に説明したが、デューティ算出部１４の配置はこれに限らず、可変遅延設定値比較部１３からのデータを受信できればどこに配置されてもよい。
【符号の説明】
【０１９０】
１  メモリインタフェース回路
２  ＤＩＭＭ
３  ＣＰＵ
１０  メモリコントローラ
１１  立上側位相判定回路
１２  立下側位相判定回路
１３  可変遅延設定値比較部
１４  デューティ算出部
１５  クロック発生部
１６  デューティ異常検出部
１７  位相判定回路
１８  立上用可変遅延設定値保持部
１９  立下用可変遅延設定値保持部
２０  エッジ切替信号発生部
２１，２２  エッジ切替部
３１  演算処理部
１００  チップセット
１１１，１２１，１７１  可変遅延付加部
１１２，１２２，１７２  固定遅延付加部
１１３，１２３，１７３  ラッチ
１１４，１２４，１７４  位相判定部
１１５，１２５，１７５  可変遅延制御部
【図１】
2015026295.tif 000003
【図２】
2015026295.tif 000004
【図３Ａ】
2015026295.tif 000005
【図３Ｂ】
2015026295.tif 000006
【図４Ａ】
2015026295.tif 000007
【図４Ｂ】
2015026295.tif 000008
【図５】
2015026295.tif 000009
【図６】
2015026295.tif 000010
【図７】
2015026295.tif 000011
【図８】
2015026295.tif 000012
【図９】
2015026295.tif 000013
【図１０】
2015026295.tif 000014
【図１１Ａ】
2015026295.tif 000015
【図１１Ｂ】
2015026295.tif 000016
【図１２】
2015026295.tif 000017
【図１３】
2015026295.tif 000018
【図１４Ａ】
2015026295.tif 000019
【図１４Ｂ】
2015026295.tif 000020
【図１５】
2015026295.tif 000021
【図１６】
2015026295.tif 000022
【図１７】
2015026295.tif 000023
【図１８】
2015026295.tif 000024