(57)【要約】【課題】２つのクロック信号の急峻な変化の有無を判定可能とすること。【解決手段】検出部１１１は、第１クロック信号ＣＬＫ１と、前記第１クロック信号ＣＬＫ１と同一周波数である第２クロック信号ＣＬＫ２と、の位相差を検出する。制御部１１２は、検出部１１１によって検出される位相差が所定量未満となるように前記第１クロック信号ＣＬＫ１と前記第２クロック信号ＣＬＫ２とのうちの少なくともいずれかの遅延量を制御する。取得部１１３は、制御部１１２によって少なくともいずれかの遅延量が制御された前記第１クロック信号ＣＬＫ１と前記第２クロック信号ＣＬＫ２とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する。判定部１１４は、取得部１１３によって取得された値が所定値であるか否かを判定する。【選択図】図１
2014048759.tif 000002
【特許請求の範囲】
【請求項１】
第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出する検出部と、
前記検出部によって検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御する制御部と、
前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する取得部と、
を有することを特徴とする判定支援装置。
【請求項２】
前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、いずれかのクロック信号を第２所定量遅延させる遅延部を有し、
前記取得部は、
前記遅延部による遅延前の前記いずれかのクロック信号の値および前記遅延部による遅延後の前記いずれかのクロック信号の値を、前記遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうちの前記いずれかのクロック信号と異なるクロック信号に基づく各タイミングによって取得することを特徴とする請求項１に記載の判定支援装置。
【請求項３】
第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出する検出部と、
前記検出部によって検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御する制御部と、
前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する取得部と、
前記取得部によって取得された値が所定値であるか否かを判定する判定部と、
を有することを特徴とする判定装置。
【請求項４】
プロセッサからの読み出し指示を受信した場合、前記読み出し指示と内部クロック信号とをメモリへ送信し、
前記内部クロック信号に基づいて前記メモリによって生成され、前記内部クロック信号と同一周期であるデータストローブ信号に同期して送信されるデータと、前記データストローブ信号と、を前記メモリから受信するメモリコントローラであって、
前記内部クロック信号と、受信した前記データストローブ信号と、の位相差を検出する検出部と、
前記検出部によって検出される位相差が所定量未満となるように、受信した前記データストローブ信号の遅延量を制御する制御部と、
前記制御部による制御によって遅延された前記データストローブ信号の値を、前記内部クロック信号に基づく各タイミングによって取得する取得部と、
を有することを特徴とするメモリコントローラ。
【請求項５】
前記取得部によって取得された値が所定値であるか否かを判定する判定部と、
前記判定部によって前記所定値でないと判定された場合、前記判定された場合の前記読み出し指示と同一の前記読み出し指示と前記内部クロック信号とを前記メモリへ送信する送信部と、
を有することを特徴とする請求項４に記載のメモリコントローラ。
【請求項６】
前記判定部は、
前記メモリから受信したデータに異常があると判断された場合に、前記取得部によって取得された値が所定値であるか否かを判定することを特徴とする請求項５に記載のメモリコントローラ。
【請求項７】
前記送信部によって同一の前記読み出し指示が前記メモリへ送信される回数を計数する計数部を有し、
前記送信部は、
前記計数部によって計数された回数が所定回数以上である場合、同一の前記読み出し指示の送信を行わないことを特徴とする請求項５または６に記載のメモリコントローラ。
【請求項８】
データ処理を実行するプロセッサと、
データを記憶するメモリと、
前記プロセッサから前記データ処理に基づく読み出し指示を受信した場合、前記読み出し指示と内部クロック信号とを前記メモリへ送信し、
前記内部クロック信号に基づいて前記メモリによって生成され、前記内部クロック信号と同一周期であるデータストローブ信号に同期して送信されるデータと、前記データストローブ信号と、を前記メモリから受信するメモリコントローラと、
を有し、
前記メモリコントローラは、
前記内部クロック信号と、受信した前記データストローブ信号と、の位相差を検出し、
検出される位相差が所定量未満となるように、受信した前記データストローブ信号の遅延量を制御し、
制御によって遅延されたデータストローブ信号の値を、前記内部クロック信号に基づく各タイミングによって取得する、
ことを特徴とするシステム。
【請求項９】
第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出し、
検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御し、
少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得し、
取得した値が所定値であるか否かを判定する、
ことを特徴とする判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、判定支援装置、判定装置、メモリコントローラ、システム、および判定方法に関する。
【背景技術】
【０００２】
従来、複数の信号の位相差をコード化することにより、位相差を検出する技術が知られている（たとえば、下記特許文献１，２参照。）。
【０００３】
また、位相を調整する装置に異常が発生したか否かを判断する技術が知られている（たとえば、下記特許文献３参照。）。装置に異常が発生した場合には命令を再実行する技術が知られている（たとえば、下記特許文献４参照。）。また、メモリにおいて、データの書込と読み出しのタイミングが異常に接近した場合にパリティ警報を出力しない技術が知られている（たとえば、下記特許文献５参照。）。
【０００４】
また、メモリコントローラが、内部クロック信号と、メモリから受信したデータストローブ信号と、の位相差を検出し、当該位相差に基づいて受信したデータストローブ信号の位相を調整して、受信したデータをリタイミングする技術（以下、「従来例」と称する。）が知られている（たとえば、下記特許文献６参照。）。
【０００５】
たとえば、メモリは、データストローブ信号に同期してデータを送信する。データストローブ信号は内部クロック信号に基づいてメモリによって生成されるため、周波数差がない。しかし、データストローブ信号およびデータ信号がメモリコントローラに到着するタイミングは、各信号上の遅延が温度や電源電圧などの動作環境によって変化することにより、変動する。そこで、メモリコントローラは、内部クロック信号とデータストローブ信号との位相差を検出し、当該位相差に基づいて各信号の遅延量を調整する。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１０／３２８３０号
【特許文献２】特開２０１０−２７３１１８号公報
【特許文献３】特開平８−２２１１４９号公報
【特許文献４】特公昭６１−３０２９８号公報
【特許文献５】特開２００３−１４３１１８号公報
【特許文献６】国際公開第２０１１／０７７５７４号
【発明の概要】
【発明が解決しようとする課題】
【０００７】
遅延量の調整が追従できないようなクロック信号の急峻な変化があると、当該クロック信号に基づいて生成されたデータ信号に異常が発生する場合がある。しかしながら、従来技術では、その異常がクロック信号の急峻な変化によって発生したか、クロック信号の急峻な変化と異なる原因によって発生したかが区別できないという問題点がある。
【０００８】
１つの側面では、本発明は、クロック信号の急峻な変化の有無を判定しうるデータを得ることができる判定支援装置、判定装置、メモリコントローラ、システム、および判定方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一側面によれば、第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出し、検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御し、少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する判定支援装置が提案される。さらに、取得した値が所定値であるか否かを判定する判定装置、および判定方法が提案される。
【００１０】
本発明の一側面によれば、プロセッサからの読み出し指示を受信した場合、前記読み出し指示と内部クロック信号とをメモリへ送信し、前記内部クロック信号に基づいて前記メモリによって生成され、前記内部クロック信号と同一周期であるデータストローブ信号に同期して送信されるデータと、前記データストローブ信号と、を前記メモリから受信するメモリコントローラであって、前記内部クロック信号と、受信した前記データストローブ信号と、の位相差を検出する検出部と、前記検出部によって検出される位相差が所定量未満となるように、受信した前記データストローブ信号の遅延量を制御する制御部と、前記制御部による制御によって遅延された前記データストローブ信号の値を、前記内部クロック信号に基づく各タイミングによって取得する取得部と、を有するメモリコントローラ、およびシステムが提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、クロック信号の急峻な変化の有無を判定しうるデータを得ることができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、判定装置の一の例を示す説明図である。
【図２】図２は、判定装置の他の例を示す説明図である。
【図３】図３は、実施例１にかかるメモリコントローラの一例を示す説明図である。
【図４】図４は、制御部と、位相検出・異常検知部との詳細例を示す説明図である。
【図５】図５は、エラー情報を示す図表である。
【図６】図６は、位相情報を示す図表である。
【図７】図７は、各データストローブ信号と内部クロック信号とのタイミングチャートを示す説明図である。
【図８】図８は、実施例２にかかるメモリコントローラの一例を示す説明図である。
【図９】図９は、判定支援処理および判定処理手順を示す説明図である。
【図１０】図１０は、判定処理手順を示すフローチャートである。
【図１１】図１１は、本発明にかかるメモリコントローラを適用したマザーボードの一例を示す説明図である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明にかかる判定支援装置、判定装置、メモリコントローラ、システム、および判定方法の実施の形態を詳細に説明する。
【００１４】
図１は、判定装置の一の例を示す説明図である。判定支援装置１０１は、周波数が同一の２つのクロック信号の少なくともいずれかに発生する急峻な変化の有無を判定しうるデータを提供する。クロック信号の急峻な変化は、電源ノイズやジッタによって発生する。判定装置１００は、クロック信号の急峻な変化の有無を判定しうるデータに基づいてクロック信号の急峻な変化の有無を判定する。
【００１５】
判定装置１００は、判定支援装置１０１と、判定部１１４と、を有する。判定支援装置１０１は、検出部１１１と、制御部１１２と、取得部１１３と、を有する。各部は、たとえば、否定論理回路であるＩＮＶＥＲＴＥＲ、論理積回路であるＡＮＤ、論理和回路であるＯＲ、ラッチ、ＦＦ（Ｆｌｉｐ  Ｆｌｏｐ，フリップフロップ）、容量、抵抗、トランジスタなどの素子によって形成される。
【００１６】
検出部１１１は、第１クロック信号ＣＬＫ１と、第１クロック信号ＣＬＫ１と同一周波数である第２クロック信号ＣＬＫ２と、の位相差を検出する。制御部１１２は、検出部１１１によって検出される位相差が所定量未満となるように、第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２のうちの少なくともいずれかの遅延量を制御する。所定量は、０以上の値であって、位相異常とならない値である。位相差が所定量よりも極端に大きいと位相異常となる。所定量の具体例は、図７を用いて詳細に説明する。検出部１１１による位相差の検出方法については、たとえば、上述した従来例を用いてもよい。たとえば、制御部１１２は、フィードバック制御によって以前の位相差の検出結果に基づいて現在の第２クロック信号ＣＬＫ２の遅延量を調整する。たとえば、制御部１１２は、遅延部１１５を有し、遅延部１１５が遅延させる第２クロック信号ＣＬＫ２の遅延量を調整してもよい。
【００１７】
取得部１１３は、制御部１１２によって少なくともいずれかの遅延量が制御された第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する。たとえば、取得部１１３は、ラッチやフリップフロップによって実現されてもよい。他方のクロック信号に基づく各タイミングとは、たとえば、他方のクロック信号の立ち上がりタイミング、または他方のクロック信号の立ち下がりタイミングが挙げられる。
【００１８】
制御部１１２によって第２クロック信号ＣＬＫ２の遅延量が制御される場合を例に挙げると、取得部１１３は、制御部１１２による制御によって遅延された第２クロック信号ＣＬＫ２の値を、第１クロック信号ＣＬＫ１に基づく各タイミングによって取得する。たとえば、第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２との少なくともいずれかに急峻な変化がなければ、フィードバック制御によって位相が追従される。そのため、第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２の位相差が０に近づくように調整される。一方、いずれかのクロック信号に急峻な変化があると、当該変化に対してフィードバック制御が追従できない。そのため、遅延された第２クロック信号ＣＬＫ２の値が第１クロック信号ＣＬＫ１に基づく各タイミングによって取得されると、所定値と異なる値が取得される場合がある。したがって、取得された値が所定値となるか否かを判定することにより、クロック信号の急峻な変化の有無を判定しうる。所定値については、あらかじめ判定装置１００の設計時に決定され、固定値である。
【００１９】
判定部１１４は、取得部１１３によって取得された値が所定値であるか否かを判定する。たとえば、判定部１１４は、取得された値が所定値である場合、クロック信号の急峻な変化がないと判定し、取得された値が所定値でない場合、クロック信号の急峻な変化があると判定する。
【００２０】
これにより、クロック信号の急峻な変化の有無による影響を観測することができる。たとえば、各クロック信号に基づくタイミングによってデータ処理やデータの読み出しが行われている時に、データ処理の実行に不具合やデータの読み出しに異常が発生した場合、各クロック信号によって不具合や異常が発生したかが判断される。
【００２１】
図２は、判定装置の他の例を示す説明図である。図２に示す判定支援装置１０１は、さらに、第２遅延部１１６を有する。各部は、たとえば、ＩＮＶＥＲＴＥＲ、ＡＮＤ、ＯＲ、ラッチ、ＦＦ、容量、抵抗、トランジスタなどの素子によって形成される。
【００２２】
第２遅延部１１６は、制御部１１２によって少なくともいずれかの遅延量が制御された第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とのうち、いずれかのクロック信号を第２所定量遅延させる。第２所定量は、０以上であって、位相異常と判断されるよりも少ない位相差となる遅延量である。第２所定量の詳細例は、図７を用いて説明する。図２の例では、第２遅延部１１６は、制御部１１２によって少なくともいずれかの遅延量が制御された第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とのうち、第２クロック信号ＣＬＫ２を第２所定量遅延させる。
【００２３】
取得部１１３は、第２遅延部１１６による遅延前のいずれかのクロック信号の値を、遅延量が制御された第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とのうちのいずれかのクロック信号と異なるクロック信号に基づく各タイミングによって取得する。取得部１１３は、第２遅延部１１６による遅延後のいずれかのクロック信号の値を、遅延量が制御された第１クロック信号ＣＬＫ１と第２クロック信号ＣＬＫ２とのうちのいずれかのクロック信号と異なるクロック信号に基づく各タイミングによって取得する。
【００２４】
また、取得部１１３は、遅延量が制御された第１および第２クロック信号ＣＬＫ１，ＣＬＫ２のうちのいずれかのクロック信号と異なるクロック信号の値を、第２遅延部１１６による遅延前のいずれかのクロック信号に基づく各タイミングによって取得してもよい。さらに、取得部１１３は、異なるクロック信号の値を、第２遅延部１１６による遅延後のいずれかのクロック信号に基づく各タイミングによって取得してもよい。
【００２５】
たとえば、取得部１１３は、第２遅延部１１６による遅延後の第２クロック信号ＣＬＫ２の値と、第２遅延部１１６による遅延前の第２クロック信号ＣＬＫ２の値と、を第１クロック信号ＣＬＫ１に基づく各タイミングによって取得する。図２の判定装置１００によれば、第１クロック信号ＣＬＫ１の位相が第２クロック信号ＣＬＫ２の位相に遅れるようなクロック信号の急峻な変化の有無を判定しうるデータが得られる。さらに、図２の判定装置１００によれば、第１クロック信号ＣＬＫ１の位相が第２クロック信号ＣＬＫ２の位相に進むようなクロック信号の急峻な変化の有無を判定しうるデータが得られる。したがって、図２に示す判定装置１００によれば、図１に示した判定装置１００よりも判定精度を向上させることができる。
【００２６】
（メモリコントローラ）
つぎに、判定支援装置と判定装置の一例として、メモリへのアクセスを制御するメモリコントローラについて説明する。ここで、本発明にかかるメモリコントローラの詳細な説明に先だって、従来のメモリコントローラにおいて、クロック信号の急峻な変化が発生した場合について説明する。
【００２７】
背景技術で説明したように、メモリが出力するデータストローブ信号は、メモリコントローラから与えられるクロック信号を元にして生成されるため、メモリコントローラとメモリ間のデータ通信は周波数差がない。データストローブ信号およびデータ信号がメモリコントローラに到着するタイミングは、各信号上の遅延が温度や電源電圧などの動作環境が変化することによって、変動する。各信号上の遅延とは、たとえば、メモリコントローラ自身、プリント基板、やメモリ素子などの配線や配線間の容量によって発生する遅延である。データ転送速度の高速化により、遅延のバラツキによるタイミングの変動は無視できない。そのため、メモリコントローラが、メモリコントローラ内のクロック信号と、データストローブ信号と、の位相差に基づいて受信した各信号の遅延量を調整する技術がある。メモリやメモリコントローラを搭載した製品の初期特性のバラツキは、製品の動作保証期間内ではほぼ一定である。初期特性のばらつきとは、プロセスバラツキ、製造バラツキ等がある。そして、製品の温度変化や経時変化による影響は小さい。
【００２８】
一方、従来では、電源ノイズやジッタによるクロック信号の急峻な変化による影響は、初期特性のばらつきや動作環境の変化によって発生する遅延のばらつきによる影響と比較して小さかった。従来のメモリの動作速度では、クロック信号の急峻な変化はタイミングマージン内に収まるため、クロック信号の急峻な変化が原因で起きるデータ異常の頻度は少ない。タイミングマージンとは、ＦＦなどの論理回路が正常に動作するための最大または最小の信号遅延時間、または回路入力信号のセットアップ／ホールド時間の条件である。近年の高速メモリインターフェースのメモリの動作速度では、タイミングマージン不足によりクロック信号の急峻な変化によって発生するデータ異常の頻度は増大してきている。具体的には、たとえば、１［Ｇｂｐｓ］伝送ではデータ幅が１０００［ｐｓ］であるが、２［Ｇｂｐｓ］伝送ではデータ幅が５００［ｐｓ］である。タイミングマージンをデータ幅の５０［％］とすると、１［ｂｐｓ］伝送ではタイミングマージンが５００［ｐｓ］であるが、２［Ｇｂｐｓ］伝送ではタイミングマージンが２５０［ｐｓ］である。したがって、近年の高速メモリインターフェースのメモリの動作速度では、従来よりもタイミングマージンが大幅に減少する。
【００２９】
従来では、メモリから読み出されたデータに異常が検知されても、当該異常が各クロック信号の急峻な変化によって発生したか、各クロック信号の急峻な変化以外の原因によって発生したかが区別できない。データの異常が各クロック信号の急峻な変化によって発生した場合、再度読み出し動作を行うだけで正常なデータが読み出される可能性があるにも関わらず、異常が発生したらメモリに故障が発生したと扱われる。そのため、メモリの稼働がストップされ、メモリが交換される。
【００３０】
本実施の形態では、メモリから読み出されたデータの異常が、各クロック信号の急峻な変化によって発生したか、各クロック信号の急峻な変化以外の原因によって発生したかによって区別される。これにより、各クロック信号の急峻な変化によって発生した場合、再度読み出し動作を行うだけで、正常なデータが読み出される可能性があり、メモリの稼働がストップされるのを防止し、メモリの交換回数を低減させることができる。
【００３１】
ここでは、実施例１と実施例２とに分けて説明する。実施例１では、判定支援処理をメモリコントローラが行い、判定処理をメモリコントローラへアクセスするプロセッサ（たとえば、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）が行う。実施例２では、判定支援処理と判定処理の両方をメモリコントローラが行う。
【００３２】
（実施例１）
図３は、実施例１にかかるメモリコントローラの一例を示す説明図である。ここでは、図３では、ＣＰＵ３０２と、メモリコントローラ３０１と、メモリ３０３と、を有するシステム３００を示す。当該システム３００として、図１１にてマザーボードを例に挙げている。
【００３３】
メモリ３０３は、データを記憶する装置である。ＣＰＵ３０２は、データ処理を実行する装置であって、データ処理においてメモリ３０３からデータの読み出し動作や書き込み動作を行う場合に、メモリコントローラ３０１に読み出し指示や書き込み指示を送信する。メモリコントローラ３０１は、ＣＰＵ３０２からの読み出し指示や書き込み指示に基づいてメモリ３０３からデータを読み出したり、メモリ３０３へデータを書き込んだりする制御を行う。
【００３４】
メモリコントローラ３０１は、制御部３１１と、位相検出・異常検知部３１２と、ＣＬＫ乗換部３１３と、送信部３１４と、受信部３１５と、送信部３１６と、受信部３１７と、を有する。ＣＰＵ３０２は、たとえば、受信部３２１と、判断部３２２と、判定部３２３と、送信部３２４と、計数部３２５と、を有する。各部は、たとえば、否定論理回路であるＩＮＶＥＲＴＥＲ、論理積回路であるＡＮＤ、論理和回路であるＯＲ、ラッチ、ＦＦ、容量、抵抗、トランジスタなどの素子によって形成される。
【００３５】
送信部３２４は、読み出し動作が発生すると、読み出し指示を示すコマンド信号ＣＭＤとクロック信号ＣＬＫをメモリコントローラ３０１へ送信する。
【００３６】
受信部３１５は、ＣＰＵ３０２からクロック信号ＣＬＫとコマンド信号ＣＭＤとを受信する。コマンド信号ＣＭＤがメモリ３０３からのデータ読み出し指示を示す場合、送信部３１６は、メモリ３０３に対して読み出し指示を示すコマンド信号ＣＭＤと、受信したクロック信号ＣＬＫに基づく内部クロック信号ＣＫと、をメモリ３０３に対して送信する。メモリコントローラ３０１は、受信したクロック信号ＣＬＫの位相を変更してからメモリ３０３へ送信してもよいし、変更しなくてもよいため、ここでは、内部クロック信号ＣＫをメモリ３０３へ送信することとする。
【００３７】
メモリ３０３は、メモリコントローラ３０１から内部クロック信号ＣＫと読み出し指示を示すコマンド信号ＣＭＤを受信すると、ＣＫ信号に基づいてデータストローブ信号ＤＱＳを生成する。読み出し指示に応じたデータ信号ＤＱをデータストローブ信号ＤＱＳに基づくタイミングによってメモリコントローラ３０１へ送信する。たとえば、データストローブ信号ＤＱＳに基づくタイミングとは、図３に示すように、たとえば、データストローブ信号ＤＱＳの立ち上がりタイミングと、データストローブ信号ＤＱＳの立ち下がりタイミングとの両方のタイミングが挙げられる。または、たとえば、データストローブ信号ＤＱＳに基づくタイミングとは、たとえば、データストローブ信号ＤＱＳの立ち上がりタイミングと、データストローブ信号ＤＱＳの立ち下がりタイミングと、のうちのいずれかのタイミングであってもよい。メモリ３０３は、データ信号ＤＱに併せて、メモリコントローラ３０１へデータストローブ信号ＤＱＳも送信する。
【００３８】
受信部３１７は、メモリ３０３からのデータストローブ信号ＤＱＳとデータ信号ＤＱとを受信する。制御部３１１は、位相検出・異常検知部３１２によって検出される位相差が所定量未満となるように、受信したデータストローブ信号ＤＱＳの遅延量を制御する。位相検出・異常検知部３１２は、内部クロック信号ＣＬＫと、受信したデータストローブ信号ＤＱＳと、の位相差を検出する。さらに、位相検出・異常検知部３１２は、制御部３１１による制御によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫに基づく各タイミングによって取得する。制御部３１１と位相検出・異常検知部３１２とについての詳細は、図４〜図７にて後述する。
【００３９】
ＣＬＫ乗換部３１３は、内部クロック信号ＣＬＫと、制御部３１１によって遅延量が制御されたデータストローブ信号ＤＱＳと、に基づいて、受信されたデータ信号ＤＱをリタイミングする。リタイミングについては、たとえば、上述した従来例に記載の処理と同様の処理を行ってもよいため、詳細な説明を省略する。送信部３１４は、エラー情報Ｅｒｒと、ＣＬＫ乗換部３１３による内部クロック信号ＣＬＫに基づくタイミングに乗換後のデータ信号ＤＱと、をＣＰＵ３０２へ送信する。
【００４０】
受信部３２１は、データ信号ＤＱと、エラー情報Ｅｒｒと、をメモリコントローラ３０１から受信する。判断部３２２は、データ信号ＤＱに異常があるか否かを判断する。たとえば、判断部３２２は、ＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｈｅｃｋ）、パリティーチェックなどによってデータ信号ＤＱに異常があるか否かを判定することができる。判定部３２３は、判断部３２２によってデータ信号ＤＱに異常があると判断された場合、エラー情報Ｅｒｒが所定値であるか否かを判定する。
【００４１】
送信部３２４は、判定部３２３によってエラー情報Ｅｒｒが所定値でないと判定された場合、同一の読み出し指示と、クロック信号ＣＬＫと、をメモリコントローラ３０１へ送信する。さらに、計数部３２５は、送信部３２４によって同一の読み出し指示がメモリコントローラ３０１へ送信される回数を計数する。送信部３２４は、計数部３２５によって計数された回数が所定回数以上である場合、同一の読み出し指示の送信を行わない。所定回数については、たとえば、システム３００の設計者によって決定され、あらかじめＣＰＵ３０２内のレジスタなどの記憶装置に記憶されていることとする。
【００４２】
これにより、読み出し動作が無限に行われるのを防止することができる。また、急峻な変化があると判定された場合であれば、再度読み出し動作を行うことによって、正常な読み出しが行われる可能性が高い。正常な読み出しが行われる可能性が高いにも関わらず、何度も読み出し動作を行っても正常な読み出しができない場合、メモリ３０３やメモリコントローラ３０１に故障が発生している可能性がある。したがって、ＣＰＵ３０２は、計数部３２５によって読み出し回数を制限することにより、メモリ３０３やメモリコントローラ３０１に発生した故障の有無を検出しうる。
【００４３】
さらに、たとえば、ＣＰＵ３０２は、計数部３２５によって計数された回数が所定回数以上である場合、動作を停止させてもよい。
【００４４】
また、ＣＰＵ３０２は、判定部３２３によってエラー情報Ｅｒｒが所定値であると判定された場合、クロックに急峻な変化が発生しなかったと判断する。そして、たとえば、ＣＰＵ３０２は、クロック以外の要因によって異常が発生したと判断して、メモリ３０３やメモリコントローラ３０１の動作を停止してもよい。
【００４５】
図４は、制御部と、位相検出・異常検知部との詳細例を示す説明図である。制御部３１１は、たとえば、第１遅延部４０１を有する。第１遅延部４０１は、図１および図２に示した第１遅延部１１５に相当する。位相検出・異常検知部３１２は、第２遅延部４０２と、取得部４０３と、検出部４０４と、を有する。第２遅延部４０２は、図２に示した第２遅延部１１６に相当する。図４において、ａ〜ｄの×印は、説明の便宜上設けたノードを表す。
【００４６】
制御部３１１は、位相検出・異常検知部３１２により検出された位相差に基づいて、内部クロック信号ＣＬＫと受信されたデータストローブ信号ＤＱＳとの位相差が第１所定量未満となるように、第１遅延部４０１によるデータストローブ信号ＤＱＳの遅延量を制御する。また、読み出し指示が受信された場合に、検出部４０４は読み出し動作中連続的に位相差を検出している。そのため、１つの読み出し動作期間中に検出部４０４からの位相差情報ＤＱＰＨＡＳＥに変化が発生すると、データストローブ信号ＤＱＳにノイズのようなパルスが発生する可能性がある。そこで、制御部３１１は、１つの読み出し動作期間中に位相差情報ＤＱＰＨＡＳＥに変化が発生しないように１つの読み出し動作中には位相差情報ＤＱＰＨＡＳＥを固定させてもよい。
【００４７】
第２遅延部４０２によって遅延されるデータストローブ信号ＤＱＳの遅延量が、図２で説明した第２所定量である。第２遅延部４０２は、遅延部４１１と、遅延部４１２と、遅延部４１３と、を有する。
【００４８】
取得部４０３は、制御部３１１によって遅延されたデータストローブの値と、第１遅延部４０１によって遅延されたデータストローブ信号ＤＱＳの値とを、内部クロック信号ＣＬＫに基づくタイミングによって取得する。内部クロック信号ＣＬＫに基づくタイミングとは、たとえば、内部クロック信号ＣＬＫの立ち上がりタイミングや内部クロック信号ＣＬＫの立ち下がりタイミングである。取得部４０３は、遅延部４１１によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫに基づくタイミングによって取得する。取得部４０３は、遅延部４１２によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫに基づくタイミングによって取得する。取得部４０３は、遅延部４１３によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫに基づくタイミングによって取得する。
【００４９】
具体的には、たとえば、取得部４０３は、複数のラッチ４２１〜４２４によって実現される。ラッチ４２１は、制御部３１１によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫの立ち上がりタイミングによって記憶する。ラッチ４２２は、遅延部４１１によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫの立ち上がりタイミングによって記憶する。ラッチ４２３は、遅延部４１２によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫの立ち上がりタイミングによって記憶する。ラッチ４２４は、遅延部４１３によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫの立ち上がりタイミングによって記憶する。
【００５０】
位相検出・異常検知部３１２は、たとえば、ラッチ４２１によって記憶された値をエラー情報Ｅｒｒ１とて、ラッチ４２４によって記憶された値をエラー情報Ｅｒｒ２として、ＣＰＵ３０２へ出力する。エラー情報Ｅｒｒ１，２とは、内部クロック信号ＣＬＫまたはデータストローブ信号ＤＱＳの少なくともいずれかの急峻な変化の有無を判定しうるデータである。
【００５１】
検出部４０４は、ラッチ４２２によって記憶された値と、ラッチ４２３によって記憶された値と、を位相情報ＰＨＤ１，２として、データストローブ信号ＤＱＳと内部クロック信号ＣＬＫとの位相差を検出する。検出部４０４は、検出された位相差に関する位相差情報ＤＱＰＨＡＳＥを制御部３１１へ出力する。検出部４０４による位相差の検出方法については、たとえば、上述した従来例を用いる。そして、制御部３１１は、位相差情報ＤＱＰＨＡＳＥに基づいてデータストローブ信号ＤＱＳの遅延量を調整する。
【００５２】
（エラー情報Ｅｒｒ）
図５は、エラー情報を示す図表である。表５００に示すように、エラー情報Ｅｒｒ１と、エラー情報Ｅｒｒ２との組み合わせによって、内部クロック信号ＣＬＫまたはデータストローブ信号ＤＱＳの少なくともいずれかの急峻な変化の有無の可能性が表される。
【００５３】
たとえば、エラー情報Ｅｒｒ２が“１”であり、エラー情報Ｅｒｒ１が“１”であると、内部クロック信号ＣＬＫとデータストローブ信号ＤＱＳとのうち少なくともいずれかに急峻な変化がある可能性がある。たとえば、エラー情報Ｅｒｒ２が“１”であり、エラー情報Ｅｒｒ１が“０”であると、内部クロック信号ＣＬＫとデータストローブ信号ＤＱＳとのうち少なくともいずれかに急峻な変化がある可能性がある。たとえば、エラー情報Ｅｒｒ２が“０”であり、エラー情報Ｅｒｒ１が“１”であると、内部クロック信号ＣＬＫとデータストローブ信号ＤＱＳとのうち少なくともいずれかに急峻な変化が無く、正常な状態である。たとえば、エラー情報Ｅｒｒ２が“０”であり、エラー情報Ｅｒｒ１が“０”であると、内部クロック信号ＣＬＫとデータストローブ信号ＤＱＳとのうち少なくともいずれかに急峻な変化がある可能性がある。
【００５４】
（位相情報ＰＨＤ）
図６は、位相情報を示す図表である。表６００に示すように、位相情報ＰＨＤ１と位相情報ＰＨＤ２との組み合わせによって、内部クロック信号ＣＬＫと、データストローブ信号ＤＱＳと、の位相が進んでいるか、遅れているか、合っているかが表される。
【００５５】
たとえば、位相情報ＰＨＤ２が“０”であり、位相情報ＰＨＤ１が“０”である場合、受信したデータストローブ信号ＤＱＳの位相が内部クロック信号ＣＬＫの位相に対して遅れていると判断される。位相情報ＰＨＤ２が“０”であり、位相情報ＰＨＤ１が“１”である場合、受信したデータストローブ信号ＤＱＳの位相が内部クロック信号ＣＬＫの位相と同一であると判断される。位相情報ＰＨＤ２が“１”であり、位相情報ＰＨＤ１が“１”である場合、受信したデータストローブ信号ＤＱＳの位相が内部クロック信号ＣＬＫの位相に対して進んでいると判断される。位相情報ＰＨＤ２が“１”であり、位相情報ＰＨＤ１が“０”である状態は、発生しないため、無視される。
【００５６】
たとえば、位相情報ＰＨＤ２，１が“００”や“１１”であっても、クロック信号の急峻な変化が発生したとは限らない。受信したデータストローブ信号ＤＱＳの位相が内部クロック信号ＣＬＫの位相に対して進んでいると判断されたとしても、読み出し動作に影響を与えるほど進んでいなければ、読み出しデータ信号ＤＱに異常が発生する可能性は低い。そこで、上述したように、位相情報ＰＨＤ２，１の他にエラー情報Ｅｒｒ２，１がメモリコントローラ３０１によって生成される。
【００５７】
図７は、各データストローブ信号と内部クロック信号とのタイミングチャートを示す説明図である。図７に示すタイミングチャート７０１〜７０４は、内部クロック信号ＣＬＫと、図４に示す各遅延部によって遅延された各ノードを通過するデータストローブ信号ＤＱＳと、を示す。データストローブ信号ＤＱＳ上の●印は、内部クロック信号ＣＫに基づくタイミングによって取得部４０３によって取得された値を示す。
【００５８】
たとえば、タイミングチャート７０１では、エラー情報Ｅｒｒ２，１が“０１”であり、正常な状態を示している。検出部４０４によって検出される位相がタイミングチャート７０１によって示すような状態になるように、制御部３１１はデータストローブ信号ＤＱＳの遅延量を制御する。
【００５９】
たとえば、制御部３１１は、内部クロック信号ＣＬＫと、ノードａを通過するデータストローブ信号ＤＱＳと、の位相差が所定量ｄ１１となるように第１遅延部４０１によるデータストローブ信号ＤＱＳの遅延量を制御する。たとえば、遅延部４１１は、内部クロック信号ＣＬＫと、ノードｂにおけるデータストローブ信号ＤＱＳと、の位相差が所定量ｄ１２となるように第１遅延部４０１から出力されたデータストローブ信号ＤＱＳを遅延させる。
【００６０】
たとえば、遅延部４１２は、内部クロック信号ＣＬＫと、ノードｃを通過するデータストローブ信号ＤＱＳと、の位相差が所定量ｄ１３となるように遅延部４１１から出力されたデータストローブ信号ＤＱＳを遅延させる。たとえば、遅延部４１３は、内部クロック信号ＣＬＫと、ノードｄを通過するデータストローブ信号ＤＱＳと、の位相差が所定量ｄ１４となるように遅延部４１２から出力されたデータストローブ信号ＤＱＳを遅延させる。ノードａを通過するデータストローブ信号ＤＱＳと、ノードｄを通過するデータストローブ信号ＤＱＳと、の位相差が第２所定量ｄｌ１である。
【００６１】
タイミングチャート７０２では、エラー情報Ｅｒｒ２，１が“００”であり、所定量ｄ１１と比較して、位相差ｄ２１は小さく、所定量ｄ１４と比較して、位相差ｄ２４は大きい。タイミングチャート７０２では、正常な状態に対してノードａ〜ｄを通過するデータストローブ信号ＤＱＳが少し遅れているため、異常である。
【００６２】
タイミングチャート７０３では、エラー情報Ｅｒｒ２，１が“１０”であり、所定量ｄ１１と比較して、位相差ｄ３１は大きく、所定量ｄ１４と比較して、位相差ｄ３４は大きい。タイミングチャート７０３では、正常な状態に対してノードａ〜ｄを通過するデータストローブ信号ＤＱＳがかなり進んでいるまたはかなり遅れているため、異常である。
【００６３】
タイミングチャート７０４では、エラー情報Ｅｒｒ２，１が“１１”であり、所定量ｄ１１と比較して、位相差ｄ４１は大きく、所定量ｄ１４と比較して、位相差ｄ４４は小さい。タイミングチャート７０４では、正常な状態に対してノードａ〜ｄを通過するデータストローブ信号ＤＱＳが少し進んでいるため、異常である。
【００６４】
（実施例２）
実施例２では、メモリコントローラ３０１によって急峻な変化の発生の有無を判定する。実施例２では、実施例１と同一の構成には同一符号を付し、実施例１と同一機能については詳細な説明を省略する。
【００６５】
図８は、実施例２にかかるメモリコントローラの一例を示す説明図である。メモリコントローラ３０１は、制御部３１１と、位相検出・異常検知部３１２と、ＣＬＫ乗換部３１３と、送信部３１４と、受信部３１５と、送信部３１６と、受信部３１７と、判断部３２２と、判定部３２３と、計数部３２５と、を有する。ＣＰＵ３０２は、たとえば、受信部３２１と、送信部３２４と、を有する。
【００６６】
判断部３２２は、クロック乗換後のデータ信号ＤＱに異常があるか否かを判断する。判定部３２３は、エラー情報Ｅｒｒが所定値であるか否かを判定する。ここでの所定値とは、図５に示したように、“０１”である。送信部３１６は、判定部３２３によって所定値でないと判定された場合、判定された場合の読み出し指示と同一の読み出し指示を示すコマンド信号ＣＭＤと内部クロック信号ＣＬＫとをメモリ３０３へ送信する。さらに、送信部３１４は、判定部３２３によって所定値でないと判定された場合、リクエスト拒否ＲｅｊをＣＰＵ３０２へ送信する。
【００６７】
計数部３２５は、送信部３１６によって同一の読み出し指示がメモリ３０３へ送信される回数を計数する。送信部３１４は、計数部３２５によって計数された回数が所定回数以上である場合、同一の読み出し指示の送信を行わない。所定回数については、たとえば、システム３００の設計者によって決定され、あらかじめメモリコントローラ３０１内のレジスタなどの記憶装置に記憶されていることとする。
【００６８】
これにより、読み出し動作が無限に行われるのを防止することができる。また、急峻な変化があると判定された場合であれば、再度読み出し動作を行うことによって、正常な読み出しが行われる可能性が高い。正常な読み出しが行われる可能性が高いにも関わらず、何度も読み出し動作を行っても正常な読み出しができない場合、メモリ３０３やメモリコントローラ３０１に故障が発生している可能性がある。したがって、メモリコントローラ３０１は、計数部３２５によって読み出し回数を制限することにより、メモリ３０３やメモリコントローラ３０１に発生した故障の有無を検出しうる。さらに、ＣＰＵ３０２は、たとえば、計数部３２５によって計数された回数が所定回数以上である場合に、エラー情報を出力してもよい。
【００６９】
（判定処理手順）
図９は、判定支援処理および判定処理手順を示す説明図である。ＣＰＵ３０２は、読み出し動作を行う場合に、読み出し指示を示すコマンド信号ＣＭＤとクロック信号ＣＬＫと、をメモリコントローラ３０１へ送信する（ステップＳ９０１）。メモリコントローラ３０１は、受信したクロック信号ＣＬＫに基づく内部クロック信号ＣＫと、受信したコマンド信号ＣＭＤに基づく読み出し指示を示すコマンド信号ＣＭＤと、をメモリ３０３へ送信する（ステップＳ９０２）。メモリ３０３は、受信した内部クロック信号ＣＫに基づくデータストローブ信号ＤＱＳに同期して、読み出し指示が示すアドレスに基づくデータ信号ＤＱをメモリコントローラ３０１へ送信する（ステップＳ９０３）。
【００７０】
メモリコントローラ３０１は、内部クロック信号ＣＬＫと、受信したデータストローブ信号ＤＱＳと、の位相差を検出し（ステップＳ９０４）、検出される位相差が所定量未満となるように、受信したデータストローブ信号ＤＱＳの遅延量を制御する（ステップＳ９０５）。メモリコントローラ３０１は、制御によって遅延されたデータストローブ信号ＤＱＳの値を、内部クロック信号ＣＬＫに基づく各タイミングによって取得する（ステップＳ９０６）。ここで、ステップＳ９０６によって取得された値がエラー情報Ｅｒｒである。ステップＳ９０４〜ステップＳ９０６は、連続的に行われる。
【００７１】
メモリコントローラ３０１は、メモリ３０３から受信したデータ信号ＤＱに異常があるか否かを判断する（ステップＳ９０７）。メモリ３０３から受信したデータ信号ＤＱに異常がある場合（ステップＳ９０７：異常）、メモリコントローラ３０１は、エラー情報Ｅｒｒが所定値であるか否かを判定する（ステップＳ９０８）。エラー情報Ｅｒｒが所定値でない場合（ステップＳ９０８：異常）、メモリコントローラ３０１は、ＣＰＵ３０２からのリクエストを拒否し（ステップＳ９０９）、同一読み出し指示と、内部クロック信号ＣＫと、をメモリ３０３へ送信する（ステップＳ９１０）。
【００７２】
図１０は、判定処理手順を示すフローチャートである。図１０で示す判定処理手順は、メモリコントローラ３０１またはＣＰＵ３０２のいずれが行ってもよいが、ここでは、メモリコントローラ３０１による処理として説明する。
【００７３】
メモリコントローラ３０１は、ＣＰＵ３０２から読み出し指示を受信すると、Ｎ＝０とし（ステップＳ１００１）、読み出し指示をメモリ３０３へ送信する（ステップＳ１００２）。メモリコントローラ３０１は、メモリ３０３からデータ信号ＤＱを受信すると、データに異常があるか否かを判断する（ステップＳ１００３）。
【００７４】
データに異常がある場合（ステップＳ１００３：Ｙｅｓ）、メモリコントローラ３０１は、エラー情報Ｅｒｒが所定値であるか否かを判定することにより、内部クロック信号ＣＬＫとデータストローブ信号ＤＱＳとの少なくともいずれかに急峻な変化があるか否かを判定する（ステップＳ１００４）。
【００７５】
クロック信号の急峻な変化がない場合（ステップＳ１００４：Ｎｏ）、ステップＳ１００７へ移行する。クロック信号の急峻な変化がある場合（ステップＳ１００４：Ｙｅｓ）、メモリコントローラ３０１は、Ｎ＝Ｎ＋１とし（ステップＳ１００５）、Ｎ＜所定回数であるか否かを判定する（ステップＳ１００６）。Ｎ＜所定回数である場合（ステップＳ１００６：Ｙｅｓ）、メモリコントローラ３０１は、再読み出し指示を送信し（ステップＳ１００８）、ステップＳ１００３へ戻る。ステップＳ１００８では、さらに、ＣＰＵ３０２に対してリクエスト拒否Ｒｅｊを送信してもよい。
【００７６】
Ｎ＜所定回数でない場合（ステップＳ１００６：Ｎｏ）、メモリコントローラ３０１は、異常通知または装置を停止させ（ステップＳ１００７）、一連の処理を終了する。ここでの装置とは、システム３００全体であってもよいし、メモリ３０３とメモリコントローラ３０１であってもよい。
【００７７】
ステップＳ１００３において、データ信号ＤＱに異常がないと判断された場合（ステップＳ１００３：Ｎｏ）、メモリコントローラ３０１は、動作を継続し（ステップＳ１００９）、一連の処理を終了する。
【００７８】
（マザーボードに適用した例）
図１１は、本発明にかかるメモリコントローラを適用したマザーボードの一例を示す説明図である。マザーボード１１００には、ＣＰＵ３０２およびソケット１１０１が設けられている。ＣＰＵ３０２には、メモリコントローラ３０１が設けられている。ソケット１１０１には、メモリボード１１０２が取り付けられる。また、ソケット１１０１はマザーボード１１００上に複数設けられていてもよい。
【００７９】
以上説明したように、判定支援装置は、第１および第２クロック信号の位相差の検出結果が所定量に近づくよう遅延量をフィードバック制御した第２クロック信号の値を第１クロック信号により取得する。これにより、第１クロック信号と第２クロック信号とのうちの少なくともいずれか一つのクロックの急峻な変化の有無を判定しうるデータを得ることができる。したがって、当該データが参照されることにより、クロック信号の急峻な変化の有無が判定される。たとえば、各クロック信号に基づいて生成されたデータに異常が発生した場合、その異常がクロック信号の急峻な変化によって発生したか、クロック信号の急峻な変化と異なる原因によって発生したかを区別することができる。
【００８０】
また、判定支援装置は、遅延された第２クロック信号をさらに所定量遅延させ、遅延された第２クロック信号の値と、さらに遅延された第２クロック信号の値と、を第１クロック信号に基づくタイミングによって取得する。これにより、第１クロック信号の位相が第２クロック信号の位相に遅れるようなクロック信号の急峻な変化の有無を判定しうるデータが得られる。さらに、第１クロック信号の位相が第２クロック信号の位相に進むようなクロック信号の急峻な変化の有無を判定しうるデータが得られる。したがって、判定精度を向上させることができる。
【００８１】
判定装置は、取得された値が所定値であるか否かを判定する。これにより、クロック信号の急峻な変化の有無が判定される。
【００８２】
以上説明したように、メモリコントローラは、内部クロック信号とデータストローブ信号との位相差の検出結果が所定量に近づくよう遅延量をフィードバック制御したデータストローブ信号の値を内部クロック信号に基づくタイミングにより取得する。これにより、内部クロック信号とデータストローブ信号とのうちの少なくともいずれか一つのクロックの急峻な変化の有無を判定しうるデータを得ることができる。したがって、ＣＰＵが、当該データを参照することにより、クロックの急峻な変化の有無を判定することができる。
【００８３】
たとえば、読み出されたデータ信号に異常がある場合、従来では、その異常が各クロック信号の急峻な変化によって発生したか、クロック信号の急峻な変化と異なる原因によって発生したかを区別できなかった。そのため、クロック信号の急峻な変化が原因であれば、再度読み出し動作を行うことにより、正常なデータを読み出せる可能性がある。従来では、異常の原因を区別できなかったために、メモリやメモリコントローラを搭載したシステムの利用者が、メモリやメモリコントローラなどの装置が故障していると判断して、装置の交換が行われる。一方、本発明にかかるメモリコントローラでは、データの異常が各クロック信号の急峻な変化によって発生したか、クロック信号の急峻な変化と異なる原因によって発生したかを区別できる。そのため、装置が故障しているか否かの判定精度を向上させることができる。
【００８４】
また、メモリコントローラは、取得した値が所定値であるか否かを判定し、所定値でないと判定した場合、同一の前記読み出し指示と内部クロック信号とをメモリへ送信する。クロック信号の急峻な変化があった場合、読み出したデータに異常が有る可能性があるため、再度データを読み出すことにより、正常なデータが得られる可能性が高くなる。
【００８５】
また、メモリコントローラは、メモリから受信したデータに異常があると判断された場合に、取得した値が所定値であるか否かを判定する。たとえば、各信号にノイズが発生する可能性が高いシステムにおいて、クロック信号の急峻な変化が発生する可能性が高い。そのため、読み出しデータに影響を与えないようなクロック信号の急峻な変化も発生しうる。そのため、読み出したデータに異常がなければ、クロック信号の急峻な変化の有無については無視することにより、読み出し動作が頻繁に発生することを防止することができる。
【００８６】
また、たとえば、何度読み出し指示を送信しても、急峻な変化が発生していると判定される場合、メモリコントローラやメモリに異常がある可能性があるため、無限に読み出しが繰り返されてしまう可能性がある。メモリコントローラは、同一読み出し指示を何回送信したかを計数し、所定回数を超える場合には再度送信することをやめる。これにより、システムが停止するのを防止する。
【００８７】
上述した判定装置と実施例１と実施例２に関し、さらに以下の付記を開示する。
【００８８】
（付記１）第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出する検出部と、
前記検出部によって検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御する制御部と、
前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する取得部と、
を有することを特徴とする判定支援装置。
【００８９】
（付記２）前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、いずれかのクロック信号を第２所定量遅延させる遅延部を有し、
前記取得部は、
前記遅延部による遅延前の前記いずれかのクロック信号の値および前記遅延部による遅延後の前記いずれかのクロック信号の値を、前記遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうちの前記いずれかのクロック信号と異なるクロック信号に基づく各タイミングによって取得することを特徴とする付記１に記載の判定支援装置。
【００９０】
（付記３）前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、いずれかのクロック信号を第２所定量遅延させる遅延部を有し、
前記取得部は、
前記遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうちの前記いずれかのクロック信号と異なるクロック信号の値を、前記遅延部による遅延前の前記いずれかのクロック信号に基づく各タイミングによって取得し、
前記異なるクロック信号の値を、前記遅延部による遅延後の前記いずれかのクロック信号に基づく各タイミングによって取得することを特徴とする付記１に記載の判定支援装置。
【００９１】
（付記４）第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出する検出部と、
前記検出部によって検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御する制御部と、
前記制御部によって少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得する取得部と、
前記取得部によって取得された値が所定値であるか否かを判定する判定部と、
を有することを特徴とする判定装置。
【００９２】
（付記５）プロセッサからの読み出し指示を受信した場合、前記読み出し指示と内部クロック信号とをメモリへ送信し、
前記内部クロック信号に基づいて前記メモリによって生成され、前記内部クロック信号と同一周期であるデータストローブ信号に同期して送信されるデータと、前記データストローブ信号と、を前記メモリから受信するメモリコントローラであって、
前記内部クロック信号と、受信した前記データストローブ信号と、の位相差を検出する検出部と、
前記検出部によって検出される位相差が所定量未満となるように、受信した前記データストローブ信号の遅延量を制御する制御部と、
前記制御部による制御によって遅延された前記データストローブ信号の値を、前記内部クロック信号に基づく各タイミングによって取得する取得部と、
を有することを特徴とするメモリコントローラ。
【００９３】
（付記６）前記取得部によって取得された値が所定値であるか否かを判定する判定部と、
前記判定部によって前記所定値でないと判定された場合、前記判定された場合の前記読み出し指示と同一の前記読み出し指示と前記内部クロック信号とを前記メモリへ送信する送信部と、
を有することを特徴とする付記５に記載のメモリコントローラ。
【００９４】
（付記７）前記判定部は、
前記メモリから受信したデータに異常があると判断された場合に、前記取得部によって取得された値が所定値であるか否かを判定することを特徴とする付記６に記載のメモリコントローラ。
【００９５】
（付記８）前記送信部によって同一の前記読み出し指示が前記メモリへ送信される回数を計数する計数部を有し、
前記送信部は、
前記計数部によって計数された回数が所定回数以上である場合、同一の前記読み出し指示の送信を行わないことを特徴とする付記６または７に記載のメモリコントローラ。
【００９６】
（付記９）データ処理を実行するプロセッサと、
データを記憶するメモリと、
前記プロセッサから前記データ処理に基づく読み出し指示を受信した場合、前記読み出し指示と内部クロック信号とを前記メモリへ送信し、
前記内部クロック信号に基づいて前記メモリによって生成され、前記内部クロック信号と同一周期であるデータストローブ信号に同期して送信されるデータと、前記データストローブ信号と、を前記メモリから受信するメモリコントローラと、
を有し、
前記メモリコントローラは、
前記内部クロック信号と、受信した前記データストローブ信号と、の位相差を検出し、
検出される位相差が所定量未満となるように、受信した前記データストローブ信号の遅延量を制御し、
制御によって遅延されたデータストローブ信号の値を、前記内部クロック信号に基づく各タイミングによって取得する、
ことを特徴とするシステム。
【００９７】
（付記１０）第１クロック信号と、前記第１クロック信号と同一周波数である第２クロック信号と、の位相差を検出し、
検出される位相差が所定量未満となるように前記第１クロック信号と前記第２クロック信号とのうちの少なくともいずれかの遅延量を制御し、
少なくともいずれかの遅延量が制御された前記第１クロック信号と前記第２クロック信号とのうち、一方のクロック信号の値を、他方のクロック信号に基づく各タイミングによって取得し、
取得した値が所定値であるか否かを判定する、
ことを特徴とする判定方法。
【符号の説明】
【００９８】
１００  判定装置
１０１  判定支援装置
１１１，４０４  検出部
１１２，３１１  制御部
１１３，４０３  取得部
１１４，３２３  判定部
１１６，４０２  第２遅延部
３００  システム
３０１  メモリコントローラ
３０２  ＣＰＵ
３０３  メモリ
３２５  計数部
Ｅｒｒ１，Ｅｒｒ２  エラー情報
ＰＨＤ１，ＰＨＤ２  位相情報
ＤＱＰＨＡＳＥ  位相差情報
ＣＬＫ１  第１クロック信号
ＣＬＫ２  第２クロック信号
ＤＱＳ  データストローブ信号
ＤＱ  データ
ＣＫ，ＣＬＫ  内部クロック信号
【図１】
2014048759.tif 000003
【図２】
2014048759.tif 000004
【図３】
2014048759.tif 000005
【図４】
2014048759.tif 000006
【図５】
2014048759.tif 000007
【図６】
2014048759.tif 000008
【図７】
2014048759.tif 000009
【図８】
2014048759.tif 000010
【図９】
2014048759.tif 000011
【図１０】
2014048759.tif 000012
【図１１】
2014048759.tif 000013