(57)【特許請求の範囲】
【請求項１】
ＣＰＵとメモリとの間において送受信されるデータ信号と、該データ信号の取り込みタイミングを規定するために前記ＣＰＵと前記メモリとの間において送受信されるデータ取り込み信号との間のタイミングのずれを調整するタイミング調整装置であって、
前記ＣＰＵの温度についての情報であるＣＰＵ温度情報を取得するＣＰＵ温度情報取得手段と、
前記ＣＰＵ温度情報取得手段により取得された前記ＣＰＵ温度情報に基づいて、前記データ取り込み信号の入出力を予め設定された遅延時間遅らせることによって、前記データ信号と前記データ取り込み信号との間のタイミングのずれを調整する温度ずれ調整手段と、
前記ＣＰＵの温度を検出するＣＰＵ温度検出手段とを備え、
前記ＣＰＵと前記メモリとの間には、前記ＣＰＵが前記メモリへのアクセスを行うためのメモリバスが設けられ、
前記メモリバスを監視して、前記ＣＰＵが前記メモリへのアクセスを行うアクセス頻度を検出するメモリバス監視手段と、
前記メモリバス監視手段により検出されたアクセス頻度と、前記ＣＰＵ温度検出手段により検出された前記ＣＰＵの温度とに基づいて、その後の前記ＣＰＵの温度を予測するＣＰＵ温度予測手段とを備え、
前記ＣＰＵ温度情報は、前記ＣＰＵ温度予測手段により予測された温度を示すものである
ことを特徴とするタイミング調整装置。
【請求項２】
前記メモリバス監視手段は、
前記ＣＰＵが前記メモリへアクセスしている時間であるアクセス長と、前記データ信号がローレベルからハイレベルまたはハイレベルからローレベルへ変化する変化率であるトグル率を前記アクセス頻度として検出し、
前記ＣＰＵ温度予測手段は、
前記アクセス長と前記トグル率との積に基づいて、前記ＣＰＵが前記メモリへのアクセスを行うことによる前記ＣＰＵの温度上昇を予測する
ことを特徴とする請求項１に記載のタイミング調整装置。
【請求項３】
前記ＣＰＵが前記メモリにアクセスしている場合に、前記温度ずれ調整手段の動作を禁止する調整禁止手段を備える
ことを特徴とする請求項１または請求項２に記載のタイミング調整装置。
【請求項４】
前記メモリの温度を検出するメモリ温度検出手段を備え、
前記温度ずれ調整手段は、
前記ＣＰＵ温度情報取得手段により取得された前記ＣＰＵ温度情報に加えて、更に、前記メモリ温度検出手段により検出された前記メモリの温度に基づいて、前記データ信号と前記データ取り込み信号との間のタイミングのずれを調整する
ことを特徴とする請求項１から請求項３の何れかに記載のタイミング調整装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリアクセスのタイミングを調整するタイミング調整装置に関する。
【背景技術】
【０００２】
ＤＤＲ２メモリ等の高速揮発性メモリを使用する場合には、データ信号とデータ取り込み信号との間のタイミングのずれが問題となる。例えば、図１４（ａ）に示すように、ＤＤＲ２メモリ１１０からコアＬＳＩ１２０へデータ信号ＤＱとデータ取り込み信号ＤＱＳを出力する場合において、ＤＤＲ２メモリ１１０から信号が出力された直後（図１４（ａ）の指示ｎ１１を参照）は、図１４（ｂ）に示すように、データ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミングが合っている。しかし、コアＬＳＩ１２０で取り込む直前（図１４（ａ）の指示ｎ１２を参照）は、図１４（ｃ）に示すように、ボードのスキューでデータ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミングがずれる（図１４（ｃ）の矢印Ｙ１１を参照）。
【０００３】
そこで、コアＬＳＩ１２０は、タイミング調整回路（図１４（ａ）中のＤＬＬ１２１）を備え、図１４（ｄ）に示すように、このタイミング調整回路（ＤＬＬ１２１）でデータ取り込み信号ＤＱＳを遅延調整することで（図１４（ｄ）の矢印Ｙ１２を参照）、ボード設計毎のスキューを吸収するように設計される。
【０００４】
ところで、カーナビゲーション用ＬＳＩ等の車載ＬＳＩには、大容量の揮発性メモリが搭載されている。そして車載ＬＳＩに搭載される揮発性メモリは、広い温度範囲（例えば−４０℃〜９５℃）での正常動作が要求される。
【０００５】
しかし今後、揮発性メモリが５３３ＭＨｚから６６７ＭＨｚ、８００ＭＨｚ、１ＧＨｚと高速化すると、タイミング調整できるウィンドウが狭くなる。このため、タイミング調整量がボードに対して一定では、図１５（ａ）に示すように、或る温度（図では−４０℃）では、タイミング調整回路による調整（図１５（ａ）の矢印Ｙ２１を参照）によってタイミングのずれを調整することができるが、図１５（ｂ）に示すように、別の温度（図では８５℃）では、タイミング調整回路による調整（図１５（ｂ）の矢印Ｙ２２を参照）によってタイミングのずれを調整することができなくなる（図中の指示ｎ２１を参照）おそれがある。
【０００６】
そして、上記のようなタイミングのずれを調整するために、従来、データ信号の入力に対してデータ取り込み信号の入力が速いか遅いかを検出し、この検出結果に基づいて、データ信号とデータ取り込み信号との間のタイミングのずれを調整する技術が知られている（例えば、特許文献１参照）。
【特許文献１】特開平８−２３７１０１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、特許文献１に記載の技術では、タイミングのずれを検出し、次回以降のデータ信号の入力におけるタイミングのずれを調整する。このため、タイミングのずれを検出した時点では、タイミングのずれを調整することができず、データ信号の取り込みの際に、データ信号の示す内容を正確に取り込むことができないというデータの不一致が発生するおそれがあった。
【０００８】
本発明は、こうした問題に鑑みなされたものであり、温度変化に起因したタイミングのずれによるデータ不一致の発生を抑制する技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた請求項１に記載のタイミング調整装置では、ＣＰＵ温度情報取得手段が、ＣＰＵの温度についての情報であるＣＰＵ温度情報を取得する。そして温度ずれ調整手段が、ＣＰＵ温度情報取得手段により取得されたＣＰＵ温度情報に基づいて、データ取り込み信号の入出力を予め設定された遅延時間遅らせることによって、データ信号とデータ取り込み信号との間のタイミングのずれを調整する。
【００１０】
このように構成されたタイミング調整装置によれば、ＣＰＵの温度変化に起因したデータ信号とデータ取り込み信号との間のタイミング（以下、信号間タイミングともいう）のずれによるデータ不一致が発生する前に、ＣＰＵの温度に応じて信号間タイミングを調整することが可能となり、データ不一致の発生を抑制することができる。
【００１２】
なお、ＣＰＵがメモリへ頻繁にアクセスする場合はＣＰＵ内部の動作率も一般的に高く、メモリアクセスによりＣＰＵ温度が上昇すると考えられる。
そこで請求項１に記載のタイミング調整装置では、ＣＰＵ温度検出手段がＣＰＵの温度を検出するとともに、メモリバス監視手段が、ＣＰＵがメモリへのアクセスを行うアクセス頻度を検出し、更に、ＣＰＵ温度予測手段が、メモリバス監視手段により検出されたアクセス頻度と、ＣＰＵ温度検出手段により検出されたＣＰＵの温度とに基づいて、その後のＣＰＵの温度を予測し、ＣＰＵ温度情報は、ＣＰＵ温度予測手段により予測された温度を示すものであるようにしてもよい。
【００１３】
このように構成されたタイミング調整装置よれば、ＣＰＵ温度の変化を予測することにより、その変化を見越して事前に信号間タイミングを調整することが可能となり、データ不一致の発生を更に抑制することができる。
【００１４】
そして、一般にＣＰＵの動作電力は、ＣＰＵがメモリへアクセスしている時間であるアクセス長と、データ信号がローレベルからハイレベルまたはハイレベルからローレベルへ変化する変化率であるトグル率に比例すると考えられるので、メモリアクセスによるＣＰＵの温度上昇も、アクセス長とトグル率に比例すると考えられる。
【００１５】
そこで請求項１に記載のタイミング調整装置では、請求項２に記載のように、メモリバス監視手段は、アクセス長とトグル率をアクセス頻度として検出し、ＣＰＵ温度予測手段は、アクセス長とトグル率との積に基づいて、ＣＰＵがメモリへのアクセスを行うことによるＣＰＵの温度上昇を予測するようにしてもよい。
【００１６】
また、ＣＰＵがメモリにアクセスしているときに、データ信号とデータ取り込み信号との間のタイミングを変化させると、当該アクセスが不安定になるおそれがあるので、請求項１または請求項２に記載のタイミング調整装置では、請求項３に記載のように、ＣＰＵがメモリにアクセスしている場合に、温度ずれ調整手段の動作を禁止する調整禁止手段を備えるようにするとよい。
【００１７】
また、放熱の機構によってはＣＰＵとメモリとの温度が大きく異なる場合があり、この場合には、メモリの温度によって信号間タイミングが変化する可能性があるので、請求項１から請求項３の何れかに記載のタイミング調整装置では、請求項４に記載のように、メモリの温度を検出するメモリ温度検出手段を備え、温度ずれ調整手段は、ＣＰＵ温度情報取得手段により取得されたＣＰＵ温度情報に加えて、更に、メモリ温度検出手段により検出されたメモリの温度に基づいて、データ信号とデータ取り込み信号との間のタイミングのずれを調整するようにするとよい。
【発明を実施するための最良の形態】
【００１８】
（第１実施形態）
以下に本発明の第１実施形態について図面とともに説明する。
図１は、本発明が適用された実施形態のＬＳＩ１の構成を示すブロック図である。
【００１９】
ＬＳＩ１は、カーナビゲーションシステムに適用されるシステムＬＳＩである。
ＬＳＩ１は、図１に示すように、ＬＳＩ１を制御するためのデータが格納されたＲＯＭ７と、ＲＯＭ７から読み込んだデータ等を一時的に格納する高速揮発性メモリ３（例えば、ＤＤＲ２メモリ）と、高速揮発性メモリ３に対するデータの書き込みと読み込みを制御するメモリコントローラ４と、メモリコントローラ４の動作を制御するＣＰＵ２と、ＣＰＵ２とＲＯＭ７とメモリコントローラ４とをデータ入出力可能に接続するシステムバス５と、ＣＰＵ２の温度を検出するＣＰＵ温度検出部６と、データ取り込み信号ＤＱＳを出力するクロック発生器８を備える。
【００２０】
これらのうちメモリコントローラ４は、高速揮発性メモリ３からデータを読み出す読み出し部４ａと、高速揮発性メモリ３にデータを書き込む書き込み部４ｂとから構成される。
【００２１】
読み出し部４ａは、読み出し用ＤＬＬ１１と、Ｄタイプのフリップフロップ（ＤＦＦ）回路１２と、バッファ１３とを備える。
そして読み出し用ＤＬＬ１１は、高速揮発性メモリ３から入力したデータ取り込み信号ＤＱＳをＣＰＵ２によるレジスタ設定で設定された時間分遅延させて出力する。またＤＦＦ回路１２は、読み出し用ＤＬＬ１１からデータ取り込み信号ＤＱＳを入力するとともに高速揮発性メモリ３からデータ信号ＤＱを入力し、データ信号ＤＱがハイレベルの時にデータ取り込み信号ＤＱＳがローレベルからハイレベルに変化するとハイレベルにセットし、このハイレベルの信号をバッファ１３に出力する。更にバッファ１３は、ＤＦＦ回路１２から入力した信号を一時的に記憶し、その後、システムバス５を介してＣＰＵ２に出力する。
【００２２】
書き込み部４ｂは、書き込み用ＤＬＬ１４と、Ｄタイプのフリップフロップ（ＤＦＦ）回路１５と、バッファ１６とを備える。
そして書き込み用ＤＬＬ１４は、クロック発生器８から入力したデータ取り込み信号ＤＱＳをＣＰＵ２によるレジスタ設定で設定された時間分遅延させて高速揮発性メモリ３に出力する。またバッファ１６は、ＣＰＵ２からシステムバス５を介して入力したデータ信号ＤＱを一時的に記憶し、その後ＤＦＦ回路１５に出力する。またＤＦＦ回路１５は、クロック発生器８からデータ取り込み信号ＤＱＳを入力するとともに、バッファ１６からデータ信号ＤＱを入力し、データ信号ＤＱがハイレベルの時にデータ取り込み信号ＤＱＳがローレベルからハイレベルに変化するとハイレベルにセットし、このハイレベルの信号を高速揮発性メモリ３に出力する。
【００２３】
このように構成されたＬＳＩ１において、ＣＰＵ２は、高速揮発性メモリ３にデータを書き込む書き込み処理と、高速揮発性メモリ３からデータを読み出す読み出し処理を実行する。
【００２４】
まず、ＣＰＵ２が実行する書き込み処理の手順を、図２を用いて説明する。図２は書き込み処理を示すフローチャートである。この書き込み処理は、ＣＰＵ２が起動（電源オン）している間に繰り返し実行される処理である。
【００２５】
この書き込み処理が実行されると、ＣＰＵ２は、まずＳ１０にて、高速揮発性メモリ３にデータを書き込むための書き込み要求があるか否かを判断する。ここで、書き込み要求がない場合には（Ｓ１０：ＮＯ）、書き込み処理を一旦終了する。一方、書き込み要求がある場合には（Ｓ１０：ＹＥＳ）、Ｓ２０にて、ＣＰＵ温度検出部６にＣＰＵ２の温度を検出させて、Ｓ３０にて、ＣＰＵ温度検出部６による検出結果に基づいて、書き込み用ＤＬＬ１４によるタイミング調整が必要であるか否かを判断する。
【００２６】
ここで、タイミング調整が必要でないと判断した場合には（Ｓ３０：ＮＯ）、書き込み処理を一旦終了する。一方、タイミング調整が必要であると判断した場合には（Ｓ３０：ＹＥＳ）、Ｓ４０にて、ＣＰＵ温度検出部６による検出結果に基づいて、書き込み用ＤＬＬ１４に対してレジスタ設定を行うことにより、遅延時間を調整する。これにより、書き込み用ＤＬＬ１４に入力したデータ取り込み信号ＤＱＳは、ＣＰＵ温度検出部６による検出結果に応じた時間分遅延して、書き込み用ＤＬＬ１４から出力される。そしてＳ５０にて、メモリコントローラ４を制御することにより、高速揮発性メモリ３にデータを書き込み、書き込み処理を一旦終了する。
【００２７】
次に、ＣＰＵ２が実行する読み出し処理の手順を、図３を用いて説明する。図３は読み出し処理を示すフローチャートである。この読み出し処理は、ＣＰＵ２が起動（電源オン）している間に繰り返し実行される処理である。
【００２８】
この読み出し処理が実行されると、ＣＰＵ２は、まずＳ１１０にて、高速揮発性メモリ３からデータを読み出すための読み出し要求があるか否かを判断する。ここで、読み出し要求がない場合には（Ｓ１１０：ＮＯ）、読み出し処理を一旦終了する。一方、読み出し要求がある場合には（Ｓ１１０：ＹＥＳ）、Ｓ１２０にて、ＣＰＵ温度検出部６にＣＰＵ２の温度を検出させて、Ｓ１３０にて、ＣＰＵ温度検出部６による検出結果に基づいて、読み出し用ＤＬＬ１１によるタイミング調整が必要であるか否かを判断する。
【００２９】
ここで、タイミング調整が必要でないと判断した場合には（Ｓ１３０：ＮＯ）、読み出し処理を一旦終了する。一方、タイミング調整が必要であると判断した場合には（Ｓ１３０：ＹＥＳ）、Ｓ１４０にて、ＣＰＵ温度検出部６による検出結果に基づいて、読み出し用ＤＬＬ１１に対してレジスタ設定を行うことにより、遅延時間を調整する。これにより、読み出し用ＤＬＬ１１に入力したデータ取り込み信号ＤＱＳは、ＣＰＵ温度検出部６による検出結果に応じた時間分遅延して、読み出し用ＤＬＬ１１から出力される。そしてＳ１５０にて、メモリコントローラ４を制御することにより、高速揮発性メモリ３からデータを読み出し、読み出し処理を一旦終了する。
【００３０】
このように構成されたＬＳＩ１では、ＣＰＵ２の温度を検出し（Ｓ２０，Ｓ１２０）、ＣＰＵ２の温度に応じた時間分遅延して、データ取り込み信号ＤＱＳを出力する（Ｓ４０，Ｓ１４０）。
【００３１】
このため、ＣＰＵ２の温度変化に起因したデータ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミング（以下、信号間タイミングともいう）のずれによるデータ不一致が発生する前に、ＣＰＵ２の温度に応じて信号間タイミングを調整することが可能となり、データ不一致の発生を抑制することができる。
【００３２】
以上説明した実施形態において、ＬＳＩ１は本発明におけるタイミング調整装置、Ｓ２０及びＳ１２０の処理は本発明におけるＣＰＵ温度情報取得手段、Ｓ４０及びＳ１４０の処理は本発明における温度ずれ調整手段、ＣＰＵ温度検出部６は本発明におけるＣＰＵ温度検出手段である。
【００３３】
（第２実施形態）
以下に本発明の第２実施形態について図面とともに説明する。尚、第２実施形態では、第１実施形態と異なる部分のみを説明する。
【００３４】
第２実施形態におけるＬＳＩ１は、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４の構成が変更された点と、温度比較器２６を設けてＣＰＵ２の代わりに温度比較器２６がタイミング調整を行うように構成された点以外は第１実施形態と同じである。
【００３５】
図４（ａ）は、第２実施形態の高速揮発性メモリ３、メモリコントローラ４及び温度比較器２６を示すブロック図である。
読み出し用ＤＬＬ１１は、図４（ａ）に示すように、遅延時間の異なる４つのＤＬＬ２１〜２４と、セレクタ２５とから構成される。
【００３６】
ＤＬＬ２１〜２４はそれぞれ、高速揮発性メモリ３からデータ取り込み信号ＤＱＳを入力し、このデータ取り込み信号ＤＱＳを予め設定された遅延時間遅らせて出力するように構成されている。尚、ＤＬＬ２１→ＤＬＬ２２→ＤＬＬ２３→ＤＬＬ２４の順に遅延時間が長くなるように設定されている。またセレクタ２５は、ＤＬＬ２１〜２４からの信号を入力して、温度比較器２６からの選択信号（後述）に基づき、ＤＬＬ２１〜２４の何れかの信号を出力する。
【００３７】
温度比較器２６は、ＣＰＵ温度検出部６（図４（ａ）では不図示）による検出結果を示す信号を入力し、この信号に基づいて、ＤＬＬ２１〜２４の何れかを選択するための選択信号を出力する。具体的には、温度比較器２６は、図４（ｂ）に示すように、温度がｔ１未満ではＤＬＬ２１を選択し、温度がｔ１以上ｔ２未満ではＤＬＬ２２を選択し、温度がｔ２以上ｔ３未満ではＤＬＬ２３を選択し、温度がｔ３以上ではＤＬＬ２３を選択する選択信号を出力する。
【００３８】
また、第２実施形態の書き込み用ＤＬＬ１４は、第２実施形態の読み出し用ＤＬＬ１１と同様に構成される。
このように構成されたＬＳＩ１では、ＣＰＵ温度検出部６による検出結果を示す信号を入力し、この信号に基づいて、ＤＬＬ２１〜２４の何れかを選択することにより、ＣＰＵ２の温度に応じた時間分遅延して、データ取り込み信号ＤＱＳを出力する。
【００３９】
このため、ＣＰＵ２の温度変化に起因したデータ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミング（信号間タイミング）のずれによるデータ不一致が発生する前に、ＣＰＵ２の温度に応じて信号間タイミングを調整することが可能となり、データ不一致の発生を抑制することができる。
【００４０】
以上説明した実施形態において、温度比較器２６は本発明におけるＣＰＵ温度情報取得手段、温度比較器２６、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４は本発明における温度ずれ調整手段である。
【００４１】
（第３実施形態）
以下に本発明の第３実施形態について図面とともに説明する。尚、第３実施形態では、第１実施形態と異なる部分のみを説明する。
【００４２】
第３実施形態におけるＬＳＩ１は、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４の構成が変更された点と、メモリＩ／Ｆシーケンサ３７及びＭＡＸ温度検出回路３８を設けてＣＰＵ２の代わりにメモリＩ／Ｆシーケンサ３７及びＭＡＸ温度検出回路３８を用いてタイミング調整を行うように構成された点以外は第１実施形態と同じである。
【００４３】
図５（ａ）は、第３実施形態の高速揮発性メモリ３、メモリコントローラ４及びＭＡＸ温度検出回路３８を示すブロック図である。
メモリコントローラ４は、読み出し用ＤＬＬ１１、ＤＦＦ回路１２及びバッファ１３等に加えてメモリＩ／Ｆシーケンサ３７を備える。
【００４４】
メモリＩ／Ｆシーケンサ３７は、ＣＰＵ２が高速揮発性メモリ３にアクセス中であるか否かを監視し、アクセス中である場合には、その旨を示すアクセス中信号を出力する。
ＭＡＸ温度検出回路３８は、ＣＰＵ温度検出部６（図５（ａ）では不図示）による検出結果を示す信号を入力し、この信号に基づいて、ＣＰＵ２の最高温度を保持するとともに、この最高温度を示す値を示す信号（以下、ＣＰＵ最高温度信号という）を例えば２ｂｉｔに正規化して出力する。
【００４５】
読み出し用ＤＬＬ１１は、図５（ａ）に示すように、遅延時間の異なる４つのＤＬＬ３１〜３４と、セレクタ３５と、ＤＦＦ回路３６とから構成される。
ＤＬＬ３１〜３４はそれぞれ、高速揮発性メモリ３からデータ取り込み信号ＤＱＳを入力し、このデータ取り込み信号ＤＱＳを予め設定された遅延時間遅らせて出力するように構成されている。尚、ＤＬＬ３１〜３４は、ＤＬＬ３１→ＤＬＬ３２→ＤＬＬ３３→ＤＬＬ３４の順に遅延時間が長くなるように設定されている。またセレクタ３５は、ＤＬＬ３１〜３４からの信号を入力して、ＭＡＸ温度検出回路３８からのＣＰＵ最高温度信号に基づき、ＤＬＬ３１〜３４の何れかの信号を出力する。
【００４６】
またＤＦＦ回路３６は、メモリＩ／Ｆシーケンサ３７からのアクセス中信号を反転させた信号（以下、反転アクセス中信号という）を入力するとともに、ＭＡＸ温度検出回路３８からＣＰＵ最高温度信号を入力し、反転アクセス中信号がローレベルからハイレベルに変化したとき（即ち、アクセス中から非アクセス中に切り替わった時点）のＣＰＵ最高温度信号を保持して、出力する。
【００４７】
これによりＬＳＩ１は、図５（ｂ）に示すように、ＣＰＵ２が高速揮発性メモリ３にアクセス中の最高温度（指示ｍ１，ｍ２，ｍ３を参照）を保持し、動作中から非動作中に変化したタイミング（タイミングｔｈ１，ｔｈ２，ｔｈ３を参照）で、最高温度に対応したＤＬＬ３１〜３４の何れかに設定する。
【００４８】
また、第３実施形態の書き込み用ＤＬＬ１４は、第３実施形態の読み出し用ＤＬＬ１１と同様に構成される。
このように構成されたＬＳＩ１では、アクセス中におけるＣＰＵ最高温度を保持し、アクセス中から非アクセス中に切り替わった時点で、この保持したＣＰＵ最高温度に応じた時間分遅延して、データ取り込み信号ＤＱＳを出力する。
【００４９】
このため、アクセス中において急にデータ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミングのずれが変化することがなくなり、高速揮発性メモリ３へのアクセスを安定させることができる。
【００５０】
以上説明した実施形態において、ＭＡＸ温度検出回路３８は本発明におけるＣＰＵ温度情報取得手段、ＭＡＸ温度検出回路３８、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４は本発明における温度ずれ調整手段、メモリＩ／Ｆシーケンサ３７及びＤＦＦ回路３６は本発明における調整禁止手段である。
【００５１】
（第４実施形態）
以下に本発明の第４実施形態について図面とともに説明する。尚、第４実施形態では、第１実施形態と異なる部分のみを説明する。
【００５２】
第４実施形態におけるＬＳＩ１は、書き込み処理と読み出し処理の代わりに書き込み・読み出し処理を実行する点以外は第１実施形態と同じである。
ここで、ＣＰＵ２が実行する書き込み・読み出し処理の手順を、図６を用いて説明する。図６は書き込み・読み出し処理を示すフローチャートである。この書き込み・読み出し処理は、ＣＰＵ２が起動（電源オン）すると開始される処理である。
【００５３】
この書き込み・読み出し処理が実行されると、ＣＰＵ２は、まずＳ２１０にて、リセットを行い、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４の遅延時間を設定するための情報（以下、遅延時間設定情報ともいう）を初期化する。例えば、遅延時間がないことを示す値に遅延時間設定情報を設定する。
【００５４】
そしてＳ２２０にて、ＣＰＵ温度検出部６にＣＰＵ２の温度を検出させて、Ｓ２３０にて、ＣＰＵ温度検出部６による検出結果に基づいて、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４に対してレジスタ設定を行うことにより、遅延時間を設定する。
【００５５】
その後Ｓ２４０にて、ＣＰＵ温度検出部６による検出結果に基づいて、ＣＰＵ２の最高温度を検出したか否かを判断する。ここで、最高温度を検出していない場合には（Ｓ２４０：ＮＯ）、Ｓ２７０に移行する。一方、最高温度を検出した場合には（Ｓ２４０：ＹＥＳ）、Ｓ２５０にて、ＣＰＵ２が高速揮発性メモリ３にアクセス中であるか否かを判断する。
【００５６】
ここで、アクセス中である場合には（Ｓ２５０：ＹＥＳ）、Ｓ２５０の処理を繰り返す。一方、アクセス中でない場合には（Ｓ２５０：ＮＯ）、Ｓ２６０にて、検出した最高温度に基づいて、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４に対してレジスタ設定をするための設定値（以下、ＤＬＬ設定値という）を決定し、このＤＬＬ設定値で、読み出し用ＤＬＬ１１及び書き込み用ＤＬＬ１４に対してレジスタ設定を行うことにより、遅延時間を調整する。
【００５７】
尚、ＤＬＬ設定値は、本実施形態では、ＤＬＬ０，ＤＬＬ１，ＤＬＬ２，ＤＬＬ３の４種類有り、ＤＬＬ０→ＤＬＬ１→ＤＬＬ２→ＤＬＬ３の順に遅延時間が長くなるように設定されている。
【００５８】
そしてＳ２７０に移行すると、高速揮発性メモリ３にデータを書き込むための書き込み要求があるか否かを判断する。ここで、書き込み要求がない場合には（Ｓ２７０：ＮＯ）、Ｓ２９０に移行する。一方、書き込み要求がある場合には（Ｓ２７０：ＹＥＳ）、Ｓ２８０にて、メモリコントローラ４を制御することにより、高速揮発性メモリ３にデータを書き込み、Ｓ２９０に移行する。
【００５９】
そしてＳ２９０に移行すると、高速揮発性メモリ３からデータを読み出すための読み出し要求があるか否かを判断する。ここで、読み出し要求がない場合には（Ｓ２９０：ＮＯ）、２４０に移行し、上述の処理を繰り返す。一方、読み出し要求がある場合には（Ｓ２９０：ＹＥＳ）、Ｓ３００にて、メモリコントローラ４を制御することにより、高速揮発性メモリ３からデータを読み出す。その後に２４０に移行し、上述の処理を繰り返す。
【００６０】
これによりＬＳＩ１は、図７に示すように、ＣＰＵ２が高速揮発性メモリ３にアクセス中に最高温度（指示ｍ１１，ｍ１２，ｍ１３を参照）となると、動作中から非動作中に変化したタイミング（タイミングｔｈ１１，ｔｈ１２，ｔｈ１３を参照）で、最高温度に対応したＤＬＬ設定値（ＤＬＬ０，ＤＬＬ１，ＤＬＬ２，ＤＬＬ３の何れか）に設定する。
【００６１】
このように構成されたＬＳＩ１では、アクセス中から非アクセス中に切り替わった時点で、ＣＰＵ２の最高温度に応じた時間分遅延して、データ取り込み信号ＤＱＳを出力する（Ｓ２５０，Ｓ２６０）。
【００６２】
このため、アクセス中において急にデータ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミングのずれが変化することがなくなり、高速揮発性メモリ３へのアクセスを安定させることができる。
【００６３】
以上説明した実施形態において、Ｓ２４０の処理は本発明におけるＣＰＵ温度情報取得手段、Ｓ２６０の処理は本発明における温度ずれ調整手段、Ｓ２５０の処理は本発明における調整禁止手段である。
【００６４】
（第５実施形態）
以下に本発明の第５実施形態について図面とともに説明する。
図８は、第５実施形態のＬＳＩ５０の構成を示すブロック図である。
【００６５】
ＬＳＩ５０は、図１に示すように、ＤＤＲ２メモリ５５と、ＤＤＲ２メモリ５５へのアクセスを行うためのメモリバス５３と、ＤＤＲ２メモリ５５へのアクセスを制御するＤＤＲ２Ｉ／Ｆ５４と、ＤＤＲ２Ｉ／Ｆ５４の動作を制御するＣＰＵ５１と、ＣＰＵ５１とメモリバス５３とをデータ入出力可能に接続するシステムバス５２と、メモリバス５３の状態を監視するバスモニタ５６と、ＣＰＵ５１の温度を検出する温度検出部５７とを備える。
【００６６】
これらのうちＤＤＲ２Ｉ／Ｆ５４は、ＤＤＲ２メモリ５５から入力したデータ取り込み信号をＣＰＵ５１によるレジスタ設定で設定された時間分遅延させて出力する読み出し用ＤＬＬ（不図示）と、不図示の信号発生回路から入力したデータ取り込み信号をＣＰＵ５１によるレジスタ設定で設定された時間分遅延させてＤＤＲ２メモリ５５に出力する書き込み用ＤＬＬ（不図示）とを備える。
【００６７】
このように構成されたＬＳＩ５０において、ＣＰＵ５１は、ＤＤＲ２Ｉ／Ｆ５４の読み出し用ＤＬＬと書き込み用ＤＬＬの遅延時間を調整するＤＬＬ調整処理を実行する。
ここで、ＣＰＵ５１が実行するＤＬＬ調整処理の手順を、図９を用いて説明する。図９はＤＬＬ調整処理を示すフローチャートである。このＤＬＬ調整処理は、ＣＰＵ５１が起動（電源オン）している間に繰り返し実行される処理である。
【００６８】
このＤＬＬ調整処理が実行されると、ＣＰＵ５１は、まずＳ４１０にて、バスモニタ５６による監視結果に基づいて、ＤＤＲ２メモリ５５へのアクセス頻度を算出する。またＳ４２０にて、温度検出部５７にＣＰＵ５１の温度を検出させる。
【００６９】
そしてＳ４３０にて、Ｓ４１０にて算出されたアクセス頻度と、Ｓ４２０で検出したＣＰＵ５１の温度に基づいて、ＣＰＵ５１の温度を予測する。
例えば、ＤＤＲ２メモリ５５へのアクセスによりＣＰＵ５１の温度が上昇する場合におけるＣＰＵ５１の予測温度Ｔｃ１は、下式（１）により算出される。
【００７０】
Ｔｃ１  ＝  Ｔｃ０  ＋  α  ×  ＬＮＧ  ×  ｔ          ・・・（１）
尚、式（１）における「Ｔｃ０」はＳ４２０で検出されたＣＰＵ５１の温度、「α」はボードにより決定される定数、「ＬＮＧ」はＤＤＲ２メモリ５５へアクセスしている時間を示すアクセス長、「ｔ」はデータ信号がローレベルからハイレベルまたはハイレベルからローレベルへ変化する変化率を示すトグル率を表す。
【００７１】
その後４４０にて、Ｓ４３０で予測したＣＰＵ５１の温度に基づいて、ＤＤＲ２Ｉ／Ｆ５４の読み出し用ＤＬＬまたは書き込み用ＤＬＬに対してレジスタ設定をするための設定値（以下、ＤＬＬ設定値という）を決定し、このＤＬＬ設定値で、ＤＤＲ２Ｉ／Ｆ５４の読み出し用ＤＬＬまたは書き込み用ＤＬＬに対してレジスタ設定を行うことにより、遅延時間を調整し、ＤＬＬ調整処理を一旦終了する。尚、ＤＬＬ設定値は、ＤＬＬ０，ＤＬＬ１，ＤＬＬ２，ＤＬＬ３の４種類存在し、ＤＬＬ０→ＤＬＬ１→ＤＬＬ２→ＤＬＬ３の順に遅延時間が長くなるように設定されている。
【００７２】
このように構成されたＬＳＩ５０のＤＬＬ調整の例を図１０に示す。
図１０に示すように、タイミングＴｈ２１では、シングルアクセスＳＧＬが行われることによるＣＰＵ５１の温度を予測した結果、ＤＬＬ設定値をＤＬＬ１からＤＬＬ２へ変更する。またタイミングＴｈ２２では、シングルアクセスＳＧＬが行われることによるＣＰＵ５１の温度を予測した結果、ＤＬＬ設定値の変更を行わない。またタイミングＴｈ２３では、アクセスが暫くないことによるＣＰＵ５１の温度を予測した結果、ＤＬＬ設定値をＤＬＬ２からＤＬＬ１へ変更する。またタイミングＴｈ２４では、８バーストアクセスＢＵＳＴ８が行われることによるＣＰＵ５１の温度を予測した結果、ＤＬＬ設定値をＤＬＬ１からＤＬＬ３へ変更する。またタイミングＴｈ２５では、アクセスが暫くないことによるＣＰＵ５１の温度を予測した結果、ＤＬＬ設定値をＤＬＬ３からＤＬＬ２へ変更する。またタイミングＴｈ２６では、４バーストアクセスＢＵＳＴ４が行われることによるＣＰＵ５１の温度を予測した結果、ＤＬＬ設定値の変更を行わない。
【００７３】
このように構成されたＬＳＩ５０では、バスモニタ５６によりメモリバス５３の状態を監視し、この監視結果に基づいて、ＤＤＲ２メモリ５５へのアクセス頻度を算出するとともに（Ｓ４１０）、ＣＰＵ２の温度を検出し（Ｓ４２０）、更に、算出したアクセス頻度と、検出したＣＰＵ２の温度とに基づいて、ＣＰＵ５１の温度を予測する（Ｓ４３０）。そして、予測したＣＰＵ２の温度に応じた時間分遅延して、データ取り込み信号ＤＱＳを出力する（Ｓ４４０）。
【００７４】
このため、ＣＰＵ温度の変化を見越して事前に、データ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミング（信号間タイミング）を調整することが可能となり、データ不一致の発生を更に抑制することができる。
【００７５】
以上説明した実施形態において、Ｓ４２０の処理は本発明におけるＣＰＵ温度検出手段、バスモニタ５６及びＳ４１０の処理は本発明におけるメモリバス監視手段、Ｓ４３０の処理はＣＰＵ温度予測手段である。
【００７６】
（第６実施形態）
以下に本発明の第６実施形態について図面とともに説明する。尚、第６実施形態では、第５実施形態と異なる部分のみを説明する。
【００７７】
第６実施形態におけるＬＳＩ５０は、ＬＳＩ５０の構成と、ＤＬＬ調整処理が変更される点以外は第５実施形態と同じである。
図１１は、第６実施形態のＬＳＩ５０の構成を示すブロック図である。
【００７８】
第６実施形態のＬＳＩ５０は、図１１に示すように、ＤＤＲ２メモリ５５の温度を検出する温度検出部５８が追加された点以外は第５実施形態と同じである。
次に、ＣＰＵ５１が実行するＤＬＬ調整処理の手順を、図１２を用いて説明する。図１２は第６実施形態のＤＬＬ調整処理を示すフローチャートである。このＤＬＬ調整処理は、ＣＰＵ５１が起動（電源オン）している間に繰り返し実行される処理である。
【００７９】
このＤＬＬ調整処理が実行されると、ＣＰＵ５１は、まずＳ５１０にて、ＤＤＲ２メモリ５５にデータを書き込むための書き込み要求、またはＤＤＲ２メモリ５５からデータを読み出すための読み出し要求（以下、書き込み要求と読み出し要求とをまとめて動作要求という）があるか否かを判断する。ここで、動作要求がない場合には（Ｓ５１０：ＮＯ）、ＤＬＬ調整処理を一旦終了する。一方、動作要求がある場合には（Ｓ５１０：ＹＥＳ）、Ｓ５２０にて、温度検出部５７にＣＰＵ５１の温度Ｔｃ（ＣＰＵ）を検出させる。更にＳ５３０にて、温度検出部５８にＤＤＲ２メモリ５５の温度Ｔｃ（ＤＤＲ２）を検出させる。
【００８０】
そしてＳ５４０にて、Ｓ５２０で検出した温度Ｔｃ（ＣＰＵ）と、Ｓ５３０で検出した温度Ｔｃ（ＤＤＲ２）に基づいて、図１３に示すＤＬＬ設定テーブルＴ１を参照して、ＤＤＲ２Ｉ／Ｆ５４の読み出し用ＤＬＬまたは書き込み用ＤＬＬに対してレジスタ設定をするための設定値（以下、ＤＬＬ設定値という）を決定し、このＤＬＬ設定値で、ＤＤＲ２Ｉ／Ｆ５４の読み出し用ＤＬＬまたは書き込み用ＤＬＬに対してレジスタ設定を行うことにより、遅延時間を調整し、ＤＬＬ調整処理を一旦終了する。
【００８１】
尚、ＤＬＬ設定テーブルＴ１では、図１３に示すように、温度Ｔｃ（ＣＰＵ）及び温度Ｔｃ（ＤＤＲ２）それぞれを、４つの温度範囲Ｔ０（−４０℃〜０℃）、Ｔ１（０℃〜６０℃）、Ｔ２（６０℃〜８５℃）、Ｔ３（８５℃〜１１５℃）に分けて、温度Ｔｃ（ＣＰＵ）の４つの温度範囲と、温度Ｔｃ（ＤＤＲ２）の４つの温度範囲の組合せに応じて、ＤＬＬ設定値（図１３中のＤＬＬ０，ＤＬＬ１，ＤＬＬ２，ＤＬＬ３）が設定されている。また、ＤＬＬ設定値は、ＤＬＬ０→ＤＬＬ１→ＤＬＬ２→ＤＬＬ３の順に遅延時間が長くなるように設定されている。
【００８２】
このように構成されたＬＳＩ５０では、ＣＰＵ５１の温度に加えて、更に、ＤＤＲ２メモリ５５の温度に基づいて、データ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミング（信号間タイミング）を調整する（Ｓ５４０）。
【００８３】
このため、ＣＰＵ５１及びＤＤＲ２メモリ５５の温度変化に起因した信号間タイミングのずれによるデータ不一致が発生する前に、ＣＰＵ５１及びＤＤＲ２メモリ５５の温度に応じて信号間タイミングを調整することが可能となり、データ不一致の発生を抑制することができる。
【００８４】
以上、本発明の一実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、本発明の技術的範囲に属する限り種々の形態を採ることができる。
例えば上記実施形態においては、ＣＰＵと高速揮発性メモリとの間の信号間タイミングを調整するものを示したが、高速揮発性メモリに限定されるものではなく、データ信号とデータ取り込み信号とを用いてデータの書き込み及び読み出しを行うメモリであればよい。
【図面の簡単な説明】
【００８５】
【図１】ＬＳＩ１の構成を示すブロック図である。
【図２】書き込み処理を示すフローチャートである。
【図３】読み出し処理を示すフローチャートである。
【図４】第２実施形態のメモリコントローラ４及び温度比較器２６を示すブロック図である。
【図５】第３実施形態のメモリコントローラ４及びＭＡＸ温度検出回路３８を示すブロック図、及びＤＬＬ調整タイミングを説明する図である。
【図６】書き込み・読み出し処理を示すフローチャートである。
【図７】第４実施形態のＤＬＬ調整タイミングを説明する図である。
【図８】第５実施形態のＬＳＩ５０の構成を示すブロック図である。
【図９】第５実施形態のＤＬＬ調整処理を示すフローチャートである。
【図１０】第５実施形態のＤＬＬ調整を説明する図である。
【図１１】第６実施形態のＬＳＩ５０の構成を示すブロック図である。
【図１２】第６実施形態のＤＬＬ調整処理を示すフローチャートである。
【図１３】ＤＬＬ設定テーブルＴ１の構成を示す図である。
【図１４】データ信号ＤＱとデータ取り込み信号ＤＱＳとの間のタイミングずれを説明する図である。
【図１５】データ信号ＤＱとデータ取り込み信号ＤＱＳとの間の温度によるタイミングずれを説明する図である。
【符号の説明】
【００８６】
１，５０…ＬＳＩ、２，５１…ＣＰＵ３…高速揮発性メモリ、４…メモリコントローラ、４ａ…読み出し部、４ｂ…書き込み部、５…システムバス、６…ＣＰＵ温度検出部、７…ＲＯＭ、８…クロック発生器、１１…読み出し用ＤＬＬ、１２，１５，３６…ＤＦＦ回路、１４…書き込み用ＤＬＬ、１３，１６…バッファ、２１〜２４，３１〜３４…ＤＬＬ、２５，３５…セレクタ、２６…温度比較器、３７…メモリＩ／Ｆシーケンサ、３８…ＭＡＸ温度検出回路、５２…システムバス、５３…メモリバス、５４…ＤＤＲ２Ｉ／Ｆ、５５…ＤＤＲ２メモリ、５６…バスモニタ、５７，５８…温度検出部、ＤＱ…データ信号、ＤＱＳ…データ取り込み信号
【図１】
0005119828.tif 000002
【図２】
0005119828.tif 000003
【図３】
0005119828.tif 000004
【図４】
0005119828.tif 000005
【図５】
0005119828.tif 000006
【図６】
0005119828.tif 000007
【図７】
0005119828.tif 000008
【図８】
0005119828.tif 000009
【図９】
0005119828.tif 000010
【図１０】
0005119828.tif 000011
【図１１】
0005119828.tif 000012
【図１２】
0005119828.tif 000013
【図１３】
0005119828.tif 000014
【図１４】
0005119828.tif 000015
【図１５】
0005119828.tif 000016