(57)【要約】      （修正有）【課題】ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体を提供する。【解決手段】ＷｉｄｅＩＯメモリデバイスの複数のメモリのそれぞれの温度情報を取得し、複数の機能モジュールのそれぞれの実行に応じた、ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成する。そして、その温度分布情報に基づいて、ＷｉｄｅＩＯメモリデバイスの最高温度を求め、当該最高温度に基づいてＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定し、情報処理装置の動作モードと、所定の時間間隔における最高温度の変化率とに基づいて、ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する周期を決定し、その決定された周期で、その決定されたリフレッシュレートに従って、ＷｉｄｅＩＯメモリデバイスをリフレッシュする。【選択図】図１０
2015041395.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置であって、
前記ＷｉｄｅＩＯメモリデバイスの複数のメモリのそれぞれの温度情報を取得する温度取得手段と、
前記ＳＯＣダイに含まれ、それぞれが各機能を実行する複数の機能モジュールと、
前記複数の機能モジュールのそれぞれの実行に応じた、前記ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成する作成手段と、
前記温度分布情報に基づいて、前記ＷｉｄｅＩＯメモリデバイスの最高温度を求め、当該最高温度に基づいて前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する決定手段と、
前記情報処理装置の動作モードと、所定の時間間隔における前記最高温度の変化率とに基づいて、前記決定手段が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する周期を決定する更新周期決定手段と、
前記更新周期決定手段により決定された前記周期で前記決定手段により決定されたリフレッシュレートに従って、前記ＷｉｄｅＩＯメモリデバイスをリフレッシュするメモリ制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記ＷｉｄｅＩＯメモリデバイスの前記複数のメモリのそれぞれは、前記ＳＯＣダイの平面を分割した各領域の上に配置されていることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のメモリのそれぞれの平面を複数の領域に分割したとき、前記複数の領域のそれぞれが、前記複数の機能モジュールのそれぞれの実行に応じて発熱する発熱量を記憶する記憶手段と、
前記動作モードに応じて実行する機能モジュールと、前記記憶手段に記憶された各領域に対応する発熱量とに基づいて、現時点の前記ＷｉｄｅＩＯメモリデバイスの発熱量を取得する取得手段と、
前記作成手段が前回、前記温度分布情報を作成してからの経過時間と、前記現時点の前記ＷｉｄｅＩＯメモリデバイスの発熱量とに基づいて、前回の温度分布情報を補正する補正手段とを更に有し、
前記作成手段は、前記補正手段により補正した温度分布情報を前記温度取得手段により取得した、現時点の前記複数のメモリのそれぞれの温度情報に基づいて補正することにより、前記ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記ＷｉｄｅＩＯメモリデバイスの最高温度と前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートとを関連付けるリフレッシュレートテーブルを更に有し、前記決定手段は、前記リフレッシュレートテーブルを参照して前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記情報処理装置の動作モードと、前記最高温度の変化率と、前記周期とを関連付けたテーブルを更に有し、前記更新周期決定手段は前記テーブルを参照して前記周期を決定することを特徴とする請求項１乃至４のいずれか１項に記載の情報処理装置。
【請求項６】
前記最高温度の変化率は、前記決定手段が前回、前記リフレッシュレートを決定してからの経過時間の間に、前記ＷｉｄｅＩＯメモリデバイスの最高温度が変化した温度の変化率であることを特徴とする請求項５に記載の情報処理装置。
【請求項７】
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置であって、
前記ＷｉｄｅＩＯメモリデバイスの複数のメモリのそれぞれの温度情報を取得する温度取得手段と、
前記ＳＯＣダイに含まれ、それぞれが各機能を実行する複数の機能モジュールと、
前記複数の機能モジュールのそれぞれの実行に応じた、前記ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成する作成手段と、
前記温度分布情報に基づいて、前記ＷｉｄｅＩＯメモリデバイスの最高温度を求め、当該最高温度に基づいて前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する決定手段と、
前記決定手段が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定してからの経過時間と、前記経過時間で変化した前記ＷｉｄｅＩＯメモリデバイスの温度とを基に、前記決定手段が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する周期を決定する更新周期決定手段と、
前記更新周期決定手段により決定された周期で前記決定手段により決定されたリフレッシュレートに従って、前記ＷｉｄｅＩＯメモリデバイスをリフレッシュするメモリ制御手段と、
を有することを特徴とする情報処理装置。
【請求項８】
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置であって、
前記ＷｉｄｅＩＯメモリデバイスの複数のメモリのそれぞれの温度情報を取得する温度取得手段と、
前記ＳＯＣダイに含まれ、それぞれが各機能を実行する複数の機能モジュールと、
前記複数の機能モジュールのそれぞれの実行に応じた、前記ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成する作成手段と、
前記温度分布情報に基づいて、前記ＷｉｄｅＩＯメモリデバイスの最高温度を求め、当該最高温度に基づいて前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する決定手段と、
前記決定手段が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定してからの経過時間と、前記経過時間が経過したときの前記ＷｉｄｅＩＯメモリデバイスの温度と所定温度との差を基に、前記決定手段が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する周期を決定する更新周期決定手段と、
前記更新周期決定手段により決定された周期で前記決定手段により決定されたリフレッシュレートに従って、前記ＷｉｄｅＩＯメモリデバイスをリフレッシュするメモリ制御手段と、
を有することを特徴とする情報処理装置。
【請求項９】
前記更新周期決定手段は、前記情報処理装置の動作モードが変更されたときは前記周期を短くし、前記動作モードのままで前記動作モードの変更からの時間が経過するのに従って前記周期を長くすることを特徴とする請求項１乃至８のいずれか１項に記載の情報処理装置。
【請求項１０】
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリを具備する情報処理装置を制御する制御方法であって、
温度取得手段が、前記ＷｉｄｅＩＯメモリデバイスの複数のメモリのそれぞれの温度情報を取得する温度取得工程と、
作成手段が、前記ＳＯＣダイに含まれ、それぞれが各機能を実行する複数の機能モジュールのそれぞれの実行に応じた、前記ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成する作成工程と、
決定手段が、前記温度分布情報に基づいて、前記ＷｉｄｅＩＯメモリデバイスの最高温度を求め、当該最高温度に基づいて前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する決定工程と、
更新周期決定手段が、前記情報処理装置の動作モードと、所定の時間間隔における前記最高温度の変化率とに基づいて、前記決定工程が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する周期を決定する更新周期決定工程と、
メモリ制御手段が、前記更新周期決定工程で決定された前記周期で前記決定工程で決定されたリフレッシュレートに従って、前記ＷｉｄｅＩＯメモリデバイスをリフレッシュするメモリ制御工程と、
を有することを特徴とする情報処理装置の制御方法。
【請求項１１】
コンピュータに、請求項１０の制御方法を実行させるためのプログラム。
【請求項１２】
請求項１１に記載のプログラムを記憶した、コンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置及びその制御方法、並びに、そのプログラムと記憶媒体に関するものである。
【背景技術】
【０００２】
マイクロプロセッサ等のＣＰＵを備えた情報処理装置では、ＯＳや各種アプリケーションを実行するためのデータの保存や、画像処理を実行するためのデータの一時保存のためにＤＲＡＭを用いることが多い。このＤＲＡＭは、ＣＰＵやＳＯＣ（System On a Chip）等に接続されて使用される。また近年、情報処理装置の多機能化・高機能化に伴ってＤＲＡＭのメモリ帯域が増加しており、メモリ帯域を増加させるために、ＤＤＲ３やＤＤＲ４等の規格では、メモリのアクセス時のクロックの周波数を高くしている。またそれ以外に、ＣＰＵやＡＳＩＣ（Application Specific Integrated Circuit）に接続するＤＲＡＭチャネルを複数備えることでメモリ帯域を確保している。しかし、クロックの高周波数化や複数のメモリチャネルを採用すると、消費電力が増加するという新たな問題が発生する。
【０００３】
そこで現在注目されているのが次世代ＤＲＡＭ規格であるＷｉｄｅＩＯである。ＷｉｄｅＩＯは、ＴＳＶ（Ｔｈｒｏｕｇｈ Ｓｉｌｉｃｏｎ Ｖｉａ）による３Ｄ積層技術を使い、ＳＯＣダイの上にＤＲＡＭチップを重ねて構成される。この特徴としては、５１２ビットの広いデータ幅で最大１２．８（ＧＢ／秒）以上の高帯域が得られるとともに、アクセス周波数を低く抑えているので低消費電力であることが挙げられる。また、ＴＳＶを採用したことで、従来のＰｏＰ（Ｐａｃｋａｇｅ ｏｎ Ｐａｃｋａｇｅ）に比べてパッケージサイズを薄く小さくできる。更に、ＳＯＣパッケージ内にメモリを積層することによる熱対策として、メモリの温度を検出する温度センサを内蔵し、その検出した温度に応じてセルフ・リフレッシュレートを変化させている。また５１２ビットのデータ幅を、それぞれ１２８ビットの４つのチャネルに分割し、各チャネルを独立して制御できるように構成されている。例えば、チャネル１とチャネル２とをセルフリフレッシュ状態にし、チャネル３とチャネル４とを、通常のメモリアクセスに使用する等の使い方ができる。このようなＷｉｄｅＩＯの基本的な構造や基本的なアクセス方法が特許文献１に記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公開  ２０１２／００１８８８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＤＲＡＭは、各セルに備えられたコンデンサに電荷を蓄えることでデータの記憶を行っているが、このコンデンサは半導体のリーク電流により放電するため、ＤＲＡＭのデータを保持するためにリフレッシュ動作によりコンデンサを充電する必要がある。この電荷の放電は温度に依存し、温度が高いほど放電スピードが速くなるため、温度が高くなると、リフレッシュレートを高める必要がある。
【０００６】
従来のメモリアクセス制御方法では、メモリコントローラに設定するオートリフレッシュのレートは、ＤＲＡＭが到達する最高温度に対応して設定されていた。そのためＤＲＡＭの温度が低い場合は、オートリフレッシュのレートを低くして消費電力の抑制及びアクセス性能の向上をもたらす余地があった。
【０００７】
適切なオートリフレッシュのレートを決定するためには、ＤＲＡＭチップ上で最も温度が高くなっている位置（以下、ホットスポット）の温度をリアルタイムで検出し、その温度に対して必要十分なオートリフレッシュのレートを設定すれば良い。しかしながら、これには以下のような課題があった。
【０００８】
第１の課題は、ホットスポットの温度を精度よく取得することである。積層されたＤＲＡＭチップのホットスポットは、従来型のチップのそれよりも顕著に発生するため、ホットスポットと非ホットスポットの温度差が大きくなることが知られている。よって、例えば前述した温度センサが非ホットスポットに位置した場合、そのセンサが検知した温度とホットスポットの温度との間に大きな乖離が生じてしまうことになる。この結果、温度センサにより測定した温度に基づくオートリフレッシュのレートの補正が正しく行われず、消費電力の増大や、ＤＲＡＭに記憶された内容の消失を招くことになってしまう。
【０００９】
第２の課題は、リアルタイムにホットスポットの温度を検出して、その検出した温度に対応するオートリフレッシュのレートを設定する処理がオーバーヘッドとなることである。
【００１０】
本発明の目的は、上記従来技術の問題点を解決することにある。
【００１１】
本発明の特徴は、積層されたＤＲＡＭの温度に応じてリフレッシュのレートの設定を行うことにより、ＤＲＡＭの帯域を広げることができる技術を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために本発明の一態様に係る情報処理装置は以下のような構成を備える。即ち、
ＣＰＵを含むＳＯＣダイに積層されるＷｉｄｅＩＯメモリデバイスを具備する情報処理装置であって、
前記ＷｉｄｅＩＯメモリデバイスの複数のメモリのそれぞれの温度情報を取得する温度取得手段と、
前記ＳＯＣダイに含まれ、それぞれが各機能を実行する複数の機能モジュールと、
前記複数の機能モジュールのそれぞれの実行に応じた、前記ＷｉｄｅＩＯメモリデバイスの温度分布情報を作成する作成手段と、
前記温度分布情報に基づいて、前記ＷｉｄｅＩＯメモリデバイスの最高温度を求め、当該最高温度に基づいて前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する決定手段と、
前記情報処理装置の動作モードと、所定の時間間隔における前記最高温度の変化率とに基づいて、前記決定手段が前記ＷｉｄｅＩＯメモリデバイスのリフレッシュレートを決定する周期を決定する更新周期決定手段と、
前記更新周期決定手段により決定された前記周期で前記決定手段により決定されたリフレッシュレートに従って、前記ＷｉｄｅＩＯメモリデバイスをリフレッシュするメモリ制御手段と、を有することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、積層されたＤＲＡＭの温度に応じてリフレッシュのレートの設定を行うことにより、ＤＲＡＭの帯域を広げることができる。またリフレッシュレートを更新するための負荷を低減できるという効果がある。
【図面の簡単な説明】
【００１４】
【図１】本実施形態１に係るＭＦＰ（デジタル複合機）の全体構成を示すブロック図。
【図２】実施形態１に係るＷｉｄｅＩＯ−ＳＤＲＡＭの構造を示す模式図。
【図３】実施形態１に係るＷｉｄｅＩＯコントローラの内部構成を示すブロック図。
【図４】実施形態に係るＭＦＰの操作部、ＨＤＤ、ＲＯＭ、デバイスＩ／Ｆを含む外部Ｉ／Ｆコントローラ及び外部デバイスの構成を説明するブロック図。
【図５】実施形態１に係るレジスタの構成を説明する図。
【図６】実施形態１に係るＷｉｄｅＩＯ−ＳＤＲＡＭとＳＯＣダイの物理的な位置関係をよりわかり易く説明するＳＯＣパッケージの俯瞰図。
【図７】実施形態１に係るＷｉｄｅＩＯ−ＳＤＲＡＭを構成するＳＤＲＡＭの各デバイスと、ＳＯＣダイを６ｘ６の領域に等分割した領域の位置関係を表す図。
【図８】実施形態１に係るＭＦＰの各機能が割り当てられたＳＯＣダイの図７（Ｂ）に示す領域と、その領域を活性化させた際の発熱量を相対値で示すテーブルを説明する図。
【図９】実施形態１に係るＭＦＰにおいて、ＷｉｄｅＩＯ−ＳＤＲＡＭのホットスポットの温度の変化に応じてオートリフレッシュのレートを更新する様子を説明する図。
【図１０】本実施形態１に係るＭＦＰが実施しているメモリアクセス制御方法を説明するフローチャート。
【図１１】図１０のＳ１００３の温度分布情報の生成処理を説明するフローチャート。
【図１２】実施形態１に係るＭＦＰにおいて、ＣＰＵが温度センサで計測した温度情報を取得するための処理（図１１のＳ１１０８）を説明するフローチャート。
【図１３】実施形態１において、温度センサにより取得した温度情報を用いて温度分布情報を補正する具体例を説明する図。
【図１４】オートリフレッシュのレートと温度との関係を説明する図。
【図１５】図１０のＳ１００６のオートリフレッシュのレートを決定する処理を説明するフローチャート。
【図１６】単位時間当たりの温度変化（以降、温度変化率）と更新周期との関係を示す図。
【図１７】各動作モード毎にテーブル化した温度変化率と更新周期の関係の一例を示す図。
【図１８】図１０のＳ１００８のリフレッシュレートの更新周期を決定する処理を説明するフローチャート（Ａ）と、ＨＤＤのデータ構成を説明する図（Ｂ）。
【図１９】実施形態２に係るリフレッシュレートの更新周期を決定する処理を説明する図。
【図２０】実施形態３に係るリフレッシュレートの更新周期を決定する処理を説明する図。
【発明を実施するための形態】
【００１５】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態に係るＷｉｄｅＩＯを備える情報処理装置として、スキャン、プリンタ、コピーなどの複数の機能を有するＭＦＰ（デジタル複合機）を例に説明する。
【００１６】
［実施形態１］
図１は、本実施形態１に係るＭＦＰ（デジタル複合機）の全体構成を示すブロック図である。
【００１７】
ＭＦＰ１００は、画像入力デバイスであるスキャナ１１６と画像出力デバイスであるプリンタエンジン１１７とを有し、これらはデバイスインターフェース（Ｉ／Ｆ）１０７を介してシステムバス１１８に接続されている。そしてＣＰＵ１０１の制御の下に、スキャナ１１６による原稿の画像の読み取りや、プリンタエンジン１１７による印刷を行うことができる。またＭＦＰ１００は、ＬＡＮ１１４や公衆回線（ＰＳＴＮ）１１５と接続しており、これらを介してＬＡＮや公衆回線に接続された外部機器のデバイス情報や画像データの入出力を行うことができる。
【００１８】
ＣＰＵ１０１は、ＲＯＭ１０６に記憶されたブートプログラムによりＨＤＤ１０５からＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に展開されたプログラムを実行することにより、このＭＦＰ１００の動作を制御している。操作部１０２は、キーボードやタッチパネル等の入力部や表示部を有し、ユーザからの指示を受付け、また表示部によりユーザへのメッセージや処理の結果などを表示する。ネットワークＩ／Ｆ１０３は、例えばＬＡＮカード等で実現され、ＬＡＮ１１４を介して外部機器との間でデバイス情報や画像データの入出力を行う。モデム１０４は、公衆回線１１５を介して外部機器との間で制御情報や画像データの入出力を行う。ＨＤＤ１０５はハードディスクドライブであり、ＯＳや各種アプリケーションプログラム等を記憶し、また入力された画像データ等を格納する。ＲＯＭ１０６は、ブートプログラムや各種データを記憶している。デバイスＩ／Ｆ１０７は、スキャナ１１６やプリンタエンジン１１７と接続し、これらスキャナ１１６やプリンタエンジン１１７とシステムバス１１８との間で画像データの転送処理を行う。
【００１９】
編集用画像処理部１０８は、画像データの回転や変倍、色処理、トリミング・マスキング、２値変換、多値変換、白紙判定等の各種画像処理を行う。プリント画像処理部１０９は、プリンタエンジン１１７に出力する画像データに対して、そのプリンタエンジン１１７に応じた画像処理等を行う。スキャン画像処理部１１０は、スキャナ１１６から入力される画像データに対して、補正、加工、編集等の各種処理を行う。ＲＩＰ（ラスタイメージプロセッサ）１１１は、ページ記述言語（ＰＤＬ）コードをイメージデータに展開する。ＷｉｄｅＩＯコントローラ１１２は、例えばＣＰＵ１０１や各画像処理部からのメモリアクセスコマンドをＷｉｄｅＩＯ−ＳＤＲＡＭ１１３が解釈可能なコマンドに変換して、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に対してアクセスを行う。ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３は、ＣＰＵ１０１により実行されるプログラムを格納し、またＣＰＵ１０１が動作するためのシステムワークメモリを提供している。また、入力された画像データを一時記憶するための画像メモリでもある。システムバス１１８は上述した各部とＣＰＵ１０１とを接続し、制御信号やデータ等を転送している。
【００２０】
図２は、実施形態１に係るＷｉｄｅＩＯ−ＳＤＲＡＭ１１３の構造を示す模式図で、図２（Ａ）はＷｉｄｅＩＯ−ＳＤＲＡＭとＳＯＣダイを側面から見た側面図であり、図２（Ｂ）は上側から見た上面図である。
【００２１】
ＳＯＣダイ２０１は、本実施形態１では例えばＣＰＵ１０１やデバイスＩ／Ｆ１０７，ＲＩＰ１１１、各画像処理部１０８〜１１０等を備えるものである。ＷｉｄｅＩＯ−ＳＤＲＡＭ２０２〜２０５はＳＯＣダイ２０１の上に積層され、シリコン貫通ビア（ＴＳＶ）２０６によりＳＯＣダイ２０１と接続されている。ＷｉｄｅＩＯ−ＳＤＲＡＭは、必要とするメモリ容量に応じて最大４層まで積層することができ、図２（Ａ）は４層を積層した例を示す。本実施形態１においては、ＷｉｄｅＩＯ−ＳＤＲＡＭ２０２〜２０５は、図２（Ｂ）のチャネル１〜４のそれぞれに対して積層して構成されているものとする。ＳＯＣパッケージ２０７は、ＳＯＣダイ２０１とＷｉｄｅＩＯ−ＳＤＲＡＭ２０２〜２０５とを１つのパッケージに収容したものである。ＷｉｄｅＩＯ−ＳＤＲＡＭＩ／Ｆ２０８は、図２（Ｂ）に示されるようにＳＯＣダイ２０１やＷｉｄｅＩＯ−ＳＤＲＡＭ２０２〜２０５の中央部に配置される。
【００２２】
図３は、実施形態１に係るＷｉｄｅＩＯコントローラ１１２の内部構成を示すブロック図である。
【００２３】
図３において、ＷｉｄｅＩＯコントローラ１１２は、図１に示したようにシステムバス１１８とＷｉｄｅＩＯ−ＳＤＲＡＭ１１３との間に接続されている。更に、図１では図示しない温度センサ３０９〜３１２と接続される。
【００２４】
ＳＤＲＡＭ３０１〜３０４は、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に設けられた４つのメモリであり、図示されている通り、各々が専用のインターフェースを備える。これらの専用インターフェースは、上述したようにＳＯＣダイ２０１に積層されるＷｉｄｅＩＯ−ＳＤＲＡＭ２０２〜２０５の４チャネルに相当し、この専用インターフェースは図２（Ｂ）のＷｉｄｅＩＯ−ＳＤＲＡＭＩ／Ｆ２０８に相当している。メモリコントローラ３０５〜３０８のそれぞれは、システムバス１１８からのメモリアクセスコマンドを、接続されている各対応するＳＤＲＡＭに対して、そのＳＤＲＡＭが解釈可能なコマンドに変換してアクセスする。温度センサ３０９〜３１２は、ＳＤＲＡＭ３０１〜３０４の各対応するＳＤＲＡＭの温度を計測している。
【００２５】
レジスタＩ／Ｆ３１３は、不図示のレジスタ専用バスを経由してＣＰＵ１０１からのアクセスを受け付ける。レジスタ３１４は、温度取得Ｉ／Ｆ３１５が温度センサ３０９〜３１２から取得した各温度情報や、ＣＰＵ１０１から設定されるメモリコントローラ３０５〜３０８の各動作モードの設定情報を記憶する。温度取得Ｉ／Ｆ３１５が、後述する温度情報格納レジスタ５０２（図５）からの温度情報の取得要求を検知すると、後述する温度センサ指定レジスタ５０１（図５）で指定された温度センサからの温度情報を取得するコマンドを発行して温度情報を取得する。こうして取得した温度情報は、後述する温度情報格納レジスタ５０２へ格納される。
【００２６】
図４は、実施形態に係るＭＦＰ１００の操作部１０２、ＨＤＤ１０５、ＲＯＭ１０６、デバイスＩ／Ｆ１０７を含む外部Ｉ／Ｆコントローラ及び外部デバイスの構成を説明するブロック図である。
【００２７】
操作部１０２、ＨＤＤ１０５，ＲＯＭ１０６には、それぞれ表示コントローラ４０２、ＳＡＴＡコントローラ４０４、ＦｌａｓｈＲＯＭコントローラ４０６などの各種汎用Ｉ／Ｆコントローラが含まれている。同様に、表示部４０１、ＳＡＴＡ  ＨＤＤ４０３、ＦｌａｓｈＲＯＭ４０５などの、上記汎用Ｉ／Ｆコントローラで制御される汎用デバイスが含まれている。またデバイスＩ／Ｆ１０７には、スキャナＩ／Ｆ４０７とプリンタＩ／Ｆ４０８が含まれており、スキャナ１１６及びプリンタエンジン１１７の各デバイスとの間で制御信号や画像データの授受を行っている。
【００２８】
図５は、実施形態１に係るレジスタ３１４の構成を説明する図である。
【００２９】
レジスタ３１４は、温度センサ指定レジスタ５０１、温度情報格納レジスタ５０２、メモリコントローラ動作モード設定レジスタ５０３〜５０６、オートリフレッシュレートレジスタ５０７〜５１０を有している。温度センサ指定レジスタ５０１は、ＣＰＵ１０１が温度センサの温度情報を取得したい場合に、その対象となる温度センサを指定するための情報を格納するレジスタである。本実施形態１においては、４個の温度センサを備える例を用いて説明しているため２ビットのレジスタで構成され、２ビットの各状態により４個の温度センサのそれぞれを特定することができる。温度情報格納レジスタ５０２は、ＣＰＵ１０１からの温度情報の取得要求を入力すると、温度センサ指定レジスタ５０１で指定された温度センサの温度情報を取得するように温度取得Ｉ／Ｆ３１５に対して要求する。そして、温度取得Ｉ／Ｆ３１５から取得した温度情報を格納し、ＣＰＵ１０１からの温度情報の読み出し要求に応じて、そこに格納している温度情報を出力する。
【００３０】
メモリコントローラ動作モード設定レジスタ５０３〜５０６のそれぞれは、各メモリコントローラ３０５〜３０８の動作モードを設定するためのレジスタで、各ＳＤＲＡＭのメモリ制御に関する設定値が記憶されている。ここでメモリ制御に関する設定値としては、例えば、メモリアクセスに関するタイミングパラメータ等がある。尚、ここでメモリコントローラ動作モード設定レジスタ５０３は、メモリコントローラ３０５の動作モードを設定し、メモリコントローラ動作モード設定レジスタ５０４はメモリコントローラ３０６の動作モードを設定する。またメモリコントローラ動作モード設定レジスタ５０５はメモリコントローラ３０７の動作モードを設定し、メモリコントローラ動作モード設定レジスタ５０６はメモリコントローラ３０８の動作モードを設定する。
【００３１】
オートリフレッシュレートレジスタ５０７は、メモリコントローラ３０５がＳＤＲＡＭ３０１に対して発行するオートリフレッシュレートの周期を保持しておくためのレジスタである。この周期は、ＣＰＵ１０１が算出して設定する。メモリコントローラ３０５は、このレジスタに設定された周期毎にＳＤＲＡＭ３０１に対しオートリフレッシュコマンドを発行する。このレジスタの設定フローに関する詳細は後述する。
【００３２】
オートリフレッシュレートレジスタ５０８〜５１０も同様に、各メモリコントローラ３０６〜３０８がＳＤＲＡＭ３０２に対して発行するオートリフレッシュレートの周期を保持しておくためのレジスタである。各メモリコントローラ３０６は、このレジスタに設定された周期毎にＳＤＲＡＭ３０２に対しオートリフレッシュコマンドを発行する。
【００３３】
図６は、図２のＷｉｄｅＩＯ−ＳＤＲＡＭ２０２〜２０５とＳＯＣダイ２０１の物理的な位置関係をよりわかり易く説明するＳＯＣパッケージ２０７の俯瞰図である。
【００３４】
ＳＯＣダイ２０１は、ＣＰＵ１０１やデバイスＩ／Ｆ１０７、ＲＩＰ１１１、前述の画像処理部１０８〜１１０等を含んでいる。ＳＯＣパッケージ２０７の平面を４分割した時の左上、右上、右下、左下がそれぞれ図２（Ｂ）のチャネル１〜４に相当する。また同様に、４分割した領域は、図３のＳＤＲＡＭ３０１〜３０４にも相当している。前述したように、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３は、ＳＯＣダイ２０１の上に積層されるメモリである。また、本実施形態１においては、ＳＤＲＡＭ３０１〜３０４の各デバイスは、図６のようにＳＯＣダイ２０１を４分割した領域の各上部にそれぞれ４層で積層されているものとする。ＳＤＲＡＭ３０１〜３０４の各デバイスには、それぞれのメモリの内部温度が計測できるように、温度センサ３０９〜３１２が内蔵されている。但し、各ＳＤＲＡＭの配置や温度センサの配置は図６に限定されるものではなく、一例に過ぎない。
【００３５】
図７は、実施形態１に係るＷｉｄｅＩＯ−ＳＤＲＡＭ１１３を構成する各ＳＤＲＡＭ３０１〜３０４の各デバイスと、ＳＯＣダイ２０１を６ｘ６の領域に等分割した領域の位置関係を表す図である。
【００３６】
ＳＤＲＡＭ３０１〜３０４のそれぞれは、前述したように、ＳＯＣダイ２０１を４分割した領域の各上部にそれぞれ積層されており、ここでは図７（Ａ）に示すように、各領域を領域Ａ〜Ｄとする。また、ＳＯＣダイ２０１は、領域Ａ〜Ｄの各領域を更に３ｘ３に分割し、図７（Ｂ）に示すように、分割した各領域をＡ１〜Ａ９，Ｂ１〜Ｂ９，Ｃ１〜Ｃ９，Ｄ１〜Ｄ９とする。ＳＯＣダイ２０１の各領域を活性化させることで発生した熱は、その上層部に位置するＳＤＲＡＭ３０１〜３０４に伝播し、その消費電力やアクセス性能に大きな影響を与えることになる。ここで先に説明した温度センサ３０９〜３１２はそれぞれ領域Ａ５，Ｂ５，Ｃ５，Ｄ５に配置されているものとする。
【００３７】
図８は、実施形態１に係るＭＦＰ１００の各機能が割り当てられたＳＯＣダイ２０１の図７（Ｂ）に示す領域と、その領域を活性化させた際の発熱量を相対値で示すテーブルを説明する図である。尚、以下の説明では、図１８（Ｂ）に示すＨＤＤ１０５に格納されたテーブル及び各種値を参照する。
【００３８】
これによれば、例えば、ＣＰＵ１０１は、領域Ａ６，Ｂ１，Ｂ２，Ｂ４，Ｂ５に跨ってレイアウトされているため、ＣＰＵ１０１が動作している場合、これらの領域が活性化される。これによりＣＰＵ１０１が動作しているとき、図７（Ａ）の領域Ａの単位時間の発熱量は「１」、領域Ｂの発熱量は「１０」（＝２＋２＋３＋３）となる。またプリント画像処理部１０９は、領域Ｂ８，Ｃ１，Ｃ２，Ｃ４，Ｃ５，Ｃ６に跨ってレイアウトされている。よって、プリント画像処理部１０９が動作している場合、図７（Ａ）の領域Ｂの単位時間の発熱量は「２」、領域Ｃは「１１」（＝２＋３＋３＋２＋１）となる。この図８のテーブルの情報は、ＳＯＣダイ２０１の設計時に予め取得してＲＯＭ１０６やＨＤＤ１０５に保持しておく。ここではＨＤＤ１０５に発熱量テーブル１８１０（図１８（Ｂ））として記憶されているものとする。尚、どの領域に図１のどの機能ブロックが割り当てられているかは、ＳＯＣダイ２０１の設計時のレイアウト情報として得られる。また、各領域を活性化させたときの発熱量は、ＳＯＣダイ２０１設計時の熱シミュレーション等で求められる。
【００３９】
以上説明した構成を有するＭＦＰ１００において、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３のホットスポットの温度に応じて動的にオートリフレッシュのレートを更新する方法を説明する。
【００４０】
図９は、実施形態１に係るＭＦＰ１００において、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３のホットスポットの温度の変化に応じてオートリフレッシュのレートを更新する様子を説明する図である。
【００４１】
ＭＦＰ１００は、時刻Ｔ０で電源がオンされた後、デバイスの初期化、ＯＳの起動などのブート処理を実行した後、時刻Ｔ１でジョブ待ちのアイドルモードに移行する。更に、時刻Ｔ２でプリントジョブを受信してプリントモードに移行する。そしてプリントジョブを完了した後、時刻Ｔ３で再びアイドルモードに移行し、時刻Ｔ４でスキャンジョブを開始する。
【００４２】
このように動作状態が変化することにより、ＳＯＣダイ２０１で活性化される機能モジュールが切り替り、その発熱量が変化するため、ＷｉｄｅＩＯ−ＳＤＲＡＭ１１３のホットスポットの位置及びその温度はリアルタイムで変化する。
【００４３】
従来のメモリアクセス制御方法では、全ての動作状態における最高温度９０１（ｔｅｍｐＭＡＸ）を想定し、それに対応するオートリフレッシュのレート９０２（ｒａｔｅ＿ＭＡＸ）を固定的に設定してメモリのリフレッシュを行っていた。
【００４４】
これに対して本実施形態１では、ＳＯＣダイ２０１の発熱量に応じて、９０３で示すようにオートリフレッシュのレートを変化させている。これにより、従来のオートリフレッシュレートのｒａｔｅ＿ＭＡＸ９０２に比べて、本実施形態１に係るオートリフレッシュのレート９０３では、オートリフレッシュの回数が減少し、その分、ＳＤＲＡＭ１１３のメモリ帯域が増加することになる。
【００４５】
次に、本実施形態に係るオートリフレッシュのレートの更新処理を詳しく説明する。
【００４６】
図１０は、本実施形態１に係るＭＦＰ１００が実施しているメモリアクセス制御方法を説明するフローチャートである。尚、この処理を実行するプログラムはＨＤＤ１０５にインストールされており、実行時にそのプログラムをＷｉｄｅＩＯ−ＳＤＲＡＭ１１３に展開し、その展開したプログラムＣＰＵ１０１が実行することにより、このフローチャートで示す各処理が実行される。
【００４７】
この処理はＭＦＰ１００の電源がオンされることにより開始される（図９のＴ０に対応）。電源がオンされるとＳ１００１でＣＰＵ１０１は、ＨＤＤ１０５の１８１１（図１８（Ｂ））或いはＳＤＲＡＭに設けたタイムカウンタ（Ｃｎｔ）を「０」に初期化し、動作モードをブートモードに設定する。尚、タイムカウンタのカウントダウンは、ＣＰＵ１０１のタイマ（不図示）による計時に基づいてなされる。また動作モードの情報はＨＤＤ１０５の１８１１（図１８（Ｂ））に格納される。
【００４８】
次にＳ１００２に進みＣＰＵ１０１は、タイムカウンタ（Ｃｎｔ）の値が「０」か、或いは動作モードが変更されたかどうかを判定する。Ｓ１００２でタイムカウンタ（Ｃｎｔ）の初期値は「０」であるため、Ｓ１００３〜Ｓ１００４，Ｓ１００６〜Ｓ１００９によるオートリフレッシュのレートを更新する処理に進む。
【００４９】
まずＳ１００３でＣＰＵ１０１は、温度分布情報の生成処理を実行する。この処理を図１１のフローチャートを参照して説明する。
【００５０】
図１１は、図１０のＳ１００３の温度分布情報の生成処理を説明するフローチャートである。
【００５１】
まずＳ１１０１でＣＰＵ１０１は、電源オン直後の最初の温度分布情報の生成処理かどうかを判定する。そうであればＳ１１０２に進みＣＰＵ１０１は、ＳＤＲＡＭの温度は室温とほぼ同一であるはずなので、温度センサ３０９〜３１２により検知さされた温度情報を取得する。次にＳ１１０３に進みＣＰＵ１０１は、Ｓ１１０２で取得した温度情報を基に均一の温度分布情報を生成してＳ１１１０に進む。Ｓ１１１０では、Ｓ１１０３で生成した温度分布情報と、その生成時刻とをＨＤＤ１０５のエリア１８１２（図１８（Ｂ））に記憶して、この処理を終了する。
【００５２】
一方Ｓ１１０１でＣＰＵ１０１が、最初の温度分布情報の生成処理でないと判定するとＳ１１０４に進む。Ｓ１１０４でＣＰＵ１０１は、前回の温度分布情報が存在するので、前回生成された温度分布情報と、前回それが生成された時刻とをＨＤＤ１０５のエリア１８１２から取得する。次にＳ１１０５に進みＣＰＵ１０１は、現時点の動作モードに対応するＳＯＣダイ２０１の領域ごとの発熱量データ（図８参照）をＨＤＤ１０５の発熱量テーブル１８１０から取得する。次にＳ１１０６に進みＣＰＵ１０１は、前回の温度分布情報の生成時刻からの経過時間を、ＣＰＵ１０１のタイマ（不図示）の計時値と前回の温度分布情報の生成時刻とから求める。次にＳ１１０７に進みＣＰＵ１０１は、簡易な熱シミュレーションを行って現在の温度分布情報を算出する。つまり、前回の温度分布情報と、Ｓ１１０５で求めた領域ごとの発熱量情報とから単位時間当たりの熱の移動量を求め、それに前回の温度分布情報の生成時刻からの経過時間を乗じる。こうして熱の総移動量を求め、現在の温度分布情報を取得する。こうして取得した現在の温度分布情報をＳＤＲＡＭに一時記憶する。そしてＳ１１０８に進みＣＰＵ１０１は、温度センサ３０９〜３１２により測定された温度情報を取得し、Ｓ１１０７で求めた温度分布情報を補正する。
【００５３】
図１２は、実施形態１に係るＭＦＰ１００において、ＣＰＵ１０１が温度センサ３０９〜３１２で計測した温度情報を取得するための処理（図１１のＳ１１０８）を説明するフローチャートである。本実施形態１では温度センサを４個備える構成であるため、図１２のフローチャートも４個の温度センサから温度情報を取得している。
【００５４】
先ずＳ１２０１で、ＣＰＵ１０１は、温度センサ指定レジスタ５０１に「００」を書き込む。本実施形態１では４個の温度センサを備え、各温度センサを指定するために、次のように各温度センサと温度センサ指定レジスタ５０１の設定値を対応付けるものとする。即ち、温度センサ指定レジスタ５０１の値「００」は温度センサ３０９に対応付けられ、同様に「０１」は温度センサ３１０に、「１０」は温度センサ３１１に、そして「１１」は温度センサ３１２にそれぞれ対応付けられるものとする。従ってＳ１２０１では、温度センサ３０９を指定するために、ＣＰＵ１０１は温度センサ指定レジスタ５０１に「００」を書き込む。次にＳ１２０２に進み、ＣＰＵ１０１は、温度情報格納レジスタ５０２に対して温度情報の読み出し要求を発行して、温度センサ３０９で計測した温度情報を取得する。このとき上述したように、温度情報格納レジスタ５０２は、ＣＰＵ１０１からの読み出し要求を検知すると、温度センサ指定レジスタ５０１で指定されている温度センサからの温度情報を取得する。そして、その取得した温度情報を、ＣＰＵ１０１からの読み出し要求の応答データとしてＣＰＵ１０１に出力する。従って、Ｓ１２０２でＣＰＵ１０１は、温度センサ３０９が計測した温度情報を取得することになる。
【００５５】
次にＳ１２０３に進み、ＣＰＵ１０１は、温度センサ３１０で計測した温度情報を取得するために、温度センサ指定レジスタ５０１に「０１」を書き込む。そしてＳ１２０４に進み、ＣＰＵ１０１は、温度情報格納レジスタ５０２に対して温度情報の読み出し要求を発行して温度センサ３１０で計測した温度情報を取得する。次にＳ１２０５に進み、ＣＰＵ１０１は温度センサ３１１で計測した温度情報を取得するために、温度センサ指定レジスタ５０１に「１０」を書き込む。そしてＳ１２０６で、ＣＰＵ１０１は、温度情報格納レジスタ５０２に対して温度情報の読み出し要求を発行し、温度センサ３１１で計測された温度情報を取得する。次にＳ１２０７に進み、ＣＰＵ１０１は、温度センサ３１２で計測された温度情報を取得するために、温度センサ指定レジスタ５０１に「１１」を書き込む。そしてＳ１２０８でＣＰＵ１０１は、温度情報格納レジスタ５０２に対して温度情報の読み出し要求を発行して、温度センサ３１２により計測された温度情報を取得する。以上の処理により、ＣＰＵ１０１は、各温度センサで計測された温度情報、即ち、各ＳＤＲＡＭ、或いは各チャネルの温度情報を取得することができる。こうして取得した各温度センサにより計測された温度情報は、ＳＤＲＡＭに一時保存される。
【００５６】
こうして各ＳＤＲＡＭの温度情報を取得するとＳ１１０９に進みＣＰＵ１０１は、Ｓ１１０８で取得した各温度センサにより計測した温度情報を用いて、図７に示す各領域の温度分布情報を補正する。
【００５７】
図１３は、実施形態１において、温度センサ３０９〜３１２により取得した温度情報を用いて温度分布情報を補正する具体例を説明する図である。
【００５８】
１３００は、温度センサ３０９〜３１２により検出した温度値で、それぞれ５３℃，５５℃，５５℃，５４℃である。尚、各温度センサは、ＳＤＲＡＭ３０１〜３０４のそれぞれの中心に設けられているため、各温度センサにより計測された温度は、図７より各ＳＡＤＲＡＭの中心の領域Ａ５，Ｂ５，Ｃ５，Ｄ５の温度となる。１３０１は図１１のＳ１１０７で取得してＳＤＲＡＭに一時保存された温度分布情報（補正前の温度）の具体例を示す。領域Ａ５の場合は、温度センサ３０９が検出した温度と補正前の温度はともに５３℃で同じであるため、領域Ａ１からＡ９の温度はそのままとする。領域Ｂ５の場合は、温度センサ３１０が検出した温度が５５℃であるのに対して補正前の温度が５４℃である。従って、領域Ｂ１からＢ９までの温度を、それぞれ＋１℃している。他の領域も同様に、領域Ｃ５の温度センサ３１１が検出した温度は、補正前の温度と同じであるため領域Ｃ１からＣ９までの温度はそのままとする。また領域Ｄ５に関しては、温度センサ３１２が検出した温度が５４℃であるのに対して補正前の温度が５５℃となっている。従って、領域Ｄ１からＤ９までの温度をそれぞれ−１℃している。
【００５９】
以上の処理により、例えば図１３の１３０２で示すように、前回の温度分布情報を、現在の各ＳＤＲＡＭの温度により補正した温度分布情報を生成して温度誤差が蓄積されないようにする。
【００６０】
こうして再び図１１に戻り、Ｓ１１０９で補正した温度分布情報を取得するか、又はＳ１１０３で均一の温度分布情報が得られるとＳ１１１０に進む。Ｓ１１１０でＣＰＵ１０１は、その温度分布情報を、現在の時刻情報とともにＨＤＤ１０５のエリア１８１２に格納する。以上がＳ１００３の温度分布情報の生成処理である。
【００６１】
次に再び図１０に戻り、Ｓ１００３の温度分布情報の作成処理を終了するとＳ１００４に進む。
【００６２】
Ｓ１００４でＣＰＵ１０１は、Ｓ１００３で生成された温度分布情報からＳＤＲＡＭ３０１〜３０４のそれぞれについての最高温度であるホットスポットの温度を検出する。そしてＳＤＲＡＭ３０１〜３０４の最高温度をＨＤＤ１０５のエリア１８１５（図１８（Ｂ））の今回のホットスポット温度情報の記憶エリアに記憶する。このとき、今回のホットスポット温度情報の記憶エリアに記憶されていた温度情報は、前回のホットスポット温度情報の記憶エリアに移動する。こうして記憶された温度値は、後述のＳ１００８のリフレッシュレートの更新周期の決定処理で使用される。ここでＳＤＲＡＭ３０１のホットスポットの温度は、領域Ａ１〜Ａ９で最高の温度値である。またＳＤＲＡＭ３０２のホットスポットの温度は、領域Ｂ１〜Ｂ９で最高の温度値である。同様に、ＳＤＲＡＭ３０３，３０４のホットスポットの温度も、それぞれ領域Ｃ１〜Ｃ９の最高の温度値、領域Ｄ１〜Ｄ９の最高の温度値である。
【００６３】
次にＳ１００６に進みＣＰＵ１０１は、各ＳＤＲＡＭのホットスポットの温度値とそれに対応して必要となるオートリフレッシュのレートを決定する処理を実行する。以下、この処理を詳細に説明する。
【００６４】
図１４は、オートリフレッシュのレートと温度の関係を説明する図である。
【００６５】
図１４（Ａ）は、横軸に温度（℃）、縦軸にオートリフレッシュのレート（時間間隔）（μsec）をとって示している。一般にＳＤＲＡＭのデータ保持時間は、温度が上昇するとともに等比級数的に小さくなることが知られている。このため、温度の上昇に伴って、オートリフレッシュのレート（μsec）が短くなっているのが分かる。
【００６６】
図１４（Ｂ）は、この温度とデータ保持のために必要なオートリフレッシュのレートを、２℃刻みで設定したテーブルの一例を示す図である。このリフレッシュレートテーブルはＨＤＤ１０５の１８１３（図１８（Ｂ））に格納されている。図１４（Ｂ）において、１４０１はテーブルのインデックス、１４０２は２℃刻みに分割された温度範囲を示し、１４０３はその温度範囲に対応するオートリフレッシュのレート（μsec）を示している。
【００６７】
図１４（Ｂ）のテーブルを参照して、ホットスポットの温度値からオートリフレッシュのレートを決定する手順を図１５のフローチャートを参照して説明する。
【００６８】
図１５は、図１０のＳ１００６のオートリフレッシュのレートを決定する処理を説明するフローチャートである。
【００６９】
まずＳ１５０１でＣＰＵ１０１は、まずテーブルを参照するためのインデックス値（ＳＤＲＡＭ或いはＨＤＤ１０５に格納している）を初期化する。次にＳ１５０２に進みＣＰＵ１０１は、そのインデックス値に対応する温度範囲をリフレッシュレートテーブル１８１３から取得する。次にＳ１５０３に進みＣＰＵ１０１は、その取得した温度範囲が、Ｓ１００４で取得したホットスポットの温度の温度範囲かどうかを判定する。温度範囲内でなければＳ１５０５に進みＣＰＵ１０１は、インデックス値を１つ加算して、Ｓ１５０２の次の温度範囲の読み出し処理に進む。一方、Ｓ１５０３で温度範囲内であると判定するとＳ１５０４へ進みＣＰＵ１０１は、その温度範囲に対応するオートリフレッシュのレートをテーブル１８１３から取得し、それを求めるオートリフレッシュのレートとする。尚、図１４に示すテーブルの温度範囲は、ＳＤＲＡＭの取り得る温度範囲で設定されているため、図１５のフローチャートでは、いずれかのインデックス値で必ずＳ１５０３からＳ１５０４に進む状態が発生することになる。
【００７０】
こうして図１０のＳ１００６で、ホットスポットの温度に基づいて各ＳＤＲＡＭのオートリフレッシュのレートが決定されると図１０のＳ１００７に進む。
【００７１】
Ｓ１００７でＣＰＵ１０１は、Ｓ１００６で決定されたオートリフレッシュのレートをメモリコントローラ３０５〜３０８に対応するオートリフレッシュレジスタ５０７〜５１０（図５）に設定する。またそれらオートリフレッシュのレートを、ＨＤＤ１０５のエリア１８１８（図１８（Ｂ））に格納する。これによりメモリコントローラ３０５〜３０８はそれぞれ、オートリフレッシュレジスタ５０７〜５１０に設定された周期でＳＤＲＡＭ３０１〜３０４に対してオートリフレッシュコマンドを発行することになる。
【００７２】
次にＳ１００８に進みＣＰＵ１０１は、次にオートリフレッシュのレートを更新する周期を決定する。ここではＳＤＲＡＭ３０１〜３０４全体での一番高い温度を基に、その単位時間当たりの温度変化の大きさに着目する。そして単位時間当たりの温度変化が大きい場合は、短い更新周期を設定し、温度変化が小さい場合は長い更新周期を設定する。こうしてオートリフレッシュのレートを更新する頻度を動的に変更する。これにより、温度変化が少ない場合の不要なオートリフレッシュのレートの更新を抑制することができる。
【００７３】
図１６は、単位時間当たりの温度変化（以降、温度変化率）と更新周期との関係を示す図である。図１６において、横軸は温度変化率であり、縦軸はオートリフレッシュのレートを更新する更新周期である。
【００７４】
本実施形態１では、温度変化率が高くなると更新周期を短くすることにより、温度変化が大きい場合のオートリフレッシュのレートの精度を保つようにしている。またＳ１００３の温度分布情報の生成処理で使用される動作モードに応じた発熱情報は、その動作モードの一定時間における平均値であるため局所時間的には大きな発熱状態になり得る。このためＭＦＰ１００の動作モードの内、ＳＯＣダイ２０１の発熱量の大きい動作モードに対して、より大きなマージンをとって更新周期を短くする。例えば、プリントモードでは、アイドルモードよりもＳＯＣダイ２０１の発熱量が大きいため、プリントモードでの温度変化率と更新周期の関係を示す特性曲線１６０１で示すように、アイドルモードの特性曲線１６０４よりも短い更新周期を設定する。同様にスキャンモードでのＳＯＣダイ２０１の発熱量は、プリントモードでのそれよりもやや低い。よって、スキャンモードでの特性曲線１６０２は、プリントモードの特性曲線１６０１よりもやや長い更新周期を設定する。またブートモードでの発熱量は、スキャンモードでのそれよりもやや低く、アイドルモードの場合よりは高くなる。従って、ブートモードの特性曲線１６０３は、スキャンモードの特性曲線１６０２よりやや更新周期を長くし、アイドルモードの特性曲線１６０４よりも更新周期を短く設定している。
【００７５】
図１６に示す温度変化率と更新周期の関係は、各動作モード毎に予めテーブル化してＨＤＤ１０５のテーブル１８１４（図１８（Ｂ））として格納している。
【００７６】
図１７（Ａ）〜（Ｄ）は、各動作モード毎にテーブル化した温度変化率と更新周期の関係をの一例を示す図である。ここで、更新周期は、Ｓ１００９でタイムカウンタに設定する値で制御するので、テーブルにはカウンタ値を更新周期として用意する。このテーブルは、ＨＤＤ１０５にテーブル１８１６として格納されている。
【００７７】
図１７（Ａ）は、温度変化率とプリントモード時に使用する更新周期との関係を表すテーブルの一例を示している。図１７（Ａ）において、１７０２は温度変化率の取り得る範囲を分割してリスト化したもので、１７０３はそれらに対応するプリントモード時の更新周期リスト、１７０１は各リストを関連付けるインデックスである。
【００７８】
図１７（Ｂ）は、温度変化率とスキャンモード時に使用する更新周期との関係を表すテーブルの一例を示す図である。図１７（Ｂ）において、１７１２は温度変化率の取り得る範囲を分割したもので、１７１３は温度変化率に対応するスキャンモード時の更新周期を示す。１７１１はインデックスである。図１７（Ｃ）は、温度変化率とブートモード時に使用する更新周期との関係を表すテーブルの一例を示す図である。図１７（Ｃ）において、１７２２は温度変化率の取り得る範囲を分割したもので、１７２３は温度変化率に対応するブートモード時の更新周期を示す。１７２１はインデックスである。図１７（Ｄ）は、温度変化率とアイドルモード時に使用する更新周期との関係を表すテーブルの一例を示す図である。図１７（Ｄ）において、１７３２は温度変化率の取り得る範囲を分割したもので、１７３３は温度変化率に対応するアイドルモード時の更新周期を示す。１７３１はインデックスである。
【００７９】
図１８（Ａ）は、図１０のＳ１００８のリフレッシュレートの更新周期を決定する処理を説明するフローチャートである。
【００８０】
先ずＳ１８００でＣＰＵ１０１は、温度変化率を取得する。具体的には、今回Ｓ１００４で求めたホットスポット温度値と、前回のＳ１００４で検出してＨＤＤ１０５のエリア１８１５に格納されているホットスポットの温度値を読み出し、２つの温度値の差分を算出して温度変化値を取得する。そして、前回のＳ１００９で決定したリフレッシュレートの更新周期をＨＤＤ１０５のエリア１８１７（図１８（Ｂ））から読み出し、その更新周期で、算出された温度差を除算することによって温度変化率を求める。
【００８１】
次にＳ１８０１に進みＣＰＵ１０１は、ＨＤＤ１０５のエリア１８１１に格納された現在の動作モードの情報を取得する。次にＳ１８０２に進みＣＰＵ１０１は、Ｓ１８０１で取得した動作モードに対応するテーブルを、ＨＤＤ１０５のエリア１８１６に格納されたテーブル（図１７（Ａ）〜（Ｄ））から選択する。次にＳ１８０３に進みＣＰＵ１０１は、Ｓ１８０２で選択したテーブルの温度変化率の範囲の中から、Ｓ１８００で取得した温度変化率に対応する更新周期を取得する。こうしてＳ１００８のリフレッシュレートの更新周期決定処理を終了する。
【００８２】
そして図１０のＳ１００９に進みＣＰＵ１０１は、Ｓ１００８で決定されたリフレッシュ更新周期をＨＤＤ１０５のエリア１８１７（図１８（Ｂ））に記憶するとともに、エリア１８１１のタイムカウンタ（Ｃｎｔ）に設定する。こうして記憶されたリフレッシュ更新周期は、次のループのＳ１００８で使用される。次にＳ１０１０に進みＣＰＵ１０１は、電源オフの要求が発生しているかどうか判定し、そうであれば、この処理を終了する。但し、通常は電源オフの要求が発生していないのでＳ１００２へ戻り、タイムカウンタ（Ｃｎｔ）に設定された更新周期が経過するまでＳ１００２→Ｓ１００５→Ｓ１００２の処理を繰り返し実行する。Ｓ１００５でＣＰＵ１０１は、タイムカウンタ（Ｃｎｔ）の値を１つずつ減算し、カウンタ値が「０」、即ち、Ｓ１００９で設定されたリフレッシュレートの更新周期が経過するとＳ１００３〜Ｓ１００４，Ｓ１００６〜Ｓ１００９の処理を行う。
【００８３】
以上説明したように本実施形態１によれば、ＷｉｄｅＩＯメモリデバイスの各ＳＤＲＡＭの最高温度を計測して、その温度に対応する各ＳＤＲＡＭのリフレッシュのレートを決定する。これにより、ＳＤＲＡＭの温度に応じた周期で、各対応するＳＤＲＡＭのリフレッシュを行うことができる。このため、従来のように一律にリフレッシュのレートを設定する場合と比べて、オートリフレッシュの回数が減少し、その分、ＳＤＲＡＭ１１３のメモリ帯域を増加させることができる。
【００８４】
さらに、各ＳＤＲＡＭの所定時間当たりの温度変化率と動作モードに応じて、上述のリフレッシュのレートを決定する更新周期を変更することにより、各ＳＤＲＡＭに対する最も効率的なリフレッシュのレートを決定するタイミングを決めることができる。これにより、リフレッシュのレートの更新の回数を適正かつ効率良く行うことができるため、その分、ＣＰＵの負荷を軽減して消費電力の増大やＳＯＣダイの発熱を抑えることができるという効果がある。
【００８５】
［実施形態２］
次に本発明の実施形態２を説明する。尚、実施形態２に係るＭＦＰ１００の構成等は前述の実施形態１と同様であるため、その説明を省略する。
【００８６】
前述の実施形態１では、オートリフレッシュのレートの更新周期を図１７に示すようなテーブルを参照したが、この実施形態２では、前述のようなテーブルを参照しない場合で説明する。
【００８７】
図１９は、実施形態２に係るリフレッシュレートの更新周期を決定する処理を説明する図である。
【００８８】
図１９（Ａ）は、例えば図９において、動作モードがアイドルモードからプリントジョブを受けてプリントモードに遷移した部分（図９の時間Ｔ２）を詳細に示す図である。
【００８９】
一般に、動作モードが変更する場合は温度変化率が大きく、同じ動作モードが継続する時間が長くなるほど温度変化率は小さくなると考えられる。従って、この実施形態２では、動作モードが変更されたときは既定の更新周期を設定し、２回目のリフレッシュレートの更新からは、温度変化率と更新周期に従って、新たに更新周期を決定する。
【００９０】
図１９（Ａ）において、既定の周期を１０ｍｓｅｃとする。そして２回目のリフレッシュレートの更新からは、直前の温度変化率が続いても、次のオートリフレッシュレートの更新時に２℃以上の温度差が生じないように更新周期を決める。これを関数で表すと次式（１）になる。
【００９１】
Ｐｅｒｉｏｄ（ｉ）＝（２／Δｔ）×Ｐｅｒｉｏｄ（ｉ−１）  …式（１）
ここでＰｅｒｉｏｄ（ｉ）は、動作モードが変更してからｉ番目のオートリフレッシュレートの更新時に設定する更新周期、Δｔは、前回のオートリフレッシュレートの更新からの温度変化分である。
【００９２】
図１９（Ａ）では、時間ｔ０で動作モードが変更されると、オートリフレッシュのレートの更新周期を１０ｍｓｅｃに設定している。そして１０ｍｓｅｃが経過して次のリフレッシュレートの更新タイミングになると、温度が２℃上昇している。従って、時間ｔ１では、Δｔ＝２．０，Ｐｅｒｉｏｄ（０）＝１０（ｍｓｅｃ）となり、時間ｔ１における設定周期は、式（１）より、Ｐｅｒｉｏｄ（１）＝１０ｍｓｅｃとなる。同様に、時間ｔ２では温度が１．０℃上昇しているので、Δｔ＝１．０，Ｐｅｒｉｏｄ（１）＝１０となり、時間２における更新周期は、式（１）より、Ｐｅｒｉｏｄ（２）＝２０ｍｓｅｃとなる。更に、時間ｔ３では温度が１．５℃上昇しているので、Δｔ＝１．５，Ｐｅｒｉｏｄ（２）＝２０となり、時間ｔ３における設定周期は、式（１）より、Ｐｅｒｉｏｄ（３）＝２６．７ｍｓｅｃとなる。
【００９３】
図１９（Ｂ）は、上述した各時間での温度変化と、そこで決定された更新周期を表にした図である。
【００９４】
ここで図１９（Ｃ）に示すように、動作モード変更時の動作モードの組み合わせに応じて、モード変更時の規定周期を設定しても良い。動作モード変更時の温度変化の大きさは、その前後でのＳＯＣダイ２０１の発熱量の変化の大きさに比例する。従って、動作モードが変更された時のＳＯＣダイ２０１の発熱量の変化量を予め求めておき、その変化量に応じて予め既定周期を定めておけば良い。
【００９５】
以上説明したように実施形態２によれば、動作モードの変化と、温度変化量に応じてリフレッシュレートの更新周期を決定するので、処理を簡略化でき、リフレッシュレートの更新周期を、より早く決定できるという効果がある。
【００９６】
［実施形態３］
次に本発明の実施形態３を説明する。尚、実施形態３に係るＭＦＰ１００の構成等は前述の実施形態１と同様であるため、その説明を省略する。
【００９７】
前述の実施形態１では、オートリフレッシュのレートの更新周期を図１７に示すようなテーブルを参照したが、この実施形態３では、前述のようなテーブルを参照せずに、逐次新たな更新周期を算出する例を説明する。
【００９８】
図２０は、実施形態３に係るリフレッシュレートの更新周期を決定する処理を説明する図である。
【００９９】
図２０（Ａ）は、図１９（Ａ）と同様に、例えば図９において、動作モードがアイドルモードからプリントジョブを受けてプリントモードに遷移した部分（時間Ｔ２）を詳細に示した図である。ここでは、動作モードが長く続いたとき一定の値に漸近する温度（所定温度）２００１と、現在の温度との温度差をΔＴとすると、現在の温度変化率は、ΔＴに比例するという性質に基づいている。オートリフレッシュレートの精度を維持するためには、オートリフレッシュレートの更新周期を温度変化率に比例させれば良い。従って、オートリフレッシュレートの更新周期を、温度変化率に比例させればよい。以上の関係から、オートリフレッシュレートの更新周期は、漸近温度２００１との温度差ΔＴに反比例させて制御すれば良いことになる。
【０１００】
この更新周期を決定する式を関数で表すと式（２）になる。
【０１０１】
Ｐｅｒｉｏｄ（ｉ）＝（１／ΔＴ）×２００  …式（２）
ここでＰｅｒｉｏｄ（ｉ）は、ｉ番目のオートリフレッシュレートの更新時に設定する更新周期で、「２００」は、説明の簡単のために選んだ係数である。
【０１０２】
時間ｔ０ではΔＴ＝２０℃であるため、規定の更新周期Ｐｅｒｉｏｄ（０）は、１０ｍｓｅｃとなる。次に１０ｍｓｅｃ後の時間ｔ１ではΔＴ＝１２℃であるため、式（２）より更新周期Ｐｅｒｉｏｄ（１）は約１６．７ｍｓｅｃとなる。次に１６．７ｍｓｅｃ後の時間ｔ２ではΔＴ＝８℃であるため、更新周期Ｐｅｒｉｏｄ（２）は、式（２）より２５ｍｓｅｃとなる。更に時間ｔ３ではΔＴ＝４℃であるため、更新周期Ｐｅｒｉｏｄ（３）は５０ｍｓｅｃとなる。
【０１０３】
図２０（Ｂ）は、この結果を表で表した図である。
【０１０４】
漸近温度２０００は、動作モードに対応するＳＯＣダイ２０１の発熱量と周囲温度によって一意に決まる。また周囲温度は、ＭＦＰ１００の起動直後、図１１のフローチャートのＳ１１０２により取得できる。様々の周囲温度に対する各動作モードの漸近温度２０００をＨＤＤ１０５に予め保持しておき、動作モードが変更される時に、その漸近温度を読み出すことにより、温度差ΔＴを取得することができる。
【０１０５】
図２０（Ｂ）は、時系列に更新周期を決定する方法を示す表である。
【０１０６】
以上説明したように実施形態３によれば、動作モードが長く続いたとき一定の値に漸近する漸近温度（所定温度）とその漸近温度と現在の温度との温度差に応じて、リフレッシュレートの更新周期を決定する。これにより処理を簡略化でき、各動作モードでのリフレッシュレートの更新周期を、より早く決定できるという効果がある。
【０１０７】
以上説明したように本実施形態によれば、最高温度に対応するオートリフレッシュレートを決める従来例に比べて、必要十分なオートリフレッシュレートを動的に更新するので利用可能なＳＤＲＡＭの帯域が増加するという効果がある。
【０１０８】
また、ＤＲＡＭの温度が安定しているときのオートリフレッシュレートの更新頻度を低下させることにより、リフレッシュレートを更新するための負荷を低減できるという効果がある。
【０１０９】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015041395.tif 000003
【図２】
2015041395.tif 000004
【図３】
2015041395.tif 000005
【図４】
2015041395.tif 000006
【図５】
2015041395.tif 000007
【図６】
2015041395.tif 000008
【図７】
2015041395.tif 000009
【図８】
2015041395.tif 000010
【図９】
2015041395.tif 000011
【図１０】
2015041395.tif 000012
【図１１】
2015041395.tif 000013
【図１２】
2015041395.tif 000014
【図１３】
2015041395.tif 000015
【図１４】
2015041395.tif 000016
【図１５】
2015041395.tif 000017
【図１６】
2015041395.tif 000018
【図１７】
2015041395.tif 000019
【図１８】
2015041395.tif 000020
【図１９】
2015041395.tif 000021
【図２０】
2015041395.tif 000022