(57)【要約】【課題】  安定的な動作を確保できる半導体回路装置、及び情報処理装置を提供することを課題とする。【解決手段】  半導体装置は、入力信号に遅延を与える遅延部と、前記遅延部から出力される出力信号の位相を検出する位相検出部と、前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、前記安定動作範囲から位相が外れた前記出力信号の検出回数をカウントするカウンタと、前記遅延部の動作条件又は外的要因に応じて、前記カウンタのカウント数のディスカウント数を表すディスカウント信号を生成するディスカウント制御部と、前記カウンタのカウント数と前記ディスカウント信号が表すディスカウント数とに基づき、前記出力信号の位相のエラーの有無を判定するエラー判定部とを含む。【選択図】図６
2012204871.tif 000002
【特許請求の範囲】
【請求項１】
入力信号に遅延を与える遅延部と、
前記遅延部から出力される出力信号の位相を検出する位相検出部と、
前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、
前記安定動作範囲から位相が外れた前記出力信号の検出回数をカウントするカウンタと、
前記遅延部の動作条件又は外的要因に応じて、前記カウンタのカウント数のディスカウント数を表すディスカウント信号を生成するディスカウント制御部と、
前記カウンタのカウント数と前記ディスカウント信号が表すディスカウント数とに基づき、前記出力信号の位相のエラーの有無を判定するエラー判定部と
を含む半導体装置。
【請求項２】
前記ディスカウント制御部は、前記動作条件又は前記外的要因の変動度合が大きいほど、前記ディスカウント数を増大する、請求項１記載の半導体装置。
【請求項３】
前記動作条件は、前記遅延部の電源電圧の変動範囲であり、
前記ディスカウント制御部は、前記電源電圧の変動範囲が大きいほど、前記ディスカウント数を増大する、請求項１又は２記載の半導体装置。
【請求項４】
前記外的要因は、前記半導体装置の電源電圧の変動であり、
前記電源電圧の変動分を検出する電源電圧検出部をさらに含み、
前記ディスカウント制御部は、前記電源電圧検出部によって検出される電源電圧の変動分が大きくなると前記ディスカウント数を増大し、前記電源電圧検出部によって検出される電源電圧の変動分が小さくなると前記ディスカウント数を減少する、請求項１又は２記載の半導体装置。
【請求項５】
前記動作条件は、前記半導体装置の温度の変動範囲であり、
前記ディスカウント制御部は、前記温度の変動範囲が大きいほど、前記ディスカウント数を増大する、請求項１又は２記載の半導体装置。
【請求項６】
前記外的要因は前記半導体装置の温度の変動範囲の変動であり、
前記温度の変動範囲の変動を検出する温度検出部をさらに含み、
前記ディスカウント制御部は、前記温度検出部によって検出される温度の変動範囲が拡大すると前記ディスカウント数を増大し、前記温度検出部によって検出される温度の変動範囲が縮小すると前記ディスカウント数を減少する、請求項１又は２記載の半導体装置。
【請求項７】
演算処理装置と、
主記憶装置と、
請求項１乃至６のいずれか一項記載の半導体装置を有し、前記演算処理装置と前記主記憶装置との間でデータの転送を行うメモリコントローラと
を含む情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
半導体装置、及び情報処理装置に関する。
【背景技術】
【０００２】
従来より、クロック信号の経路として選択された一の可変遅延回路の出力の位相と他の可変遅延回路の出力の位相とが１周期だけ異なるとき、一の可変遅延回路を他の可変遅延回路に切り替え、一の可変遅延回路の遅延時間可変範囲以上の位相補償を行う半導体回路装置があった。
【０００３】
また、多数決回路によって位相比較器の位相比較結果の多数決を取ることにより、入力データに含まれるジッタに過度に追従することを防止する半導体回路装置があった。
【０００４】
また、同期エラーが連続して発生する時にその連続回数を計数し、連続回数が所定回数になるときに、最初に検出した同期信号が誤検出されたものと判定する同期検出回路装置があった。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００１−０７５６７１号公報
【特許文献２】特開２００５−０３３３９２号公報
【特許文献３】特開平２−２０６０７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、従来の半導体回路装置は、複数の可変遅延回路、又は、多数決回路及び多数決回数設定レジスタを含むため、フィードバックループの応答が遅れるという問題があった。
【０００７】
また、従来の同期検出回路装置は、多数決回路等を含むため、フィードバックループの応答が遅れるという問題があった。
【０００８】
このように、従来の装置では、フィードバックループの応答が遅れると、安定的な動作を確保できない場合があるという問題点があった。
【０００９】
そこで、安定的な動作を確保できる半導体回路装置、及び情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の実施の形態の半導体装置は、入力信号に遅延を与える遅延部と、前記遅延部から出力される出力信号の位相を検出する位相検出部と、前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、前記安定動作範囲から位相が外れた前記出力信号の検出回数をカウントするカウンタと、前記遅延部の動作条件又は外的要因に応じて、前記カウンタのカウント数のディスカウント数を表すディスカウント信号を生成するディスカウント制御部と、前記カウンタのカウント数と前記ディスカウント信号が表すディスカウント数とに基づき、前記出力信号の位相のエラーの有無を判定するエラー判定部とを含む。
【発明の効果】
【００１１】
安定的な動作を確保できる半導体回路装置、及び情報処理装置を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】比較例の信号遅延回路１を示すブロック図である。
【図２】比較例の信号遅延回路１に含まれる遅延部１０を示す図である。
【図３】（Ａ）は比較例の信号遅延回路１のフィルタ部３０に入力される位相信号（phase）が表すクロックの位相と安定動作範囲との関係を模式的に示す図、（Ｂ）はフィルタ部３０によってフィルタ処理が行われた後のクロックの位相と安定動作範囲との関係を模式的に示す図、（Ｃ）はエラー検出部４０における許容範囲とクロックの位相との関係を模式的に示す図である。
【図４】実施の形態１の半導体装置を含むサーバ５０を示す図である。
【図５】実施の形態１の半導体装置を含むサーバ５０を示すブロック図である。
【図６】実施の形態１の半導体装置に含まれる信号遅延回路１００を示す図である。
【図７】実施の形態１の半導体装置に含まれる信号遅延回路１００の位相検出部２０を示す図である。
【図８】実施の形態１の信号遅延回路１００のエラー検出部１４０の内部構成を示す図である。
【図９】エラー検出部１４０におけるカウント数のディスカウントの概念を示す図である。
【図１０】実施の形態２の半導体装置に含まれる信号遅延回路２００を示す図である。
【図１１】実施の形態２の信号遅延回路１００のエラー検出部２４０の内部構成を示す図である。
【図１２】実施の形態２の半導体装置に含まれる信号遅延回路２００に接続されるディスカウント制御部２５０を示す図である。
【図１３】実施の形態２の信号遅延回路２００のディスカウント制御部２５０の入力信号の値と出力信号の値との対応関係を示す図である。
【図１４】実施の形態２の信号遅延回路２００の動作を示すタイミングチャートである。
【図１５】実施の形態３の半導体装置に含まれる信号遅延回路３００を示す図である。
【図１６】エラー検出部１４０におけるカウント数のディスカウントの概念を示す図である。
【図１７】実施の形態４の半導体装置に含まれる信号遅延回路４００を示す図である。
【図１８】実施の形態４の半導体装置に含まれる信号遅延回路４００に接続されるディスカウント制御部４５０を示す図である。
【図１９】実施の形態４の信号遅延回路４００のディスカウント制御部４５０の入力信号の値と出力信号の値との対応関係を示す図である。
【図２０】実施の形態４の信号遅延回路４００の動作を示すタイミングチャートである。
【発明を実施するための形態】
【００１３】
以下、本発明の半導体装置、及び情報処理装置を適用した実施の形態について説明する。
【００１４】
実施の形態１乃至４の半導体装置、及び情報処理装置について説明する前に、まず、図１乃至図３を用いて、比較例の半導体装置に含まれる信号遅延回路について説明する。
【００１５】
図１は、比較例の信号遅延回路１を示すブロック図である。
【００１６】
比較例の信号遅延回路１は、例えば、ＬＳＩ（Large Scale Integrated circuit：大規模集積回路）によって実現される。
【００１７】
信号遅延回路１は、遅延部１０、位相検出部２０、フィルタ部３０、及びエラー検出部４０を含む。
【００１８】
遅延部１０は、入力されたクロック（clock_in）に遅延を与えたクロック（clock_out）を出力する。遅延部１０でクロックに与える遅延時間は、フィルタ部３０から入力される選択信号（select）により可変的に設定される。遅延部１０から出力されるクロックは、信号遅延回路１の出力（clock_out）として出力されるとともに、位相検出部２０に入力される。
【００１９】
位相検出部２０は、遅延部１０から出力されるクロックの位相を検出し、クロックの位相を表す位相信号（phase）をフィルタ部３０とエラー検出部４０に出力する。位相検出部２０は、例えば、クロックの毎周期の立ち上がりの位相を検出する。
【００２０】
フィルタ部３０は、遅延部１０から出力されるクロックの位相の目標値を保持しており、遅延部１０から出力されるクロックの位相の安定動作範囲を設定する設定部の一例である。フィルタ部３０が設定する安定動作範囲は、遅延部１０から出力されるクロックの位相の目標値を略中央とする所定幅を有する範囲である。
【００２１】
フィルタ部３０は、フィルタ処理により、位相検出部２０からクロックの周期毎に入力される位相信号（phase）が表すクロックの位相のうち、安定動作範囲から位相が外れるクロックを除去する。また、フィルタ部３０は、安定動作範囲内にあるクロックの位相と目標値との差に応じて遅延部１０における遅延量を調節するための選択信号（select）を遅延部１０に帰還する。また、フィルタ部３０は、安定動作範囲を表すコード（code）をエラー検出部４０に出力する。
【００２２】
エラー検出部４０は、フィルタ部３０から出力される安定動作範囲を表すコード信号（code）に基づいて安定動作範囲に対応する許容範囲を設定するとともに、遅延部１０から出力されるクロックの位相が許容範囲内にあるか否かを判定し、許容範囲から位相が外れた回数をカウントする。
【００２３】
エラー検出部４０は、フィルタ部３０が設定する安定動作範囲と同一の範囲を有する許容範囲を設定する。すなわち、エラー検出部４０が設定する許容範囲は、遅延部１０の安定動作範囲（ロック範囲）を表す。このため、エラー検出部４０は、位相検出部２０で検出されるクロックの位相が、フィルタ部３０によって設定される安定動作範囲を逸脱していないかを判定することができる。
【００２４】
エラー検出部４０は、例えば、許容範囲の上限及び下限を表すコード（code）と、クロックの位相を表すコード（phase）とを含む状態信号（status）を出力する。また、エラー検出部４０は、位相検出部２０で検出されるクロックの位相が許容範囲から逸脱したと判定すると、エラーが生じた旨を表すエラー信号（error）を出力する。状態信号（status）とエラー信号（error）は、信号遅延回路１を含むシステムの監視系統に伝送される。なお、エラー信号（error）は、許容範囲から位相が外れた回数（エラー検出部４０のカウント数）を含んでもよい。
【００２５】
以上のように、比較例の信号遅延回路１は、入力信号（クロック）に遅延を与えることにより、目標値に応じた位相を有する出力信号（クロック）を出力する。
【００２６】
図２は、比較例の信号遅延回路１に含まれる遅延部１０を示す図である。
【００２７】
遅延部１０は、インバータ１１Ａ、１２Ａ、１３Ａ、セレクタ１１Ｂ、１２Ｂ、１３Ｂ、及びインバータ１１Ｃ、１２Ｃ、１３Ｃを含む。
【００２８】
インバータ１１Ａ〜１３Ａは、信号の折り返し点となるセレクタ１１Ｂ〜１３Ｂに信号を伝搬するためのフォワード側のインバータであり、インバータ１１Ｃ〜１３Ｃは、信号がセレクタ１１Ｂ〜１３Ｂで折り返した後に信号を伝搬するリターン側のインバータである。
【００２９】
インバータ１１Ａ〜１３Ａは、それぞれ、入力信号を反転して出力する否定回路である。
【００３０】
インバータ１１Ａ〜１３Ａは、それぞれ、出力端子と入力端子が接続されることにより、直列に接続される遅延素子の一例である。インバータ１１Ａの入力端子は、遅延部１０の入力端子ＩＮに接続されており、インバータ１３Ａの出力端子は、セレクタ１３Ｂの一方の入力端子に接続されるとともに、開放されている（ｏｐｅｎ）。
【００３１】
セレクタ１１Ｂ〜１３Ｂは、それぞれ、インバータ１１Ａ〜１３Ａに対応して設けられている。セレクタ１１Ｂ〜１３Ｂは、２つの入力端子と選択信号入力端子Ｓとを有し、選択信号入力端子Ｓに入力される選択信号に応じて、いずれかの入力を選択して出力する選択部の一例である。
【００３２】
ここで、セレクタ１１Ｂ、１２Ｂの選択信号入力端子Ｓには、フィルタ部３０から”１”又は”０”の選択信号が入力される。また、セレクタ１３Ｂの選択信号入力端子Ｓには、信号レベルが”１”にクリップされた選択信号が入力される。セレクタ１３Ｂの選択信号入力端子Ｓには、例えば、電源電圧を抵抗器等で電圧変換することにより、選択信号の信号レベル”１”を表す所定電圧を生成して入力すればよい。
【００３３】
このため、セレクタ１１Ｂ、１２Ｂは、フィルタ部３０から入力される選択信号（”１”又は”０”）に応じていずれかの入力を選択して出力し、セレクタ１３Ｂは常にインバータ１３Ａの出力を選択して出力する。
【００３４】
インバータ１１Ｃ〜１３Ｃは、それぞれ、入力信号を反転して出力する否定回路であり、セレクタ１１Ｂ〜１３Ｂに対応して設けられている。インバータ１１Ｃ〜１３Ｃは、セレクタ１１Ｂ〜１３Ｂと交互に直列に接続されており、それぞれ、セレクタ１１Ｂ〜１３Ｂの各々の出力を反転して出力する。インバータ１１Ｃ〜１３Ｃは、遅延素子の一例である。
【００３５】
セレクタ１３Ｂの一方の入力端子には、インバータ１３Ａの出力端子が接続されている。セレクタ１３Ｂの他方の入力端子は接地されており、固定データとして”０”が入力される。
【００３６】
セレクタ１２Ｂの一方の入力端子には、インバータ１２Ａの出力端子が接続され、他方の入力端子には、インバータ１３Ｃの出力端子が接続されている。
【００３７】
セレクタ１１Ｂの一方の入力端子には、インバータ１１Ａの出力端子が接続され、他方の入力端子には、インバータ１２Ｃの出力端子が接続されている。
【００３８】
インバータ１１Ｃの入力端子には、セレクタ１１Ｂの出力端子が接続され、インバータ１１Ｃの出力端子は、遅延部１０の出力端子ＯＵＴに接続されている。
【００３９】
遅延部１０は、入力端子ＩＮに入力される信号をセレクタ１１Ｂ〜１２Ｂのうちのどこで折り返すかにより、入力端子ＩＮに入力される信号の遅延量を調節して出力端子ＯＵＴから出力する。
【００４０】
なお、上述したように、遅延部１０の入力端子ＩＮから見て一番奥にあるセレクタ１３Ｂの選択信号入力端子Ｓには、信号レベルが”１”にクリップされた選択信号が入力されるため、セレクタ１３Ｂは常にインバータ１３Ａの出力を選択する。
【００４１】
比較例の半導体装置に含まれる信号遅延回路１において、セレクタ１１Ｂ、１２Ｂに入力される選択信号が、それぞれ、”０”、”０”である場合、セレクタ１１Ｂ、１２Ｂは、それぞれ、インバータ１２Ｃ、１３Ｃの出力を選択するため、遅延部１０における信号の折り返し点はセレクタ１３Ｂになる。
【００４２】
セレクタ１１Ｂ、１２Ｂに入力される選択信号が、それぞれ、”０”、”１”である場合、セレクタ１１Ｂはインバータ１２Ｃの出力を選択し、セレクタ１２Ｂはインバータ１２Ａの出力を選択するため、信号の折り返し点はセレクタ１２Ｂになる。
【００４３】
なお、このとき、セレクタ１３Ｂはインバータ１３Ａの出力を選択してインバータ１３Ｃに入力するが、インバータ１３Ｃの出力はセレクタ１２Ｂによって選択されないため、セレクタ１３Ｂは信号の折り返し点にはならない。
【００４４】
セレクタ１１Ｂ、１２Ｂに入力される選択信号が、それぞれ、”１”、”０”である場合、セレクタ１１Ｂがインバータ１１Ａの出力を選択するため、信号の折り返し点はセレクタ１１Ｂになる。
【００４５】
なお、このとき、セレクタ１３Ｂはインバータ１３Ａの出力を選択してインバータ１３Ｃに入力し、インバータ１３Ｃの出力はセレクタ１２Ｂによって選択されるが、インバータ１２Ｃの出力はセレクタ１１Ｂによって選択されないため、セレクタ１３Ｂは信号の折り返し点にはならない。
【００４６】
なお、ここでは、一例として、３段のインバータ１１Ａ、１２Ａ、１３Ａ、セレクタ１１Ｂ、１２Ｂ、１３Ｂ、及びインバータ１１Ｃ、１２Ｃ、１３Ｃを含む遅延部１０について説明したが、フォワード側及びリターン側のインバータとセレクタの段数は、クロックに与える遅延量に応じて決めればよい。
【００４７】
例えば、クロックに１８０°の位相を与えた出力信号を出力する場合には、例えば、８ビットの選択信号を用いて、２５７段のフォワード側及びリターン側のインバータとセレクタを用いて遅延量を段階的に設定してもよい。
【００４８】
この場合は、フィルタ部３０が出力する８ビットの選択信号を２５６ビットの選択信号に変換して、２５７段のセレクタのうち、遅延部１０の入力端子ＩＮ及び出力端子ＯＵＴから見て最も奥にあるセレクタ以外の２５６個のセレクタに、入力すればよい。なお、この場合、遅延部１０の入力端子ＩＮ及び出力端子ＯＵＴから見て最も奥にあるセレクタには、常に信号を折り返すように、信号値を固定した選択信号を入力すればよい。
【００４９】
また、図２には、一例として、フォワード側のインバータを伝送される信号をセレクタで折り返してリターン側のインバータを経て出力する形式の遅延部１０を示すが、遅延部１０の回路構成は折り返す形式のものに限らない。遅延部１０は、入力信号に遅延を与えて出力できる回路であれば他の回路構成のものであってもよく、その形式は問わない。
【００５０】
次に、図３（Ａ）〜（Ｃ）を用いて、位相検出部２０で検出されるクロックの位相、フィルタ部３０が設定する安定動作範囲、及びエラー検出部４０が設定する許容範囲について説明する。なお、図３（Ａ）〜（Ｃ）では、クロックの位相を点で示す。
【００５１】
図３（Ａ）は、比較例の信号遅延回路１のフィルタ部３０に入力される位相信号（phase）が表すクロックの位相と安定動作範囲との関係を模式的に示す図である。図３（Ａ）に示す位相を表す点は、フィルタ部３０によるフィルタ処理が行われる前のクロックの位相であり、位相検出部２０によって検出されるクロックの位相を表す。
【００５２】
図３（Ｂ）は、フィルタ部３０によってフィルタ処理が行われた後のクロックの位相と安定動作範囲との関係を模式的に示す図である。
【００５３】
図３（Ｃ）は、エラー検出部４０における許容範囲とクロックの位相との関係を模式的に示す図である。
【００５４】
ここで、安定動作範囲及び許容範囲の上限をＮ、安定動作範囲及び許容範囲の幅をｍとする。フィルタ部３０が保持するクロックの位相の目標値は、Ｎ−（ｍ／２）で表されるものとする。
【００５５】
第１許容範囲の上限Ｎと幅ｍは、フィルタ部３０が、フィルタ部３０に入力される位相信号（phase）が表すクロックの位相の分布に基づいて信号遅延回路１００が適切に動作するように決定する。なお、フィルタ部３０は、目標値を用いて第１許容範囲の上限Ｎと幅ｍを決定してもよい。
【００５６】
図３（Ａ）に示すように、位相検出部２０で検出されるクロックの位相は、目標値を中心とする安定動作範囲（Ｎ−ｍ〜Ｎ）内に殆どが存在する。
【００５７】
安定動作範囲（Ｎ−ｍ〜Ｎ）から位相が逸脱するクロックは、例えば、遅延部１０の異常、又はクロックの異常等が原因で生じる場合があるが、その他にも、例えば、遅延部１０の温度、又は遅延部１０の電源電圧の変動等によって生じる場合がある。
【００５８】
このように、クロックの位相が安定動作範囲（Ｎ−ｍ〜Ｎ）から逸脱するのは、信号遅延回路１又は信号遅延回路１を含む半導体装置の外部で生じる要因（外的要因）によって生じる場合がある。
【００５９】
安定動作範囲（Ｎ−ｍ〜Ｎ）から逸脱したクロックの位相は、フィルタ部３０のフィルタ処理によって取り除かれるため、フィルタ処理が終わった後のクロックの位相は、図３（Ｂ）に破線の楕円Ａ内に示すように、安定動作範囲（Ｎ−ｍ〜Ｎ）内に収まる。
【００６０】
また、エラー検出部４０は、フィルタ部３０と同一の許容範囲（Ｎ−ｍ〜Ｎ）を有するため、図３（Ｃ）に示すようなクロックの位相を表す位相信号（phase）が位相検出部２０から入力されると、クロックの位相が許容範囲（Ｎ−ｍ〜Ｎ）内に入る場合は正常と判定するが、許容範囲（Ｎ−ｍ〜Ｎ）から逸脱すると異常が発生したと判定する。
【００６１】
すなわち、エラー検出部４０は、図３（Ｃ）に破線で示す楕円Ａ内のクロックの位相は許容範囲（Ｎ−ｍ〜Ｎ）内に入るため正常と判定し、楕円Ｂ、Ｃ内に入るクロックの位相については異常と判定する。
【００６２】
異常が発生したとエラー検出部４０が判定した場合は、エラー信号が信号遅延回路１を含むシステムの監視系統に伝送され、例えば、信号遅延回路１を含むシステムの動作が停止される。
【００６３】
ところで、信号遅延回路１の電源電圧又は温度の変動のような動作条件又は外的要因によって信号遅延回路１に入力するクロックの位相が変動する場合の中には、エラー検出部４０がエラー判定を行なわなくても、信号遅延回路１を含むシステムの動作に影響を生じない場合がある。
【００６４】
例えば、動作条件又は外的要因によるエラーの発生頻度が極端に低い（例えば１％未満）場合、又は、信号遅延回路１の外部でデータの監視が行われている場合は、エラー判定を行なわなくても、信号遅延回路１を含むシステムの動作に影響を生じない場合がある。
【００６５】
ここで、信号遅延回路１の外部でデータの監視が行われている場合としては、例えば、クロック（clock_in）に同期したデータ転送を行っているバス等で、ＥＣＣ（Error Checking and Correction）符号を伴ったデータ転送を行っている場合、又は、イネーブル信号等を伴ったデータ転送を行っている場合がある。
【００６６】
また、動作条件又は外的要因によってクロックの位相が変動してエラー検出部４０の許容範囲から逸脱するのは、例えば、確率的に数パーセント以下（例えば、１万回の検出において、数回から数十回程度）であり、全体のクロックの位相から見るとごく僅かである。
【００６７】
従って、動作条件又は外的要因によるクロックの位相の変動が比較的少ない場合については、エラー検出部４０でエラー判定を行わずに、信号遅延回路１を含むシステムの動作を継続する方がシステム全体を円滑かつ安定的に動作させることができる。
【００６８】
以上のように、比較例の信号遅延回路１を含む半導体装置では、動作条件又は外的要因でクロックの位相が許容範囲から逸脱した場合には、一律的にエラー判定を行うため、信号遅延回路１を含むサーバ等の情報処理装置を停止することになり、システム全体を円滑かつ安定的に動作させることが困難になる場合が生じる可能性があった。
【００６９】
このため、以下で説明する実施の形態１乃至４では、上述の問題点を解決した半導体装置、及び情報処理装置を提供することを目的とする。以下、実施の形態１乃至４の半導体装置、及び情報処理装置について説明する。
【００７０】
＜実施の形態１＞
以下、実施の形態１の半導体装置、及び情報処理装置について説明するにあたり、比較例の半導体装置と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【００７１】
図４は、実施の形態１の半導体装置を含むサーバ５０を示す図である。
【００７２】
図４に示すサーバ５０は、実施の形態１の半導体装置を含む情報処理装置の一例である。サーバ５０は、例えば、ＣＰＵ（Central Processing Unit：中央演算装置）及び主記憶装置等を含む。
【００７３】
図５は、実施の形態１の半導体装置を含むサーバ５０を示すブロック図である。
【００７４】
サーバ５０は、ＣＰＵ５１及び主記憶装置５２Ａ、５２Ｂを含む。ＣＰＵ５１と主記憶装置５２Ａ、５２Ｂは、それぞれ、バス５３Ａ、５３Ｂによって接続されている。
【００７５】
ＣＰＵ５１は、メモリコントローラ５４を含み、メモリコントローラ５４内のメモリＩ／Ｆ（Interface：インターフェイス）５４Ａを介して主記憶装置５２Ａ、５２Ｂとの間でデータの取得又は転送を行うとともに、取得したデータの処理を行う。
【００７６】
主記憶装置５２Ａ、５２Ｂは、例えば、複数のモジュール化されたＲＡＭ（Random Access Memory：ランダムアクセスメモリ）を含む。なお、図５には２つの主記憶装置５２Ａ、５２Ｂを示すが、主記憶装置は３つ以上あってもよい。
【００７７】
メモリコントローラ５４は、ＣＰＵ５１と主記憶装置５２Ａ、５２Ｂとの間でデータの転送を行う。メモリコントローラ５４は、主記憶装置５２Ａ、５２Ｂとの境界におけるデータ通信を実現するために、メモリＩ／Ｆ５４Ａを有する。
【００７８】
実施の形態１の半導体装置は、例えば、メモリＩ／Ｆ５４Ａ内に信号遅延回路を有するメモリコントローラ５４である。図５には、ＣＰＵ５１がメモリコントローラ５４を含む形態を示すが、メモリコントローラ５４はＣＰＵ５１の外部にあってもよい。また、実施の形態１の半導体装置は、メモリコントローラ５４を含むチップセットであってもよい。
【００７９】
ここで、実施の形態１の半導体装置に含まれる信号遅延回路は、入力信号に遅延を与えた出力信号を出力する信号遅延回路の一例である。実施の形態１の半導体装置に含まれる信号遅延回路の出力信号は、例えば、実施の形態１の半導体装置としてのメモリコントローラ５４が主記憶装置５２Ａ、５２Ｂとの間でデータ転送を行う際のシステムクロックとして用いられる。
【００８０】
次に、図６を用いて実施の形態１の半導体装置に含まれる信号遅延回路１００について説明する。
【００８１】
図６は、実施の形態１の半導体装置に含まれる信号遅延回路１００を示す図である。
【００８２】
信号遅延回路１００は、遅延部１０、位相検出部２０、フィルタ部３０、エラー検出部１４０、及びディスカウント制御部１５０を含む。
【００８３】
信号遅延回路１００は、エラー検出部１４０の構成が比較例の信号遅延回路１のエラー検出部４０と異なる。また、信号遅延回路１００は、ディスカウント制御部１５０を含む点が比較例の信号遅延回路１のエラー検出部４０と異なる。
【００８４】
また、信号遅延回路１００では、位相検出部２０は８ビットの位相信号phase[7:0]を出力し、フィルタ部３０は８ビットのselect[7:0]と、８ビットの安定動作範囲を表すコードcode_N[7:0]及びcode_m[7:0]とを出力する。コードcode_N[7:0]は安定動作範囲の上限の位相Ｎを表し、コードcode_m[7:0]は安定動作範囲の幅ｍを表す。
【００８５】
また、信号遅延回路１００のエラー検出部１４０には、ディスカウント制御部１５０からディスカウント信号discount[3:0]が入力される。
【００８６】
その他の構成は比較例の信号遅延回路１と同様であり、信号遅延回路１００は遅延部１０に入力するクロック（clock_in）に遅延を与えたクロック（clock_out）を出力する。
【００８７】
以下、比較例の信号遅延回路１と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【００８８】
まず、図７を用いて、位相検出部２０について説明する。
【００８９】
図７は、実施の形態１の半導体装置に含まれる信号遅延回路１００の位相検出部２０を示す図である。
【００９０】
位相検出部２０には、遅延部１０から出力されるクロック（clock_out）が入力される。また、位相検出部２０には、多相クロックφ０〜φ２５５が入力されている。多相クロックφ０〜φ２５５は、クロック（clock_in）の１周期を２５６分割して得る単位位相をクロック（clock_in）に順次付加することによって得られるクロックである。
【００９１】
クロックφ０は、クロック（clock_in）と同位相であり、クロックφ１はクロック（clock_in）より単位位相１つ分だけ位相が進んでおり、φ２５４はクロック（clock_in）より単位位相２５４個分だけ位相が進んでおり、２５５はクロック（clock_in）より単位位相２５５個分だけ位相が進んでいる。
【００９２】
位相検出部２０は、遅延部１０から出力されるクロック（clock_out）と多相クロックφ０〜φ２５５を比較し、多相クロックφ０〜φ２５５のうち、遅延部１０から出力されるクロック（clock_out）と位相が一致するクロック（φ０〜φ２５５のうちのいずれか１つ）の位相を遅延部１０から出力されるクロック（clock_out）の位相として検出する。
【００９３】
位相検出部２０は、検出した位相を表す８ビットの位相信号phase[7:0]を出力する。
【００９４】
次に、エラー検出部１４０について説明する。
【００９５】
エラー検出部１４０は、信号遅延回路１００又は信号遅延回路１００を含む半導体装置の動作条件に応じて、許容範囲から位相が外れた回数（カウント数）をディスカウントする点が比較例の信号遅延回路１のエラー検出部４０と異なる。
【００９６】
エラー検出部１４０には、ディスカウント制御部１５０が接続されており、ディスカウント制御部１５０からディスカウント信号discount[3:0]が入力される。ディスカウント信号discount[3:0]は、信号遅延回路１００又は信号遅延回路１００を含む半導体装置の動作条件に応じて、ディスカウント制御部１５０によって生成される。
【００９７】
エラー検出部１４０は、半導体装置の動作条件に応じて生成されるディスカウント信号discount[3:0]に基づいて、許容範囲から位相が外れた回数（カウント数）をディスカウントする。
【００９８】
エラー検出部１４０がカウント数をディスカウントするのは、動作条件によるクロックの位相の変動が比較的少ない場合については、エラー検出部１４０がエラー判定を行わずに、信号遅延回路１００を含むシステムの動作を継続する方がシステム全体を円滑かつ安定的に動作させることができるからである。
【００９９】
ここで、クロックの位相が安定動作範囲（Ｎ−ｍ〜Ｎ）から逸脱する要因になる半導体装置の動作条件又は外的要因としては、例えば、半導体装置の電源電圧の変動と半導体装置の温度の変動がある。
【０１００】
半導体装置に含まれる遅延部１０が出力するクロック（clock_out）の位相は、遅延部１０に供給される電源電圧（半導体装置に供給される電源電圧）によって影響を受け、変動範囲が変わる。例えば、電源電圧の変動範囲が±５％、±１０％、±１５％の場合では、±５％の場合のクロック（clock_out）の位相の変動範囲が最も小さく、±１５％の場合のクロック（clock_out）の位相の変動範囲が最も大きくなる。
【０１０１】
また、半導体装置に含まれる遅延部１０が出力するクロック（clock_out）の位相は、遅延部１０の温度（半導体装置の温度）によって影響を受け、変動範囲が変わる。遅延部１０の温度は、半導体装置の使用される環境によって異なり、また、半導体装置の動作等による発熱量等によって異なる。
【０１０２】
遅延部１０又は半導体装置の温度の変動範囲が大きくなればクロック（clock_out）の位相の変動範囲も大きくなり、遅延部１０又は半導体装置の温度の変動範囲が小さくなればクロック（clock_out）の位相の変動範囲も小さくなる。
【０１０３】
半導体装置の電源電圧と温度は、半導体装置の使用環境等の動作条件によって変動範囲が予め分かっている場合と、半導体装置の外的要因によって変動範囲が変わる場合がある。
【０１０４】
実施の形態１の信号遅延回路１００のエラー検出部１４０は、半導体装置の動作条件に応じて、許容範囲から位相が外れた回数（カウント数）をディスカウントする度合を設定する。
【０１０５】
なお、半導体装置の外的要因に応じて、許容範囲から位相が外れた回数（カウント数）をディスカウントする信号遅延回路については実施の形態２、４で説明する。
【０１０６】
ここで、エラー検出部１４０の内部構成について説明する。
【０１０７】
図８は、実施の形態１の信号遅延回路１００のエラー検出部１４０の内部構成を示す図である。
【０１０８】
エラー検出部１４０は、許容範囲抽出部１４１、カウント部１４２、及び判定部１４３を含む。
【０１０９】
許容範囲抽出部１４１は、フィルタ部３０から出力されるコードcode_N[7:0]及びcode_m[7:0]に基づき、許容範囲（Ｎ−ｍ〜Ｎ）を抽出し、許容範囲を表す許容範囲信号Ｗをカウント部１４２に入力する。
【０１１０】
カウント部１４２は、位相検出部２０から出力される位相信号phase[7:0]と、許容範囲抽出部１４１から出力される許容範囲信号Ｗとに基づき、許容範囲から位相が外れた回数をカウントし、カウント数を表すカウント信号Ｘを判定部１４３に入力する。
【０１１１】
判定部１４３は、ディスカウント制御部１５０から出力されるディスカウント信号discount[3:0]と、カウント部１４２から出力されるカウント信号Ｘとに基づき、クロック（clock_out）の位相にエラーが発生しているか否かを判定する。
【０１１２】
判定部１４３は、クロック（clock_out）の位相にエラーが発生していると判定した場合に、エラー信号（error）を出力する。
【０１１３】
ディスカウント信号discount[3:0]は、カウント信号Ｘが表す検出回数から減じる検出回数（ディスカウント数）を表す。
【０１１４】
例えば、ディスカウント信号discount[3:0]が表す検出回数が８回である場合は、判定部１４３は、カウント信号Ｘが表す検出回数が１回から８回までの間は、クロック（clock_out）の位相にエラーが生じたと判定しない。
【０１１５】
判定部１４３は、カウント信号Ｘが表す検出回数が９回になると、エラーが生じたと判定し、エラー信号（error）を出力するとともに、カウント部１４２をリセットするためのリセット信号（reset）を出力する。
【０１１６】
このように、エラー検出部１４０は、半導体装置の動作条件に応じて生成されるディスカウント信号discount[3:0]に基づいて、許容範囲から位相が外れた回数（カウント数）をディスカウントする。
【０１１７】
なお、カウント部１４２は位相信号phase[7:0]を状態信号（status）として出力し、判定部１４３は、ディスカウント信号discount[3:0] を状態信号（status）として出力する。
【０１１８】
次に、信号遅延回路１００のエラー検出部１４０に接続されるディスカウント制御部１５０（図６参照）について説明する。
【０１１９】
実施の形態１の信号遅延回路１００のエラー検出部１４０に接続されるディスカウント制御部１５０（図６参照）は、半導体装置の動作条件としての電源電圧の設定条件を表す信号が入力される。
【０１２０】
電源電圧の設定条件は、電源電圧の変動範囲を表しており、例えば、±５％、±１０％、±１５％のように電源電圧の変動範囲を表す。電源電圧の設定条件を表す信号は、システムの監視系統から入力される。
【０１２１】
電源電圧の設定条件は、信号遅延回路１００を含むサーバ５０の種類等によって決められており、変更されることはない。
【０１２２】
ディスカウント制御部１５０としては、例えば、組合せ回路を用いることができる。ディスカウント制御部１５０は、電源電圧の設定条件を表す信号に基づいてディスカウント信号discount[3:0]を生成し、エラー検出部１４０に入力する。
【０１２３】
ディスカウント制御部１５０が出力するディスカウント信号discount[3:0]は、電源電圧の設定条件を表す信号に応じて、値が設定される。
【０１２４】
例えば、電源電圧の設定条件が±５％のサーバ５０では、ディスカウント制御部１５０が出力するディスカウント信号discount[3:0]が表すディスカウント数は、例えば、“０”である。
【０１２５】
また、電源電圧の設定条件が±１０％のサーバ５０では、ディスカウント制御部１５０が出力するディスカウント信号discount[3:0]が表すディスカウント数は、例えば、“８”である。
【０１２６】
同様に、電源電圧の設定条件が±１５％のサーバ５０では、ディスカウント制御部１５０が出力するディスカウント信号discount[3:0]が表すディスカウント数は、例えば、“１６”である。
【０１２７】
次に、図９に示す遅延部１０が出力するクロック（clock_out）の位相と、許容範囲抽出部１４１が抽出する許容範囲の例示的な関係を用いて、カウント数のディスカウントの仕方について説明する。
【０１２８】
図９は、エラー検出部１４０におけるカウント数のディスカウントの概念を示す図である。
【０１２９】
図９に示す許容範囲（Ｎ−ｍ〜Ｎ）は１１８から１３８である。これは、コードcode_N[7:0]が表す許容範囲の上限の位相Ｎが１３８であり、code_m[7:0]が表す許容範囲の幅ｍが２０である場合に相当する。
【０１３０】
図９に番号１〜１６で示す１６個のプロットは、許容範囲（１１８〜１３８）から外れている位相を表している。
【０１３１】
図９に示す許容範囲（１１８〜１３８）から外れているプロットは、説明のための例示的なプロットである。図９に示す許容範囲（１１８〜１３８）に示すプロットの数に対する許容範囲（１１８〜１３８）から外れているプロットの数の割合は、実際の信号遅延回路１００における割合ではなく、説明のために誇張して示すものである。
【０１３２】
実際の信号遅延回路１００では、例えば、位相を１万回検出する間に、許容範囲から外れる位相を離散的に数回検出する程度である。
【０１３３】
ここで、一例として、電源電圧の変動範囲が±５％の場合におけるディスカウント数を“０”、変動範囲が±１０％の場合におけるディスカウント数を“８”、±１５％の場合におけるディスカウント数を“１５”とする。
【０１３４】
これは、ディスカウント信号discount[3:0]が表すディスカウント数が、それぞれ、“０”、“８”、“１５”である場合に相当する。
【０１３５】
このような条件下では、電源電圧の変動範囲が±５％の場合は、ディスカウント数が“０”であるため、番号１で示す位相を検出したときに、エラー検出部１４０内の判定部１４３はエラーが生じたと判定し、エラー信号（error）を出力する。
【０１３６】
また、電源電圧の変動範囲が±１０％の場合は、ディスカウント数が“８”であるため、番号１から８で示す位相を検出する間は、エラー検出部１４０内の判定部１４３はエラーが生じたと判定しない。判定部１４３は、番号９で示す位相を検出したときに、エラー検出部１４０内の判定部１４３はエラーが生じたと判定し、エラー信号（error）を出力する。
【０１３７】
同様に、電源電圧の変動範囲が±１５％の場合は、ディスカウント数が“１６”であるため、番号１から１６で示す位相を検出する間は、エラー検出部１４０内の判定部１４３はエラーが生じたと判定しない。判定部１４３は、図９には図示しない１７番目に許容範囲から外れた位相を検出したときに、エラー検出部１４０内の判定部１４３はエラーが生じたと判定し、エラー信号（error）を出力する。
【０１３８】
以上、実施の形態１の半導体装置に含まれる信号遅延回路１００によれば、動作条件の一例である電源電圧の変動範囲によってクロックの位相が変動して許容範囲から外れる位相を検出した場合は、電源電圧の変動範囲に応じて、カウント数をディスカウントする。
【０１３９】
このため、誤検出を抑制することができ、実施の形態１の信号遅延回路１００を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
【０１４０】
また、電源電圧の変動範囲に応じてディスカウント数を設定するため、信号遅延回路１００の応答性を確保しつつ、動作条件に応じてカウント数をディスカウントすることにより、動作条件に応じて、信号遅延回路１００及び信号遅延回路１００を含む半導体装置の円滑かつ安定的な動作を確保することができる。
【０１４１】
また、実施の形態１の信号遅延回路１００は、従来の半導体回路装置等のように複数の可変遅延回路、多数決回路、及び多数決回数設定レジスタ等を含まないため、回路が大規模になることがなく、回路の小規模化を図ることができる。
【０１４２】
＜実施の形態２＞
実施の形態２の信号遅延回路２００は、外的要因の一例としての電源電圧の変動に応じて、ディスカウント数が変動するディスカウント信号discount[3:0]が入力される点が実施の形態１の信号遅延回路１００と異なる。
【０１４３】
その他の構成は同様であるため、実施の形態１の信号遅延回路１００と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【０１４４】
図１０は、実施の形態２の半導体装置に含まれる信号遅延回路２００を示す図である。
【０１４５】
信号遅延回路２００のエラー検出部２４０には、ディスカウント制御部２５０からディスカウント信号discount[3:0]に加えて、セット信号（set）及びクリア信号（clear）が入力される。
【０１４６】
エラー検出部２４０は、信号遅延回路２００又は信号遅延回路２００を含む半導体装置の外的要因に応じて、許容範囲から位相が外れた回数（カウント数）をディスカウントする点が実施の形態１の信号遅延回路１００のエラー検出部１４０と異なる。
【０１４７】
エラー検出部２４０には、ディスカウント制御部２５０が接続されており、ディスカウント制御部２５０からディスカウント信号discount[3:0]が入力される。
【０１４８】
エラー検出部２４０は、半導体装置の外的要因に応じて生成されるディスカウント信号discount[3:0]に基づいて、許容範囲から位相が外れた回数（カウント数）をディスカウントする。
【０１４９】
エラー検出部２４０がカウント数をディスカウントするのは、動作条件によるクロックの位相の変動が比較的少ない場合については、エラー検出部２４０がエラー判定を行わずに、信号遅延回路２００を含むシステムの動作を継続する方がシステム全体を円滑かつ安定的に動作させることができるからである。
【０１５０】
図１１は、実施の形態２の信号遅延回路１００のエラー検出部２４０の内部構成を示す図である。
【０１５１】
エラー検出部２４０は、許容範囲抽出部１４１、カウント部２４２、及び判定部２４３を含む。
【０１５２】
許容範囲抽出部１４１は、実施の形態１の許容範囲抽出部１４１と同様であり、フィルタ部３０から出力されるコードcode_N[7:0]及びcode_m[7:0]に基づき、許容範囲（Ｎ−ｍ〜Ｎ）を抽出し、許容範囲を表す許容範囲信号Ｗをカウント部２４２に入力する。
【０１５３】
カウント部２４２は、位相検出部２０から出力される位相信号phase[7:0]と、許容範囲抽出部１４１から出力される許容範囲信号Ｗとに基づき、許容範囲から位相が外れた回数をカウントし、カウント数を表すカウント信号Ｘを判定部２４３に入力する。
【０１５４】
また、カウント部２４２には、ディスカウント制御部２５０からクリア信号（clear）が入力される。クリア信号（clear）は、カウント部２４２のカウント値をクリアするための信号である。
【０１５５】
判定部２４３は、ディスカウント制御部２５０から出力されるディスカウント信号discount[3:0]と、カウント部２４２から出力されるカウント信号Ｘとに基づき、クロック（clock_out）の位相にエラーが発生しているか否かを判定する。
【０１５６】
判定部２４３は、クロック（clock_out）の位相にエラーが発生していると判定した場合に、エラー信号（error）を出力する。
【０１５７】
また、判定部２４３には、ディスカウント制御部２５０からセット信号（set）が入力される。セット信号（set）については後述する。
【０１５８】
また、判定部２４３は、位相にエラーが発生した場合に、エラー信号（error）を出力するとともに、カウント部２４２をリセットするためのリセット信号（reset）を出力する。
【０１５９】
判定部２４３は、ディスカウント制御部２５０から出力されるディスカウント信号discount[3:0]が表すディスカウント数が変わると、変更後のディスカウント数を用いてエラー判定を行う。
【０１６０】
例えば、ディスカウント信号discount[3:0]が表す検出回数が０回から８回に変更されると、判定部２４３は、カウント信号Ｘが表す検出回数が１回から８回までの間は、クロック（clock_out）の位相にエラーが生じたと判定しないようになる。そして、判定部２４３は、カウント信号Ｘが表す検出回数が９回になると、エラーが生じたと判定し、エラー信号（error）を出力する。
【０１６１】
このように、エラー検出部２４０は、半導体装置の外的要因に応じて変動するディスカウント信号discount[3:0]に基づいて、許容範囲から位相が外れた回数（カウント数）をディスカウントする。
【０１６２】
ここで、ディスカウント制御部２５０（図１０参照）について説明する前に、電源電圧検出部２６０について説明する。
【０１６３】
電源電圧検出部２６０は、遅延部１０の電源電圧の変動分を検出し、デジタル変換して遅延部１０の電源電圧に含まれる変動分の値を表す３ビットの電源電圧信号power_range[2:0]を出力する。電源電圧検出部２６０は、例えば、電源電圧の変動分を検出して、電源電圧の変動分を表すデジタル信号を出力できる電圧センサを用いればよい。
【０１６４】
次に、信号遅延回路１００のエラー検出部２４０に接続されるディスカウント制御部２５０（図１０参照）について説明する。
【０１６５】
実施の形態２の信号遅延回路１００のエラー検出部２４０に接続されるディスカウント制御部２５０（図１０参照）には、半導体装置の外的要因としての電源電圧の変動分を表す信号が入力される。
【０１６６】
ここで、電源電圧の変動分とクロック（clock_out）の位相の変動分には相関がある。例えば、電源電圧の変動分が±５％から±１０％になり、さらに±１５％まで大きくなると、クロック（clock_out）の位相の変動分は大きくなる。
【０１６７】
このような電源電圧の変動分は、ディスカウント制御部２５０に接続される電源検出部２６０によって検出される。
【０１６８】
ディスカウント制御部２５０は、電源電圧検出部２６０から入力される電源電圧信号power_range[2:0]に基づいて、ディスカウント信号discount[3:0]を生成する。電源電圧検出部２６０から入力される電源電圧信号power_range[2:0]は、電源電圧の変動分を表す。
【０１６９】
ディスカウント制御部２５０は、電源電圧検出部２６０によって検出される電源電圧の変動分が絶対値で大きくなると、ディスカウント信号discount[3:0]が表すディスカウント数を増大させる。
【０１７０】
また、ディスカウント制御部２５０は、電源電圧検出部２６０によって検出される電源電圧の変動分が絶対値で小さくなると、ディスカウント信号discount[3:0]が表すディスカウント数を減少させる。
【０１７１】
次に、図１２を用いて、ディスカウント制御部２５０の内部構成について説明する。
【０１７２】
図１２は、実施の形態２の半導体装置に含まれる信号遅延回路２００に接続されるディスカウント制御部２５０を示す図である。
【０１７３】
ディスカウント制御部２５０は、格納部２５１、比較部２５２、及び制御部２５３を含む。ディスカウント制御部２５０は、電源電圧信号power_range[2:0]に基づいて、ディスカウント信号discount[3:0]を生成する。
【０１７４】
格納部２５１は、比較部２５２が電源電圧信号power_range[2:0]の比較に用いる値を格納データとして格納する。格納データは、制御部２５３から更新信号（update）が入力されたときに、電源電圧信号power_range[2:0]の値を取り込むことによって設定される。なお、格納部２５１としては、例えば、レジスタ又はメモリを用いればよい。
【０１７５】
比較部２５２は、電源電圧検出部２６０から入力される電源電圧信号power_range[2:0]を格納部２５１が格納する格納データと比較し、比較結果を表す比較結果信号を制御部２５３に出力する。
【０１７６】
制御部２５３は、比較部２５３から入力される比較結果信号に基づき、ディスカウント信号discount[3:0]を更新する処理を行う。制御部２５３は、ディスカウント信号discount[3:0]を更新する処理に伴い、セット信号（set）、クリア信号（clear）、及び更新信号（update）を出力する。ディスカウント信号discount[3:0]の更新処理と、セット信号（set）及びクリア信号（clear）を出力するタイミングについては後述する。
【０１７７】
次に、図１３を用いて、３ビットの電源電圧信号power_range[2:0]と４ビットのディスカウント信号discount[3:0]との対応関係について説明する。
【０１７８】
図１３は、実施の形態２の信号遅延回路２００のディスカウント制御部２５０の入力信号（電源電圧信号power_range[2:0]）の値と出力信号（ディスカウント信号discount[3:0]）の値との対応関係を示す図である。
【０１７９】
図１３は、図１３（Ａ）に示す対応関係と図１３（Ｂ）に示す対応関係の２種類の対応関係を含んでいる。
【０１８０】
ディスカウント制御部２５０は、図１３（Ａ）又は図１３（Ｂ）に示す対応関係の通りに、３ビットの電源電圧信号power_range[2:0]に基づいて４ビットのディスカウント信号discount[3:0]を生成する。
【０１８１】
ここでは、電源電圧の変動分を電源電圧に対する百分率で表し、図１３（Ａ）には、電源電圧の変動分を２．５％刻みにして、電源電圧の変動分が０（％）から絶対値で１７．５（％）以上の範囲に分類した変換テーブルを示す。
【０１８２】
ここで、電源電圧は＋側に変動することも、−側に変動することもあるため、図１３（Ａ）では電源電圧の変動分を表す数値に±の符号を付して示す。
【０１８３】
また、以下では、＋側の変動と−側の変動とを同時に説明するために、電源電圧の変動分の値を絶対値で取り扱って、３ビットの電源電圧信号power_range[2:0]と４ビットのディスカウント信号discount[3:0]との対応関係について説明する。
【０１８４】
まず、図１３（Ａ）に示す対応関係について説明する。３ビットの電源電圧信号power_range[2:0]は、図１３（Ａ）に示すように、絶対値で２．５（％）未満が“０”、・・・、絶対値で１５（％）以上１７．５（％）未満が“６”、絶対値で１７．５（％）以上が“７”と割り振られている。
【０１８５】
これに対して、４ビットのディスカウント信号discount[3:0]は、絶対値で２．５（％）未満が“０”、・・・、絶対値で１５（％）以上１７．５（％）未満が“１２”、絶対値で１７．５（％）以上が“１４”と割り振られている。
【０１８６】
例えば、電源電圧の変動分が−６．５（％）で３ビットの電源電圧信号power_range[2:0]が“２”を表す場合は、“４”を表す４ビットのディスカウント信号discount[3:0]が生成される。
【０１８７】
図１３（Ｂ）は図１３（Ａ）よりも粗く符号化する変換テーブルを示しており、図１３（Ｂ）の変換テーブルでは電源電圧の変動分は５％刻みにされている。
【０１８８】
図１３（Ｂ）に示すように、３ビットの電源電圧信号power_range[2:0]は、絶対値で５（％）未満が“０”、・・・、絶対値で１０（％）以上１５（％）未満が“２”、絶対値で１５（％）以上が“３”と割り振られている。
【０１８９】
これに対して、４ビットのディスカウント信号discount[3:0]は、絶対値で５（％）未満が“０”、・・・、絶対値で１０（％）以上１５（％）未満が“８”、絶対値で１５（％）以上が“１２”と割り振られている。
【０１９０】
例えば、電源電圧の変動分が−６．５（％）で３ビットの電源電圧信号power_range[2:0]が“１”を表す場合は、“４”を表す４ビットのディスカウント信号discount[3:0]が生成される。
【０１９１】
ディスカウント制御部２５０は、図１３（Ａ）又は図１３（Ｂ）に示す変換テーブルを用いて、３ビットの電源電圧信号power_range[2:0]に基づいて４ビットのディスカウント信号discount[3:0]を生成する。
【０１９２】
次に、図１４を用いて、実施の形態２の信号遅延回路２００の動作について説明する。
【０１９３】
図１４は、実施の形態２の信号遅延回路２００の動作を示すタイミングチャートである。図１４（Ａ）は図１３（Ａ）に示す変換テーブルを用いた場合の動作を示し、図１４（Ｂ）は図１３（Ｂ）に示す変換テーブルを用いた場合の動作を示す。
【０１９４】
図１４（Ａ）には、格納部２５１が格納する格納データ、電源電圧検出部２６０が出力する電源電圧信号power_range[2:0]、ディスカウント信号discount[3:0]、更新信号（update）、クリア信号（clear）、及びセット信号（set）を示す。図１４（Ａ）では横軸を時間軸とする。
【０１９５】
図１４（Ａ）に示す動作例では、格納データと電源電圧検出部２６０が出力する電源電圧信号power_range[2:0]（以下、現在の電源電圧信号power_range[2:0]と称す）との符号差が“２”以上になったときに、更新データを更新することとする。
【０１９６】
また、時刻ｔ＝０では、電源電圧の変動分は＋８％であり、格納データとして格納されている電源電圧信号power_range[2:0]が“３”であるものとする。また、電源電圧検出部２６０が出力する電源電圧信号power_range[2:0]が“３”であるものとする。
【０１９７】
このとき、図１３（Ａ）の変換テーブルより、ディスカウント信号discount[3:0]は“３”である。また、更新信号（update）、クリア信号（clear）、及びセット信号（set）は、すべてＬ（Low）レベルであることとする。
【０１９８】
時刻が経過するに連れ、電源電圧に変動が生じることにより、現在の電源電圧信号power_range[2:0]の値は時刻ｔ＝０のときの“３”から、“２”、“３”、“４”、“３”、“４”と変化し、時刻ｔ１で“５”に変化したとする。
【０１９９】
このとき、格納データの値“３”と、現在の電源電圧信号power_range[2:0]の値“５”との符号差が初めて“２”以上になる。
【０２００】
このため、時刻ｔ２で更新信号（update）がＨ（High）レベルになり、これにより更新データが“５”に更新される。
【０２０１】
また、時刻ｔ３でクリア信号（clear）がＨレベルになると、カウント部２４２（図１１参照）のカウント値がクリアされる。
【０２０２】
さらに、時刻ｔ４でセット信号（set）がＨレベルになることにより、判定部２４３（図１１参照）のディスカウント信号discount[3:0]が“１０”に設定される。
【０２０３】
このような図１４（Ａ）に示す動作は、例えば、時刻ｔ＝０で＋８％だった電源電圧の変動分が、時刻ｔ４で＋１４％になった場合に相当する。
【０２０４】
実施の形態２の信号遅延回路２００は、このように電源電圧の変動に合わせて、ディスカウント信号discount[3:0]を変更することにより、誤検出を抑制でき、円滑かつ安定的な動作を確保することができる。
【０２０５】
次に、図１４（Ｂ）の動作例について説明する。
【０２０６】
図１４（Ｂ）には、図１４（Ａ）と同様に、格納部２５１が格納する格納データ、現在の電源電圧信号power_range[2:0]、ディスカウント信号discount[3:0]、更新信号（update）、クリア信号（clear）、及びセット信号（set）を示す。図１４（Ｂ）では横軸を時間軸とする。
【０２０７】
図１４（Ｂ）に示す動作例では、格納データと現在の電源電圧信号power_range[2:0]との符号差が“１”以上になったときに、更新データを更新することとする。
【０２０８】
また、時刻ｔ＝０では、電源電圧の変動分は＋１１％であり、格納データとして格納されている電源電圧信号power_range[2:0]が“２”であるものとする。また、電源電圧検出部２６０が出力する電源電圧信号power_range[2:0]が“２”であるものとする。
【０２０９】
このとき、図１３（Ｂ）の変換テーブルより、ディスカウント信号discount[3:0]は“８”である。また、更新信号（update）、クリア信号（clear）、及びセット信号（set）は、すべてＬ（Low）レベルであることとする。
【０２１０】
時刻が経過するに連れ、電源電圧に変動が生じることにより、現在の電源電圧信号power_range[2:0]の値は時刻ｔ＝０のときの“２”から、“２”の状態が暫く継続し、時刻ｔ１で“３”に変化したとする。
【０２１１】
このとき、格納データの値“２”と、現在の電源電圧信号power_range[2:0]の値“３”との符号差が初めて“１”以上になる。
【０２１２】
このため、時刻ｔ２で更新信号（update）がＨ（High）レベルになり、これにより更新データが“３”に更新される。
【０２１３】
また、時刻ｔ３でクリア信号（clear）がＨレベルになると、カウント部２４２（図１１参照）のカウント値がクリアされる。
【０２１４】
さらに、時刻ｔ４でセット信号（set）がＨレベルになることにより、判定部２４３（図１１参照）のディスカウント信号discount[3:0]が“１２”に設定される。
【０２１５】
このような図１４（Ｂ）に示す動作は、例えば、時刻ｔ＝０で＋１１％だった電源電圧の変動分が、時刻ｔ４で＋１５％になった場合に相当する。
【０２１６】
実施の形態２の信号遅延回路２００は、上述のように電源電圧の変動に合わせて、エラー検出部２４０内の判定部２４３が保持するディスカウント信号discount[3:0]を変更することにより、電源電圧の変動に合わせて、誤検出を抑制でき、円滑かつ安定的な動作を確保することができる。
【０２１７】
以上、実施の形態２の半導体装置に含まれる信号遅延回路２００によれば、外的要因の一例である電源電圧の変動分によってクロックの位相が変動して許容範囲から外れる位相を検出した場合は、電源電圧の変動に応じて、カウント数をディスカウントする。
【０２１８】
このため、誤検出を抑制することができ、実施の形態２の信号遅延回路２００を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
【０２１９】
また、電源電圧の変動に応じてディスカウント数を変化させるため、信号遅延回路２００の応答性を確保しつつ、外的要因に応じてカウント数をディスカウントすることにより、外的要因に応じて、信号遅延回路２００及び信号遅延回路２００を含む半導体装置の円滑かつ安定的な動作を確保することができる。
【０２２０】
また、実施の形態２の信号遅延回路２００は、従来の半導体回路装置等のように複数の可変遅延回路、多数決回路、及び多数決回数設定レジスタ等を含まないため、回路が大規模になることがなく、回路の小規模化を図ることができる。
【０２２１】
＜実施の形態３＞
図１５は、実施の形態３の半導体装置に含まれる信号遅延回路３００を示す図である。
【０２２２】
信号遅延回路３００は、ディスカウント制御部３５０が温度の変動範囲を表すディスカウント信号discount[3:0]を出力する点が実施の形態１と異なる。
【０２２３】
その他の構成は、実施の形態１の信号遅延回路１００と同様であるため、実施の形態１の信号遅延回路１００と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【０２２４】
ここで、温度の変動範囲とは、実施の形態３の信号遅延回路３００を含む半導体装置又はサーバ５０（図４及び図５参照）を使用することができる環境温度の範囲である。
【０２２５】
実施の形態３の信号遅延回路３００のエラー検出部１４０に接続されるディスカウント制御部３５０（図１５参照）は、半導体装置の動作条件としての温度の設定条件を表す信号が入力される。
【０２２６】
温度の設定条件は、温度の変動範囲を表しており、例えば、３０℃〜５０℃、２０℃〜６０℃のように温度の変動範囲を表す。温度の設定条件を表す信号は、システムの監視系統から入力される。
【０２２７】
温度の設定条件は、信号遅延回路３００を含むサーバ５０の種類等によって決められており、変更されることはない。
【０２２８】
ディスカウント制御部３５０としては、例えば、組合せ回路を用いることができる。ディスカウント制御部３５０は、温度の設定条件を表す信号に基づいてディスカウント信号discount[3:0]を生成し、エラー検出部１４０に入力する。
【０２２９】
ディスカウント制御部３５０が出力するディスカウント信号discount[3:0]は、温度の設定条件を表す信号に応じて、値が設定される。
【０２３０】
例えば、温度の設定条件が３０℃〜５０℃のサーバ５０では、ディスカウント制御部３５０が出力するディスカウント信号discount[3:0]が表すディスカウント数は、例えば、“２”に設定される。
【０２３１】
また、温度の設定条件が２０℃〜７０℃のサーバ５０では、ディスカウント制御部３５０が出力するディスカウント信号discount[3:0]が表すディスカウント数は、例えば、“４”に設定される。
【０２３２】
次に、図１６に示す遅延部１０が出力するクロック（clock_out）の位相と、許容範囲抽出部１４１が抽出する許容範囲の例示的な関係を用いて、カウント数のディスカウントの仕方について説明する。
【０２３３】
図１６は、エラー検出部１４０におけるカウント数のディスカウントの概念を示す図である。
【０２３４】
図１６に示す許容範囲（Ｎ−ｍ〜Ｎ）は１１８から１３８である。これは、コードcode_N[7:0]が表す許容範囲の上限の位相Ｎが１３８であり、code_m[7:0]が表す許容範囲の幅ｍが２０である場合に相当する。
【０２３５】
図１６に番号１〜４で示す４個のプロットは、許容範囲（１１８〜１３８）から外れている位相を表している。
【０２３６】
図１６に示す許容範囲（１１８〜１３８）から外れているプロットは、説明のための例示的なプロットである。図１６に示す許容範囲（１１８〜１３８）に示すプロットの数に対する許容範囲（１１８〜１３８）から外れているプロットの数の割合は、実際の信号遅延回路３００における割合ではなく、説明のために誇張して示すものである。
【０２３７】
ここで、一例として、温度の設定条件が３０℃〜５０℃の場合におけるディスカウント数を“２”、温度の設定条件が２０℃〜７０℃の場合におけるディスカウント数を“４”とする。
【０２３８】
これは、ディスカウント信号discount[3:0]が表すディスカウント数が、それぞれ、“２”、“４”である場合に相当する。
【０２３９】
このような条件下では、温度の変動範囲が３０℃〜５０℃の場合は、ディスカウント数が“２”であるため、番号３で示す位相を検出したときに、エラー検出部１４０内の判定部１４３はエラーが生じたと判定し、エラー信号（error）を出力する。
【０２４０】
また、温度の変動範囲が２０℃〜７０℃の場合は、ディスカウント数が“４”であるため、番号１から４で示す位相を検出する間は、エラー検出部１４０内の判定部１４３はエラーが生じたと判定しない。判定部１４３は、図１６には図示しない５番目に許容範囲から外れた位相を検出したときに、エラー検出部１４０内の判定部１４３はエラーが生じたと判定し、エラー信号（error）を出力する。
【０２４１】
以上、実施の形態３の半導体装置に含まれる信号遅延回路３００によれば、動作条件の一例である温度の変動範囲によってクロックの位相が変動して許容範囲から外れる位相を検出した場合は、温度の変動範囲に応じて、カウント数をディスカウントする。
【０２４２】
このため、誤検出を抑制することができ、実施の形態３の信号遅延回路３００を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
【０２４３】
また、温度の変動範囲に応じてディスカウント数を設定するため、信号遅延回路３００の応答性を確保しつつ、動作条件に応じてカウント数をディスカウントすることにより、動作条件に応じて、信号遅延回路３００及び信号遅延回路３００を含む半導体装置の円滑かつ安定的な動作を確保することができる。
【０２４４】
また、実施の形態３の信号遅延回路３００は、従来の半導体回路装置等のように複数の可変遅延回路、多数決回路、及び多数決回数設定レジスタ等を含まないため、回路が大規模になることがなく、回路の小規模化を図ることができる。
【０２４５】
＜実施の形態４＞
実施の形態４の信号遅延回路４００は、外的要因の一例としての温度の変動に応じて、ディスカウント数が変動するディスカウント信号discount[3:0]が入力される点が実施の形態３の信号遅延回路３００と異なる。
【０２４６】
また、温度の変動と電源電圧の変動の違いはあるが、半導体装置の外的要因に応じてディスカウント数を変更する点においては実施の形態２の信号遅延回路２００と同様である。
【０２４７】
このため、実施の形態２の信号遅延回路２００又は実施の形態３の信号遅延回路３００と同一又は同等の構成要素には同一符号を付し、その説明を省略する。
【０２４８】
図１７は、実施の形態４の半導体装置に含まれる信号遅延回路４００を示す図である。
【０２４９】
信号遅延回路４００のエラー検出部２４０には、ディスカウント制御部４５０からディスカウント信号discount[3:0]に加えて、セット信号（set）及びクリア信号（clear）が入力される。
【０２５０】
エラー検出部２４０は、信号遅延回路４００又は信号遅延回路４００を含む半導体装置の外的要因に応じて、許容範囲から位相が外れた回数（カウント数）をディスカウントする点が実施の形態３の信号遅延回路３００のエラー検出部１４０（図１５参照）と異なる。
【０２５１】
エラー検出部２４０には、ディスカウント制御部４５０が接続されており、ディスカウント制御部４５０からディスカウント信号discount[3:0]が入力される。
【０２５２】
エラー検出部２４０は、半導体装置の外的要因に応じて生成されるディスカウント信号discount[3:0]に基づいて、許容範囲から位相が外れた回数（カウント数）をディスカウントする。
【０２５３】
エラー検出部２４０がカウント数をディスカウントするのは、動作条件によるクロックの位相の変動が比較的少ない場合については、エラー検出部２４０がエラー判定を行わずに、信号遅延回路４００を含むシステムの動作を継続する方がシステム全体を円滑かつ安定的に動作させることができるからである。
【０２５４】
ここで、ディスカウント制御部４５０（図１７参照）について説明する前に、温度検出部２６０について説明する。
【０２５５】
温度検出部４６０は、遅延部１０に取り付けられており、遅延部１０の温度を検出し、デジタル変換して遅延部１０の温度を表すtemperature[3:0]を出力する。説明の便宜上、図１７では温度検出部４６０と遅延部１０は離して示すが、実際には温度検出部４６０は遅延部１０の温度を検出できるように、遅延部１０の近傍に設けられている。
【０２５６】
次に、信号遅延回路３００のエラー検出部２４０に接続されるディスカウント制御部４５０（図１７参照）について説明する。
【０２５７】
実施の形態４の信号遅延回路３００のエラー検出部２４０に接続されるディスカウント制御部４５０（図１７参照）には、半導体装置の外的要因としての温度の変動分を表す信号が入力される。
【０２５８】
ここで、温度の変動分とクロック（clock_out）の位相の変動分には相関がある。例えば、温度の変動分が３０℃〜５０℃になり、さらに２０℃〜６０℃まで大きくなると、クロック（clock_out）の位相の変動分は大きくなる。
【０２５９】
このような温度の変動分は、ディスカウント制御部４５０に接続される電源検出部２６０によって検出される。
【０２６０】
ディスカウント制御部４５０は、温度検出部２６０から入力される温度信号temperature_range[2:0]に基づいて、ディスカウント信号discount[3:0]を生成する。温度検出部２６０から入力される温度信号temperature_range[2:0]は、温度の変動分を表す。
【０２６１】
ディスカウント制御部４５０は、温度検出部２６０によって検出される温度の変動分が絶対値で大きくなると、ディスカウント信号discount[3:0]が表すディスカウント数を増大させる。
【０２６２】
また、ディスカウント制御部４５０は、温度検出部２６０によって検出される温度の変動分が絶対値で小さくなると、ディスカウント信号discount[3:0]が表すディスカウント数を減少させる。
【０２６３】
次に、図１８を用いて、ディスカウント制御部４５０の内部構成について説明する。
【０２６４】
図１８は、実施の形態４の半導体装置に含まれる信号遅延回路４００に接続されるディスカウント制御部４５０を示す図である。
【０２６５】
ディスカウント制御部４５０は、格納部４５１、比較部４５２、及び制御部４５３を含む。ディスカウント制御部４５０は、温度信号temperature_range[2:0]に基づいて、ディスカウント信号discount[3:0]を生成する。
【０２６６】
格納部４５１は、比較部４５２が温度信号temperature_range[2:0]の比較に用いる値を格納データとして格納する。格納データは、制御部４５３から更新信号（update）が入力されたときに、温度信号temperature_range[2:0]の値を取り込むことによって設定される。なお、格納部４５１としては、例えば、レジスタ又はメモリを用いればよい。
【０２６７】
比較部４５２は、温度検出部２６０から入力される温度信号temperature_range[2:0]を格納部４５１が格納する格納データと比較し、比較結果を表す比較結果信号を制御部４５３に出力する。
【０２６８】
制御部４５３は、比較部２５３から入力される比較結果信号に基づき、ディスカウント信号discount[3:0]を更新する処理を行う。制御部４５３は、ディスカウント信号discount[3:0]を更新する処理に伴い、セット信号（set）、クリア信号（clear）、及び更新信号（update）を出力する。ディスカウント信号discount[3:0]の更新処理と、セット信号（set）及びクリア信号（clear）を出力するタイミングについては後述する。
【０２６９】
次に、図１９を用いて、３ビットの温度信号temperature_range[2:0]と４ビットのディスカウント信号discount[3:0]との対応関係について説明する。
【０２７０】
図１９は、実施の形態４の信号遅延回路４００のディスカウント制御部４５０の入力信号（温度信号temperature_range[2:0]）の値と出力信号（ディスカウント信号discount[3:0]）の値との対応関係を示す図である。
【０２７１】
図１９は、図１９（Ａ）に示す対応関係と図１９（Ｂ）に示す対応関係の２種類の対応関係を含んでいる。
【０２７２】
ディスカウント制御部４５０は、図１９（Ａ）又は図１９（Ｂ）に示す対応関係の通りに、３ビットの温度信号temperature_range[2:0]に基づいて４ビットのディスカウント信号discount[3:0]を生成する。まず、図１９（Ａ）に示す対応関係について説明する。
【０２７３】
図１９（Ａ）には、温度の変動範囲を境界ａから境界ｆの６つの境界によって分けられる７つの領域に分類した変換テーブルを示す。ここで、温度の範囲を上限と下限で示し、［下限，上限］と表す。
【０２７４】
境界ａは、温度の範囲が［３５，４５］（下限３５℃から上限４５℃までの範囲）を表し、境界ａより左側は、温度の変動範囲の下限が３５℃以上で、上限が４５℃未満である領域を表す。
【０２７５】
境界ｂは、温度の範囲が［２５，６０］（下限２５℃から上限６０℃までの範囲）を表し、境界ｂより左側で境界ａより右側の領域は、温度の変動範囲の下限が２５℃以上で、上限が６０℃未満である領域を表す。
【０２７６】
境界ｃは、温度の範囲が［１５，７５］（下限１５℃から上限７５℃までの範囲）を表し、境界ｃより左側で境界ｂより右側の領域は、温度の変動範囲の下限が１５℃以上で、上限が７５℃未満である領域を表す。
【０２７７】
境界ｄは、温度の範囲が［０，８５］（下限０℃から上限８５℃までの範囲）を表し、境界ｄより左側で境界ｃより右側の領域は、温度の変動範囲の下限が０℃以上で、上限が８５℃未満である領域を表す。
【０２７８】
境界ｅは、温度の範囲が［−２０，１０５］（下限−２０℃から上限１０５℃までの範囲）を表し、境界ｅより左側で境界ｄより右側の領域は、温度の変動範囲の下限が−２０℃以上で、上限が１０５℃未満である領域を表す。
【０２７９】
境界ｆは、温度の範囲が［−４０，１２５］（下限−４０℃から上限１２５℃までの範囲）を表し、境界ｆより左側で境界ｅより右側の領域は、温度の変動範囲の下限が−４０℃以上で、上限が１２５℃未満である領域を表す。
【０２８０】
また、境界ｆより右側の領域は、温度の変動範囲の下限が−４０℃より低く、上限が１２５℃以上である領域を表す。
【０２８１】
このように、横軸方向において右側に行くほど（境界ａから境界ｆにかけて）温度の変動範囲は拡大する傾向にあり、境界ｆから境界ａにかけて温度の変動範囲は縮小する傾向にある。
【０２８２】
いずれの範囲に属するかは、温度の変動範囲の上限及び下限の両方がいずれかの境界（ａ〜ｆ）を超えることによって決定してもよいが、ここでは、一例として、温度の変動範囲の上限又は下限のどちらか一方がいずれかの境界（ａ〜ｆ）を超えた場合に、属する範囲が決まることとする。
【０２８３】
３ビットの温度信号temperature_range[2:0]は、図１９（Ａ）に示すように、境界ａより左の領域が“０”、・・・、境界ｅよりも右で境界ｆよりも左の領域（境界ｅ上を含む）が“５”、境界ｆよりも右の領域（境界ｆ上を含む）が“６”と割り振られている。
【０２８４】
これに対して、４ビットのディスカウント信号discount[3:0]は、境界ａより左の領域が“０”、・・・、境界ｅよりも右で境界ｆよりも左の領域（境界ｅ上を含む）が“１０”、境界ｆよりも右の領域（境界ｆ上を含む）が“１２”と割り振られている。
【０２８５】
例えば、温度の変動範囲が３０℃〜５０℃の場合は、境界ａと境界ｂの間の領域に属するため、３ビットの温度信号temperature_range[2:0]は“１”を表し、“２”を表す４ビットのディスカウント信号discount[3:0]が生成される。
【０２８６】
図１９（Ｂ）には、温度の変動範囲を境界ａから境界ｆの３つの境界によって分けられる４つの領域に分類した変換テーブルを示す。ここで、温度の範囲を上限と下限で示し、［下限，上限］と表す。
【０２８７】
境界ａは、温度の範囲が［２５，６０］（下限２５℃から上限６０℃までの範囲）を表し、境界ａより左側は、温度の変動範囲の下限が２５℃以上で、上限が６０℃未満である領域を表す。
【０２８８】
境界ｂは、温度の範囲が［０，８５］（下限０℃から上限８５℃までの範囲）を表し、境界ｂより左側で境界ａより右側の領域は、温度の変動範囲の下限が０℃以上で、上限が８５℃未満である領域を表す。
【０２８９】
境界ｃは、温度の範囲が［−４０，１２５］（下限−４０℃から上限１２５℃までの範囲）を表し、境界ｃより左側で境界ｂより右側の領域は、温度の変動範囲の下限が−４０℃以上で、上限が１２５℃未満である領域を表す。
【０２９０】
また、境界ｃより右側の領域は、温度の変動範囲の下限が−４０℃より低く、上限が１２５℃以上である領域を表す。
【０２９１】
このように、境界ａから境界ｆにかけて温度の変動範囲は拡大する傾向にあり、境界ｆから境界ａにかけて温度の変動範囲は縮小する傾向にある。
【０２９２】
いずれの範囲に属するかは、温度の変動範囲の上限及び下限の両方がいずれかの境界（ａ〜ｆ）を超えることによって決定してもよいが、ここでは、一例として、温度の変動範囲の上限又は下限のどちらか一方がいずれかの境界（ａ〜ｆ）を超えた場合に、属する範囲が決まることとする。
【０２９３】
３ビットの温度信号temperature_range[2:0]は、図１９（Ｂ）に示すように、境界ａより左の領域が“０”、・・・、境界ｂよりも右で境界ｃよりも左の領域（境界ｂ上を含む）が“２”、境界ｃよりも右の領域（境界ｃ上を含む）が“３”と割り振られている。
【０２９４】
これに対して、４ビットのディスカウント信号discount[3:0]は、境界ａより左の領域が“０”、・・・、境界ｂよりも右で境界ｃよりも左の領域（境界ｂ上を含む）が“８”、境界ｃよりも右の領域（境界ｃ上を含む）が“１２”と割り振られている。
【０２９５】
ディスカウント制御部４５０は、図１９（Ａ）又は図１９（Ｂ）に示す変換テーブルを用いて、３ビットの温度信号temperature_range[2:0]に基づいて４ビットのディスカウント信号discount[3:0]を生成する。
【０２９６】
次に、図２０を用いて、実施の形態４の信号遅延回路４００の動作について説明する。
【０２９７】
図２０は、実施の形態４の信号遅延回路４００の動作を示すタイミングチャートである。図２０（Ａ）は図１９（Ａ）に示す変換テーブルを用いた場合の動作を示し、図２０（Ｂ）は図１９（Ｂ）に示す変換テーブルを用いた場合の動作を示す。
【０２９８】
図２０（Ａ）には、格納部４５１が格納する格納データ、温度検出部２６０が出力する温度信号temperature_range[2:0]、ディスカウント信号discount[3:0]、更新信号（update）、クリア信号（clear）、及びセット信号（set）を示す。図２０（Ａ）では横軸を時間軸とする。
【０２９９】
図２０（Ａ）に示す動作例では、格納データと温度検出部２６０が出力する温度信号temperature_range[2:0]（以下、現在の温度信号temperature_range[2:0]と称す）との符号差が“２”以上になったときに、更新データを更新することとする。
【０３００】
また、時刻ｔ＝０では、温度の変動範囲は１０℃〜８０℃であり、境界ｃと境界ｄの間の領域に属するため、格納データとして格納されている温度信号temperature_range[2:0]が“３”であるものとする。また、温度検出部２６０が出力する温度信号temperature_range[2:0]が“３”であるものとする。
【０３０１】
このとき、図１９（Ａ）の変換テーブルより、ディスカウント信号discount[3:0]は“３”である。また、更新信号（update）、クリア信号（clear）、及びセット信号（set）は、すべてＬ（Low）レベルであることとする。
【０３０２】
時刻が経過するに連れ、温度の範囲に変動が生じることにより、現在の温度信号temperature_range[2:0]の値は時刻ｔ＝０のときの“３”から、“２”、“３”、“４”、“３”、“４”と変化し、時刻ｔ１で“５”に変化したとする。
【０３０３】
このとき、格納データの値“３”と、現在の温度信号temperature_range[2:0]の値“５”との符号差が初めて“２”以上になる。
【０３０４】
このため、時刻ｔ２で更新信号（update）がＨ（High）レベルになり、これにより更新データが“５”に更新される。
【０３０５】
また、時刻ｔ３でクリア信号（clear）がＨレベルになると、カウント部２４２（図１１参照）のカウント値がクリアされる。
【０３０６】
さらに、時刻ｔ４でセット信号（set）がＨレベルになることにより、判定部２４３（図１１参照）のディスカウント信号discount[3:0]が“１０”に設定される。
【０３０７】
このような図２０（Ａ）に示す動作は、例えば、時刻ｔ＝０で１０℃〜８０℃だった温度の変動範囲が、時刻ｔ４で−３０℃〜１１５℃になった場合に相当する。
【０３０８】
実施の形態４の信号遅延回路４００は、このように温度の変動に合わせて、ディスカウント信号discount[3:0]を変更することにより、誤検出を抑制でき、円滑かつ安定的な動作を確保することができる。
【０３０９】
次に、図２０（Ｂ）の動作例について説明する。
【０３１０】
図２０（Ｂ）には、図２０（Ａ）と同様に、格納部４５１が格納する格納データ、現在の温度信号temperature_range[2:0]、ディスカウント信号discount[3:0]、更新信号（update）、クリア信号（clear）、及びセット信号（set）を示す。図２０（Ｂ）では横軸を時間軸とする。
【０３１１】
図２０（Ｂ）に示す動作例では、格納データと現在の温度信号temperature_range[2:0]との符号差が“１”以上になったときに、更新データを更新することとする。
【０３１２】
また、時刻ｔ＝０では、温度の変動分は−２０℃〜１００℃であり、格納データとして格納されている温度信号temperature_range[2:0]が“２”であるものとする。また、温度検出部２６０が出力する温度信号temperature_range[2:0]が“２”であるものとする。
【０３１３】
このとき、図１９（Ｂ）の変換テーブルより、ディスカウント信号discount[3:0]は“８”である。また、更新信号（update）、クリア信号（clear）、及びセット信号（set）は、すべてＬ（Low）レベルであることとする。
【０３１４】
時刻が経過するに連れ、温度の範囲に変動が生じることにより、現在の温度信号temperature_range[2:0]の値は時刻ｔ＝０のときの“２”から、“２”の状態が暫く継続し、時刻ｔ１で“３”に変化したとする。
【０３１５】
このとき、格納データの値“２”と、現在の温度信号temperature_range[2:0]の値“３”との符号差が初めて“１”以上になる。
【０３１６】
このため、時刻ｔ２で更新信号（update）がＨ（High）レベルになり、これにより更新データが“３”に更新される。
【０３１７】
また、時刻ｔ３でクリア信号（clear）がＨレベルになると、カウント部２４２（図１１参照）のカウント値がクリアされる。
【０３１８】
さらに、時刻ｔ４でセット信号（set）がＨレベルになることにより、判定部２４３（図１１参照）のディスカウント信号discount[3:0]が“１２”に設定される。
【０３１９】
このような図２０（Ｂ）に示す動作は、例えば、時刻ｔ＝０で−２０℃〜１００℃だった温度の変動分が、時刻ｔ４で−５０℃〜１３０℃になった場合に相当する。
【０３２０】
実施の形態４の信号遅延回路４００は、上述のように温度の変動に合わせて、エラー検出部２４０内の判定部２４３が保持するディスカウント信号discount[3:0]を変更することにより、温度の変動に合わせて、誤検出を抑制でき、円滑かつ安定的な動作を確保することができる。
【０３２１】
以上、実施の形態４の半導体装置に含まれる信号遅延回路４００によれば、外的要因の一例である温度の変動分によってクロックの位相が変動して許容範囲から外れる位相を検出した場合は、温度の変動に応じて、カウント数をディスカウントする。
【０３２２】
このため、誤検出を抑制することができ、実施の形態４の信号遅延回路４００を含む半導体装置全体の円滑かつ安定的な動作を確保することができる。
【０３２３】
また、温度の変動に応じてディスカウント数を変化させるため、信号遅延回路４００の応答性を確保しつつ、外的要因に応じてカウント数をディスカウントすることにより、外的要因に応じて、信号遅延回路４００及び信号遅延回路４００を含む半導体装置の円滑かつ安定的な動作を確保することができる。
【０３２４】
また、実施の形態４の信号遅延回路４００は、従来の半導体回路装置等のように複数の可変遅延回路、多数決回路、及び多数決回数設定レジスタ等を含まないため、回路が大規模になることがなく、回路の小規模化を図ることができる。
【０３２５】
以上、本発明の例示的な実施の形態の半導体装置、及び情報処理装置について説明したが、本発明は、具体的に開示された実施の形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更が可能である。
以上の実施の形態１乃至４に関し、さらに以下の付記を開示する。
（付記１）
入力信号に遅延を与える遅延部と、
前記遅延部から出力される出力信号の位相を検出する位相検出部と、
前記位相検出部から出力される位相情報に基づき、前記出力信号の位相の安定動作範囲を設定する設定部と、
前記安定動作範囲から位相が外れた前記出力信号の検出回数をカウントするカウンタと、
前記遅延部の動作条件又は外的要因に応じて、前記カウンタのカウント数のディスカウント数を表すディスカウント信号を生成するディスカウント制御部と、
前記カウンタのカウント数と前記ディスカウント信号が表すディスカウント数とに基づき、前記出力信号の位相のエラーの有無を判定するエラー判定部と
を含む半導体装置。
（付記２）
前記ディスカウント制御部は、前記動作条件又は前記外的要因の変動度合が大きいほど、前記ディスカウント数を増大する、付記１記載の半導体装置。
（付記３）
前記動作条件は、前記遅延部の電源電圧の変動範囲であり、
前記ディスカウント制御部は、前記電源電圧の変動範囲が大きいほど、前記ディスカウント数を増大する、付記１又は２記載の半導体装置。
（付記４）
前記外的要因は、前記半導体装置の電源電圧の変動であり、
前記電源電圧の変動分を検出する電源電圧検出部をさらに含み、
前記ディスカウント制御部は、前記電源電圧検出部によって検出される電源電圧の変動分が大きくなると前記ディスカウント数を増大し、前記電源電圧検出部によって検出される電源電圧の変動分が小さくなると前記ディスカウント数を減少する、付記１又は２記載の半導体装置。
（付記５）
前記動作条件は、前記半導体装置の温度の変動範囲であり、
前記ディスカウント制御部は、前記温度の変動範囲が大きいほど、前記ディスカウント数を増大する、付記１又は２記載の半導体装置。
（付記６）
前記外的要因は前記半導体装置の温度の変動範囲の変動であり、
前記温度の変動範囲の変動を検出する温度検出部をさらに含み、
前記ディスカウント制御部は、前記温度検出部によって検出される温度の変動範囲が拡大すると前記ディスカウント数を増大し、前記温度検出部によって検出される温度の変動範囲が縮小すると前記ディスカウント数を減少する、付記１又は２記載の半導体装置。
（付記７）
演算処理装置と、
主記憶装置と、
付記１乃至６のいずれか一項記載の半導体装置を有し、前記演算処理装置と前記主記憶装置との間でデータの転送を行うメモリコントローラと
を含む情報処理装置。
【符号の説明】
【０３２６】
１、１００、２００、３００、４００  信号遅延回路
１０  遅延部
１１Ａ、１２Ａ、１３Ａ、１１Ｃ、１２Ｃ、１３Ｃ  インバータ
１１Ｂ、１２Ｂ、１３Ｂ  セレクタ
２０  位相検出部
３０  フィルタ部
４０  エラー検出部
５０  サーバ
５１  ＣＰＵ
５２Ａ、５２Ｂ  主記憶装置
５３Ａ、５３Ｂ  バス
５４Ａ  メモリＩ／Ｆ
１４０、２４０  エラー検出部
１４１  許容範囲抽出部
１４２、２４２  カウント部
１４３、２４３  判定部
１５０、２５０、３５０、４５０  ディスカウント制御部
２５１、４５１  格納部
２５２、４５２  比較部
２５３、４５３  制御部
２６０  電源電圧検出部
４６０  温度検出部
【図１】
2012204871.tif 000003
【図２】
2012204871.tif 000004
【図３】
2012204871.tif 000005
【図４】
2012204871.tif 000006
【図５】
2012204871.tif 000007
【図６】
2012204871.tif 000008
【図７】
2012204871.tif 000009
【図８】
2012204871.tif 000010
【図９】
2012204871.tif 000011
【図１０】
2012204871.tif 000012
【図１１】
2012204871.tif 000013
【図１２】
2012204871.tif 000014
【図１３】
2012204871.tif 000015
【図１４】
2012204871.tif 000016
【図１５】
2012204871.tif 000017
【図１６】
2012204871.tif 000018
【図１７】
2012204871.tif 000019
【図１８】
2012204871.tif 000020
【図１９】
2012204871.tif 000021
【図２０】
2012204871.tif 000022