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