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