以下の実施形態では、電子機器としての一例であるプリンタに備えられる情報処理装置(ここでは、プリンタコントローラ)を例にとり説明する。しかしながら、本発明に係る情報処理装置はプリンタコントローラに限定されるものではない。本発明は、PC、AV機器、制御機器等の電子機器一般に備えられる情報処理装置、すなわち、CPUと、CPUにおける動作手順を表す各種プログラムおよび該プログラムで用いるデータを格納するメインメモリと、メインメモリとは独立したサブメモリを持つ情報処理装置であれば適用することができる。
〔実施形態1〕
本発明の情報処理装置および制御装置の一実施形態について図1ないし図4に基づいて説明すると以下の通りである。図1は、本実施形態に係るプリンタコントローラ(情報処理装置)1の構成、および、プリンタコントローラ1を含むプリンタ2およびパーソナルコンピュータ3との関係を示すブロック図である。
図1に示されるように、パーソナルコンピュータ3およびプリンタ2は、例えばLAN(local area network)等の通信ネットワーク4により接続されている。パーソナルコンピュータ3は、プリンタ2に対して、各種の指示およびデータを送信する。例えば、パーソナルコンピュータ3は、プリンタ2において印刷出力を行う場合、印刷出力する文書等を表すプリンタ言語データおよび印刷出力要求をプリンタ2に対して出力する。また、パーソナルコンピュータ3は、プリンタ2が使用可能であるか否かを問い合わせる状態通知要求(プリンタ2が正常に動作できる状態か否かの通知を指示する要求)をプリンタ2に対して出力する。
プリンタ2は、プリンタコントローラ1と、プリンタエンジン5とを備えている。
プリンタコントローラ1は、パーソナルコンピュータ3から通信ネットワーク4を介して送られてくるプリンタ言語データを受信し、印字出力データ(ビットマップデータ等)に変換してプリンタエンジン5へ送る印字動作処理や、パーソナルコンピュータ3からの状態通知要求に対してプリンタ2の状態をパーソナルコンピュータ3に通知する状態通知処理などの各種処理を行う。また、プリンタコントローラ1は、通常の処理動作を行うために各ブロックに所定の電力が供給されている定常状態モードと、該定常状態モードと比較して消費電力を削減した状態である低消費電力モードとを有している。なお、該低消費電力モードにおける各ブロックの状態については後述する。
プリンタエンジン5は、プリンタコントローラ1から送られてきた印字出力データを紙等の記録媒体に印字出力するものである。
次に、プリンタコントローラ1の詳細な構成について説明する。プリンタコントローラ1は、図1に示されるように、CPU11と、システムコントローラ12と、メインメモリ13と、サブメモリ14と、その他のデバイスであるROM・I/O15とを備えている。
CPU11は、データ変換処理や各種の演算処理等の情報処理を行うものである。CPU11は、メインメモリ13にアクセスし、該メインメモリ13からプログラムおよびデータを読み出し、各種の処理を行う。このとき、CPU11は、データをメインメモリ13およびサブメモリ14に書き込むこともできる。
また、CPU11は、一定時間パーソナルコンピュータ3からの指示がない場合、プリンタコントローラ1を消費電力の低い低消費電力モードに移行させることを決定する。このとき、CPU11は、メインメモリ13に格納されているプログラム・データの一部をサブメモリ14にコピー(複写)させるコピー指示とともに、後述するアドレス変換オン指示をシステムコントローラ12に送る。さらに、CPU11は、メインメモリ13およびサブメモリ14を省電力モード(後述する)にする省電力モード指示をシステムコントローラ12に送るとともに、自身もクロック数を低下させた状態であるCPU省電力モードとする。
また、低消費電力モード時においてパーソナルコンピュータ3からの指示をシステムコントローラ12が受信した場合、CPU11は、システムコントローラ12から復帰要求信号を受け、システムコントローラ12に対して復帰指示を送るとともに、自身もクロック数を通常の状態に戻しCPU省電力モードから復帰する。このとき、CPU11は、システムコントローラ12から後述するメインメモリ復帰通知を受けて、サブメモリ14にコピーしていたプログラム・データをメインメモリ13に戻すコピー指示とともに、後述するアドレス変換オフ指示をシステムコントローラ12に送る。
メインメモリ13は、プリンタコントローラ1における各種の制御プログラムおよび該制御プログラムに必要な所定のデータを記憶するとともに、パーソナルコンピュータ3から送られたプリンタ言語データおよび印字出力データを記憶するメモリである。メインメモリ13は、例えば、512MBのDRAMであり、その領域がアドレス0000_0000h以上1000_0000h未満で定められている。また、メインメモリ13は、書き込み/読み出しを可能とする通常動作モードと、書き込み/読み出しはできないが記憶している内容を保持することができ、通常動作モードよりも消費電力の少ないメモリ省電力モード(selfRefreshモード)とを有している。
メインメモリ13が記憶する各種の制御プログラムとしては、例えば、印字動作処理を制御する印字動作プログラムや、状態通知処理を行うための状態通知プログラムなどがある。これらのプログラムは、それぞれ必要なプログラム容量と、その実行に必要なデータ容量とが決められている。印字動作プログラムは比較的大きなプログラム容量を有しており、状態通知プログラムは印字動作プログラムに比べて小さなプログラム容量およびデータ容量を有している。各プログラムとそれに必要なデータは、メインメモリ13の所定の領域に格納されている。例えば、状態通知プログラムなどの比較的小容量で実行可能なプログラムは、メインメモリ13のアドレス0000_0000h以上0400_0000h未満の領域に格納されており、印字動作プログラムは、メインメモリ13のアドレス0400_0000h以上1000_0000h未満の領域に格納されている。
サブメモリ14は、メインメモリ13よりも小容量のメモリであり、例えば、64MBのDRAMである。サブメモリ14は、CPU11からの書き込みが可能である。また、サブメモリ14も、書き込み/読み出しを可能とする通常動作モードと、書き込み/読み出しはできないが記憶している内容を保持することができ、通常動作モードよりも消費電力の少ないメモリ省電力モードとを有している。
ROM・I/O15は、HDD、ROM等の記憶装置や、キーボード等の入出力装置である。
システムコントローラ12は、接続されている各デバイスの制御、および、各デバイス間のデータおよびプログラムの転送を行うものであり、例えば、LSIにより構成される。後述するように、システムコントローラ12は、CPU11が処理を行う場合に、CPU11をメインメモリ13またはサブメモリ14にアクセスさせる。
システムコントローラ12は、図1で示されるように、CPUインターフェース21、DMA(ダイレクトメモリアクセス:Direct Memory Access)コントローラ22、エンジンインターフェース23、ネットワークインターフェース24、ROM・I/Oインターフェース25、メインメモリコントローラ26、サブメモリコントローラ27、および内部バス29を備えている。
CPUインターフェース21、エンジンインターフェース23、ネットワークインターフェース24およびROM・I/Oインターフェース25は、それぞれCPU11、プリンタエンジン5、通信ネットワーク4およびROM・I/O15との接続を行うものであり、接続されている装置との間で指示やデータの送受信を行う。
DMAコントローラ22は、CPU11からのコピー指示に応じて、予め定められたアドレスに対応するメインメモリ13(または、サブメモリ14)の領域に格納されているプログラムおよびデータを、予め定められたアドレスに対応するサブメモリ14(または、メインメモリ13)の領域にコピー(複写)するコピー処理を行うものである。つまり、上記コピー指示は、DMAコントローラ22に対して、予め定められたアドレスに格納されているプログラムおよびデータを、予め定められたアドレスにコピーさせる指示である。
ここで、上記CPUインターフェース21、DMAコントローラ22、エンジンインターフェース23は、プログラムおよびデータの転送を起動する機能を有している。すなわち、CPUインターフェース21は、CPU11からの指示を受けて、メインメモリ13、サブメモリ14、ROM・I/O15に格納されたプログラムやデータおよびネットワークインターフェース24が受信したプリンタ言語データを所定のデバイスへ転送させる。また、エンジンインターフェース23は、サブメモリ14からプリンタエンジン5への印字出力データの転送を起動する。また、DMAコントローラ22は、メインメモリ13とサブメモリ14との間におけるプログラムおよびデータの転送を起動させる。このように、転送を起動する機能をもつCPUインターフェース21、DMAコントローラ22、エンジンインターフェース23をバスマスタと称する。
メインメモリコントローラ26およびサブメモリコントローラ27は、それぞれメインメモリ13およびサブメモリ14と接続されており、接続されているメモリに対するプログラムおよびデータの読み出し/書き込みを行うものである。また、メインメモリコントローラ26およびサブメモリコントローラ27は、それぞれメインメモリ13およびサブメモリ14におけるメモリ省電力モードと通常動作モードとを切り替える。
ここで、上記ネットワークインターフェース24、ROM・I/Oインターフェース25、メインメモリコントローラ26およびサブメモリコントローラ27は、上記バスマスタからの指示によりプログラムおよびデータの転送を受け付けるものであり、バスターゲットと称する。
内部バス29は、バスマスタと、バスターゲットとを接続するものである。内部バス29は、各デバイスを一意的にマッピングしたアドレス空間(アドレスマップ)を有しており、バスマスタから指定されたアドレスに相当するバスターゲットを選択して、プログラムおよびデータの転送要求を伝達する。
また、内部バス29は、アドレスの変換を行うアドレス変換回路29aを有している。アドレス変換回路29aは、所定のアドレスを別のアドレスに変換するものである。ここでは、アドレス変換回路29aは、DMAコントローラ22がコピー処理を実行する際のコピー元アドレスをコピー先アドレスに変換するとともに、コピー先アドレスをコピー元アドレスに変換するアドレス変換機能を有する。内部バス29は、アドレス変換回路29aにおけるアドレス変換機能が有効であり、かつ、バスマスタから指定されたアドレスが上記コピー先アドレスまたはコピー元アドレスである場合、該指定されたアドレスをアドレス変換回路29aによりアドレス変換させ、変換後のアドレス(変換後アドレス)に相当するバスターゲットにアクセスする。
なお、アドレス変換回路29aは、CPU11からアドレス変換オン指示を受けると、上記アドレス変換機能を有効にする。一方、アドレス変換回路29aは、CPU11からアドレス変換オフ指示を受けると、上記アドレス変換機能を無効にする。すなわち、上記アドレス変換オン/オフ指示は、アドレス変換回路29aの機能を有効/無効に切り替えるための指示である。
次に、DMAコントローラ22におけるコピー処理およびアドレス変換回路29aにおける機能について、図2および図3を参照しながら具体的に説明する。
図2は、アドレス変換回路29aのアドレス変換機能が無効であるときのアドレスマッピングを示す図であり、図3は、該アドレス変換機能が有効であるときアドレスマッピングを示す図である。
図に示されるように、バスターゲット側であるメインメモリ13、サブメモリ14およびROM・I/O15の各領域は、それぞれ異なるアドレスを有しており、例えば、メインメモリ13の領域は、アドレス0000_0000h以上1000_0000h未満で指定され、サブメモリ14の領域は、アドレス1000_0000h以上1400_0000h未満で指定される。
図2に示されるように、アドレス変換機能が無効である場合、内部バス29は、バスマスタ側で指定したアドレスに対応するバスターゲットの領域にアクセスする。すなわち、バスマスタ側でアドレス0000_0000hが指定される場合、内部バス29は、該アドレス0000_0000hに対応する領域(ここでは、メインメモリ13の先頭)にアクセスする。これにより、バスマスタ側は、指定した領域のプログラムまたはデータに対する読み出しまたは転送等の処理を行うことができる。
次に、アドレス変換機能が有効である場合について、図3を参照しながら説明する。後述するように、アドレス変換回路29aは、DMAコントローラ22がコピー処理を実行した際に、上記アドレス変換機能の有効/無効を切り替える。すなわち、アドレス変換回路29aの機能が有効に切り替えられる場合、図3に示されるように、DMAコントローラ22は、コピー元のアドレス(ここでは、アドレス0000_0000h以上0400_0000h未満)およびコピー先のアドレス(ここでは、アドレス1000_0000h以上1400_0000h未満)を指定し、メインメモリ13からサブメモリ14に所定のプログラムおよびデータをコピーする。ここで、コピーされるプログラムおよびデータは、予めメインメモリ13のアドレス0000_0000h以上0400_0000h未満に格納されており、該アドレスで指定された領域の容量だけで実行可能なプログラムおよび該プログラムに必要なデータである。たとえば、比較的小容量で実行可能な上記状態通知プログラムおよびそれに必要なステータスデータである。なお、以下では、DMAコントローラ22によりコピー処理されるプログラムおよびデータをコピー対象プログラム・データと称する。
そして、アドレス変換回路29aは、上記コピー処理におけるコピー元のアドレスが指定された場合、これをコピー先のアドレスに変換し、該コピー先のアドレスが指定された場合、これをコピー元のアドレスに変換する。具体的には、アドレス変換回路29aは、アドレス0000_0000h以上0400_0000h未満が指定された場合、先頭の0を1に変換し、アドレス1000_0000h以上1400_0000h未満が指定された場合、先頭の1を0に変換する。例えば、0000_0000hが指定された場合、アドレス変換回路29aは、該アドレスの先頭0を1に変換し、アドレス1000_0000hとする。
この場合、内部バス29は、バスマスタ側で指定した所定のアドレスに対してアドレス変換回路29aで変換させ、変換後のアドレス(変換済アドレス)に対応するバスターゲットの領域にアクセスする。例えば、図3で示されるように、バスマスタ側で所定のアドレス(ここでは、例えばアドレス0000_0000h)が指定される場合、アドレス変換回路29aは、該アドレスを所定のアドレス(ここでは、例えばアドレス1000_0000h)に変換する。そして、内部バス29は、変換済アドレスに対応する領域(ここでは、サブメモリ14の先頭領域)にアクセスする。
次に、プリンタ2における処理の流れについて、図4のフローチャートを参照しながら説明する。
まず、プリンタ2に対する主電源が入ると、プリンタコントローラ1のCPU11、メインメモリ13およびサブメモリ14を含む各デバイスに電力が供給され、定常状態モードにおいて各処理が行われる(S1)。なお、主電源が入れられたとき、図2に示されるように、アドレス変換回路29aの機能が無効であり、コピー対象プログラム・データがメインメモリ13の所定領域に格納されている。また、メインメモリ13およびサブメモリ14は、ともに通常動作モードである。
ここで各処理としては、印字動作処理や、状態通知処理があるが、ここでは、印字動作処理について説明する。
まず、ネットワークインターフェース24は、通信ネットワーク4を介して、パーソナルコンピュータ3から印字出力すべき文書等に対応するプリンタ言語データを受信する。ネットワークインターフェース24がプリンタ言語データを受信すると、CPU11は、該プリンタ言語データをネットワークインターフェース24からメインメモリ13に転送させる。これにより、ネットワークインターフェース24が受信したプリンタ言語データは、メインメモリ13に記憶される。
次に、CPU11は、メインメモリ13からプリンタ言語データを読み出し、演算処理によって印字出力データに変換してから、サブメモリ14へと格納する。
そして、エンジンインターフェース23は、サブメモリ14に格納された印字出力データを読み出してプリントエンジン23に出力することにより、印字動作を実現する。以上により、印字処理が完了する(S2)。
ここで、プリンタ2がレーザプリンタである場合、プリントエンジン23は、あるページの印字出力データの読み出しを開始すると、そのページの印字を終了するまで一定速度で印字出力データを出力し続ける必要がある。このため、印字出力データの読み出し速度を保障する必要がある。
印字出力データをメインメモリ13に格納した場合、メインメモリ13からの印字出力データの読み出し速度を保障するとともに、システム制御用プログラムを動作させるためにCPU11からメインメモリ13へのアクセスする必要がある。さらに、プリンタを高速動作させるためには、印字出力データの読み出しの間に、次ページのプリンタ言語データを受信して印字出力データへ変換する処理を同時動作させる必要があり、この場合にはメインメモリ13への負荷がさらに高まることになる。つまり、プリンタ2を高速動作させようとするとメインメモリ13への負荷が高まり、プリンタの高速化が制限されることになる。
しかしながら、本実施形態では、上記のように印字出力データをメインメモリ13ではなく、サブメモリ14に格納する。これにより、印字出力データの読み出し時において、メインメモリ13に対する負荷が減少し、CPU11が次ページの印字出力データを生成するためにメインメモリ13にアクセスする速度を向上させることができ、動作速度を向上させることができる。
なお、通常動作モードにおいては、プリンタコントローラを制御するプログラムおよびデータは大容量のメインメモリ13上に格納されており、サブメモリ14は、印字出力データ等の一時的なデータのみを格納するために使用される。
印字処理を含む各処理が完了すると、CPU11は、該完了時刻からの経過時間の計測を開始する(S3)。
次に、CPU11は、通信ネットワーク4を介してネットワークインターフェース24が何らかの指示を受信したか否かを判断する(S4)。何らかの指示を受信した場合(S4でYes)、CPU11は、ネットワークインターフェース24が受信した指示に応じて、定常状態モードでの処理ステップ(S1)に戻る。このとき、CPU11は、S3で計測していた経過時間をリセットする。
指示を受信しない場合(S4でNo)、CPU11は、S3で計測開始している経過時間が予め設定されている指定時間(例えば、30分)に達したか否かを判断する(S4)。指定時間に達していない場合(S5でNo)、S4の処理に戻る。
指定時間に達した場合(S5でYes)、CPU11は、低消費電力モードへの移行を決定する。
CPU11は、低消費電力モードへの移行を決定すると、まずコピー指示をシステムコントローラ12に出力する。
コピー指示を受けたDMAコントローラ22は、メインメモリ13からサブメモリ14へ、コピー対象プログラム・データ(状態通知プログラムおよびステータスデータなど)のコピー処理を実行させる。なお、本実施形態では、コピー対象プログラム・データは、例えばメインメモリ13のアドレス0000_0000h〜0400_0000hの領域に格納されている。すなわち、DMAコントローラ22は、アドレス0000_0000h以上0400_0000h未満をコピー元アドレスとして指定し、サブメモリ14のアドレス1000_0000h以上1400_0000h未満をコピー先アドレスとして指定し、コピー対象プログラム・データをコピーする(S6)。
次に、CPU11は、アドレス変換回路29aの機能を有効とするアドレス変換オン指示をシステムコントロール12に出力する(S7)。アドレス変換オン指示を受けたアドレス変換回路29aは、バスマスタ側で指定されたアドレス0000_0000h以上0400_0000h未満について、その先頭0を1に変換するとともに、バスマスタ側で指定されたアドレス1000_0000h以上1400_0000h未満について、その先頭1を0に変換する。つまり、アドレス変換回路29aは、DMAコントローラ22がコピー処理を行ったコピー元アドレスとコピー先アドレスとを入れ替える。なお、バスマスタ側でアドレス0000_0000h以上0400_0000h未満およびアドレス1000_0000h以上1400_0000h未満以外のアドレスが指定された場合、アドレス変換回路29aは、指定アドレスの変換を行わない。
次に、CPU11は、メインメモリ13をメモリ省電力モードとするメインメモリ省電力モード移行指示を、システムコントローラ12に出力する。該メインメモリ省電力モード移行指示を受けたメインメモリコントローラ26は、メインメモリ13をメモリ省電力モードに切り替える(S8)。
続いて、CPU11は、サブメモリ14をメモリ省電力モードとするサブメモリ省電力モード移行指示を、システムコントローラ12に出力する。該サブメモリ省電力モード移行指示を受けたサブメモリコントローラ27は、サブメモリ14をメモリ省電力モードに切り替える(S9)。
さらに、CPU11は、メインメモリ13およびサブメモリ14がメモリ省電力モードに切り替えられたことを確認して、自身もクロック数を下げ、CPU省電力モードに移行する(S10)。これにより、プリンタコントローラ1は、低消費電力モードとなる。
次に、CPU11は、ネットワークインターフェース24からの復帰要求信号の有無を判断する(S11)。復帰要求信号とは、ネットワークインターフェース24がパーソナルコンピュータ3から通信ネットワーク4経由で指示やデータが送信されてきたことを検知した場合に生成する信号であり、ネットワークインターフェース24からCPU11に送られる。
復帰要求信号がない場合(S11でNo)、S11の処理を繰り返す。
一方、復帰要求信号を受けた場合(S11でYes)、CPU11は、自身のクロック数を上げて、CPU省電力モードから復帰する(S12)。そして、CPU11は、システムコントローラ12に対して復帰指示を送る。
CPU11からの復帰指示を受けたシステムコントローラ12では、サブメモリコントローラ27が、サブメモリ14を通常動作モードに復帰させる(S13)。
次に、CPU11は、ネットワークインターフェース24が受信した指示に応じた処理を開始する(S14)。すなわち、CPU11は、該処理を実行するためのプログラムおよびデータをメインメモリ13またはサブメモリ14から取り出すためにアドレスを指定してシステムコントローラ12に送る。
次に、システムコントローラ12は、CPU11が実行する処理がサブメモリ14内だけで完了するか否かを判断する(S15)。
具体的には、システムコントローラ12は、CPU11から指定されたアドレスに対応してアクセスする領域がサブメモリ14である場合、処理がサブメモリ14内だけで完了すると判断し(S15でYes)、CPU11から指定されたアドレスに対応してアクセスする領域がメインメモリ13である場合、処理がサブメモリ14内だけで完了しないと判断する(S15でNo)。
システムコントローラ12がサブメモリ14内だけで処理が完了すると判断する場合(S15でYes)について説明する。CPU11が行う処理が状態通知処理のように、コピー対象プログラム・データだけで実行できるものである場合、CPU11は、コピー対象プログラム・データに含まれる状態通知プログラムおよびステータスデータを読み出す。ただし、上記S6の処理により、メインメモリ13のアドレス0000_0000h〜0400_0000hに格納されていたコピー対象プログラム・データは、サブメモリ14にコピーされている。しかしながら、上記S7の処理によりアドレス変換機能が有効になっているため、図4で示されるように、上記コピー処理が行われる前と同じように、CPU11がアドレス0000_0000h以上0400_0000h未満の領域を指定アドレスとすることで、アドレス変換回路29aの変換機能により、内部バス29は、サブメモリ14にアクセスすることとなる。
このように、CPU11を含むバスマスタ側からみれば、メインメモリ13のアドレスを指示することでサブメモリ14にアクセスすることができる。すなわち、CPU11は、コピー対象プログラム・データがサブメモリ14にコピーされていても、メインメモリ13のアドレスを指定することで、所望のプログラム・データにアクセスすることができる。サブメモリ14は、上記S13において復帰しているため、CPU11は、正常に処理を行うことができる。処理が終了すると、CPU11は、再度低消費電力モードに移行することを決定し、上記S9に戻る。
一方、システムコントローラ12がサブメモリ14内だけで処理が完了しないと判断する場合(S15でNo)について説明する。CPU11が行う処理が印字動作処理のように、コピー対象プログラム・データだけで実行できないものである場合、CPU11は、コピー対象プログラム・データに含まれない印字プログラムを読み出すために、アドレス0400_0000h〜1000_0000h内の所定領域を指定アドレスとする。該指定アドレスは、アドレス変換回路29aにより変換されないため、そのままアクセス先アドレスとなる。該アクセス先アドレス0400_0000h〜1000_0000hは、メインメモリ13内の領域である。しかしながら、メインメモリ13がまだメモリ省電力モードであるため、メインメモリコントローラ26は、メインメモリ13にアクセスすることができない。これにより、システムコントローラ12は、サブメモリ14内だけで処理が完了しないことを判断することができる。
システムコントローラ12がサブメモリ14内だけで処理が完了しないと判断すると(S15でNo)、メインメモリコントローラ26は、メインメモリ13を通常動作モードに復帰させる(S16)。このとき、メインメモリコントローラ26は、CPU11に対して、メインメモリ13が通常動作モードに復帰したことを通知するメインメモリ復帰通知を送る。
メインメモリコントローラ26からのメインメモリ復帰通知を受けたCPU11は、サブメモリ14にコピーしていたコピー対象プログラム・データをメインメモリ13に戻すために、システムコントローラ12に対してコピー指示を出力する。コピー指示を受けたDMAコントローラ22は、コピー対象プログラム・データを、元のメインメモリ13のアドレス0000_0000h〜0400_0000h領域に戻す処理を行う(S17)。
このとき、アドレス変換回路29aの機能が有効であるため、DMAコントローラ22は、上記S6と同様に、アドレス0000_0000h〜0400_0000hの領域に格納されているプログラムおよびデータを、アドレス1000_0000h〜1400_0000hの領域にコピーすることを内部バスに指示すればよい。これにより、内部バス29は、指定されたアドレスを変換し、アドレス1000_0000h〜1400_0000hの領域に格納されているプログラム・データをアドレス0000_0000h〜0400_0000hの領域にコピーする指示を、メインメモリコントローラ26およびサブメモリコントローラ27に伝達する。この結果、サブメモリ14にコピーされていたコピー対象プログラム・データは、再び、メインメモリ13の所定の領域に復旧される(S17)。
これにより、メインメモリ13がメモリ省電力モードに移行している間にサブメモリ14内で編集されたステータスデータ等の最新情報を、メインメモリ13に反映させることができ、メインメモリ13が最新情報に更新される。よって、CPU11は、メインメモリ13にコピーされた最新情報を基に、処理を実行することができる。
その後、CPU11は、アドレス変換回路29aの機能を有効から無効に切り替えるために、システムコントローラ12に対してアドレス変換オフ指示を出力する。これにより、アドレス変換回路29aは、アドレス変換機能を無効にする(S18)。その後、S1の通常動作モードにおける処理ステップ(S1)に戻る。
以上のように、本実施形態のシステムコントローラ12は、CPU11と、プログラムおよびデータを記憶するメインメモリ13とに接続され、定常状態モード時、CPU11が処理を行う場合に、該CPU11をメインメモリ13にアクセスさせる。そして、システムコントローラ12は、メインメモリ13よりも小容量のサブメモリ14に接続されている。さらに、メインメモリ13を、少なくとも記憶内容の読み出しが可能な通常動作モード(通常状態)と、該通常状態よりも消費電力が小さいメモリ省電力モード(省電力状態)とを切り替えるメインメモリコントローラ26と、メインメモリコントローラ26がメインメモリ13を通常動作モードからメモリ省電力モードに切り替える前に、メインメモリ13に記憶されているプログラムおよびデータのうち予め定められた一部をサブメモリ14に複写するDMAコントローラ22と、メインメモリ13がメモリ省電力モードであるときにCPU11が処理を行う場合、該処理に用いるプログラムおよびデータがDMAコントローラ22により複写されたものであれば、CPU11をサブメモリ14にアクセスさせる内部バス29とを備える。
これにより、メインメモリ13がメモリ省電力モードであり、かつ、複写したプログラムおよびデータに対してCPU11がアクセスしたい場合、メインメモリ13をメモリ省電力モードから復帰させる必要がなく、メインメモリ13よりも小容量であり消費電力の少ないサブメモリ14だけで処理が実行できる。
また、予め定められたプログラムおよびデータが複写される。よって、メインメモリ13がメモリ省電力モードであるときに頻繁に起動するようなプログラムおよび該プログラムに必要なデータを複写するものとして予め設定することにより、CPU11は、サブメモリ14だけで処理を実行でき、メインメモリ13がメモリ省電力モードから通常動作モードに復帰する頻度を一層低くすることができる。それゆえ、消費電力の低減を図ることができる。また、CPU11内に特許文献1に記載されているような特殊なキャッシュメモリを設ける必要がないため、汎用のCPUを使用することができる。
さらに、メインメモリコントローラ26がメインメモリ13をメモリ省電力モードから通常動作モードへ復帰させた後、DMAコントローラ22は、サブメモリ14が記憶するプログラムおよびデータを、メインメモリ13の元の記憶領域に複写しなおす。
そのため、メインメモリ13がメモリ省電力モードであるときにCPU11がサブメモリ14にアクセスしたときの最新情報を含むプログラムおよびデータが、メインメモリ13に複写されることとなる。その結果、メインメモリ13が通常動作モードに復帰した後、CPU11は、メインメモリ13にアクセスすることにより最新の情報を含むプログラムおよびデータで処理を実行することができる。また、メインメモリ13が通常動作モードに復帰している状態において、サブメモリ14を他の用途に利用することができる。
さらに、メインメモリ13およびサブメモリ14の記憶領域には、該記憶領域を指定するためのアドレスが付与されている。そして、システムコントローラ12は、CPU11からアクセス先の記憶領域を指定するアクセス先アドレスを受けるCPUインターフェース21と、DMAコントローラ22が複写したプログラムおよびデータの複写元アドレスを、複写先アドレスに変換するアドレス変換回路29aとを備える。そして、内部バス29は、メインメモリ13がメモリ省電力モードであるとき、CPUインターフェース21が受信したアクセス先アドレスをアドレス変換回路29aにより変換させ、CPU11を変換後のアドレスが指定する記憶領域にアクセスさせる。それゆえ、CPU11は、メインメモリ13がメモリ省電力モードであるか否かに応じて、アクセス先のアドレスを変更する必要がない。
また、上記コピー処理は、DMAコントローラ22が行う。そのため、該コピー処理をCPU11で行う必要がなく、CPU11に対する負担を削減することができる。
また、サブメモリコントローラ27は、DMAコントローラ22がプログラムおよびデータをメインメモリ13からサブメモリ14にコピー後に、サブメモリ14を省電力モード(省電力状態)とする。その後、CPU11が処理を行うときにサブメモリ14を通常動作モードに復帰させる。よって、メインメモリ13がメモリ省電力モードに移行してから次にCPU11が処理を行うまでの間、サブメモリ14における消費電力を削減し、一層の省電力化を図ることができる。
〔実施形態2〕
上記実施形態では、定常状態モード時に印字出力データを一時的に格納するためのサブメモリ14に、該サブメモリ14の容量だけで実行可能なプログラムおよびその必要データを低消費電力モード移行時にメインメモリ13からコピーする構成とした。定常状態モード時においてサブメモリ14にはCPU11にてデータ変換処理された印字出力データが記憶されるため、CPU11は、サブメモリ14に対してアクセスする必要がある。そのため、図1に示したように、サブメモリ14は内部バス29に接続されている構成であった。
しかしながら、内部バス29と直接接続されているサブメモリを有さず、内部バス29と接続されていないサブメモリを有する情報処理装置もある。例えば、プリンタに含まれる情報処理装置の場合、エンジンインターフェースに直結され、プリンタエンジン専用メモリとして使用されているサブメモリのみを有する構成である。この場合、サブメモリは、エンジンインターフェース専用で内部バスには接続されていないため、CPU11やDMAコントローラ22は、該サブメモリに直接アクセスすることができない。
本実施形態は、このように定常状態モード時にCPUやDMAコントローラが直接アクセスできないサブメモリであっても、該サブメモリを低消費電力モード時に利用することにより、省電力化を図る構成である。
本実施形態について、図5,図6に基づいて説明すれば、以下のとおりである。なお、説明の便宜上、前記実施の形態1にて説明した図面と同じ機能を有する部材については、同じ符号を付記し、その説明を省略する。
図5は、本実施形態におけるプリンタコントローラ(情報処理装置)101の構成、および、プリンタコントローラ101を含むプリンタ102およびパーソナルコンピュータ3との関係を示すブロック図である。
図5に示されるように、プリンタ102は、プリンタコントローラ101と、プリンタエンジン5とを備えている。
プリンタコントローラ101は、上記プリンタコントローラ1と同様に、印字動作処理や状態通知処理などの各種処理を行う。プリンタコントローラ101は、図5に示されるように、CPU11と、システムコントローラ112と、メインメモリ13と、サブメモリ114と、その他のデバイスであるROM・I/O15とを備えている。
サブメモリ114は、メインメモリよりも小容量のメモリであり、例えば、64MBのRAMである。サブメモリ114は、定常モード時において、プリンタエンジン5専用のメモリとして使用される。また、サブメモリ114は、書き込み/読み出しを可能とする通常動作モードと、書き込み/読み出しはできないが記憶している内容を保持することができ、通常動作モードよりも消費電力の少ないメモリ省電力モードとを有している。
システムコントローラ112は、接続されている各デバイスの制御、および、各デバイス間のデータおよびプログラムの転送を行うものである。
システムコントローラ112は、図5で示されるように、CPUインターフェース21、DMAコントローラ22、エンジンインターフェース123、ネットワークインターフェース24、I/Oインターフェース25、メインメモリコントローラ26、サブメモリコントローラ127、内部バス29およびバイパス回路30を備えている。
エンジンインターフェース123は、内部バス29を介して、メインメモリ23やROM・I/O15から所望のデータ等の転送を起動するものである。また、エンジンインターフェース123は、サブメモリコントローラ127と直接接続されており、サブメモリ114を専用のメモリとして使用することができる。
サブメモリコントローラ127は、サブメモリ114へのプログラムおよびデータの書き込み/読み出し処理を行うものであり、エンジンインターフェース123専用のメモリとして設置されている。また、サブメモリコントローラ127は、サブメモリ114におけるメモリ省電力モードと通常動作モードとを切り替える。
バイパス回路30は、サブメモリコントローラ127と内部バス29とに接続されており、サブメモリコントローラ127と内部バス29とを中継するための回路である。バイパス回路30は、CPU11からのバイパス回路オン/オフ指示に応じて、サブメモリコントローラ127と内部バス29との接続/遮断を切り替える。
DMAコントローラ22は、上記実施形態と同様に、CPU11からのコピー指示に応じて、予め定められたアドレスに対応するメインメモリ13(または、サブメモリ114)の領域に格納されているプログラムおよびデータ(すなわち、コピー対象プログラム・データ)を、予め定められたアドレスに対応するサブメモリ114(または、メインメモリ13)の領域にコピーする処理を行う。なお、該コピー処理が実行されるときは、後述するようにバイパス回路30により内部バス29とサブメモリコントローラ127とが接続されているため、サブメモリ114のアドレスが内部バス29のアドレスマップ上にマッピングされる。この結果、DMAコントローラ22は、サブメモリ114にアクセスすることができる。
また、上記実施形態と同様に、内部バス29が備えるアドレス変換回路29aは、DMAコントローラ22がコピー処理を実行する際のコピー元アドレスをコピー先アドレスに変換するとともに、コピー先アドレスをコピー元アドレスに変換する。
次に、プリンタ102における処理の流れについて、図6のフローチャートを参照しながら説明する。
まず、プリンタ102に対する主電源が入ると、プリンタコントローラ101のCPU11、メインメモリ13およびサブメモリ114を含む各デバイスに電力が供給され、定常状態モードにおいて各処理が行われる(S1)。なお、主電源が入れられたとき、アドレス変換回路29aの機能が無効であり、コピー対象プログラム・データがメインメモリ13の所定領域に格納されている。
なお、本実施形態では、サブメモリ114がエンジンインターフェース123専用メモリであるため、CPU11は、プリンタ言語データから演算処理された印字出力データをメインメモリ13に格納する。そして、エンジンインターフェース123は、メインメモリ13に格納された印字出力データを読み出してプリントエンジン23に出力することにより、印字動作を実現する。以上により、印字処理が完了する。また、エンジンインターフェース123は、メインメモリ13に格納された印字出力データを読み出してプリントエンジン23に出力する際、サブメモリ114を利用してもよい。
印字処理を含む各処理が完了する(S2)と、CPU11は、該完了時刻からの経過時間の計測を開始する(S3)。
次に、CPU11は、通信ネットワーク4を介してネットワークインターフェース24が何らかの指示を受信したか否かを判断する(S4)。指示を受信した場合(S4でYes)、CPU11は、ネットワークインターフェース24が受信した指示に応じて、定常状態モードでの処理ステップ(S1)に戻る。このとき、CPU11は、S3で計測していた経過時間をリセットする。
指示を受信しない場合(S4でNo)、CPU11は、S3で計測開始している経過時間が予め設定されている指定時間(例えば、30分)に達したか否かを判断する(S4)。指定時間に達していない場合(S5でNo)、S4の処理に戻る。
指定時間に達した場合(S5でYes)、CPU11は、低消費電力モードへの移行を決定する。
CPU11は、低消費電力モードへの移行を決定すると、まずバイパス回路30の機能を有効とするために、バイパス回路オン指示をシステムコントローラ112に出力する。これにより、バイパス回路30は、内部バス29とサブメモリコントローラ127とを接続する(S21)。このとき、内部バス29のアドレスマップにサブメモリ114の領域がマッピングされる。
次に、CPU11は、コピー指示をシステムコントローラ112に出力する。コピー指示を受けたDMAコントローラ22は、メインメモリ13からサブメモリ114へ、コピー対象プログラム・データ(状態通知プログラムおよびステータスデータなど)のコピー処理を実行させる。例えば、コピー対象プログラムおよびデータがメインメモリ13のアドレス0000_0000h〜0400_0000hの領域に格納されている場合、DMAコントローラ22は、アドレス0000_0000h以上0400_0000h未満に対応する領域に格納されているコピー対象プログラム・データを、サブメモリ114(アドレス1000_0000h以上1400_0000h未満に対応する領域)にコピーする(S22)。
次に、CPU11は、アドレス変換回路29aの機能を有効とするアドレス変換オン指示をシステムコントロール112に出力する(S23)。アドレス変換オン指示を受けたアドレス変換回路29aは、バスマスタ側で指定されたアドレス0000_0000h以上0400_0000h未満について、その先頭0を1に変換するとともに、バスマスタ側で指定されたアドレス1000_0000h以上1400_0000h未満について、その先頭1を0に変換する。なお、バスマスタ側でアドレス0000_0000h以上0400_0000h未満およびアドレス1000_0000h以上1400_0000h未満以外のアドレスが指定された場合、アドレス変換回路29aは、指定アドレスの変換を行わない。
次に、CPU11は、メインメモリ13をメモリ省電力モードとするメインメモリ省電力モード移行指示を、システムコントローラ112に出力する。該メインメモリ省電力モード移行指示を受けたメインメモリコントローラ26は、メインメモリ13をメモリ省電力モードに切り替える(S24)。
続いて、CPU11は、サブメモリ114をメモリ省電力モードとするサブメモリ省電力モード移行指示を、システムコントローラ112に出力する。該サブメモリ省電力モード移行指示を受けたサブメモリコントローラ127は、サブメモリ114をメモリ省電力モードに切り替える(S25)。
さらに、CPU11は、自身もCPU省電力モードに移行する(S26)。これにより、プリンタコントローラ101は、低消費電力モードとなる。
次に、CPU11は、ネットワークインターフェース24からの復帰要求信号の有無を判断する(S27)。復帰要求信号がない場合(S27でNo)、S27の処理を繰り返す。一方、復帰要求信号を受けた場合(S27でYes)、CPU11は、自身のクロック数を上げて、CPU省電力モードから復帰する(S28)。また、CPU11は、復帰するとともに、システムコントローラ112に対して復帰指示を送る。
CPU11からの復帰指示を受けたシステムコントローラ112では、サブメモリコントローラ127が、サブメモリ114を通常動作モードに復帰させる(S29)。
次に、CPU11は、ネットワークインターフェース24が受信した指示に応じた処理を開始する(S30)。すなわち、CPU11は、該処理を実行するためのプログラムおよびデータをメモリから取り出すためにアドレスを指定してシステムコントローラ112に送る。
次に、システムコントローラ112は、CPU11が実行する処理がサブメモリ114内だけで完了するか否かを判断する(S31)。具体的には、内部バス29がアクセスする領域がサブメモリ114だけである場合、システムコントローラ112は、処理がサブメモリ114内だけで完了すると判断し(S31でYes)、内部バス29がアクセスする領域がメインメモリ13である場合、システムコントローラ112は、処理がサブメモリ114内だけで完了しないと判断する(S31でNo)。
S31における処理は、上記実施形態において説明したS15と同様であるため、ここでは詳細な説明を省略する。S31でYesの場合、上記S25に戻る。
一方、S31でNoの場合、メインメモリコントローラ26は、メインメモリ13を通常動作モードに復帰させる(S32)。このとき、メインメモリコントローラ26は、CPU11に対して、メインメモリ13が通常動作モードに復帰したことを通知するメインメモリ復帰通知を送る。
メインメモリコントローラ26からのメインメモリ復帰通知を受けたCPU11は、サブメモリ114にコピーしていたコピー対象プログラム・データをメインメモリ13に戻すために、システムコントローラ112に対してコピー指示を出力する。コピー指示を受けたDMAコントローラ22は、コピー対象プログラム・データを、元のメインメモリ13のアドレス0000_0000h〜0400_0000h領域に戻す(S33)。
このとき、アドレス変換回路29aの機能が有効であるため、DMAコントローラ22は、上記S22と同様に、アドレス0000_0000h〜0400_0000hの領域に格納されているプログラムおよびデータを、アドレス1000_0000h〜1400_0000hの領域にコピーすることを内部バスに指示すればよい。これにより、内部バス29は、アドレスを変換し、アドレス1000_0000h〜1400_0000hの領域に格納されているコピー対象プログラム・データをアドレス0000_0000h〜0400_0000hの領域にコピーする指示を、メインメモリコントローラ26およびサブメモリコントローラ127に伝達する。この結果、サブメモリ114に移動されていたコピー対象プログラム・データは、再び、メインメモリ13の所定の領域に戻される。
その後、CPU11は、アドレス変換回路29aの機能を有効から無効に切り替えるために、システムコントローラ112に対してアドレス変換オフ指示を出力する。これにより、アドレス変換回路29aは、アドレス変換機能を無効にする(S34)。
さらに、CPU11は、バイパス回路30の機能を無効にするバイパス回路オフ指示をシステムコントローラ112に出力する。これにより、バイパス回路30は、サブメモリコントローラ127と内部バス29とを遮断させる(S35)。そして、定常状態モードにおける処理ステップ(S1)に戻る。
以上のように、本実施形態では、定常状態モード時にエンジンインターフェース専用メモリであるサブメモリ114に、該サブメモリ114の容量だけで実行可能なプログラムおよびその必要データを、低消費電力モード移行時にメインメモリ13からコピーする。同時に、サブメモリコントローラ127と内部バス29との接続を行う。これにより、低消費電力モード時においてコピーしたプログラムに基づいた処理の実行が指示された場合、サブメモリ114だけを復帰させるだけで、処理を行うことができる。つまり、大容量のメインメモリ13を復帰させる必要がないため、省電力化を図ることができる。
また、本実施形態のシステムコントローラ112は、CPU11からサブメモリ14へのアクセスの可否を切り替えるバイパス回路30を備えている。そして、該バイパス回路30は、少なくともメインメモリ13がメモリ省電力モードであるときに、CPU11からサブメモリ14へのアクセスを可能とする。そして、メインメモリ13が通常動作モードに復帰したとき、CPU11からサブメモリ14へのアクセスを不可とすることで、サブメモリ14をCPU11以外のデバイス(例えば、本実施形態ではプリンタエンジン5)のデバイス専用の記憶手段として使用することができる。
なお、本実施形態では、サブメモリ114をシステムコントローラ112の外部としたが、システムコントローラ112がサブメモリ114を備えていてもよい。この場合、サブメモリ114を除くシステムコントローラ112がメインメモリ13、サブメモリ114等のデバイスを制御する制御装置といえる。
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
最後に、システムコントローラ12・112の各ブロックは、ハードウェアロジックによって構成してもよいし、次のように演算手段(CPU11または別のCPU)を用いてソフトウェアによって実現してもよい。
すなわち、システムコントローラ12・112は、各機能を実現する省電力制御プログラムの命令を実行するCPU、上記省電力制御プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるシステムコントローラ12・112の省電力制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、システムコントローラ12・112に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD−ROM/MO/MD/DVD/CD−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系などを用いることができる。
また、システムコントローラ12・112を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された搬送波あるいはデータ信号列の形態でも実現され得る。