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