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