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