(57)【要約】【課題】情報処理装置でＷｉｄｅＩＯメモリデバイスを使用する場合に、ＳＯＣダイ及びＷｉｄｅＩＯメモリデバイスの動作状況を考慮して、適切にサーマルオフセット値を設定する技術を提供する。【解決手段】本発明の情報処理装置は、予め実行される解析によって生成された既定温度情報と、温度センサによって得られた温度情報とに基づいて、メモリチップ内の現在の温度分布を示す温度分布情報（更新温度情報）を生成する。既定温度情報は、ＳＯＣダイ及びＷｉｄｅＩＯメモリデバイスの動作状況に対応した、メモリチップ内の温度分布に関する情報を含んでいる。情報処理装置は、更新温度情報が示す温度分布に含まれる、温度センサの位置における温度と、メモリチップ内のホットスポットにおける温度との差分に応じて、メモリチップのリフレッシュ動作に用いるサーマルオフセット値を設定する。【選択図】図１３
2014096188.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置であって、
前記ＷｉｄｅＩＯメモリデバイスに含まれるメモリチップに設けられた温度センサから、前記温度センサの位置における前記メモリチップの温度を示すセンサ情報を取得する取得手段と、
予め実行される解析によって生成された、前記メモリチップ内の温度分布に関する情報を含む既定温度情報であって、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの動作状況に対応する前記既定温度情報と、前記取得手段によって取得されたセンサ情報とに基づいて、前記メモリチップ内の現在の温度分布を示す温度分布情報を生成する生成手段と、
前記温度分布情報が示す温度分布に含まれる、前記温度センサの位置における温度と、前記メモリチップ内で最も温度が高くなっている位置における温度との差分に応じて、前記メモリチップのリフレッシュ動作に用いるサーマルオフセット値を設定する設定手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記生成手段は、前記センサ情報が示す、前記温度センサの位置における温度を基準として、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの動作状況に対応する前記既定温度情報に基づいて前記温度分布情報を生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記既定温度情報は、
前記ＳＯＣダイが特定の動作を開始した後の、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの動作状況に対応した、前記メモリチップ内の温度分布の時間変化を示す情報を含み、
前記生成手段は、
前記既定温度情報が示す、前記温度センサの位置における、前記特定の動作に応じた前記メモリチップの温度の変化と、前記センサ情報が示す温度とを比較することで、前記ＳＯＣダイが前記特定の動作を開始してからの経過時間を特定するとともに、
前記経過時間に対応する前記メモリチップ内の温度分布を示す情報を、前記温度分布情報として生成する
ことを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記生成手段は、
前記ＳＯＣダイが前記特定の動作を開始してから、前記温度センサの位置における前記メモリチップの温度が、前記特定の動作に応じて、前記センサ情報が示す温度に変化するまでの時間を、前記経過時間として特定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記既定温度情報は、
前記メモリチップ内を複数の領域に分割して得られる各領域についての、前記ＳＯＣダイが前記特定の動作を開始した後の、異なる複数の時点における温度を示す情報を含み、
前記生成手段は、
前記複数の領域のそれぞれについて、前記既定温度情報に含まれる、前記複数の時点における温度から、前記ＳＯＣダイの前記特定の動作に応じた温度の変化を表す近似曲線を計算するとともに、
前記温度センサが含まれる領域について計算した前記近似曲線に基づいて、前記経過時間を特定する
ことを特徴とする請求項３または４に記載の情報処理装置。
【請求項６】
前記生成手段は、前記温度分布情報として、前記複数の領域に対応する複数の前記近似曲線から、前記経過時間に対応する前記メモリチップ内の温度分布を示す情報を生成することを特徴とする請求項５に記載の情報処理装置。
【請求項７】
前記生成手段によって生成された前記温度分布情報を、予め設定された更新間隔で、前記既定温度情報に基づいて更新する更新手段を更に備え、
前記設定手段は、前記生成手段によって生成された、または前記更新手段によって更新された前記温度分布情報に基づいて、前記サーマルオフセット値の設定を定期的に実行する
ことを特徴とする請求項１乃至６のいずれか１項に記載の情報処理装置。
【請求項８】
前記更新手段は、
前記生成手段によって生成された、または前回更新した前記温度分布情報に含まれる、前記温度センサの位置における温度を基準として、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの動作状況に対応する前記既定温度情報に基づいて前記温度分布情報を更新することを特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記設定手段は、
前記更新手段によって更新された前記温度分布情報に含まれる、前記温度センサの位置における温度と、前記センサ情報が示す温度との差分が、所定の閾値を上回ると、前記サーマルオフセット値を、取り得る値のうちの最大値に設定することを特徴とする請求項７または８に記載の情報処理装置。
【請求項１０】
前記更新手段によって更新された前記温度分布情報に含まれる、前記温度センサの位置における温度と、前記センサ情報が示す温度との差分が、前記所定の閾値以下であると、当該差分に応じて前記温度分布情報が示す温度分布を補正する補正手段を更に備えることを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記設定手段は、
前記温度分布情報が示す温度分布に含まれる、前記温度センサの位置における温度と、前記メモリチップ内で最も温度が高くなっている位置における温度との差分が大きいほど、前記サーマルオフセット値を大きな値に設定することを特徴とする請求項１乃至１０のいずれか１項に記載の情報処理装置。
【請求項１２】
前記メモリチップは、前記ＷｉｄｅＩＯメモリデバイスに含まれる複数のメモリチャネルのそれぞれに対応し、かつ、個別に前記温度センサが設けられた、複数のチップ領域に分割して使用され、
前記生成手段は、前記複数のチップ領域のそれぞれについて、個別に前記温度分布情報を生成し、
前記設定手段は、前記複数のチップ領域のそれぞれについて、個別に前記サーマルオフセット値を設定する
ことを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
前記既定温度情報は、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの個別の動作状況に対応して予め個別に生成されることを特徴とする請求項１乃至１２のいずれか１項に記載の情報処理装置。
【請求項１４】
前記メモリチップ内の温度分布とは、前記メモリチップの表面の温度の分布であることを特徴とする請求項１乃至１３のいずれか１項に記載の情報処理装置。
【請求項１５】
前記ＣＰＵは、
前記メモリチップをセルフリフレッシュ状態に移行させる場合には、前記設定手段によって設定されている前記サーマルオフセット値に対応したリフレッシュ周期で、前記メモリチップに前記リフレッシュ動作を実行させることを特徴とする請求項１乃至１４のいずれか１項に記載の情報処理装置。
【請求項１６】
前記生成手段は、
前記情報処理装置が電源オフ状態から起動するごとに、前記温度分布情報を初期化して新たに生成することを特徴とする請求項１乃至１５のいずれか１項に記載の情報処理装置。
【請求項１７】
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置の制御方法であって、
取得手段が、前記ＷｉｄｅＩＯメモリデバイスに含まれるメモリチップに設けられた温度センサから、前記温度センサの位置における前記メモリチップの温度を示すセンサ情報を取得する取得工程と、
生成手段が、予め実行される解析によって生成された、前記メモリチップ内の温度分布に関する情報を含む既定温度情報であって、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの動作状況に対応する前記既定温度情報と、前記取得工程で取得されたセンサ情報とに基づいて、前記メモリチップ内の現在の温度分布を示す温度分布情報を生成する生成工程と、
設定手段が、前記温度分布情報が示す温度分布に含まれる、前記温度センサの位置における温度と、前記メモリチップ内で最も温度が高くなっている位置における温度との差分に応じて、前記メモリチップのリフレッシュ動作に用いるサーマルオフセット値を設定する設定工程と
を有することを特徴とする情報処理装置の制御方法。
【請求項１８】
請求項１７に記載の情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置及びその制御方法、並びにプログラムに関するものである。
【背景技術】
【０００２】
マイクロプロセッサ等のＣＰＵを備えた情報処理装置では、ＯＳや各種アプリケーションを実行するためのデータの保存や、画像処理を実行するためのデータの一時保存のためにＤＲＡＭを用いることが多い。このＤＲＡＭは、ＣＰＵやＳＯＣ（System on a Chip）等に接続されて使用される。また近年、情報処理装置の多機能化・高機能化に伴って、必要となるＤＲＡＭのメモリ帯域が増加している。このため、ＤＤＲ３やＤＤＲ４等の規格では、メモリのアクセス時のクロックの周波数を高くすることで、メモリ帯域を増加させている。またそれ以外に、ＣＰＵやＡＳＩＣ（Application Specific Integrated Circuit）に接続するＤＲＡＭチャネルを複数備えることでメモリ帯域を確保している。しかし、クロック周波数の高周波数化や複数のメモリチャネルの採用によって、消費電力が増加するという新たな問題が発生する。
【０００３】
そこで現在注目されているのが次世代ＤＲＡＭ規格であるＷｉｄｅＩＯである。ＷｉｄｅＩＯは、ＴＳＶ（Through Silicon Via）による３Ｄ積層技術を使い、ＳＯＣダイの上にＤＲＡＭチップを重ねて構成される。この特徴としては、５１２ビットの広いデータ幅で最大１２．８ＧＢ／ｓ（Ｇバイト／秒）以上の広帯域が得られるとともに、アクセス周波数を低く抑えているので低消費電力であることが挙げられる。また、ＴＳＶを採用したことで、従来のＰｏＰ（Package on Package）に比べてパッケージサイズを薄く小さくできる。更に、５１２ビットのデータ幅を、それぞれ１２８ビットのデータ幅の４つのチャネルに分割し、各チャネルを独立して制御できるように構成されている。例えば、チャネル１とチャネル２とをセルフリフレッシュ状態にし、チャネル３とチャネル４とを、通常のメモリアクセスに使用する等の使い方ができる。特許文献１には、このようなＷｉｄｅＩＯの基本的な構造や基本的なアクセス方法が記載されている。
【０００４】
ＷｉｄｅＩＯの積層化構造では、ＳＯＣパッケージ内にチップを積層することで、構造的に熱の影響を受けやすくなるため、発熱に関連する問題が従来のＤＲＡＭよりも顕在化する。ＷｉｄｅＩＯでは、その対策として、メモリの温度を検知する温度センサをチップに内蔵させることが規格化されており、温度センサによって検知された温度に応じてセルフリフレッシュ・レートを制御できる。
【０００５】
また、ＷｉｄｅＩＯ規格に準拠して積層されたチップでは、チップ上で最も温度が高くなっている位置（以下、「ホットスポット」と称する。）の温度が、従来型のチップの場合よりも高くなる。これにより、ホットスポットの温度と非ホットスポットの温度との温度差が大きくなることが知られている。このため、例えば、チップ上で温度センサの位置と異なる位置にホットスポットが生じた場合、温度センサで検知される温度とホットスポットの温度との間に大きな差異が生じる可能性がある。その結果、温度センサによって検知された温度に応じてセルフリフレッシュ・レートを設定した場合、ホットスポットに起因して、ＤＲＡＭに記憶された内容の消失や消費電力の増大を招く可能性がある。
【０００６】
このような現象に対処するために、ホットスポットと、温度センサが設けられた位置との間の温度差を示す「サーマルオフセット」と称される値が、規格として定められている。サーマルオフセット値は、ホットスポットと、温度センサが設けられた位置との温度差に合わせて段階的に設定される。この規格では、設定されたサーマルオフセット値に基づいてセルフリフレッシュ・レートを設定することで、このような温度差を考慮したセルフリフレッシュ・レートの制御を実現する。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第２０１２／００１８８８５号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかし、ホットスポットの温度と温度センサによって検知される温度との間との温度差を適切に推定し、サーマルオフセットを適切に設定することは容易ではない。これは、チップ上のホットスポットの位置及び温度が、ＷｉｄｅＩＯメモリデバイスに対するメモリアクセスの状態やＳＯＣダイの処理状態等に応じた、ＷｉｄｅＩＯメモリデバイスの動作状態に依存して、時々刻々と変化するためである。このため、ＷｉｄｅＩＯメモリデバイスの動作状態を考慮して、適切にサーマルオフセットを設定することが必要である。
【０００９】
本発明は、上述の課題に鑑みてなされたものである。本発明は、情報処理装置でＷｉｄｅＩＯメモリデバイスを使用する場合に、ＳＯＣダイ及びＷｉｄｅＩＯメモリデバイスの動作状況を考慮して、適切にサーマルオフセット値を設定する技術を提供することを目的としている。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置であって、
前記ＷｉｄｅＩＯメモリデバイスに含まれるメモリチップに設けられた温度センサから、前記温度センサの位置における前記メモリチップの温度を示すセンサ情報を取得する取得手段と、
予め実行される解析によって生成された、前記メモリチップ内の温度分布に関する情報を含む既定温度情報であって、前記ＳＯＣダイ及び前記ＷｉｄｅＩＯメモリデバイスの動作状況に対応する前記既定温度情報と、前記取得手段によって取得されたセンサ情報とに基づいて、前記メモリチップ内の現在の温度分布を示す温度分布情報を生成する生成手段と、
前記温度分布情報が示す温度分布に含まれる、前記温度センサの位置における温度と、前記メモリチップ内で最も温度が高くなっている位置における温度との差分に応じて、前記メモリチップのリフレッシュ動作に用いるサーマルオフセット値を設定する設定手段と
を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、情報処理装置でＷｉｄｅＩＯメモリデバイスを使用する場合に、ＳＯＣダイ及びＷｉｄｅＩＯメモリデバイスの動作状況を考慮して、適切にサーマルオフセット値を設定する技術を提供できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るＭＦＰ（デジタル複合機）の全体構成を示すブロック図。
【図２】本発明の第１の実施形態に係るＷｉｄｅＩＯ−ＳＤＲＡＭの構造を示す模式図。
【図３】本発明の第１の実施形態に係るＷｉｄｅＩＯコントローラの内部構成を示すブロック図。
【図４】本発明の第１の実施形態に係るレジスタの構成を説明する図。
【図５】本発明の第１の実施形態に係るＳＯＣパッケージの俯瞰図。
【図６】本発明の第１の実施形態に係るメモリチップ（ＳＤＲＡＭ３０１）内の領域の分割例を示す図。
【図７】本発明の第１の実施形態で用いられる既定温度情報の内容の一例を示す図。
【図８】本発明の第１の実施形態に係るＭＦＰでプリント処理が実行される場合の、メモリチップ（ＳＤＲＡＭ３０１）内の温度分布についての熱シミュレーションの結果の一例を示す図。
【図９】本発明の第１の実施形態で用いられる更新温度情報の内容の一例を示す図。
【図１０】本発明の第１の実施形態に係るＭＦＰにおいて、ＣＰＵが、更新温度情報を生成及び更新するための処理の手順を示すフローチャート。
【図１１】温度センサ３０９が位置する領域についての既定温度情報に基づいて作成した近似曲線の一例を示す図。
【図１２】本発明の第１の実施形態に係るＭＦＰにおいて、ＣＰＵが、温度センサで計測した温度を示す温度情報を取得するための処理の手順を示すフローチャート。
【図１３】本発明の第１の実施形態に係るＭＦＰにおいて、ＣＰＵが、サーマルオフセット値を設定するための処理の手順を示すフローチャート。
【図１４】本発明の第１の実施形態で用いられる、Ｓ１３０２で導出した温度差と設定すべきサーマルオフセット値との関係の一例を示す図。
【図１５】本発明の第１の実施形態に係るＭＦＰにおいて、ＣＰＵが、セルフリフレッシュ・モードを設定するための処理の手順を示すフローチャート。
【図１６】本発明の第２の実施形態に係るＭＦＰにおいて、ＣＰＵが、更新温度情報を生成及び更新するための処理の手順を示すフローチャート。
【図１７】本発明の第２の実施形態に係るＭＦＰにおいて、ＣＰＵが、サーマルオフセット値を設定するための処理の手順を示すフローチャート。
【図１８】本発明の第２の実施形態に係る、Ｓ１６０３における補正前後の更新温度情報の内容の一例を示す図。
【発明を実施するための形態】
【００１３】
以下、本発明を実施するための形態について図面を用いて説明する。尚、以下の実施形態は特許請求の範囲に係る発明を限定するものでなく、また実施形態で説明されている特徴の組み合わせの全てが発明の解決手段に必須のものとは限らない。以下の実施形態では、本発明を適用した情報処理装置の一例として、スキャン、プリンタ、コピーなどの複数の機能を有するＭＦＰ（デジタル複合機）を例に説明する。
【００１４】
＜ＭＦＰ１００の構成＞
図１は、本実施形態に係るＭＦＰ（デジタル複合機）の全体構成を示すブロック図である。
【００１５】
ＭＦＰ１００は、画像入力デバイスであるスキャナ１１６と画像出力デバイスであるプリンタエンジン１１７とを有し、これらはデバイスインターフェース（Ｉ／Ｆ）１０７を介してシステムバス１１８に接続されている。ＭＦＰ１００は、ＣＰＵ１０１の制御の下に、スキャナ１１６による原稿の画像の読み取りや、プリンタエンジン１１７による印刷を行うことができる。またＭＦＰ１００は、ＬＡＮ１１４や公衆回線（ＰＳＴＮ）１１５と接続しており、これらを介してＬＡＮや公衆回線に接続された外部機器のデバイス情報や画像データの入出力を行うことができる。
【００１６】
ＣＰＵ１０１は、ＲＯＭ１０６に記憶されたブートプログラムによりＨＤＤ１０５からＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に展開されたプログラムを実行することにより、このＭＦＰ１００の動作を制御している。
【００１７】
操作部１０２は、キーボードやタッチパネル等の入力部や表示部を有し、ユーザからの指示を受付け、また表示部によりユーザへのメッセージや処理の結果などを表示する。ネットワークＩ／Ｆ１０３は、例えばＬＡＮカード等で実現され、ＬＡＮ１１４を介して外部機器との間でデバイス情報や画像データの入出力を行う。モデム１０４は、公衆回線１１５を介して外部機器との間で制御情報や画像データの入出力を行う。ＨＤＤ（ハードディスクドライブ）１０５は、ＯＳや各種アプリケーションプログラム等を記憶し、また入力された画像データ等を格納する。ＲＯＭ１０６は、ブートプログラムや各種データを記憶している。デバイスＩ／Ｆ１０７は、スキャナ１１６やプリンタエンジン１１７と接続し、これらスキャナ１１６やプリンタエンジン１１７とシステムバス１１８との間で画像データの転送処理を行う。
【００１８】
ＭＦＰ１００は、図１に示すように、それぞれ個別の画像処理機能を実行する複数の画像処理部１０８〜１１１（編集用画像処理部１０８、プリント画像処理部１０９、スキャン画像処理部１１０、及びＲＩＰ（ラスタイメージプロセッサ）１１１）を備えている。編集用画像処理部１０８は、画像データの回転や変倍、色処理、トリミング・マスキング、２値変換、多値変換、白紙判定等の各種画像処理を行う。プリント画像処理部１０９は、プリンタエンジン１１７に出力する画像データに対して、そのプリンタエンジン１１７に応じた画像処理等を行う。スキャン画像処理部１１０は、スキャナ１１６から入力される画像データに対して、補正、加工、編集等の各種処理を行う。ＲＩＰ１１１は、ページ記述言語（ＰＤＬ）コードをイメージデータに展開する。尚、本実施形態では、画像処理部１０８〜１１１は、それぞれが個別の機能を実行する複数の機能モジュールの一例である。
【００１９】
ＷｉｄｅＩＯコントローラ１１２は、例えばＣＰＵ１０１、画像処理部１０８〜１１１等からのメモリアクセスコマンドを、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３が解釈可能なコマンドに変換して、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に対してアクセスを行う。ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３は、ＣＰＵ１０１により実行されるプログラムを格納し、またＣＰＵ１０１が動作するためのシステムワークメモリを提供している。また、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３は、入力された画像データを一時記憶するための画像メモリでもある。システムバス１１８は、図１に示すように、上述した各デバイスとＣＰＵ１０１とを接続し、制御信号やデータ等を転送している。
【００２０】
＜ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の構造＞
図２は、本実施形態に係るＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の構造を示す模式図で、図２（Ａ）はＷｉｄｅＩＯ−ＳＤＲＡＭとＳＯＣダイを側面から見た側面図であり、図２（Ｂ）は上側から見た上面図である。
【００２１】
ＳＯＣダイ２０１は、本実施形態では、例えば、ＣＰＵ１０１、デバイスＩ／Ｆ１０７、画像処理部１０８〜１１１等を備えている。ＷｉｄｅＩＯ−ＳＤＲＡＭチップ（メモリチップ）２０２〜２０５は、ＳＯＣダイ２０１の上に積層され、シリコン貫通ビア（ＴＳＶ）２０６によりＳＯＣダイ２０１と接続されている。ＷｉｄｅＩＯ−ＳＤＲＡＭチップは、必要とするメモリ容量に応じて最大４層まで積層することができ、図２（Ａ）は４層を積層した例を示す。ＳＯＣパッケージ２０７は、ＳＯＣダイ２０１とＷｉｄｅＩＯ−ＳＤＲＡＭチップ２０２〜２０５とを１つのパッケージに収容したものである。ＷｉｄｅＩＯ−ＳＤＲＡＭ Ｉ／Ｆ２０８は、図２（Ｂ）に示されるように、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭチップ２０２〜２０５の中央部に配置される。
【００２２】
＜ＷｉｄｅＩＯコントローラ１１２の構成＞
図３は、本実施形態に係るＷｉｄｅＩＯコントローラ１１２の内部構成を示すブロック図である。
【００２３】
図３において、ＷｉｄｅＩＯコントローラ１１２は、図１に示したようにシステムバス１１８とＷｉｄｅＩＯ−ＳＤＲＡＭ１１３との間に接続されている。ＷｉｄｅＩＯコントローラ１１２は、図１では図示していない温度センサ３０９〜３１２と接続されている。
【００２４】
ＳＤＲＡＭ３０１〜３０４は、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に設けられた４つのメモリであり、図３に示すように、各々が専用のインターフェース（Ｉ／Ｆ）を備える。これらの専用Ｉ／Ｆは、上述したようにＳＯＣダイ２０１に積層されるＷｉｄｅＩＯ−ＳＤＲＡＭチップ２０２〜２０５の４つのチャネル（メモリチャネル）に相当する。また、これらの専用Ｉ／Ｆは、図２（Ｂ）のＷｉｄｅＩＯ−ＳＤＲＡＭ Ｉ／Ｆ２０８に相当している。メモリコントローラ３０５〜３０８は、ＳＤＲＡＭ３０１〜３０４に対して、個別に電源電圧及びクロック信号の供給及び停止等の制御を実行可能である。メモリコントローラ３０５〜３０８のそれぞれは、システムバス１１８からのメモリアクセスコマンドを、接続されている対応するＳＤＲＡＭに対して、そのＳＤＲＡＭが解釈可能なコマンドに変換してアクセスする。尚、本実施形態において、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３（ＳＤＲＡＭ３０１〜３０４）は、ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスの一例である。
【００２５】
温度センサ３０９〜３１２は、ＳＤＲＡＭ３０１〜３０４のうち、対応するＳＤＲＡＭの温度を計測している。温度取得Ｉ／Ｆ３１５は、ＳＤＲＡＭ３０１〜３０４の温度を示す温度情報を、温度センサ３０９〜３１２から取得する。
【００２６】
レジスタＩ／Ｆ３１３は、不図示のレジスタ専用バスを経由して、ＣＰＵ１０１からのアクセスを受け付ける。レジスタ３１４は、温度取得Ｉ／Ｆ３１５が温度センサ３０９〜３１２から取得した各温度情報（センサ情報）や、ＣＰＵ１０１から設定されるメモリコントローラ３０５〜３０８の各動作モードの設定情報を記憶する。温度取得Ｉ／Ｆ３１５は、後述する温度情報格納レジスタ４０２（図４）からの温度情報の取得要求を検知すると、後述する温度センサ指定レジスタ４０１（図４）で指定された温度センサに対して、温度情報を取得するためのコマンドを発行する。これにより、温度取得Ｉ／Ｆ３１５は、当該温度センサから温度情報を取得する。温度取得Ｉ／Ｆ３１５は、取得した温度情報を、後述する温度情報格納レジスタ４０２へ出力（格納）する。
【００２７】
＜ＷｉｄｅＩＯコントローラ１１２内のレジスタ３１４の構成＞
図４は、本実施形態に係るレジスタ３１４の構成を説明する図である。
【００２８】
レジスタ３１４は、温度センサ指定レジスタ４０１、温度情報格納レジスタ４０２、及びメモリコントローラ動作モード設定レジスタ４０３〜４０６を有している。レジスタ３１４は、更に、サーマルオフセットステータスレジスタ４０７〜４１０、及びサーマルオフセットレジスタ４１１〜４１４を有している。
【００２９】
温度センサ指定レジスタ４０１は、ＣＰＵ１０１が温度センサの温度情報（センサ情報）を取得したい場合に、その対象となる温度センサを指定するための情報を格納するレジスタである。本実施形態においては、４個の温度センサを備える例を用いて説明しているため、２ビットのレジスタで構成され、２ビットの各状態によって４個の温度センサのそれぞれを特定することができる。
【００３０】
温度情報格納レジスタ４０２は、ＣＰＵ１０１からの温度情報の取得要求が入力されると、温度センサ指定レジスタ４０１で指定された温度センサの温度情報を取得するように温度取得Ｉ／Ｆ３１５に対して要求する。また、温度情報格納レジスタ４０２は、温度取得Ｉ／Ｆ３１５から取得した温度情報を格納し、ＣＰＵ１０１からの温度情報の読み出し要求に応じて、そこに格納している温度情報を出力する。
【００３１】
メモリコントローラ動作モード設定レジスタ４０３〜４０６は、メモリコントローラ３０５〜３０８の動作モードをそれぞれ設定するためのレジスタである。メモリコントローラ動作モード設定レジスタ４０３〜４０６のそれぞれには、ＳＤＲＡＭ３０１〜３０４のそれぞれのメモリ制御に関する設定値が格納される。ここでメモリ制御に関する設定値としては、例えば、ＳＤＲＡＭ３０１〜３０４のリフレッシュ動作の時間間隔（リフレッシュ周期）、メモリアクセスに関するタイミングパラメータ等がある。
【００３２】
サーマルオフセットステータスレジスタ４０７〜４１０は、メモリコントローラ３０５〜３０８がそれぞれＳＤＲＡＭ３０１〜３０４に対して設定したサーマルオフセット値を保持しておくためのレジスタである。なお、サーマルオフセット値は、後述するように、ＳＤＲＡＭ３０１〜３０４のそれぞれのリフレッシュ動作に用いられる。メモリコントローラ３０５〜３０８は、ＳＤＲＡＭ３０１〜３０４に対してサーマルオフセット値を設定した後、ＳＤＲＡＭ３０１〜３０４に、確認のためのリードアクセスをすることで、設定したサーマルオフセット値をそれぞれ読み出す。メモリコントローラ３０５〜３０８は、読み出したサーマルオフセット値をサーマルオフセットステータスレジスタ４０７〜４１０にそれぞれ記憶させる。尚、ＣＰＵ１０１からサーマルオフセットステータスレジスタ４０７〜４１０へのライトアクセスは無効である。
【００３３】
サーマルオフセットレジスタ４１１〜４１４は、メモリコントローラ３０５〜３０９がそれぞれＳＤＲＡＭ３０１〜３０４に対して新たに設定すべきサーマルオフセット値を保持しておくためのレジスタである。ＣＰＵ１０１は、後述するように、ＳＤＲＡＭ３０１〜３０４に対して新たに設定すべきサーマルオフセット値を決定するとともに、決定した値をサーマルオフセットレジスタ４１１〜４１４に設定する。
【００３４】
＜ＳＯＣパッケージ２０７と温度センサ３０９〜３１２の配置＞
図５は、図２のＷｉｄｅＩＯ−ＳＤＲＡＭチップ２０２〜２０５とＳＯＣダイ２０１の物理的な位置関係を、よりわかり易く説明するＳＯＣパッケージ２０７の俯瞰図である。
【００３５】
ＳＯＣダイ２０１は、ＣＰＵ１０１、デバイスＩ／Ｆ１０７、前述の画像処理部１０８〜１１１等を備えている。ＳＯＣパッケージ２０７の平面を４分割した時の左上、右上、右下、左下が、それぞれ図２（Ｂ）のメモリチャネル１〜４に相当する。また同様に、４分割した領域は、図３のＳＤＲＡＭ３０１〜３０４にも相当している。前述したように、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３は、ＳＯＣダイ２０１の上に積層されるメモリである。また、本実施形態においては、ＳＤＲＡＭ３０１〜３０４の各デバイスは、図５のようにＳＯＣダイ２０１を４分割した領域の各上部にそれぞれ４層で積層されているものとする。ＳＤＲＡＭ３０１〜３０４の各デバイスには、それぞれのメモリの内部温度が計測できるように、温度センサ３０９〜３１２が内蔵されている。ただし、各ＳＤＲＡＭの配置や温度センサの配置は図５に限定されるものではなく、一例に過ぎない。また、温度センサ３０９〜３１２は、ＳＯＣダイ２０１の内部に設けられていてもよいし、あるいは、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３のメモリ内部に設けられていてもよい。
【００３６】
このように、本実施形態では、ＷｉｄｅＩＯ−ＳＤＲＡＭチップ（メモリチップ）２０２〜２０５は、図２（Ｂ）に示すように、複数のメモリチャネル１〜４にそれぞれ対応する複数のチップ領域（ＳＤＲＡＭ３０１〜３０４）に分割して使用される。また、複数のチップ領域には、個別に温度センサ３０９〜３１２が設けられている。
【００３７】
＜既定温度情報の内容＞
本実施形態では、ＣＰＵ１０１は、ＳＤＲＡＭ３０１〜３０４のそれぞれについて、メモリチップ内の現在の温度分布を示す温度分布情報を生成し、生成した温度分布情報に基づいて、それぞれのリフレッシュ動作に用いるサーマルオフセット値を設定する。具体的には、ＣＰＵ１０１は、温度センサ３０９〜３１２からそれぞれ取得される温度情報（センサ情報）と、予め実行された解析によって生成された「既定温度情報」とに基づいて、サーマルオフセット値の設定に用いる「温度分布情報」を生成する。この既定温度情報は、ＳＤＲＡＭ３０１〜３０４のそれぞれについて予め生成された、メモリチップ内の温度分布を含む情報であり、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の個別の動作状況に対応している。なお、後述する「更新温度情報」は、センサ情報と既定温度情報とに基づいて生成される温度分布情報の一例である。
【００３８】
ここでは、上述の既定温度情報の具体例について説明する。本実施形態では、ＳＤＲＡＭ３０１〜３０４のそれぞれについて、平面状のメモリチップ内の領域を複数の領域に分割して得られる各領域の温度の分布を、メモリチップ内の温度分布として評価する。図６は、ＳＤＲＡＭ３０１の（平面状の）領域全体６００を、Ｘ軸方向に８分割、Ｙ軸方向に８分割して、合計６４個の領域に分割した例を示している。本実施形態では、ＳＤＲＡＭ３０１〜３０４のそれぞれの領域全体６００を、図６に示すように６４分割する場合を想定し、各領域を座標（Ｘ，Ｙ）（（０，０）〜（７，７））で特定するものとする。なお、以下では、ＳＤＲＡＭ３０１〜３０４のうち、主としてＳＤＲＡＭ３０１について説明するが、ＳＤＲＡＭ３０２〜３０４についても同様である。
【００３９】
図７（Ａ）及び（Ｂ）は、本実施形態で用いる既定温度情報の内容の一例を示す図である。本実施形態で用いる既定温度情報は、ＳＤＲＡＭ３０１上の所定位置（図６に示す、分割された各領域に相当。）の温度を示す温度情報をテーブル化したものである。既定温度情報は、ＳＯＣダイ２０１の設計時及び製造時に予め実行される、熱シミュレーション等の数値解析によって生成され、ＭＦＰ１００の出荷前にＨＤＤ１０５またはＲＯＭ１０６に予め格納される。なお、図７では、環境温度が２５℃である場合の既定温度情報を示しているが、異なる環境温度に対応した既定温度情報を予め生成し、利用可能としてもよい。
【００４０】
既定温度情報は、予め実行される数値解析によって、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の個別の動作状況に対応して予め個別に生成されればよい。これは、ＭＦＰ１００が実行する動作に依存して、ＳＯＣダイ２０１の動作状況、及びＳＯＣダイ２０１の動作に応じたＷｉｄｅＩＯ−ＳＤＲＡＭ１１３へのメモリアクセスの状況が変化する結果、ＳＤＲＡＭ３０１の温度分布が変化するためである。ＭＦＰ１００が実行する異なる複数の処理に対応して個別に既定温度情報を用意することによって、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に応じた、ＳＤＲＡＭ３０１の温度分布の変化を、精度良く推定することが可能になる。
【００４１】
上述の数値解析では、ＭＦＰ１００がプリント処理、スキャン処理等の個別の処理を実行する際の、ＳＯＣダイ２０１（ＣＰＵ１０１）の動作状況と、ＳＯＣダイ２０１の動作に応じたＷｉｄｅＩＯ−ＳＤＲＡＭ１１３へのメモリアクセスの状況とを解析すればよい。更に、ＳＯＣダイ２０１の動作状況及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３へのメモリアクセスの状況に応じた、メモリチップ（ＳＤＲＡＭ３０１〜３０４）内の温度分布の時間変化を解析すればよい。なお、メモリチップ内の温度分布は、例えば、メモリチップの表面の温度の分布を示す情報である。
【００４２】
図７（Ａ）は、ＭＦＰ１００がプリント処理を実行する場合の、ＳＤＲＡＭ３０１の既定温度情報の例を示している。一方、図７（Ｂ）は、ＭＦＰ１００がスキャン処理を実行する場合の、ＳＤＲＡＭ３０１の既定温度情報の例を示している。本実施形態では、プリント処理及びスキャン処理に対応する既定温度情報のみを図７に示している。しかし、ＭＦＰ１００が実行する他の処理に対応して、更に別の既定温度情報を予め生成し、利用可能としてもよい。例えば、画像編集、ＦＡＸ送信／受信、電子メール送信、各種のアプリケーション処理等の処理をＭＦＰ１００が実行する際の、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に対応する既定温度情報を、予め生成してもよい。あるいは、ＭＦＰ１００の特定の動作状態（例えば、待機状態（アイドリング状態）またはスリープ状態）におけるＣＰＵ１０１の動作率に応じたＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に対応する既定温度情報を予め生成してもよい。
【００４３】
図７に示すＸ座標及びＹ座標は、図６に示すＸ座標及びＹ座標にそれぞれ対応している。また、温度Ｃ０〜Ｃ４は、ＭＦＰ１００でプリント処理またはスキャン処理が一定時間継続した際の、各領域（Ｘ，Ｙ）（（０，０）〜（７，７））における時間別の温度をそれぞれ示している。即ち、温度Ｃ０〜Ｃ４は、ＳＤＲＡＭ３０１の各領域における温度の時間変化を示している。
【００４４】
ここで、図８は、ＭＦＰ１００でプリント処理が実行される場合の、ＳＤＲＡＭ３０１の温度分布についての熱シミュレーションの結果の一例を示す図である。図８に示すグラフ８０１は、ＳＤＲＡＭ３０１の特定の領域（７，７）についての温度の変化（温度特性）を表している。なお、Ｘ軸は時間、Ｙ軸は温度を示し、温度Ｃ０〜Ｃ４は、図７（Ａ）に示す領域（７，７）の温度Ｃ０〜Ｃ４に対応している。
【００４５】
図８において、温度Ｃ０は、ＳＯＣダイ２０１が非動作状態であり、メモリチップ（ＳＤＲＡＭ３０１）内の温度が位置によらず一様である場合の温度を示している。温度Ｃ１は、メモリチップ内の領域（７，７）が温度Ｃ０の状態で、ＳＯＣダイ２０１がプリント処理のための動作を開始し、当該動作を時間ｔ＿Ｃ０１だけ継続した時点における、領域（７，７）の温度を示している。同様に、温度Ｃ２、Ｃ３及びＣ４は、温度Ｃ１、Ｃ２及びＣ３を起点として、プリント処理のための動作を時間ｔ＿Ｃ１２、ｔ＿Ｃ２３及びｔ＿Ｃ３４だけ継続した時点における、領域（７，７）の温度をそれぞれ示している。図８に示すように、本実施形態で用いる既定温度情報は、メモリチップ内を複数の領域に分割して得られる各領域の温度を、異なる複数の時点においてサンプリングした情報を含んでいる。即ち、既定温度情報は、ＳＯＣダイ２０１が特定の動作を開始した後の、異なる複数の時点における各領域の温度を示す情報を、テーブル化した情報として含んでいる。
【００４６】
なお、図８では、時間ｔ＿Ｃ０１、ｔ＿Ｃ１２、Ｔ＿Ｃ２３及びｔ＿Ｃ３４はそれぞれ異なる長さに設定されている。即ち、図７に示す既定温度情報に含まれる各領域の温度には、非一様な時間間隔でサンプリングされた温度が用いられている。しかし、サンプリングの時間間隔は、非一様な時間間隔であっても等間隔であってもよい。また、既定温度情報に含まれる各領域の温度のサンプル数は、図８に示すように５個であってもよいし、５個より少ない、または５個よりも多いサンプル数であってもよい。このように、本実施形態を変形した場合にも、後述する本実施形態の処理と同等の処理を実現し、かつ、同様の効果を得ることが可能である。
【００４７】
＜更新温度情報（温度分布情報）の内容＞
次に、上述のように、温度センサ３０９〜３１２からそれぞれ取得される温度情報（センサ情報）と、予め実行された解析によって生成された既定温度情報とに基づいて生成される、温度分布情報（更新温度情報）の具体例について説明する。
【００４８】
図９は、本実施形態で用いる更新温度情報の内容の一例を示す図である。本実施形態では、ＣＰＵ１０１は、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に応じて、ＳＤＲＡＭ３０１〜３０４のそれぞれの現在の温度分布を推定し、テーブル化した情報として、推定した温度分布を保持する。更新温度情報は、既定温度情報に基づいてリアルタイムに（例えば、予め設定された更新間隔で）更新されうる。
【００４９】
本実施形態で用いる更新温度情報は、ＳＤＲＡＭ３０１上の所定位置（図６に示す、分割された各領域に相当。）における、更新済みの温度（更新温度）を示す温度情報を、図９に示すようにテーブル化したものである。なお、図９に示すＸ座標及びＹ座標は、図７と同様、図６に示すＸ座標及びＹ座標にそれぞれ対応している。
【００５０】
図９に示す更新温度情報は、図７に示す既定温度情報に基づいて生成できる。更新温度情報は、例えば、温度センサ３０９からの温度情報が示す、温度センサ３０９の位置におけるＳＤＲＡＭ３０１の温度を基準として、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に対応する既定温度情報に基づいて生成される。なお、このような更新温度情報の生成処理の具体例については、図１０を用いて後述する。
【００５１】
図９において、温度情報９０１は、メモリチップ（ＳＤＲＡＭ３０１）内で、温度センサ３０９が設けられた位置（領域）における温度を示している。本実施形態では、一例として、温度センサ３０９が設けられた位置を、（Ｘ，Ｙ）＝（４，５）としている。ただし、温度センサ３０９の位置がその位置のみに限定されることはなく、メモリチップ内の任意の位置に温度センサ３０９を設けることが可能である。また、温度情報９０２は、更新温度情報が示す現在のメモリチップ内の温度分布に含まれる、メモリチップ内で最も温度が高くなっている位置（ホットスポット）における温度を示している。即ち、図９に示す更新温度情報は、メモリチップ内の領域（７，７）にホットスポットが存在することを示している。本実施形態は、後述するように、ＣＰＵ１０１は、更新温度情報が示す温度分布に含まれる、温度センサの位置における温度（温度情報９０１）と、ホットスポットにおける温度（温度情報９０２）との差分に応じて、サーマルオフセット値を設定する。
【００５２】
＜更新温度情報（温度分布情報）の生成及び更新＞
次に、図１０のフローチャートを参照して、本実施形態における更新温度情報の生成及び更新処理の手順について説明する。尚、この処理を実行するためのプログラムは、ＨＤＤ１０５に予めインストールされている。この処理は、ＣＰＵ１０１がＨＤＤ１０５からＳＤＲＡＭ３０１にプログラムを展開し、展開したプログラムを実行することによって、ＭＦＰ１００上で実現される。以下ではＳＤＲＡＭ３０１についての処理を説明するが、ＣＰＵ１０１は、ＳＤＲＡＭ３０２〜３０４についても同様の処理を実行する。
【００５３】
まず、Ｓ１００１で、電源オフ状態からのＭＦＰ１００の起動後、ＣＰＵ１０１は、更新温度情報が既に生成されているか否かを判定する。ここでは、ＣＰＵ１０１は、更新フラグ（Ｕｐｄｆｌａｇ）が「ｔｒｕｅ」に設定されている否かを判定する。本実施形態では、ＣＰＵ１０１は、更新温度情報を最初に作成した際に、更新フラグを「ｔｒｕｅ」に設定する。また、ＣＰＵ１０１は、また、ＭＦＰ１００の電源がオフ状態となるか、リセットされるかのいずれかに応じて、更新フラグを「ｆａｌｓｅ」に設定する。これにより、ＣＰＵ１０１は、ＭＦＰ１００が電源オフ状態から起動するごとに、更新温度情報を初期化して新たに生成する。なお、更新フラグは、ＨＤＤ１０５に格納されてもよいし、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３（例えばＳＤＲＡＭ３０１）に格納されてもよい。
【００５４】
Ｓ１００１で、ＣＰＵ１０１は、更新フラグが「ｆａｌｓｅ」である（即ち、更新温度情報が生成されていない）と判定した場合、処理をＳ１００４に進める。一方、ＣＰＵ１０１は、更新フラグが「ｔｒｕｅ」である（即ち、更新温度情報が既に生成されている）と判定した場合、処理をＳ１００２に進める。
【００５５】
Ｓ１００２で、ＣＰＵ１０１は、タイムカウンタ（Ｃｎｔ）を増加させる。なお、タイムカウンタは、ＣＰＵ１０１のタイマ機能によって実現できる。なお、図１０に示す処理の開始時には、タイムカウンタは０に初期化された状態（Ｃｎｔ＝０）にある。続いて、Ｓ１００３で、ＣＰＵ１０１は、タイムカウンタが所定のカウンタ値（Ｔｈ＿ｃｎｔ）に達したか否かを判定することで、更新温度情報の前回の更新から所定時間が経過してか否かを判定する。ここで、所定のカウンタ値（Ｔｈ＿ｃｎｔ）は、予め設定された、更新温度情報の更新間隔に基づいて定められる。本実施形態では、所定のカウンタ値（Ｔｈ＿ｃｎｔ）を一定の値に定め、更新温度情報の更新間隔を一定の時間間隔に設定している。しかし、更新温度情報の更新間隔は、例えば、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況等に応じて変更されてもよい。
【００５６】
Ｓ１００３で、ＣＰＵ１０１は、タイムカウンタが所定のカウンタ値以下である（Ｃｎｔ≦Ｔｈ＿ｃｎｔ）と判定する限り、Ｓ１００２に処理を戻す。一方、ＣＰＵ１０１は、タイムカウンタが所定のカウンタ値より大きくなった（Ｃｎｔ＞Ｔｈ＿ｃｎｔ）と判定すると、処理をＳ１００４に進める。
【００５７】
Ｓ１００４で、ＣＰＵ１０１は、ＨＤＤ１０５またはＲＯＭ１０６に予め格納された既定温度情報を読み出して、処理をＳ１００５に進める。ここで、ＣＰＵ１０１は、読み出しの時点でＭＦＰ１００で実行中の処理に対応する既定温度情報を、ＨＤＤ１０５またはＲＯＭ１０６から読み出す。これにより、ＣＰＵ１０１は、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に対応する既定温度情報を、更新温度情報（温度分布情報）の生成に用いることになる。なお、以下では、図７（Ａ）に示す、プリント処理に対応した既定温度情報が読み出される場合を例に説明する。
【００５８】
次に、Ｓ１００５〜Ｓ１０１０で、ＣＰＵ１０１は更新温度情報を生成または更新する。具体的には、ＣＰＵ１０１は、ＭＦＰ１００で実行中の処理に対応する、読み出した既定温度情報が示す、温度センサ３０９の位置におけるメモリチップ（ＳＤＲＡＭ３０１）の温度の変化（温度特性）と、温度センサ３０９からの温度情報が示す温度とを比較する。これにより、ＣＰＵ１０１は、ＳＯＣダイ２０１が特定の動作（即ち、プリント処理のための動作）を開始してからの経過時間を特定する。更に、ＣＰＵ１０１は、特定した経過時間に対応するメモリチップ内の温度分布を示す情報を、メモリチップ内の現在の温度分布を示す更新温度情報として生成する。
【００５９】
具体的には、まずＳ１００５で、ＣＰＵ１０１は、Ｓ１００４で読み出した既定温度情報に基づいて、ＳＤＲＡＭ３０１の各領域の温度変化（温度特性）を示す近似曲線を作成する。図１１は、図７（Ａ）に示す、温度センサ３０９が位置する領域（４，５）についての既定温度情報に基づいて作成した近似曲線の一例を示す図である。図１１において、Ｘ軸は時間、Ｙ軸は温度を示し、１１０１〜１１０５の５点は、図７（Ａ）における、温度Ｃ０〜温度Ｃ４に相当する。ＣＰＵ１０１は、これらの点に基づいて、所定の近似方法で近似曲線１１１０を計算する。なお、近似方法は、上述の熱シミュレーションによって得られた離散値から、温度特性を再現するのに適した方法であればよく、例えば、線形近似や対数近似によって実現できる。なお、図１１では、対数近似を用いた場合を一例として示している。
【００６０】
Ｓ１００５で近似曲線１１０２を生成した後、ＣＰＵ１０１は、Ｓ１００６で、Ｓ１００１と同様にして、電源オフ状態からのＭＦＰ１００の起動後、更新温度情報が既に生成されているか否かを再び判定する。Ｓ１００６で、ＣＰＵ１０１は、更新フラグが「ｆａｌｓｅ」である（即ち、更新温度情報が生成されていない）と判定した場合、処理をＳ１００７に進める。一方、ＣＰＵ１０１は、更新フラグが「ｔｒｕｅ」である（即ち、更新温度情報が既に生成されている）と判定した場合、処理をＳ１００８に進める。
【００６１】
Ｓ１００７及びＳ１００８では、ＣＰＵ１０１は、更新温度情報の生成に用いる初期温度を導出する。Ｓ１００７では、ＣＰＵ１０１は、温度センサ３０９から温度情報を、図１２に示す手順に従って取得することで、取得した温度情報が示す、温度センサ３０９の位置におけるＳＤＲＡＭ３０１の温度を、初期温度として導出する。一方、Ｓ１００８では、ＣＰＵ１０１は、既に生成されている、生成または前回更新された更新温度情報に含まれる温度情報が示す、温度センサ３０９の位置におけるＳＤＲＡＭ３０１の温度を、初期温度として導出する。
【００６２】
（温度情報の取得処理）
ここで、図１２を参照して、本実施形態に係るＭＦＰ１００において、ＣＰＵ１０１が、温度センサ３０９〜３１２で計測したＳＤＲＡＭ３０１〜３０４の温度を示す温度情報を取得するための処理の手順について説明する。本実施形態では、ＭＦＰ１００は、４個の温度センサを備えているため、図７のフローチャートでは、４個の温度センサ３０９〜３１２から温度情報を取得する処理について示している。尚、この処理を実行するためのプログラムは、ＨＤＤ１０５に予めインストールされている。この処理は、ＣＰＵ１０１がＨＤＤ１０５からＳＤＲＡＭ３０１にプログラムを展開し、展開したプログラムを実行することによって、ＭＦＰ１００上で実現される。
【００６３】
先ずＳ１２０１で、ＣＰＵ１０１は、温度センサ指定レジスタ４０１に「００」を書き込む。本実施形態では、ＳＯＣパッケージ２０７は４個の温度センサを備える。このため、ＣＰＵ１０１は、各温度センサを指定するために、次のように各温度センサと温度センサ指定レジスタ４０１の設定値とを対応付けるものとする。即ち、温度センサ指定レジスタ４０１の値「００」、「０１」、「１０」及び「１１」は、それぞれ温度センサ３０９〜３１２に対応付けられるものとする。したがって、Ｓ１２０１では、温度センサ３０９を指定するために、ＣＰＵ１０１は温度センサ指定レジスタ４０１に「００」を書き込む。
【００６４】
次にＳ１２０２に進み、ＣＰＵ１０１は、温度情報格納レジスタ４０２に対して温度情報の読み出し要求を発行して、温度センサ３０９で計測されたＳＤＲＡＭ３０１の温度を示す温度情報を取得する。ここで、上述したように、温度情報格納レジスタ４０２は、ＣＰＵ１０１からの読み出し要求を検知すると、温度センサ指定レジスタ４０１で指定されている温度センサから温度情報を取得する。更に、温度情報格納レジスタ４０２は、取得した温度情報を、ＣＰＵ１０１からの読み出し要求に対する応答データとして、ＣＰＵ１０１に出力する。このようにして、Ｓ１２０２でＣＰＵ１０１は、温度センサ３０９からの温度情報を取得することになる。
【００６５】
次にＳ１２０３に進み、ＣＰＵ１０１は、温度センサ３１０で計測されたＳＤＲＡＭ３０２の温度を示す温度情報を取得するために、温度センサ指定レジスタ４０１に「０１」を書き込む。その後Ｓ１２０４に進み、ＣＰＵ１０１は、温度情報格納レジスタ４０２に対して温度情報の読み出し要求を発行して、温度センサ３１０からの温度情報を取得する。
【００６６】
次にＳ１２０５に進み、ＣＰＵ１０１は、温度センサ３１１で計測されたＳＤＲＡＭ３０３の温度を示す温度情報を取得するために、温度センサ指定レジスタ４０１に「１０」を書き込む。その後Ｓ１２０６に進み、ＣＰＵ１０１は、温度情報格納レジスタ４０２に対して温度情報の読み出し要求を発行して、温度センサ３１１からの温度情報を取得する。
【００６７】
次にＳ１２０７に進み、ＣＰＵ１０１は、温度センサ３１２で計測されたＳＤＲＡＭ３０４の温度を示す温度情報を取得するために、温度センサ指定レジスタ４０１に「１１」を書き込む。その後Ｓ１２０８に進み、ＣＰＵ１０１は、温度情報格納レジスタ４０２に対して温度情報の読み出し要求を発行して、温度センサ３１２からの温度情報を取得する。
【００６８】
以上の処理により、ＣＰＵ１０１は、温度センサ３０９〜３１２で計測された、ＳＤＲＡＭ３０１〜３０４の温度を示す温度情報を、温度センサ３０９〜３１２から取得できる。
【００６９】
（更新温度情報の生成処理の続き）
再び図１０の説明に戻り、次に、Ｓ１００９で、ＣＰＵ１０１は、Ｓ１００７またはＳ１００８で得られた初期温度とＳ１００５で作成した近似曲線１１１０とに基づいて、更新温度情報の生成に用いるオフセット時間を導出する。
【００７０】
更新温度情報が未だ生成されていない場合、Ｓ１００９で、ＣＰＵ１０１は、温度センサ３０９の位置に対応する近似曲線に基づいて、以下の処理を実行する。ＣＰＵ１０１は、ＳＯＣダイ２０１が特定の動作を開始してから、温度センサ３０９の位置の温度が、Ｓ１００７で取得した初期温度（温度センサ３０９の温度情報が示す温度）に変化するまでの経過時間を、オフセット時間Ｔ＿ｏｆｓとして特定する。ここでは、図１１に示す、温度センサ３０９が位置する領域（４，５）についての近似曲線１１１０を用いることで、オフセット時間Ｔ＿ｏｆｓを導出できる。例えば、初期温度が３６℃である場合、近似曲線１１１０において温度が３６℃となる時間としてオフセット時間Ｔ＿ｏｆｓを導出できる。
【００７１】
一方、更新温度情報が既に生成されている場合、Ｓ１００９で、ＣＰＵ１０１は、温度センサ３０９の位置に対応する近似曲線に基づいて、以下の処理を実行する。ＣＰＵ１０１は、ＳＯＣダイ２０１が特定の動作を開始してから、温度センサ３０９の位置の温度が、Ｓ１００８で取得した初期温度に変化するまでの経過時間を、オフセット時間Ｔ＿ｏｆｓとして特定する。即ち、ＣＰＵ１０１は、前回更新（または生成）された更新温度情報に含まれる、温度センサ３０９の位置の温度に基づいて、オフセット時間Ｔ＿ｏｆｓを導出する。例えば、前回生成された更新温度情報から得られた初期温度が３６℃である場合、図１１に示すように、近似曲線１１１０において温度が３６℃となる時間としてオフセット時間Ｔ＿ｏｆｓを導出できる。
【００７２】
次に、Ｓ１０１０で、ＣＰＵ１０１は、Ｓ１００９で特定したオフセット時間Ｔ＿ｏｆｓに基づいて、更新温度情報を生成または更新する。具体的には、オフセット時間Ｔ＿ｏｆｓから、カウンタ値Ｃｎｔに相当する期間の経過後の時間Ｔ＿ｎに対応する、メモリチップ（ＳＤＲＡＭ３０１）内の各領域の温度を特定し、特定した温度を用いて更新温度情報を生成または更新する。
【００７３】
更新温度情報が未だ生成されていない場合、カウンタ値Ｃｎｔ＝０である。この場合、ＣＰＵ１０１は、メモリチップ（ＳＤＲＡＭ３０１）内の各領域について計算した近似曲線から、オフセット時間Ｔ＿ｏｆｓ（＝Ｔ＿ｎ）に対応する温度を特定することになる。これにより、ＣＰＵ１０１は、ＳＯＣダイ２０１が特定の動作を開始してからオフセット時間Ｔ＿ｏｆｓが経過した時点における、メモリチップ（ＳＤＲＡＭ３０１）内の温度分布を示す情報を、更新温度情報として生成する。また、ＣＰＵ１０１は、更新フラグを、更新温度情報が生成されたことを示す「ｔｒｕｅ」に設定する。このようにして、ＣＰＵ１０１は、メモリチップ内の複数の領域に対応する、温度についての複数の近似曲線から、ＳＯＣダイ２０１が特定の動作を開始してからの経過時間に対応する、メモリチップ内の温度分布を示す情報を、更新温度情報として生成する。
【００７４】
一方、更新温度情報が既に生成されている場合、ＣＰＵ１０１は、オフセット時間Ｔ＿ｏｆｓから、カウンタ値Ｃｎｔに相当する期間の経過後の時間Ｔ＿ｎ（＞Ｔ＿ｏｆｓ）に対応する温度を、各領域について計算した近似曲線から特定することになる。例えば、温度センサ３０９が位置する領域における温度（更新温度）は、図１１に示すように、近似曲線１１１０から４８℃と特定される。これにより、ＣＰＵ１０１は、ＳＯＣダイ２０１が特定の動作を開始してから時間Ｔ＿ｎが経過した時点における、メモリチップ（ＳＤＲＡＭ３０１）内の温度分布を示す情報で、更新温度情報を更新する。
【００７５】
Ｓ１０１０で生成または更新された更新温度情報は、図９に示すようにテーブル化された情報として、ＨＤＤ１０５またはＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に格納される。最後に、Ｓ１０１１で、ＣＰＵ１０１は、タイムカウンタのカウンタ値Ｃｎｔをリセット（Ｃｎｔ＝０に設定）して、処理を終了する。
【００７６】
＜サーマルオフセット値の設定＞
次に、図１３のフローチャートを参照して、本実施形態におけるサーマルオフセット値の設定処理の手順について説明する。尚、この処理を実行するためのプログラムは、ＨＤＤ１０５に予めインストールされている。この処理は、ＣＰＵ１０１がＨＤＤ１０５からＳＤＲＡＭ３０１にプログラムを展開し、展開したプログラムを実行することによって、ＭＦＰ１００上で実現される。
【００７７】
図１３に示す処理は、ＭＦＰ１００が電源オフ状態から起動する際に実行される、一連の起動シーケンスにおいて最初に実行されるとともに、その後は定期的に実行され続ける。まず、Ｓ１３０１で、ＣＰＵ１０１は、ＳＤＲＡＭ３０１〜３０４のそれぞれについて、図１０に示す手順に従って、更新温度情報の生成（更新）処理を実行する。
【００７８】
次に、Ｓ１３０２で、ＣＰＵ１０１は、Ｓ１３０１で生成または更新された更新温度情報に基づいて、温度センサ３０９〜３１２の位置における温度と、ホットスポットにおける温度とを比較して、それらの差分（温度差）を導出する。例えば、更新温度情報が図９に示す情報である場合、温度センサ３０９が位置する領域（４，５）における温度が４８℃（温度情報９０１）、ホットスポットに相当する領域（７，７）における温度が６０℃（温度情報９０２）である。この場合、温度差として１２℃が導出される。
【００７９】
次に、Ｓ１３０３で、ＣＰＵ１０１は、Ｓ１３０２で導出した温度差に応じて、ＳＤＲＡＭ３０１〜３０４のそれぞれについて、リフレッシュ動作に用いるサーマルオフセット値を設定する。例えば、ＣＰＵ１０１は、温度センサ３０９〜３１２の位置における温度と、ホットスポットにおける温度との差分が大きいほど、サーマルオフセット値を大きな値に設定する。
【００８０】
ここで、図１４は、本実施形態で用いる、温度差と設定すべきサーマルオフセット値との関係の一例を示す図である。図１４に示す関係は、“JESD229 Wide I／O Single Data Rate”として既に規格化されている。図１４に示すように、温度差１４００（Thermal Gradient）が５℃未満である場合、サーマルオフセット値１４０１（Thermal Offset）は０に決定される。一方、温度差１４００が５〜１５℃である場合、サーマルオフセット値１４０１は１に決定される。
【００８１】
ＣＰＵ１０１は、決定したサーマルオフセット値をそれぞれサーマルオフセットレジスタ４１１〜４１４に書き込むことで、ＳＤＲＡＭ３０１〜３０４についてサーマルオフセット値を設定する。
【００８２】
＜セルフリフレッシュ・モードの設定＞
次に、図１５を参照して、セルフリフレッシュ・モードの設定処理の手順について説明する。尚、この処理を実行するためのプログラムは、ＨＤＤ１０５に予めインストールされている。この処理は、ＣＰＵ１０１がＨＤＤ１０５からＳＤＲＡＭ３０１にプログラムを展開し、展開したプログラムを実行することによって、ＭＦＰ１００上で実現される。図１５に示す処理は、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３のＳＤＲＡＭ３０１〜３０４のそれぞれをセルフリフレッシュ状態にする際に、ＣＰＵ１０１によって実行される。以下ではＳＤＲＡＭ３０１について説明するが、ＣＰＵ１０１は、ＳＤＲＡＭ３０２〜３０４についても同様の処理を実行する。
【００８３】
まずＳ１５０１で、ＣＰＵ１０１は、メモリコントローラ３０５によって、レジスタ３１４内のメモリコントローラ動作モード設定レジスタ４０３についての確認を行う。具体的には、ＣＰＵ１０１は、メモリコントローラ動作モード設定レジスタ４０３に格納された設定値に基づいて、メモリコントローラ３０５の動作モードがセルフリフレッシュ・モードに設定されているか否かを判定する。ここで、メモリコントローラ３０５がセルフリフレッシュ・モードに設定されていない場合、ＣＰＵ１０１は、Ｓ１５０１の判定処理を繰り返す。一方、メモリコントローラ３０５がセルフリフレッシュ・モードに設定されている場合、ＣＰＵ１０１は、処理をＳ１５０２に進める。
【００８４】
Ｓ１５０２で、ＣＰＵ１０１は、メモリコントローラ３０５が待機状態（アイドル状態）であるか否かを判定する。何らかのデータ処理を行っており、メモリコントローラ３０５が待機状態ではない場合、ＣＰＵ１０１は、Ｓ１５０２の判定処理を繰り返す。一方、メモリコントローラ３０５が待機状態である場合、処理をＳ１５０３へ進める。
【００８５】
Ｓ１５０３で、ＣＰＵ１０１は、サーマルオフセット値を含むサーマルオフセット設定コマンドを、メモリコントローラ３０５からＳＤＲＡＭ３０１に対して発行させる。サーマルオフセット設定コマンドには、サーマルオフセットレジスタ４１１に格納されている設定値が含まれている。
【００８６】
次に、Ｓ１５０４で、ＣＰＵ１０１は、ＳＤＲＡＭ３０１内に格納されたサーマルオフセット値の設定値を読み出すためのコマンドを、メモリコントローラ３０５からＳＤＲＡＭ３０１に対して発行させる。その結果、メモリコントローラ３０５は、読み出した値を、レジスタ３１４内のサーマルオフセットステータスレジスタ４０７に書き込む。これにより、Ｓ１５０３でＳＤＲＡＭ３０１に設定しようとしたサーマルオフセット値が、正しいか否かを確認できる。
【００８７】
設定されたサーマルオフセット値が正しいことが確認されると、Ｓ１５０５で、ＣＰＵ１０１は、セルフリフレッシュ設定コマンドを、メモリコントローラ３０５からＳＤＲＡＭ３０１に発行させる。これにより、ＣＰＵ１０１は、ＳＤＲＡＭ３０１をセルフリフレッシュ・モードに移行（セルフリフレッシュ状態に移行）させる。即ち、ＣＰＵ１０１は、設定されているサーマルオフセット値に対応したリフレッシュ周期で、ＳＤＲＡＭ３０１にリフレッシュ動作を実行させる。
【００８８】
なお、Ｓ１５０３、Ｓ１５０４及びＳ１５０５で発行される各コマンドに関連するプロトコルは、“JESD229 Wide I/O Single Data Rate”として既に規格化されている。
【００８９】
以上説明したように、本実施形態に係るＭＦＰ１００は、予め実行される解析によって生成された既定温度情報と、温度センサ３０９〜３１２によって得られた温度情報とに基づいて、メモリチップ内の現在の温度分布を示す温度分布情報（更新温度情報）を生成する。既定温度情報は、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に対応した、メモリチップ内の温度分布に関する情報を含んでいる。ＭＦＰ１００は、更に、更新温度情報が示す温度分布に含まれる、温度センサ３０９〜３１２の位置における温度と、メモリチップ内のホットスポットにおける温度との差分に応じて、メモリチップのリフレッシュ動作に用いるサーマルオフセット値を設定する。
【００９０】
本実施形態によれば、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に応じたメモリチップ内の温度分布の変化を、精度良く推定することが可能である。更に、推定した温度分布に応じて、サーマルオフセット値をより適切に設定することが可能である。このように、サーマルオフセット値を適切に設定することで、ホットスポットと温度センサの位置の温度差に起因した、消費電力の増大やメモリチップの記憶内容の消失を防ぐことが可能である。
【００９１】
また、本実施形態に係るＭＦＰ１００では、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況に応じて、更新温度情報を適切な更新間隔で更新し、更新後の更新温度情報に基づいて、サーマルオフセット値の設定を定期的に実行してもよい。これにより、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況の変化に合わせて、サーマルオフセット値を適切に制御して使用することが可能である。
【００９２】
［第２の実施形態］
第１の実施形態では、ＳＯＣダイ２０１及びＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の動作状況の変化に合わせて、予め設定された更新間隔で更新温度情報を更新する場合について説明している。この場合、更新温度情報を更新する際に、実際のメモリチップ（ＳＤＲＡＭ３０１〜３０４）内の温度分布と、更新温度情報が示す温度分布との間に誤差が生じている可能性がある。第２の実施形態では、このような誤差が生じた場合にもサーマルオフセット値を適切に行うことを可能にする例について説明する。なお、以下では、説明の簡略化のため、第１の実施形態と共通する部分については説明を省略し、主に第１の実施形態と異なる部分を説明する。
【００９３】
＜更新温度情報（温度分布情報）の生成及び更新＞
図１６を参照して、本実施形態における更新温度情報の生成及び更新処理の手順について説明する。尚、この処理を実行するためのプログラムは、ＨＤＤ１０５に予めインストールされている。この処理は、ＣＰＵ１０１がＨＤＤ１０５からＳＤＲＡＭ３０１にプログラムを展開し、展開したプログラムを実行することによって、ＭＦＰ１００上で実現される。以下ではＳＤＲＡＭ３０１について処理を説明するが、ＣＰＵ１０１は、ＳＤＲＡＭ３０２〜３０４についても同様の処理を実行する。
【００９４】
図１６では、第１の実施形態（図１０）と同一の処理を実行するステップ（Ｓ１００１〜Ｓ１０１１）に第１の実施形態と同一の参照符号を付している。本実施形態では、更新温度情報が既に生成されている場合、ＣＰＵ１０１は、Ｓ１００８で初期温度を導出した後、処理をＳ１６０１に進める。
【００９５】
Ｓ１６０１で、ＣＰＵ１０１は、Ｓ１００７（図１２）と同様の処理によって、温度センサ３０９から、当該温度センサの位置におけるＳＤＲＡＭ３０１の温度を示す温度情報を取得する。更に、Ｓ１６０２で、ＣＰＵ１０１は、Ｓ１６０１で取得した温度情報が示す温度と、Ｓ１００８で取得した更新温度情報に含まれる温度情報が示す、温度センサ３０９の位置における温度（初期温度）との差分を計算し、所定の閾値を上回るか否かを判定する。所定の閾値は、更新温度情報に含まれる、温度センサ３０９の位置における温度と実際の温度との誤差を評価するために予め設定される閾値である。本実施形態では、当該誤差が比較的大きい場合には、サーマルオフセット値を、更新温度情報に基づいて設定せず、取り得る値のうちの最大値に設定する。
【００９６】
Ｓ１６０２で、ＣＰＵ１０１は、計算した差分が所定の閾値以下であると判定した場合、処理をＳ１６０３へ進め、計算した差分が所定の閾値を上回ると判定した場合、処理をＳ１６０４へ進める。Ｓ１６０４では、ＣＰＵ１０１は、サーマルオフセット・ワーストフラグ（Ｗｏｒｓｔｆｌａｇ）を「ｔｒｕｅ」に設定する。当該フラグは、「ｔｒｕｅ」の場合、更新温度情報の内容によらず、サーマルオフセット値を、取り得る値のうちの最大値に強制的に設定すべきことを示す。
【００９７】
一方、Ｓ１６０３では、ＣＰＵ１０１は、Ｓ１６０２で計算した差分に応じて、生成または前回更新された更新温度情報を補正する。具体的には、ＣＰＵ１０１は、生成または前回更新された更新温度情報に含まれる、ＳＤＲＡＭ３０１の各領域の温度（更新温度）に、Ｓ１６０２で計算した差分をそれぞれ加算する。
【００９８】
図１８は、Ｓ１６０３における補正前後の更新温度情報の内容の一例を示す図である。温度センサ３０９の値１８００は、温度センサ３０９から取得された温度情報が示す温度であり、温度センサ３０９が位置する領域（４，５）の温度は５２℃である。補正前の更新温度１８０１は、Ｓ１００８で参照した更新温度情報に含まれる、各領域（Ｘ，Ｙ）の更新温度であり、温度センサ３０９が位置する領域（４，５）の温度は４８℃である。このように、更新温度情報に含まれる、温度センサ３０９の位置における温度は、実際の温度に対して＋４℃の誤差が生じている。このため、Ｓ１６０３では、ＣＰＵ１０１は、更新温度情報に含まれる、全ての領域の更新温度に対して＋４℃を加算することで、図１８で補正後の更新温度１８０２として示すように更新温度情報を補正する。
【００９９】
本実施形態では、Ｓ１００９及びＳ１０１０において、既に生成されている更新温度情報を更新する場合には、ＣＰＵ１０１は、Ｓ１６０３による補正後の更新温度情報を用いた処理を実行する。
【０１００】
＜サーマルオフセット値の設定＞
次に、図１７のフローチャートを参照して、本実施形態におけるサーマルオフセット値の設定処理の手順について説明する。尚、この処理を実行するためのプログラムは、ＨＤＤ１０５に予めインストールされている。この処理は、ＣＰＵ１０１がＨＤＤ１０５からＳＤＲＡＭ３０１にプログラムを展開し、展開したプログラムを実行することによって、ＭＦＰ１００上で実現される。
【０１０１】
図１７に示す処理は、第１の実施形態（図１３）と同様、ＭＦＰ１００が電源オフ状態から起動する際に実行される、一連の起動シーケンスにおいて最初に実行されるとともに、その後は定期的に実行され続ける。また、図１７に示す処理は、ＳＤＲＡＭ３０１〜３０４のそれぞれについて実行される。ここでは、ＳＤＲＡＭ３０１についての処理を説明するが、ＳＤＲＡＭ３０２〜３０４についての処理も同様である。
【０１０２】
まず、Ｓ１７０１では、ＣＰＵ１０１は、ＳＤＲＡＭ３０１について、図１６に示す手順に従って、更新温度情報の生成（更新）処理を実行する。
【０１０３】
次に、Ｓ１７０２で、ＣＰＵ１０１は、サーマルオフセット・ワーストフラグ（Ｗｏｒｓｔｆｌａｇ）が設定されているか（即ち、「ｔｒｕｅ」に設定されているか）否かを判定する。ＣＰＵ１０１は、当該フラグが設定されていない（「ｆａｌｓｅ」に設定されている）と判定した場合、処理をＳ１７０３へ進め、当該フラグが設定されている（「ｔｒｕｅ」に設定されている）と判定した場合、処理をＳ１７０４に進める。
【０１０４】
Ｓ１７０３で、ＣＰＵ１０１は、Ｓ１３０２と同様、Ｓ１７０１で生成または更新された更新温度情報に基づいて、温度センサ３０９〜３１２の位置における温度と、ホットスポットにおける温度とを比較して、それらの差分（温度差）を導出する。例えば、更新温度情報が図１８に示す情報である場合、温度センサ３０９が位置する領域（４，５）における（補正後の）温度が５２℃（温度情報１８１１）、ホットスポットに相当する領域（７，７）における（補正後の）温度が６４℃（温度情報１８１２）である。この場合、温度差として１２℃が導出される。
【０１０５】
Ｓ１７０３の後、Ｓ１７０４で、ＣＰＵ１０１は、Ｓ１７０３で導出した温度差に応じて、ＳＤＲＡＭ３０１について、リフレッシュ動作に用いるサーマルオフセット値を、Ｓ１３０３と同様に設定し、処理を終了する。一方、Ｓ１７０２からＳ１７０４に処理を進めた場合、ＣＰＵ１０１は、更新温度情報によらず、サーマルオフセット値を、取り得る値のうちの最大値（図１４の場合「１」）に設定し、処理を終了する。
【０１０６】
＜セルフリフレッシュ・モードの設定＞
本実施形態におけるセルフリフレッシュ・モードの設定処理は、第１の実施形態（図１５）と同様である。
【０１０７】
以上説明したように、本実施形態では、温度センサ３０９〜３１２が位置する領域における、更新温度情報が示す温度と実際の温度との差分を計算し、計算した差分に応じて、更新温度情報の補正またはサーマルオフセット値の設定を行う。具体的には、計算した差分が所定の閾値以下である場合には、当該差分に応じて更新温度情報を補正する。これにより、更新温度情報に生じた誤差を適切に補正して、より精度よくサーマルオフセット値の設定を行うことが可能である。また、計算した差分が所定の閾値を上回る場合には、サーマルオフセット値を強制的に、取り得る値のうちの最大値に設定する。これにより、更新温度情報に大幅に誤差が生じた場合にも、ホットスポットに起因したメモリチップの記憶内容の消失を極力防ぐことが可能である。
【０１０８】
［その他の実施形態］
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワークまたは各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2014096188.tif 000003
【図２】
2014096188.tif 000004
【図３】
2014096188.tif 000005
【図４】
2014096188.tif 000006
【図５】
2014096188.tif 000007
【図６】
2014096188.tif 000008
【図７】
2014096188.tif 000009
【図８】
2014096188.tif 000010
【図９】
2014096188.tif 000011
【図１０】
2014096188.tif 000012
【図１１】
2014096188.tif 000013
【図１２】
2014096188.tif 000014
【図１３】
2014096188.tif 000015
【図１４】
2014096188.tif 000016
【図１５】
2014096188.tif 000017
【図１６】
2014096188.tif 000018
【図１７】
2014096188.tif 000019
【図１８】
2014096188.tif 000020