【文献】
後藤 弘茂,“次世代&次々世代 メモリの姿が見えてきた”,DOS/V POWER REPORT,日本,株式会社インプレスジャパン,2012年 6月29日,第22巻第8号,PP. 156-160
(58)【調査した分野】(Int.Cl.,DB名)
前記決定手段により決定された前記メモリ領域の先頭アドレスを、前記機能に対応する機能モジュールに設定して当該機能モジュールを起動する起動手段を更に有することを特徴とする請求項1に記載の情報処理装置。
【発明を実施するための形態】
【0011】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。尚、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。尚、本実施形態に係るWideIOを備える情報処理装置として、スキャン、プリンタ、コピーなどの複数の機能を有するMFP(デジタル複合機)を例に説明する。
【0012】
[実施形態1]
図1は、本実施形態1に係るMFP(デジタル複合機)の全体構成を示すブロック図である。
【0013】
MFP100は、画像入力デバイスであるスキャナ116と画像出力デバイスであるプリンタエンジン117とを有し、これらはデバイスインターフェース(I/F)107を介してシステムバス118に接続されている。そしてCPU101の制御の下に、スキャナ116による原稿の画像の読み取りや、プリンタエンジン117による印刷を行うことができる。またMFP100は、LAN114や公衆回線(PSTN)115と接続しており、これらを介してLANや公衆回線に接続された外部機器のデバイス情報や画像データの入出力を行うことができる。
【0014】
CPU101は、ROM106に記憶されたブートプログラムによりHDD105からWideIO−SDRAM113に展開されたプログラムを実行することにより、このMFP100の動作を制御している。操作部102は、キーボードやタッチパネル等の入力部や表示部を有し、ユーザからの指示を受付け、また表示部によりユーザへのメッセージや処理の結果などを表示する。ネットワークI/F103は、例えばLANカード等で実現され、LAN114を介して外部機器との間でデバイス情報や画像データの入出力を行う。モデム104は、公衆回線115を介して外部機器との間で制御情報や画像データの入出力を行う。HDD105はハードディスクドライブであり、OSや各種アプリケーションプログラム等を記憶し、また入力された画像データ等を格納する。ROM106は、ブートプログラムや各種データを記憶している。デバイスI/F107は、スキャナ116やプリンタエンジン117と接続し、これらスキャナ116やプリンタエンジン117とシステムバス118との間で画像データの転送処理を行う。
【0015】
編集用画像処理部108は、画像データの回転や変倍、色処理、トリミング・マスキング、2値変換、多値変換、白紙判定等の各種画像処理を行う。プリント画像処理部109は、プリンタエンジン117に出力する画像データに対して、そのプリンタエンジン117に応じた画像処理等を行う。スキャン画像処理部110は、スキャナ116から入力される画像データに対して、補正、加工、編集等の各種処理を行う。RIP(ラスタイメージプロセッサ)111は、ページ記述言語(PDL)コードをイメージデータに展開する。WideIOコントローラ112は、例えばCPU101や各画像処理部からのメモリアクセスコマンドをWideIO−SDRAM113が解釈可能なコマンドに変換して、WideIO−SDRAM113に対してアクセスを行う。WideIO−SDRAM113は、CPU101により実行されるプログラムを格納し、またCPU101が動作するためのシステムワークメモリを提供している。また、入力された画像データを一時記憶するための画像メモリでもある。システムバス118は上述した各部とCPU101とを接続し、制御信号やデータ等を転送している。
【0016】
図2は、実施形態1に係るWideIO−SDRAM113の構造を示す模式図で、
図2(A)はWideIO−SDRAMとSOCダイを側面から見た側面図であり、
図2(B)は上側から見た上面図である。
【0017】
SOCダイ201は、本実施形態1では例えばCPU101やデバイスI/F107,RIP111、各画像処理部108〜110等を備えるものである。WideIO−SDRAM202〜205はSOCダイ201の上に積層され、シリコン貫通ビア(TSV)206によりSOCダイ201と接続されている。WideIO−SDRAMは、必要とするメモリ容量に応じて最大4層まで積層することができ、
図2(A)は4層を積層した例を示す。SOCパッケージ207は、SOCダイ201とWideIO−SDRAM202〜205とを1つのパッケージに収容したものである。WideIO−SDRAMI/F208は、
図2(B)に示されるようにSOCダイ201やWideIO−SDRAM202〜205の中央部に配置される。
【0018】
図3は、実施形態1に係るWideIOコントローラ112の内部構成を示すブロック図である。
【0019】
図3において、WideIOコントローラ112は、
図1に示したようにシステムバス118とWideIO−SDRAM113との間に接続されている。更に、
図1では図示しない温度センサ309〜312と接続される。
【0020】
SDRAM301〜304は、WideIO−SDRAM113に設けられた4つのメモリであり、図示されている通り、各々が専用のインターフェースを備える。これらの専用インターフェースは、上述したようにSOCダイ201に積層されるWideIO−SDRAM202〜205の4チャネルに相当し、この専用インターフェースは
図2(B)のWideIO−SDRAMI/F208に相当している。メモリコントローラ305〜308のそれぞれは、システムバス118からのメモリアクセスコマンドを、接続されている各対応するSDRAMに対して、そのSDRAMが解釈可能なコマンドに変換してアクセスする。温度センサ309〜312は、SDRAM301〜304の各対応するSDRAMの温度を計測している。
【0021】
レジスタI/F313は、不図示のレジスタ専用バスを経由してCPU101からのアクセスを受け付ける。レジスタ314は、温度取得I/F315が温度センサ309〜312から取得した各温度情報や、CPU101から設定されるメモリコントローラ305〜308の各動作モードの設定情報を記憶する。温度取得I/F315が、後述する温度情報格納レジスタ402(
図4)からの温度情報の取得要求を検知すると、後述する温度センサ指定レジスタ401(
図4)で指定された温度センサからの温度情報を取得するコマンドを発行して温度情報を取得する。こうして取得した温度情報は、後述する温度情報格納レジスタ402へ格納される。
【0022】
図4は、実施形態1に係るレジスタ314の構成を説明する図である。
【0023】
レジスタ314は、温度センサ指定レジスタ401、温度情報格納レジスタ402、メモリコントローラ動作モード設定レジスタ403〜406、メモリアクセス量順番レジスタ407を有している。温度センサ指定レジスタ401は、CPU101が温度センサの温度情報を取得したい場合に、その対象となる温度センサを指定するための情報を格納するレジスタである。本実施形態1においては、4個の温度センサを備える例を用いて説明しているため2ビットのレジスタで構成され、2ビットの各状態により4個の温度センサのそれぞれを特定することができる。温度情報格納レジスタ402は、CPU101からの温度情報の取得要求を入力すると、温度センサ指定レジスタ401で指定された温度センサの温度情報を取得するように温度取得I/F315に対して要求する。そして、温度取得I/F315から取得した温度情報を格納し、CPU101からの温度情報の読み出し要求に応じて、そこに格納している温度情報を出力する。
【0024】
図9は、実施形態1において、温度センサ309〜312によって取得した温度情報の一例を示す図である。
図9では、チャネル4に相当するSDRAM304の温度センサ312の温度が最も高く、チャネル1に相当するSDRAM301の温度センサ309の温度が最も低くなっている。
【0025】
メモリコントローラ動作モード設定レジスタ403〜406のそれぞれは、各メモリコントローラ305〜308の動作モードを設定するためのレジスタで、各SDRAMのメモリ制御に関する設定値が記憶されている。ここでメモリ制御に関する設定値としては、例えば、DRAMのリフレッシュ動作の時間間隔や、メモリアクセスに関するタイミングパラメータ等がある。尚、ここでメモリコントローラ動作モード設定レジスタ403は、メモリコントローラ305の動作モードを設定し、メモリコントローラ動作モード設定レジスタ404はメモリコントローラ306の動作モードを設定する。またメモリコントローラ動作モード設定レジスタ405はメモリコントローラ307の動作モードを設定し、メモリコントローラ動作モード設定レジスタ406はメモリコントローラ308の動作モードを設定する。
【0026】
また、メモリアクセス量順番レジスタ407は、SDRAM301〜304へアクセスする機能モジュールごとに、その機能モジュールが必要とするSDRAMへのメモリアクセス量が多い順にその順番を昇順で格納している。尚、本実施形態1では、
図1に示す編集用画像処理部108、プリント画像処理部109、スキャン画像処理部110及びRIP111が、これら機能モジュールに相当する。CPU101は、このメモリアクセス量順番レジスタ407の値(順番)を参照して、各機能モジュールに対するメモリの割り当てを行う。このメモリアクセス量順番レジスタ407の値は、実施形態1に係るMFP100の設計時に予め決定された値であり、起動時に、CPU101がその順番をメモリアクセス量順番レジスタ407に書き込むことにより設定される。
【0027】
図5は、実施形態1に係るSDRAM301〜304に対して割当てられたアドレス領域を示すアドレスマップを説明する図である。
【0028】
本実施形態1においては、SDRAM301にはアドレス領域1が、SDRAM302にはアドレス領域2が、SDRAM303にはアドレス領域3が、SDRAM304にはアドレス領域4がそれぞれ割り当てられているものとする。但し、各アドレス領域のサイズは
図5に図示したものに限定されるものではない。尚、前述したCPU101のプログラムは、SDRAM301のアドレス領域1に展開される。
【0029】
図6は、
図2のWideIO−SDRAM202〜205とSOCダイ201の物理的な位置関係を、よりわかり易く説明するSOCパッケージ207の俯瞰図である。
【0030】
SOCダイ201は、CPU101やデバイスI/F107、RIP111、前述の画像処理部108〜110等を含んでいる。SOCパッケージ207の平面を4分割した時の左上、右上、右下、左下がそれぞれ
図2(B)のチャネル1〜4に相当する。また同様に、4分割した領域は、
図3のSDRAM301〜304にも相当している。前述したように、WideIO−SDRAM113は、SOCダイ201の上に積層されるメモリである。また、本実施形態1においては、SDRAM301〜304の各デバイスは、
図6のようにSOCダイ201を4分割した領域の各上部にそれぞれ4層で積層されているものとする。SDRAM301〜304の各デバイスには、それぞれのメモリの内部温度が計測できるように、温度センサ309〜312が内蔵されている。但し、各SDRAMの配置や温度センサの配置は
図6に限定されるものではなく、一例に過ぎない。また、温度センサ309〜312はSOCダイ201の内部に備えられる構成であっても良いし、WideIO−SDRAM113のメモリ内部に備えられる構成であっても良い。
【0031】
図7は、実施形態1に係るMFP100において、CPU101が温度センサ309〜312で計測した温度情報を取得するための処理を説明するフローチャートである。本実施形態1では温度センサを4個備える構成であるため、
図7のフローチャートも4個の温度センサから温度情報を取得している。尚、この処理を実行するプログラムはHDD105にインストールされており、実行時にSDRAM301に展開され、そのプログラムをCPU101が実行することにより、この処理が実現される。
【0032】
先ずS701で、CPU101は、温度センサ指定レジスタ401に「00」を書き込む。本実施形態1では4個の温度センサを備え、各温度センサを指定するために、次のように各温度センサと温度センサ指定レジスタ401の設定値を対応付けるものとする。即ち、温度センサ指定レジスタ401の値「00」は温度センサ309に対応付けられ、同様に「01」は温度センサ310に、「10」は温度センサ311に、そして「11」は温度センサ312にそれぞれ対応付けられるものとする。従ってS701では、温度センサ309を指定するために、CPU101は温度センサ指定レジスタ401に「00」を書き込む。次にS702に進み、CPU101は、温度情報格納レジスタ402に対して温度情報の読み出し要求を発行して、温度センサ309で計測した温度情報を取得する。このとき上述したように、温度情報格納レジスタ402は、CPU101からの読み出し要求を検知すると、温度センサ指定レジスタ401で指定されている温度センサからの温度情報を取得する。そして、その取得した温度情報を、CPU101からの読み出し要求の応答データとしてCPU101に出力する。従って、S702でCPU101は、温度センサ309が計測した温度情報を取得することになる。
【0033】
次にS703に進み、CPU101は、温度センサ310で計測した温度情報を取得するために、温度センサ指定レジスタ401に「01」を書き込む。そしてS704に進み、CPU101は、温度情報格納レジスタ402に対して温度情報の読み出し要求を発行して温度センサ310で計測した温度情報を取得する。次にS705に進み、CPU101は温度センサ311で計測した温度情報を取得するために、温度センサ指定レジスタ401に「10」を書き込む。そしてS706で、CPU101は、温度情報格納レジスタ402に対して温度情報の読み出し要求を発行し、温度センサ311で計測された温度情報を取得する。次にS707に進み、CPU101は、温度センサ312で計測された温度情報を取得するために、温度センサ指定レジスタ401に「11」を書き込む。そしてS708でCPU101は、温度情報格納レジスタ402に対して温度情報の読み出し要求を発行して、温度センサ312により計測された温度情報を取得する。以上の処理により、CPU101は、各温度センサで計測された温度情報、即ち、各SDRAM、或いは各チャネルの温度情報を取得することができる。
【0034】
図8は、実施形態1に係るMFPにおいて、ジョブを実行する際に、使用するメモリチャネル(SDRAM)を決定する処理を説明するフローチャートである。尚、この処理を実行するプログラムはHDD105にインストールされており、実行時にSDRAMに展開され、そのプログラムをCPU101が実行することにより、この処理が実現される。
【0035】
まずS801で、CPU101は各温度センサの温度情報を取得する。CPU101による温度情報の取得は、
図7のフローチャートを参照して説明した手順により実行される。本実施形態では、S801で取得した温度情報は、例えば
図9に示されるような値であるとして説明する。即ち、温度センサ309が検知した温度情報は50℃、温度センサ310が検知した温度情報は60℃、温度センサ311が検知した温度情報は65℃、温度センサ312が検知した温度情報は70℃であるとする。
【0036】
次にS802に進み、CPU101は、S801で取得した温度情報を基に、最も低温のSDRAMを特定する。本実施形態では、
図9から明らかなように、S801において取得した温度情報で最も低温なのは温度センサ309の50℃である。従って、ここでは、SDRAM301が最も低温のSDRAMであると特定される。
【0037】
次にS803に進み、CPU101は、S802で特定した最も低温のSDRAMのアドレス領域を参照して、そのSDRAMに、動作させたい画像処理部が必要とするメモリサイズに相当するメモリ領域を確保できるか判定する。即ち、SDRAM301に割り当てられたアドレス0x0000_0000〜0x2000_0000から、その画像処理部が必要とするメモリサイズを確保できるか否かを判定する。ここでCPU101が、そのSDRAMに、必要とするメモリサイズのメモリ領域を確保することができると判定した場合はS804に進む。S804でCPU101は、最も低温のSDRAMにメモリ領域を確保してS805に進む。S805でCPU101は、その確保したSDRAMのメモリ領域の先頭アドレスを、動作させたい画像処理部のレジスタへ設定する。そしてS806に進み、CPU101は、その画像処理部を起動し、操作部102等から指定されたジョブに必要な画像処理等を実施する。この画像処理部の起動とは、例えば、画像処理部に備えられるイネーブルレジスタの設定値をイネーブル状態にすることである。
【0038】
ここで、画像処理部においてメモリ領域を使用する処理について簡単に説明する。ここで画像処理部は、前述の画像編集用画像処理部108、プリント画像処理部109、スキャン画像処理部110が含まれる。この画像処理部には、スムージング処理や像域判定処理等で行われる各種フィルタ処理等が備えられる。このフィルタ処理では、通常、ラスタ形式で入力される画像データを、フィルタのウインドウ幅のライン数だけ格納するバッファが必要となる。この所定ラインを格納するためのバッファを、本実施形態ではWideIOのSDRAMの領域を用いて実現するように構成される。
【0039】
一方、S803で、CPU101は、そのSDRAMで、必要とするメモリサイズのメモリ領域を確保できないと判定した場合はS807に進み、CPU101は、S801で取得した温度情報を基に、2番目に低温のSDRAMを特定する。本実施形態では、
図9の例では、2番目に低温なのは温度センサ310の60℃であるため、SDRAM302が2番目に低温なSDRAMであると特定できる。
【0040】
次にS808に進み、CPU101は、S807で特定した2番目に低温なSDRAMのアドレス領域を参照して、そのSDRAMに、動作させたい画像処理部が必要とするメモリサイズに相当するメモリ領域を確保できるかを判定する。即ち、SDRAM302に割り当てられたアドレス0x2000_0000〜0x4000_0000から、その画像処理部が必要とするメモリサイズを確保できるか否かを判定する。ここでCPU101が、そ
のSDRAMに、必要とするメモリサイズのメモリ領域を確保できると判定した場合はS809に進み、CPU101は、その2番目に低温なSDRAMにメモリ領域を確保してS805に進む。S805、S806の処理は前述した処理と同様であるため、その説明を省略する。
【0041】
一方、S808でCPU101が、2番目に低温なSDRAMに必要なメモリサイズのメモリ領域を確保することができないと判定した場合はS810に進み、CPU101は、S801で取得した温度情報を基に、3番目に低温のSDRAMを特定する。本実施形態では、
図9から、3番目に低温なのは温度センサ311の65℃である。従って、SDRAM303が3番目に低温なSDRAMであると特定することができる。
【0042】
次にS811に進み、CPU101は、S8
10で特定した3番目に低温なSDRAMのアドレス領域を参照して、そのSDRAMに、動作させたい画像処理部が必要とするメモリサイズのメモリ領域を確保できるか否かを判定する。即ち、SDRAM303に割り当てられたアドレス0x4000_0000〜0x6000_0000から、その画像処理部が必要とするメモリサイズに相当するメモリ領域を確保できるかを判定する。ここでCPU101が、必要なメモリサイズのメモリ領域を確保できると判定した場合はS812に進み、CPU101は、その3番目に低温なSDRAMにメモリ領域を確保してS805に進む。S805、S806の処理は前述した処理と同様であるため、その説明を省略する。
【0043】
一方、S811で、CPU101が、3番目に低温なSDRAMに、必要とするメモリサイズのメモリ領域を確保できないと判定した場合はS813に進み、CPU101は、4番目に低温なSDRAM304を特定する。そしてそのSDRAM304に割り当てられたアドレス0x6000_0000〜0x8000_0000に、その画像処理部が必要とするメモリサイズのメモリ領域を確保してS805に進む。尚、S813で、SDRAM304に、必要とするメモリサイズのメモリ領域を確保できないときはエラー終了するようにしても良い。
【0044】
尚、S805で、画像処理部のレジスタに、その先頭アドレスがセットされたメモリ領域は、その画像処理部による処理が終了するとCPU101により解放される。
【0045】
また、各メモリごとに、確保されているメモリ領域の数を記憶しておき、各メモリごとに確保されているメモリ領域の数も考慮して、動作させたい画像処理部が必要とするメモリ領域を割り当てるSDRAMを決定するようにしても良い。例えば、
図8のS803で最も低温のSDRAMに、動作させたい画像処理部が必要とするメモリ領域を確保できると判定しても、そのSDRAMのメモリ領域の数が所定数以上であれば、2番目に低温のSDRAMを特定するようにしても良い。これは、そのメモリ(SDRAM)に確保されているメモリ領域の数が所定数以上になると、今後、そのメモリの温度が上昇する可能性があると判断でき、事前に、そのような事態を防止するための対策をとるためである。
【0046】
以上説明したように本実施形態によれば、WideIOメモリデバイスの各DRAMの温度を取得し、温度が低いSDRAMに優先的に、ジョブを実行するために動作させる必要がある画像処理部が必要とするメモリ領域を確保するようにしている。これにより、高温のSDRAMの更なる温度上昇を防ぐことができるため、DRAMの温度上昇に伴う、消費電力の低減やメモリアクセスの性能低下の抑制が可能となる。
【0047】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(又はCPUやMPU等)がプログラムを読み出して実行する処理である。