(57)【要約】【課題】省エネモード時の消費電力の増大を抑制することが可能な情報処理装置を提供すること。【解決手段】外部の記憶手段にアクセスする情報処理装置１００であって、第２の電源制御領域に配置され記憶手段に対しアクセスする記憶手段Ｉ／Ｆ１８と、第１の電源制御領域に配置された第２の記憶手段にアクセスすると共に、記憶手段Ｉ／Ｆにアクセス要求して記憶手段Ｉ／Ｆに記憶手段に対しアクセスさせる、第１の電源制御領域に配置されたデータ使用手段１４、１２と、第２の電源制御領域への電源が停止された状態で、データ使用手段による記憶手段Ｉ／Ｆへのアクセス要求を監視する第１の電源制御領域に配置されたアクセス監視手段１７と、アクセス監視手段が記憶手段Ｉ／Ｆへのアクセス要求を検出した場合、第２の電源制御領域に電源を供給し、所定時間の経過後に第２の電源制御領域への電源供給を停止する電源制御手段４４と、を有することを特徴とする。【選択図】図１
2014157432.tif 000002
【特許請求の範囲】
【請求項１】
電源の供給及び停止を個別に制御可能な複数の電源制御領域を有し、外部の記憶手段にアクセスする情報処理装置であって、
第２の電源制御領域に配置され前記記憶手段に対しアクセスする記憶手段インタフェースと、
第１の電源制御領域に配置された第２の記憶手段にアクセスすると共に、前記記憶手段インタフェースにアクセス要求して前記記憶手段インタフェースに前記記憶手段に対しアクセスさせる、前記第１の電源制御領域に配置されたデータ使用手段と、
前記第２の電源制御領域への電源が停止された状態で、前記データ使用手段による前記記憶手段インタフェースへのアクセス要求を監視する、前記第１の電源制御領域に配置されたアクセス監視手段と、
前記アクセス監視手段が前記記憶手段インタフェースへのアクセス要求を検出した場合、前記第２の電源制御領域に電源を供給し、所定時間の経過後に前記第２の電源制御領域への電源供給を停止する電源制御手段と、
を有することを特徴とする情報処理装置。
【請求項２】
前記アクセス監視手段は、前記記憶手段インタフェースへのアクセス要求を検出した場合、前記第２の電源制御領域への電源が停止された状態で前記記憶手段インタフェースへアクセス要求があったことをアクセス履歴保持手段に記録すると共に、前記電源制御手段に通知し、
前記電源制御手段は、前記アクセス履歴保持手段に記録されているアクセス要求の記録に基づき、前記記憶手段インタフェースへアクセス要求があったことを検出して前記第２の電源制御領域に電源を供給する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
前記アクセス監視手段は、前記記憶手段インタフェースへのアクセス要求を検出した場合、前記第２の電源制御領域への電源が停止された状態で前記記憶手段インタフェースへアクセス要求があったことをアクセス履歴保持手段に記録すると共に、時間設定手段に通知し、
前記時間設定手段は、前記アクセス履歴保持手段に記録されているアクセス要求の記録に基づき、前記記憶手段インタフェースへアクセス要求があったことを検出し、時間測定手段に前記所定時間を設定し、
前記時間測定手段は、前記所定時間の測定が完了した場合、前記所定時間の測定が完了したことを前記電源制御手段に通知し、
前記電源制御手段は、前記第２の電源制御領域への電源供給を停止する、
ことを特徴とする請求項２記載の情報処理装置。
【請求項４】
前記第２の電源制御領域に電源が供給されている状態で、前記アクセス監視手段が前記記憶手段インタフェースへのアクセス要求を検出した場合、
前記時間測定手段は、途中まで測定している前記所定時間の測定を停止し、前記所定時間の測定を初期値から再開する、ことを特徴とする請求項３記載の情報処理装置。
【請求項５】
前記電源制御手段が前記第２の電源制御領域への電源供給を停止した場合、
前記アクセス監視手段に、前記データ使用手段による前記記憶手段インタフェースへのアクセス要求の監視を開始させ、
前記電源制御手段が前記第２の電源制御領域への電源供給を開始させた場合、
前記アクセス監視手段に、前記データ使用手段による前記記憶手段インタフェースへのアクセス要求の監視を終了させる、
ことを特徴とする請求項２〜４いずれか１項記載の情報処理装置。
【請求項６】
前記アクセス監視手段は、前記記憶手段インタフェースへのアクセス要求を検出した場合、アクセス要求があったアドレスを前記アクセス履歴保持手段に記録すると共に、アドレス退避手段に通知し、
前記アドレス退避手段は、前記アクセス履歴保持手段に記憶されているアドレスをアドレス記録手段に退避する、
ことを特徴とする請求項２〜５いずれか１項記載の情報処理装置。
【請求項７】
前記アクセス監視手段は、前記記憶手段インタフェースへのアクセス要求を検出した場合、アクセス要求があった時刻を前記アクセス履歴保持手段に記録すると共に、時間変更手段に通知し、
前記時間変更手段は、アクセス要求の時間間隔と前記所定時間を比較して、前記所定時間を増減する、
ことを特徴とする請求項６項記載の情報処理装置。
【請求項８】
前記アクセス監視手段は、前記記憶手段インタフェースへのアクセス要求を検出した場合、前記電源制御手段に通知し、
前記電源制御手段は、前記データ使用手段がアクセス要求したアドレスに基づき、前記記憶手段インタフェースへアクセス要求があったことを検出し、前記第２の電源制御領域に電源を供給する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項９】
請求項１〜８いずれか１項記載の情報処理装置と、
記録媒体に画像を形成する画像形成手段と、
を有することを特徴とする画像形成装置。
【請求項１０】
電源の供給及び停止を個別に制御可能な複数の電源制御領域を有し、外部の記憶手段にアクセスする情報処理装置のデータアクセス方法であって、
第１の電源制御領域に配置されたデータ使用手段が、該第１の電源制御領域に配置された第２の記憶手段にアクセスするか、又は、記憶手段インタフェースにアクセス要求して前記記憶手段インタフェースに前記記憶手段に対しアクセスさせるステップと、
第２の電源制御領域に配置された記憶手段インタフェースが、前記第２の電源制御領域に電源が供給された状態で前記記憶手段に対しアクセスするステップと、
前記第１の電源制御領域に配置されたアクセス監視手段が、前記第２の電源制御領域への電源が停止された状態で、前記データ使用手段による前記記憶手段インタフェースへのアクセス要求を監視するステップと、
前記アクセス監視手段が前記記憶手段インタフェースへのアクセス要求を検出した場合、電源制御手段が、前記第２の電源制御領域に電源を供給するステップと、
電源制御手段が、所定時間の経過後に前記第２の電源制御領域への電源供給を停止するステップと、
を有することを特徴とするデータアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電源の供給及び停止を個別に制御可能な複数の電源制御領域を有し、外部の記憶手段にアクセスする情報処理装置に関する。
【背景技術】
【０００２】
ＳｏＣ（System On Chip）などの情報処理装置は、消費電力の低減要請に応えるため、内部が複数の電源ドメインに分割されている。電源制御回路などの所定の回路は、消費電力が低減される省エネモード時、予め定められた必要な機能を含む電源ドメイン以外の電源をＯＦＦにすることで、消費電力を低減する。
【０００３】
図１６は、ＳｏＣの概略構成図の一例を示す。このＳｏＣ１００はＣＰＵ１４、ＳＲＡＭ（Static ＲＡＭ）１１、及び、電源制御回路１３で１つの電源ドメイン１を形成し、メモリインタフェース回路１８で１つの電源ドメイン２を形成している。
電源ドメイン１：常時、電源が供給される
電源ドメイン２：省エネモード時には電源が供給されない
ここで省エネモードの１つとしてＳＴＲ（Suspend To RAM）モードが知られている。ＳＴＲモードの定義は必ずしも定まってないが、ＣＰＵなどの状態やプログラム、データをメモリ２０に保存したまま、予め定められた電源ドメインの電源を停止するという省エネモードである。図１６の省エネモードがＳＴＲモードである場合、メモリ２０には電源が供給されるがメモリインタフェース回路１８には電源が供給されない状態となる。したがって、電源ドメイン１のＣＰＵ１４はメモリ２０にはアクセスできない。
【０００４】
そこで、図１６のＳｏＣ１００は、ＳＴＲモードにおいてメモリ２０の代わりにＳＲＡＭ１１を使用して、プログラムを実行している。こうすることで、メモリインタフェース回路１８への電源を停止したまま、最小限の処理を行えるので、消費電力を低減することが可能になる。
【０００５】
ＳＴＲモード時にＣＰＵ１４が何からの処理を行う場合に、ＳＲＡＭ１１に記憶されていないプログラムが必要になると、ＣＰＵ１４はメモリ２０にアクセスする必要が生じる。この場合、ＣＰＵ１４は電源制御回路１３を制御してメモリインタフェース回路１８に電源を供給しメモリ２０へのアクセスを実行する。したがって、ＳＲＡＭ１１でなくメモリ２０へのアクセスが生じるほど、ＳＴＲモード時の消費電力が増大してしまう。
【０００６】
メモリ２０へのアクセスを低減するにはＳＲＡＭ１１の容量を大きくすればよい。しかし、ＳＲＡＭ１１の容量を大きくすると、チップコストが増大し、また、ＳＴＲモード時の消費電力が増大するという別の不都合が生じてしまう。
【０００７】
ＳＲＡＭ１１の容量を大きくすることなく、省エネモード時の消費電力を低減するために、ソフト的な制御によりメモリインタフェース回路１８に電源を供給し、また、メモリ２０のアクセスが終了すればメモリインタフェース回路１８への電源供給を停止することが検討される。この場合、ソフトウェアは、
・メモリインタフェース回路１８に電源供給する必要があるか、及び、メモリ利用後にメモリインタフェース回路１８への電源供給を停止してよいか
を判断する必要がある。
しかし、ＣＰＵ１４には本来の処理があるため、例えば１つの命令の実行毎にメモリにアクセスする必要があるか否か、及び、アクセスした場合は電源供給を停止してよいか否かをソフト的に判断することは現実には困難である。
【０００８】
そこで、ハード的に、ＣＰＵがアクセスする回路が属する電源ドメインに電源が供給されないことを検出することが検討される。従来から、回路が停止していることを検出する技術が考えられている（例えば、特許文献１参照。）。特許文献１には、関係するデータ処理回路が電力断しているか、または応答しない場合、エラー信号を返す診断インタフェース回路が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に開示されている技術では、エラー信号でデータ処理回路が電力断しているか否かを判定しているだけで、電源ドメインにどのように電源供給を開始するか、及び、メモリ利用後に電源供給をどのように停止するかについて記載されていないという問題がある。
【００１０】
本発明は、上記課題に鑑み、記憶素子の容量を増大させずに省エネモード時の消費電力の増大を抑制することが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１１】
本発明は、電源の供給及び停止を個別に制御可能な複数の電源制御領域を有し、外部の記憶手段にアクセスする情報処理装置であって、第２の電源制御領域に配置され前記記憶手段に対しアクセスする記憶手段インタフェースと、第１の電源制御領域に配置された第２の記憶手段にアクセスすると共に、前記記憶手段インタフェースにアクセス要求して前記記憶手段インタフェースに前記記憶手段に対しアクセスさせる、前記第１の電源制御領域に配置されたデータ使用手段（例えば、後述するＣＰＵやＤＭＡＣが相当する）と、前記第２の電源制御領域への電源が停止された状態で、前記データ使用手段による前記記憶手段インタフェースへのアクセス要求を監視する前記第１の電源制御領域に配置されたアクセス監視手段と、前記アクセス監視手段が前記記憶手段インタフェースへのアクセス要求を検出した場合、前記第２の電源制御領域に電源を供給し、所定時間の経過後に前記第２の電源制御領域に電源供給を停止する電源制御手段と、を有することを特徴とする。
【発明の効果】
【００１２】
記憶素子の容量を増大させずに省エネモード時の消費電力の増大を抑制することが可能な情報処理装置を提供することができる。
【図面の簡単な説明】
【００１３】
【図１】ＳｏＣの概略的な特徴を説明する図の一例である。
【図２】画像形成装置の全体構成図の一例である。
【図３】エンジン部の概略構成図の一例である。
【図４】ＳｏＣの概略構成図の一例である。
【図５】状態遷移について説明する図の一例である。
【図６】ステータスレジスタ、割込みステータスレジスタの構成例を示す図である。
【図７】ＳｏＣのアドレス空間を模式的に説明する図の一例である。
【図８】ＳｏＣの機能ブロック図の一例である。
【図９】ＳＴＲモード時のＳｏＣがメモリにアクセスする際の動作を示すシーケンス図の一例である。
【図１０】ＳｏＣの動作手順を示すフローチャート図の一例である。
【図１１】ＳＴＲモード時にＤＭＡＣがメモリにアクセスする際の動作を示すシーケンス図の一例である。
【図１２】ステータスレジスタの構成例、ＳｏＣの機能ブロック図の一例を示す図である（実施例２）。
【図１３】ＳｏＣの機能ブロック図の一例である。
【図１４】ＳＴＲモードの時間とメモリアクセスのタイミングを模式的に説明する図の一例である。
【図１５】ＳｏＣの動作手順を示すフローチャート図の一例である（実施例３）。
【図１６】ＳｏＣの概略構成図の一例である（従来図）。
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について図面を参照しながら説明する。しかしながら、本発明の技術的範囲が、本実施の形態に限定されるものではない。
【実施例１】
【００１５】
図１は、本実施例のＳｏＣ１００の概略的な特徴を説明する図の一例である。本実施例ではＳｏＣ（System On Chip）１００がトランザクションモニタ回路１７を有することが特徴の１つとなっている。トランザクションモニタ回路１７は主に以下の処理を行う。
(i) 省エネモード時に、ＣＰＵ１４がメモリにアクセスするか否かを監視する
(ii) ＣＰＵ１４がメモリ２０にアクセスする場合、メモリインタフェース回路１８の代わりにＣＰＵ１４に代理応答を通知する
したがって、ＣＰＵ１４はハード的にメモリインタフェース回路１８が停止していることを検知できる。
(iii) ＣＰＵ１４はタイマー１９にタイムアウト期間を設定する
(iv)  ＣＰＵ１４はメモリにアクセスし、その後、タイムアウトによりＣＰＵ１４はメモリインタフェース回路１８への電源供給を停止する。また、トランザクションモニタ回路１７はタイムアウト後に監視を再開する。
【００１６】
したがって、ＣＰＵ１４がメモリ２０へのアクセスを終わらせると、メモリインタフェース回路１８は速やかに省エネモードになるので、消費電力を低減できる。
【００１７】
このように、本実施例のＳｏＣ１００は、トランザクションモニタ回路１７を有することで、メモリ２０へのアクセスがある場合にだけメモリインタフェース回路１８に電源を供給し、また、タイマー１９がタイムアウトするので速やかに電源供給を停止することができる。したがって、ＳＲＡＭ１１の容量を増大することなく、省エネモード時の消費電力を抑制できる。
【００１８】
なお、画像形成装置２００は一般に多段階の省エネモードを有しているが、本実施例ではメモリ２０に電源が供給されている省エネモードを対象に説明する。このため、本実施例の省エネモードをＳＴＲ（Suspend To RAM）モードと称するものとする。メモリ２０に電源が供給され、メモリ２０にアクセスするための回路には電源が供給されない省エネモードであれば、ＳＴＲモードという呼称でない省エネモードに対しても本実施例の電源制御を好適に適用できる。
【００１９】
〔構成例〕
図２は、画像形成装置２００の全体構成図の一例である。画像形成装置２００は、エンジン部３１、ＳｏＣ１００、メモリ２０、ＨＤＤ（Hard Disk Drive）３２、メモリカード装着部３３、操作パネル３４、及び、ＮＩＣ（Network Interface Card）３５を有している。なお、画像形成装置２００は図示する以外にも外部装置とのインタフェースや種々の機能を有するが本実施例の主要部のみが図示されている。
【００２０】
エンジン部３１は、アクチュエータやクラッチなどの駆動部を制御して原稿の読み取り・印刷などを行い、ＳｏＣ１００は画像の回転、編集（１in２ページ等）、ビットマップデータの作成などを行う。ＳｏＣ１００は後述するようにＣＰＵを有しており、エンジン部３１を含む画像形成装置２００の全体を制御して複写、印刷、スキャンなどのジョブを実行する。ＳｏＣ１００は特許請求の範囲の情報処理装置に相当する。
【００２１】
ＨＤＤ３２はＯＳ(Operating  System)、プログラム３００、画像データ、及び、ＰＣ（Personal Computer）３６から受信した印刷データなどを蓄積する記憶手段である。このプログラム３００はメモリに展開される、コピーアプリ、プリンタアプリ、スキャナアプリなどのアプリケーションだけでなく、ＳＲＡＭに展開されるプログラムを含んでいる。なお、ＨＤＤ３２はＳＳＤ（Solid State Drive）など不揮発性の書き換え可能なメモリにより構成されていてもよい。
【００２２】
メモリカード装着部３３は、メモリカード３８にデータを書き込み、また、メモリカード３８からデータを読み出す。ＨＤＤ３２に記憶されるプログラム３００はメモリカード３８に記憶された状態で配布されることができる。メモリカード３８は、例えば、ＵＳＢメモリ（フラッシュメモリ）、ＳＤメモリカード（登録商標）などの記憶媒体である。
【００２３】
操作パネル３４は、液晶などのＦＰＤ（フラットパネルディスプレイ）と、テンキー・アプリ（コピーアプリ、プリンタアプリ、スキャナアプリなど）を選択するジョブ選択キー・ジョブを実行するスタートキーなどのハードキーを備えている。ＦＰＤにはタッチパネルが一体に構成されており、アプリに応じたソフトキーが表示される。例えば、コピーアプリやプリンタアプリでは用紙の選択、変倍、集約、片面／両面、カラー／モノクロなどの選択を受け付けるソフトキーなどが表示される。スキャナアプリでは解像度や保存先フォルダの選択を受け付けるソフトキーなどが表示される。
【００２４】
ＮＩＣ３５はネットワーク３７を介して又は１対１でＰＣ３６と通信するための通信装置である。例えば、イーサネットカード（登録商標）が知られている。ＰＣ３６がＰＤＬ（ページ記述言語：Page Description Language）で記述された印刷データをＮＩＣ３５に送信すると、画像形成装置２００はＨＤＤ３２に記憶してエンジン部３１で印刷する。なお、ネットワーク３７はＬＡＮやＷＡＮなどの公知のネットワークであり、有線又は無線のいずれで構築されていてもよい。また、ＮＩＣ３５が携帯電話網などに接続する機能を有している場合、ネットワーク３７には携帯電話網等が含まれる。ＨＤＤ３２に記憶されるプログラム３００はＮＩＣ３５を介して不図示のサーバから画像形成装置２００がダウンロードすることで配布されることができる。
【００２５】
ＰＣ３６は情報処理装置であり、具体的にはノートＰＣ、デスクトップＰＣ、タブレット、及び、スマートフォン、などである。ＰＣ３６は、ユーザ操作を受け付け、ワープロソフトウェア等を実行し文書データを作成し、ユーザの印刷操作を受け付けてプリンタドライバを実行し印刷データを作成する。
【００２６】
メモリ２０はＳＤＲＡＭ（Synchronous Dynamic Random Access Memory）、ＤＲＡＭ、ＦｅＲＡＭ（Ferroelectric Random Access Memory）、ＭＲＡＭ（Magnetoresistive Random Access Memory）などの高速な揮発性の記憶装置である。例えば、ＳＤＲＡＭをさらに高速化したＤＤＲ ＳＤＲＡＭ（Double-Data-Rate ＳＤＲＡＭ）がコスト的・速度的によく使用される。
【００２７】
図３は、エンジン部３１の概略構成図の一例を示す。エンジン部３１はスキャナ３１２、プロッタ３１３、及び、エンジン処理部３１１を有しており、エンジン処理部３１１はスキャナ特性補正部３１４、プロッタ出力処理部３１５、及び、PCI Express I/F３１６を有している。スキャナ３１２はコンタクトガラスやＡＤＦ（Auto Document Feeder）に載置された原稿を、ＣＣＤなどで構成されるラインセンサで光学的に読み取る装置である。ＣＣＤではカラーフィルター（ＲＧＢ）を通過した光が光電変換され、所定の解像度で原稿の濃淡が反映されたカラーの画像データが生成される。
【００２８】
スキャナ３１２で使用しているＣＣＤの特性の差異により、エンジン処理部３１１に入ってくる画像データの特性は様々である。エンジン処理部３１１のスキャナ特性補正部３１４はこの特性の補正を行う処理を行う。例えば、シェーディング補正や、γ変換、フィルタ処理、色変換などである。補正により、スキャナ３１２の違いに影響されず同じ原稿から同じ画像データが生成される。なお、ここで行う色変換は、ＲＧＢからＣＭＹＫへの色変換ではなく、ＲＧＢからＲＧＢへの変換である。画像データはPCI Express I/F３１６に出力される。
【００２９】
プロッタ３１３は、感光体、帯電器、露光手段、現像器、クリーニング装置、除電器、転写ベルト、紙搬送機構、定着器、給紙トレイ、排紙トレイ、などを有する画像形成手段である。このような電子写真方式の画像形成手段でなくインクジェット方式の画像形成手段でもよい。
【００３０】
電子写真方式のプロッタ３１３には、ＣＭＹＫの色毎に感光体等を用意するタンデム方式、４サイクル方式（中間転写体に順次４色のトナー画像を重ねて転写した後，中間転写体上の4色トナー画像を1回で用紙に転写する方式）などがある。
【００３１】
プロッタ出力処理部３１５は、ＣＭＹＫのカラー毎に用意されている。プロッタ出力処理部３１５は、スキュー補正、倍密処理、ジャギー補正、トリミング処理、地紋などの内部パターンの付加処理などを行う。プロッタ出力処理部３１５はＣＭＹＫのそれぞれの画像を、別々のタイミングでプロッタ側のラインメモリへ送信する。
【００３２】
プロッタ３１３はラインメモリの画像データをライン毎に読み出して、露光器が感光体を露光することで感光体に潜像を形成し、現像器でトナー像を現像するなどして画像を形成する。
【００３３】
PCI Express I/F３１６は、エンジン部３１とPCI Expressを介して接続されるＳｏＣ１００との間で画像データの授受を行う。複写ジョブの場合、スキャナ３１２が読み取った画像データはＳｏＣ１００に送信され、ＳｏＣ１００で画像処理された後、プロッタ出力処理部３１５に送信される。また、ＰＣ３６から送信された印刷データはＳｏＣ１００で画像処理された後、プロッタ出力処理部３１５に送信される。
【００３４】
図４は、ＳｏＣ１００の概略構成図の一例を示す。ＳｏＣ１００は、バス９を介して接続されたＳＲＡＭ１１、ＤＭＡＣ（Dynamic Memory Access Controller）１２、電源制御回路１３、ＣＰＵ１４、割込みコントローラ１５、ステータスレジスタ１６、及び、トランザクションモニタ回路１７を有している。バス９にはアドレスバスとデータバスが含まれている。また、ＳｏＣ１００は、メモリ２０へのアクセスを行うメモリインタフェース回路１８を有しており、トランザクションモニタ回路１７がメモリインタフェース回路１８と接続されている。ＣＰＵ１４又はＤＭＡＣ１２がメモリ２０にアクセスするには、トランザクションモニタ回路１７及びメモリインタフェース回路１８を経由しなければならない。メモリインタフェース回路１８は特許請求の範囲の「記憶手段インタフェース」に相当する。
【００３５】
メモリ２０には主にＯＳ、プログラム３００及び画像データが記憶されている。画像データは、スキャナ３１２が読み取った画像データ、ＰＣ３６から受信してレンダリングされた画像データ、不図示の圧縮回路や回転回路により処理された画像データなどである。画像データは、印刷時にはエンジン部３１に送信され、プロッタ３１３により印刷される。
【００３６】
ＣＰＵ１４はメモリ２０にアクセスしてプログラムを実行し、例えばアプリに応じた処理を行う。複写時には、ＣＰＵ１４は、ＤＭＡＣ１２にメモリ２０のアドレスを指示して、スキャナ３１２やプロッタ３１３によるメモリ２０へのアクセス先を制御する。また、画像形成装置２００がＮＩＣ３５を介して機器と通信する場合に適切なプロトコルスタックを選択することで外部の様々な機器との通信を可能にしている。なお、通信プロトコルは、通信レイヤー毎に分類されており、セッション層以上では、例えばＨＴＴＰ（Hypertext Transfer Protocol）、ＤＮＳ（Domain Name System）、ＳＭＢ（Server Message Block protocol）、ＦＴＰ（File Transfer Protocol）、ＰＯＰ３、ＳＭＴＰ（Simple Mail Transfer Protocol）、ＳＮＭＰ（Simple Network Management Protocol）、ＮＴＰ（Network Time Protocol）が、トランスポート層ではＴＣＰ（Transmission Control Protocol）、ＵＤＰ（User Datagram Protocol）が、ネットワーク層ではＡＲＰ（Address Resolution Protocol）、ＲＡＲＰ（Reverse address resolution protocol）、ＩＣＭＰ（Internet Control Message Protocol）、ＩＰ（Internet Protocol）などが知られている。
【００３７】
メモリ２０は、この他、プログラム実行時のスタック領域やヒープ領域としても用いられる。また、画像形成装置２００が省エネモードとしてＳＴＲモードになる場合、メモリ２０の内容は保持される。
【００３８】
また、ＣＰＵ１４はＳＲＡＭ１１に記憶されたプログラムをＳＲＡＭ１１を作業メモリにして実行する。ＳＲＡＭ１１は、フリップフロップを記憶素子とした高速な記憶素子である。ＳＲＡＭ１１には、使用頻度の高いプログラムやデータが記憶される。例えば、よく使用される通信プロトコルを処理するプログラム（プロトコルスタック）、データを送受信するプログラムなどが記憶されており、ＣＰＵ１４はこの通信プロトコルで通信する際にはメモリ２０にアクセスすることなく処理が可能である。なお、ＳＲＡＭ１１は電源ドメイン１に配置されていればよく、ＤＲＡＭなど別の記憶素子で構成された記憶手段でもよい。
【００３９】
ＳＲＡＭ１１の容量はメモリ２０の容量に対し小さい。本願の課題にて説明したようにＳＲＡＭ１１の容量を大きくすることは消費電力の増大をもたらすため、画像形成装置２００のメーカなどが、よく使用するプログラムのサイズや該プログラムが使用するスタック領域などのサイズ、消費電力、及び、ＳＲＡＭ１１のコストなどを考慮してＳＲＡＭ１１の容量を決定している。
【００４０】
ＤＭＡＣ１２はデータを入出力する周辺機器に応じて用意されている。図２に示したように、ＤＭＡＣ１２には各種の周辺機器が接続されているので、例えばエンジン制御部側のPCI Express I/Ｆ３１６と通信するためのPCI Express I/Fが接続されている（不図示）。同様に、ＨＤＤ３２との間でデータを送受信するＨＤＤ I/F、メモリカード装着部３３との間でデータを送受信するメモリカード I/F、操作パネル３４との間でデータを送受信する操作パネル I/F、ＮＩＣ３５との間でデータを送受信するＮＩＣ I/F、が接続されている。ＤＭＡＣ１２はこれらＩ／Ｆを介して周辺機器と接続されている。
【００４１】
電源制御回路１３は、電源ドメイン毎に電源供給のＯＮ／ＯＦＦを制御する。図ではメモリインタフェース回路１８が含まれる領域と、それ以外の機能を含む領域とで電源ドメインが区分されている。電源制御回路１３は、ＳＴＲモードへの移行時に、電源ドメイン１の電源を維持したまま、電源ドメイン２の電源をＯＦＦに制御する。また、ＳＴＲモードから通常動作モードに復帰する場合、電源制御回路１３は、電源ドメイン１の電源を維持したまま、電源ドメイン２の電源のＯＮに制御する。このように、本実施例では、電源ドメイン１に電源が供給されたまま、メモリインタフェース回路１８への電源がＯＮ／ＯＦＦに制御される。また、本実施例においてメモリ２０への電源は常にＯＮである。電源制御回路１３は電源ドメイン１でなくても、電源ドメイン１より先に電源供給される電源ドメインにあればよい。
【００４２】
なお、画像形成装置２００はＳＴＲモードよりも消費電力を低減可能な省エネモードに移行することができ、この場合、電源ドメイン１及びメモリ２０への電源供給も停止される。しかし、本実施例の電源制御はこのような細分化された省エネモードへの移行の有無を問わずに適用可能である。
【００４３】
割込みコントローラ１５は割込みの種類に応じて対応するビットがＯＮになるレジスタと、割込みをマスクするためのマスクレジスタとを有し、優先的に通知すべき割込みをＣＰＵ１４に通知する。ＣＰＵ１４は割込みの種類に応じて割込みベクターテーブルを読み出し、割込みベクターに対応するアドレスの割込みハンドラ等を実行する。
【００４４】
ステータスレジスタ１６は、ＳＴＲモード時に、ＣＰＵ１４がメモリ２０にアクセスしたことを記憶するレジスタである。トランザクションモニタ回路１７はＣＰＵ１４がメモリ２０にアクセスした場合にステータスレジスタ１６のビットをＯＮに設定する。本実施例では、ＳＴＲモード時にＣＰＵ１４がメモリ２０にアクセスしたことを例外発生として扱う。
【００４５】
トランザクションモニタ回路１７は、以下のように動作する。
・通常動作モード時（トランザクションモニタ回路の機能がDisable状態）
ＣＰＵ１４がメモリ２０にアクセスするトランザクションをそのまま許可する（以下、トランザクション処理を透過させるという）。なお、トランザクション処理とは、メモリ２０へひとまとまりのデータを書き込むこと、メモリ２０からひとまとまりのデータを読み出すことである。
・ＳＴＲモード時（トランザクションモニタ回路の機能がEnable状態）
電源が供給されておらず応答ができないメモリインタフェース回路１８に代わり、ＣＰＵ１４又はＤＭＡＣ１２からのアクセスに対して代理でエラー応答を返す。また、エラー信号をステータスレジスタ１６に出力する。ステータスレジスタ１６はエラーステータス（所定のビットがＯＮであること）を保持するので、ＣＰＵ１４はメモリ２０へのアクセスがあったことを検出できる。
【００４６】
エラー応答を受け付けたＣＰＵ１４は、例外の発生要因の特定の為にステータスレジスタ１６を参照する。メモリ２０へのアクセス以外にも例外処理はあるので、ＣＰＵ１４は例外の種類に対応した例外処理を行う。
【００４７】
トランザクションモニタ回路１７が有するタイマー１９は、ＣＰＵ１４が例外処理を終えた後にＳＴＲモードに戻るためのタイムアウト時間を測定する。タイマー１９は、タイムアウト時間の測定が完了するとＣＰＵ１４に割り込みする。
【００４８】
メモリインタフェース回路１８は、アドレスバスに出力されたアドレスを、メモリ２０のバンクアドレス、ロウアドレス、カラムアドレスに変換して、データのメモリ２０への書き込み及びメモリ２０からの読み出しを行う。例えば、以下のような手順でデータが読み出される。
(i)  メモリインタフェース回路１８は、ＡＣＴコマンド(バンク・アクティブ・コマンド)と共に、Row（ロウ）アドレス及びバンクアドレスをメモリ２０に入力して該当バンクの特定ロウアドレスをアクティブにする。
(ii) ＡＣＴを入力してからtRCDと呼ばれる時間待ち、カラム・アドレス、バンク・アドレス、及び、ＲＥＡＤ（リードコマンド）を入力する。
(iii)  リードコマンドを入力してからＣＡＳレイテンシ後に、上記で指定したアドレスから始まるバーストデータ出力が開始される。メモリ２０は、ＤＱＳ信号（データストローブ信号）と、ＤＱＳ信号に同期するＤＱ信号（データ信号）を出力する。メモリインタフェース回路１８は、ＤＱＳ信号の立ち上がり／立ち下がりエッジを参照してＤＱ信号を取り込む。
(iv)  ＡＣＴを入力してからtRASと呼ばれる時間待ち、メモリインタフェース回路１８がＰＲＥ(プリチャージコマンド)を入力する（動作を終了）。
【００４９】
なお、データの書き込みはＣＡＳレイテンシが不要になる以外は同様である。このように、メモリインタフェース回路１８に電源やクロックが供給されていないと、ＣＰＵ１４やＤＭＡＣ１２はデータの書き込み及び読み出しができない。
【００５０】
〔状態遷移について〕
図５は、状態遷移について説明する図の一例である。この状態遷移は、ＳＴＲモードのＳｏＣ１００に着目したものである。つまり、画像形成装置２００がＳＴＲモードから通常動作モードに復帰する条件、及び、通常動作モードからＳＴＲモードに移行する条件としては図示する契機に限られない。例えば、ＳＴＲモードではユーザが操作パネル３４に触れたりＡＤＦを開閉するなどでも、通常動作モードに復帰する。また、通常動作モードではユーザが省エネボタンを押下したり、ジョブ実行後に所定時間が経過してもＳＴＲモードに移行する場合がある。
Ｉ．ＳＴＲモードのＳｏＣ１００は、ＣＰＵ１４又はＤＭＡＣ１２がメモリ２０にアクセスすることで、通常動作モードに復帰する。
II．メモリ２０へのアクセスにより通常動作モードに復帰した場合、ＳｏＣ１００はメモリアクセス後、タイムアウトすることでＳＴＲモードに移行する。
【００５１】
このように本実施例の画像形成装置２００は、ＳＴＲモードからメモリアクセスにより復帰した場合に、メモリアクセスが完了してからタイムアウト時間が経過すると必ずＳＴＲモードに移行できるので省エネモード時の消費電力を低減できる。
【００５２】
〔ステータスレジスタ〕
図６（ａ）は、ステータスレジスタ１６の構成例を示す図の一例である。ステータスレジスタ１６は、例えば[31:0]の３２bitの容量を有する。bit０がＳＴＲモード時にメモリ２０へのアクセスがあったことを示すエラー信号のためのビットである。つまり、電源ドメイン２の電源がＯＦＦの状態で、メモリ２０にアクセスが発生したことを示す。なお、エラー信号のビットは0bit〜31bitのどこにあってよい。
【００５３】
ＳｏＣ１００では、このような本実施例に特有のエラー信号だけでなく、従来から、アプリがシステム領域へアクセス違反したり、プログラムの実行エラーなどを検出する機能が備わっている。ステータスレジスタ１６にはこれらの例外要因がビットアサインされている。ＣＰＵ１４はステータスレジスタ１６を参照して、例外要因に対応した割込みハンドラ又はＩＳＲ（Interrupt Service Routine）を実行する。
【００５４】
また、ステータスレジスタ１６を使用するのでなく、例外が発生したアクセス先のメモリ２０のアドレスから例外の発生要因を判断してもよい。メモリ２０のアクセス先は、ＣＰＵ１４のレジスタに保持される場合があるので、後述するＣＰＵ状態情報により判別できる。この他、アドレスバスに出力されるアドレスを制御するためのレジスタなどに記憶されているアドレスを利用できる。
【００５５】
図６（ｂ）は割込みステータスレジスタの構成例を示す図の一例である。割込みステータススレジスタは、例えば[31:0]の３２bitの容量を有する。bit０がタイムアウトしたことを示すタイムアウト割込みを通知するためのタイムアウト割込みビットである。つまり、トランザクションモニタ回路１７に設定されたタイムアウト時間、メモリ２０に対しアクセスがなかったことを示す。なお、タイムアウト割込みビットは0bit〜31bitのどこにあってよい。
【００５６】
割込みコントローラ１５にはタイマー１９以外にも各ＤＭＡＣ１２や不図示の機能が割込みする。このため、割込みステータスレジスタ１６にはタイムアウト割込み以外の割込み要因がビットアサインされている。ＣＰＵ１４は割込みステータスレジスタを参照して、割込み要因に対応した割込みハンドラ又はＩＳＲを実行する。
【００５７】
また、本実施例では、ＳＴＲモード時のメモリアクセスを割込みとは呼ばないため、ＣＰＵ１４がエラーステータスを使用するため、及び、割込みと区別するためにＳＴＲモード時のメモリアクセスをステータスレジスタ１６に記録している。しかし、ＳＴＲモード時のメモリアクセスを割込みとして扱って、割込みステータスレジスタに記録してもよい。これにより、ステータスレジスタ１６を不要にしたり、別の例外にステータスレジスタ１６のbit0を割り当てることができる。
【００５８】
〔アドレス空間について〕
図７は、ＳｏＣ１００のアドレス空間を模式的に説明する図の一例である。アドレスの小さい領域から順に、ＲＯＭ領域、メモリ領域、未使用、ＳＲＡＭ領域、及び、レジスタ領域の各領域がマッピングされている。
【００５９】
ＲＯＭ領域：ＲＯＭ領域はアドレスの最初（0x0000_0000）に配置されているので、画像形成装置２００のメイン電源のＯＮにより、ＣＰＵ１４が最初に読み出す領域である。ＲＯＭには例えば起動用のスタートプログラム又はブートローダが記憶されており、これらがＨＤＤ３２からＯＳやプログラム３００を読み出しメモリ２０とＳＲＡＭ１１に転送する。
【００６０】
メモリ領域：メモリ領域には、ＯＳ、プログラム３００、画像データ、スタック領域／ヒープ領域が記憶される。スタック領域とは、プログラムの変数や引数が記憶される領域であり、予めＯＳにより確保されている。ヒープ領域は、アプリやＯＳが動的に割り当てたり解放する領域である。例えば、ネットワーク経由でデータを送受信する際にデータを一時的に保存するために使用される。
【００６１】
ＳＲＡＭ領域：ＳＲＡＭ領域にも、プログラム及びスタック領域／ヒープ領域が記憶される。このプログラムは、ＳＴＲモード時によく使用されるプログラム、例えばＦＴＰにより起動確認に対しＳＴＲモードであることを応答したり、ＰＯＰ３により電子メールを受信したり、ＳＮＭＰによりＭＩＢ（Management information base)の内容を送信したり、ＮＴＰにより時刻を修正したりする、比較的、処理負荷の小さいプログラムである。したがって、ＳＲＡＭ領域に記憶されているプログラムで完結する処理であり、処理対象のデータサイズがスタック領域／ヒープ領域以下であれば、ＣＰＵ１４がメモリ２０にアクセスすることがない。
【００６２】
また、ＳＲＡＭ領域には、少なくともＳＴＲモード時にメモリアクセスが発生した場合に、ＣＰＵ１４が例外処理として実行する上記の割込みハンドラやＩＳＲが記憶されている。これにより、ＳＴＲモード時にメモリアクセスが発生した場合、ＣＰＵ１４はメモリインタフェース回路１８を起動するなどの処理が可能になる。
【００６３】
レジスタ領域：レジスタ領域はステータスレジスタ１６、割込みステータスレジスタなどのレジスタが配置される領域である。
【００６４】
なお、図示された以外にアドレス空間にはＤＭＡＣ１２に接続されたＩ／Ｏ領域が確保されており、画像形成装置２００はＩ／Ｏ領域を経由して周辺機器との間でデータを送受信する。
【００６５】
例えば、画像形成装置２００はＳＴＲモード時においてもＮＩＣ３５を介してデータを受信する。この場合、ＮＩＣ３５に接続されたＤＭＡＣ１２は受信したデータをＳＲＡＭ領域のスタック領域／ヒープ領域に記憶する。また、割込みコントローラ１５の割込みステータスレジスタ１６の所定のｂｉｔをＯＮに操作し、割込みコントローラ１５がＣＰＵ１４に通知する。ＣＰＵ１４は受信したデータのヘッダなどから通信プロトコルを判定し、適切な通信用のプログラムが記憶されているアドレスに処理を分岐させる。この分岐先が、ＳＲＡＭ領域であれば、ＣＰＵ１４はＳＴＲモード時にメモリ２０にアクセスしないが、メモリ領域であればＣＰＵ１４がメモリ２０にアクセスすることになる。
【００６６】
また、ＮＩＣ３５を介してＤＭＡＣ１２が受信したデータのサイズがＳＲＡＭ領域のスタック領域／ヒープ領域より大きい場合、ＤＭＡＣ１２はメモリ領域に受信したデータを保存する。
【００６７】
このように、ＣＰＵ側では制御困難な任意のタイミングで、ＣＰＵ１４又はＤＭＡＣ１２がメモリ２０にアクセスすることが起こりうる。ＳＴＲモードのＣＰＵ１４には各種の割込みや例外が発生しうるが、上記のようにステータスレジスタ１６を参照することで、ＣＰＵ１４はメモリアクセスに対応した例外処理や割込み処理を実行することができる。
【００６８】
〔ＳＲＡＭに記憶されているプログラムの機能〕
図８（ａ）は、ＳＴＲモード時のＳｏＣ１００の機能ブロック図の一例を示す。各機能ブロックは、ＣＰＵ１４がＳＲＡＭ１１に記憶されているプログラムを実行し、ＳｏＣ１００のハードウェアと協働することで実現される。
【００６９】
トランザクションモニタ回路１７からＣＰＵ１４がエラー応答を受け付けると、エラー発生処理部４１が動作する。エラー発生処理部４１はＳＴＲモード時にエラー発生した場合にＳｏＣ１００を制御する。まず、エラー発生処理部４１はＣＰＵ１４のレジスタ（プログラムカウンタ、スタックポインタレジスタ、フラグレジスタ、汎用レジスタなど）などのＣＰＵ状態を規定するＣＰＵ状態情報をＳＲＡＭ１１に退避する。これにより、ＣＰＵ１４がメモリ２０にアクセスした時のアドレスが保存される。
【００７０】
エラーレジスタ判定部４３は、ステータスレジスタ１６にアクセスし例外の発生要因（本実施例ではメモリアクセス）を特定する。エラー発生処理部４１は、例外の発生要因がメモリアクセスなので、電源回路制御部４４に電源ドメイン２に対する電源供給を開始させる。電源回路制御部４４は、メモリインタフェース回路１８を含む電源ドメイン２に電源の供給を開始する。
【００７１】
電源がＯＮになるとメモリインタフェース回路制御部４５は、メモリインタフェース回路１８を初期化するなどの処理を行う。これによりメモリインタフェース回路１８が動作可能になる。タイムアウト設定部４６は、タイマー１９にタイムアウト時間を設定する。これにより、タイマー１９がタイムアウトとすることで、ＳｏＣ１００は再度、ＳＴＲモードに移行できる。
【００７２】
以上で、ＣＰＵ１４はメモリ２０にアクセス可能になったので、ＣＰＵ状態復帰部４７は退避されているＣＰＵ状態情報をＣＰＵ１４に復帰する。これにより、ＣＰＵ１４はメモリアクセスが発生した命令から実行を再開する。例えば、ＣＰＵ１４がＳＲＡＭ１１に記憶されていないプログラムを実行しようとした場合、再開後に実行される命令は例えばメモリ２０のプログラムへの分岐命令や関数などの呼び出し命令になる。ＣＰＵ１４はメモリ２０にアクセスしメモリ２０に記憶されたプログラムを実行できる。また、ＣＰＵ１４がＳＲＡＭ１１に記憶されているプログラムを実行していたが、メモリ２０のデータにアクセスしようとした場合、再開後に実行される命令はＳＲＡＭ１１のプログラムである。ＣＰＵ１４はこの命令が指示するメモリ２０のアドレスにアクセスして処理を継続することができる。
【００７３】
図８（ｂ）は、ＳＴＲモードから通常動作モードに復帰した時のＳｏＣ１００の機能ブロック図の一例を示す。各機能ブロックは、ＣＰＵ１４がＳＲＡＭ１１に記憶されているプログラムを実行し、ＳｏＣ１００のハードウェアと協働することで実現される。
【００７４】
割込みコントローラ１５からＣＰＵ１４が割込み通知を受け付けると、割込み処理部５１が動作する。割込み処理部５１は割込みが発生した場合にＳｏＣ１００を制御する。まず、割込み処理部５１はＣＰＵ状態情報をＳＲＡＭ１１に退避する。
【００７５】
割込みレジスタ判定部５２は、割込みステータスレジスタ１６にアクセスし割込み要因（本実施例ではタイムアウト割込み）を特定する。割込み処理部５１は、割込み要因がタイムアウト割込みなので、ＳＴＲモード移行部５３にＳＴＲモードへの移行を要求する。ＳＴＲモード移行部５３は、メモリ２０のリフレッシュの設定（放電で失った電荷を定期的に再充電するための充電周期）を行う。
【００７６】
これで、電源ドメイン２の電源供給を停止できるので、割込み処理部５１は電源回路制御部４４に電源ドメイン２に対する電源供給を停止させる。電源回路制御部４４は、電源制御回路１３に対し、メモリインタフェース回路１８を含む電源ドメイン２への電源を停止させる。
【００７７】
ＣＰＵ状態復帰部４７は退避されているＣＰＵ状態情報をＣＰＵ１４に復帰する。これにより、ＣＰＵ１４はタイムアウト割込みで中断した命令から実行を再開する。
【００７８】
〔動作手順〕
図９は、ＳＴＲモード時のＳｏＣ１００がメモリ２０にアクセスする際の動作を示すシーケンス図の一例を示す。図９の手順は移行条件が成立したため、ＳｏＣ１００がＳＴＲモードに移行する処理からスタートする。この移行条件はタイマー１９のタイムアウトでもよいし、これ以外でもよい。
【００７９】
S1：まず、ＳＴＲモードに移行するため、ＳＴＲモード移行部５３はメモリインタフェース回路１８にメモリ２０のリフレッシュ設定を行う。
S2：電源回路制御部４４は、電源制御回路１３に電源ドメイン２の電源ＯＦＦを指示する。
S3：電源制御回路１３はメモリインタフェース回路１８を含む電源ドメイン２に供給される電源をＯＦＦに制御する。
S4：また、電源制御回路１３はトランザクションモニタ回路１７にモニタ機能をEnableにする（有効にする）設定を行う。これにより、トランザクションモニタ回路１７はＣＰＵ１４によるメモリアクセスの監視を開始する。
S5：ＣＰＵ１４がプログラムの実行やデータの読み書きのためメモリ２０にアクセスする。すなわち、ソフトウェアは、ＳＲＡＭ１１か電源が供給されていないメモリ２０かを判別することなくアクセスする。しかし、メモリインタフェース回路１８の電源がＯＦＦなので、メモリアクセスはできない。
S6：また、メモリアクセスはトランザクションモニタ回路１７の監視対象なので（モニタ機能がEnable）、トランザクションモニタ回路１７はＣＰＵ１４にエラー応答を出力する。これにより、ＣＰＵ１４は例外処理に移行し、ＣＰＵ状態退避部４２がＣＰＵ状態情報を退避する。
S6.1：また、トランザクションモニタ回路１７はステータスレジスタ１６のbit0をONに設定する。エラーレジスタ判定部４３は例外要因を特定する。
S7：電源回路制御部４４は、電源制御回路１３に電源ドメイン２の電源投入を指示する。
S8：電源制御回路１３は、電源ドメイン２の電源をＯＮに制御する。
S8.1：電源制御回路１３はトランザクションモニタ回路１７にモニタ機能をDisableにする（有効にする）設定を行う。これにより、トランザクションモニタ回路１７はＣＰＵ１４によるメモリアクセスの監視を停止する。
S9：電源安定後、メモリインタフェース回路制御部４５はメモリインタフェース回路１８の初期化処理を行う。
S10：タイムアウト設定部４６は、トランザクションモニタ回路１７にタイムアウト時間を設定し、タイムアウト割込み機能をEnableする。タイマー１９はカウントアップ（又はカウントダウン）を開始する。
S11：ＣＰＵ状態復帰部４７はＣＰＵ状態情報を復帰させるので、ＣＰＵ１４は例外処理により中断していた処理を再開する。これにより、ＣＰＵ１４はメモリ２０にアクセスする。トランザクションモニタ回路１７はメモリアクセスが発生すると、タイマー１９をクリアするので、タイマー１９はすでに途中まで測定しているタイムアウト時間の測定を停止し、タイムアウト時間の初期値から再び、カウントアップする。なお、タイムアウトによりＳＴＲモードに移行しても、メモリアクセスにより復帰できるので、メモリアクセスの度にタイマー１９をクリアしなくてもよい。以降、ＣＰＵ１４は必要な処理（通信処理など）を継続する。
S12：ステップS10で設定したタイムアウト時間、メモリ２０へのアクセスが無い場合、トランザクションモニタ回路１７は割込みコントローラ経由でＣＰＵ１４にタイムアウト割込みを通知する。以降は、S1〜S4と同様である。
S13〜S16：ＣＰＵ１４はタイムアウト割込みが発生したことから、ＣＰＵ１４がメモリ２０へのアクセスを必要としない（内蔵のＳＲＡＭ１１やＣＰＵ１４のキャッシュだけで省エネ状態を維持できる状態にある）と判断し、ＳＴＲモード移行部５３がリフレッシュ設定を行う。また、電源制御回路１３は、再度、電源ドメイン１（ＳＴＲモードの維持に必要）を除き、メモリインタフェース回路１８を含む電源ドメイン２の電源供給を停止する。また、トランザクションモニタ回路１７のモニター機能がEnableされる。
【００８０】
図１０は、ＳｏＣ１００の動作手順を示すフローチャート図の一例を示す。図１０の動作手順は図９とほぼ同様であるが、ＣＰＵ１４が行う処理として記載したものである。
【００８１】
トランザクションモニタ回路１７により、ＣＰＵ１４が電源ＯＦＦの電源ドメイン２にアクセスしたか否かが判定される（Ｓ１０）。
【００８２】
ＣＰＵ１４が電源ＯＦＦの電源ドメイン２にアクセスした場合（Ｓ１０のＹｅｓ）、ＣＰＵ１４はトランザクションモニタ回路１７からエラー応答の通知を受け付ける（Ｓ２０）。ＣＰＵ１４は例外処理に移行し、ＣＰＵ状態退避部４２がＣＰＵ状態情報を退避し、エラーレジスタ判定部４３が例外要因を特定する。
【００８３】
電源回路制御部４４は電源制御回路１３にアクセスし、メモリインタフェース回路１８を含む電源ドメイン２の電源をＯＮに制御する（Ｓ３０）。
【００８４】
タイムアウト設定部４６はタイムアウト時間をタイマー１９に設定し、タイムアウト割込み機能をEnableに設定する（Ｓ４０）。
【００８５】
この後、タイムアウトするまで、トランザクションモニタ回路１７により、タイムアウト時間内にＣＰＵ１４がメモリ２０にアクセスしたか否かが判定される（Ｓ５０）。
【００８６】
タイムアウト時間内にＣＰＵ１４がメモリ２０にアクセスした場合（Ｓ５０のＹｅｓ）、トランザクションモニタ回路１７はタイマー１９をクリアする（Ｓ６０）。これにより、タイムアウト時間の最初から測定される。
【００８７】
タイムアウト時間内にＣＰＵ１４がメモリ２０にアクセスしない場合（Ｓ５０のＮｏ）、トランザクションモニタ回路１７のタイマー１９は割込みコントローラ経由でＣＰＵ１４にタイムアウト割込みを通知する（Ｓ７０）。
【００８８】
電源回路制御部４４は、電源制御回路１３を制御して、メモリインタフェース回路１８を含む電源ドメイン２の電源ＯＦＦに制御する（Ｓ８０）。
【００８９】
以上説明したように、本実施例のＳｏＣ１００は、ＳＴＲモード時にはトランザクションモニタ回路１７がメモリ２０へのアクセスを代理応答することで、ＣＰＵ１４が例外処理の中でメモリインタフェース回路１８に電源供給することができる。よって、必要最小限の場合にだけ電源ドメイン２に電源を供給することができる。また、タイムアウトにより確実にＳＴＲモードに移行できる。したがって、ＳＲＡＭ１１の容量を増大することなく、ＳＴＲモード時の消費電力を抑制できる。
【００９０】
〔ＤＭＡＣがメモリアクセスする場合〕
ＤＭＡＣ１２がメモリ２０にアクセスしたことを検知してＣＰＵ１４が動作する場合について説明する。図１１は、ＳＴＲモード時にＤＭＡＣ１２がメモリ２０にアクセスする際の動作を示すシーケンス図の一例を示す。
【００９１】
S1〜S4の処理は図９と同様にＣＰＵ１４が行うので変更はない。
S5：ＤＭＡＣ１２がデータの読み書きのためメモリ２０にアクセスする。しかし、メモリインタフェース回路１８の電源がＯＦＦなので、メモリ２０にアクセスできない。
S6：メモリアクセスはＣＰＵ１４かそれ以外かを問わずにトランザクションモニタ回路１７の監視対象なので、トランザクションモニタ回路１７はＤＭＡＣ１２にエラー応答を出力する。
S6.1：ＤＭＡＣ１２は、ＣＰＵ１４に割り込みして例外が発生したことを通知する。これにより、ＣＰＵ１４は例外処理に移行し、ＣＰＵ状態退避部４２がＣＰＵ状態情報を退避する。
S6.2：また、トランザクションモニタ回路１７はステータスレジスタ１６のbit0をONに設定する。エラーレジスタ判定部４３はステータスレジスタ１６を参照して例外要因を特定する。
S7：ＣＰＵ１４の電源回路制御部４４は、電源制御回路１３に電源ドメイン２の電源投入を指示する。
S8：電源制御回路１３は、電源ドメイン２の電源をＯＮに制御する。
S8.1：電源制御回路１３はトランザクションモニタ回路１７にモニタ機能をDisableにする（有効にする）設定を行う。これにより、トランザクションモニタ回路１７はＣＰＵ１４によるメモリアクセスの監視を停止する。
S9：電源安定後、ＣＰＵ１４のメモリインタフェース回路制御部４５はメモリインタフェース回路１８の初期化処理を行う。
S10：ＣＰＵ１４のタイムアウト設定部４６は、トランザクションモニタ回路１７にタイムアウト時間を設定し、タイムアウト割込み機能をEnableする。タイマー１９はカウントアップ（又はカウントダウン）を開始する。
S10.1：ＣＰＵ１４の例えばエラー発生処理部４１は、ＤＭＡＣ１２に処理を再開させる。
S11：ＤＭＡＣ１２は停止させられた処理を再開する。これにより、ＤＭＡＣ１２はメモリ２０にアクセスする。
【００９２】
ＤＭＡＣ１２がアクセスを終えるとS12〜S16の処理は図９と同様にＣＰＵ１４が行うので変更はない。
【００９３】
このように、本実施例ではメモリアクセスする回路を問わずに、トランザクションモニタ回路１７が代理応答し、メモリインタフェース回路１８の電源をONにするのでＳＲＡＭ１１の容量を増大することなく、ＳＴＲモード時の消費電力を抑制できる。
【００９４】
なお、本実施例では画像形成装置２００を例に説明したが、ＳｏＣ１００は種々の装置に適用できる。例えば、プロジェクタ、デジタルカメラ、テレビ会議端末など、種々の装置にＳｏＣ１００は搭載され、ＳＲＡＭ１１のサイズを増大することを抑制してＳＴＲモード時の消費電力を抑制できる。
【実施例２】
【００９５】
本実施例では、ステータスレジスタ１６の変形例について説明する。ステータスレジスタ１６は図６（ａ）に示したように、最低限１bitあればよいが、適切なデータを記憶させることで、ＳＴＲモード時のメモリアクセスを後にメーカやサービスマンなどが解析することが可能になる。
【００９６】
図１２（ａ）は、ステータスレジスタ１６の構成例を示す図である。ステータスレジスタ１６は図６（ａ）と同じステータスレジスタ１６ａに加え、アクセス先アドレスレジスタ１６ｂを有する。アクセス先アドレスレジスタ１６ｂはアドレスを記憶する。すなわち、トランザクションモニタ回路１７は、ＳＴＲモード時にＣＰＵ１４又はＤＭＡＣ１２がアクセスしたアドレスを保持しておき、ステータスレジスタ１６のbit0をＯＮに設定すると共に、アクセス先のアドレスをアクセス先アドレスレジスタ１６ｂに設定する。
【００９７】
図１２（ｂ）は本実施例のＳｏＣの機能ブロック図の一例を示す。本実施例において、図８において同一の符号を付した構成要素は同様の機能を果たすので、主に本実施例の主要な構成要素についてのみ説明する場合がある。本実施例では例外処理において新たにレジスタ処理部５４を有している。レジスタ処理部５４は、アクセス先アドレスレジスタのアドレスを読み出してメモリ２０やＨＤＤ３２に記憶することで、ＳＴＲモード時にメモリアクセスされたアドレスを記録することができる。したがって、アクセスが多いアドレスがあれば、そのアドレスに記憶されているプログラムをＳＲＡＭ１１に移動するなどの処置が可能になり、ＳＴＲモード時の消費電力をさらに低減できる。
【００９８】
また、アクセス先アドレスだけでなく、トランザクションモニタ回路１７がステータスレジスタ１６にアクセスが発生した時刻を記録することも有効である。この場合もレジスタ処理部５４はステータスレジスタ１６に記憶された時刻をメモリ２０やＨＤＤ３２に記憶することで、ＳＴＲモード時にメモリアクセスされたアドレスと時刻を対応づけて記録することができる。
【００９９】
メーカやサービスマンはアクセス頻度を算出して、アクセス頻度が多ければ、適切なタイムアウト時間を設定することができる。ＳＴＲモード時のアクセスは、その度に電源ドメイン２の電源をＯＮに制御する必要があるので、却って消費電力を増大する恐れがあるが、適切なタイムアウト時間を設定することでさらに消費電力を低減できる。
【実施例３】
【０１００】
実施例１，２ではタイムアウト時間が固定であるとして説明したが、本実施例では動的にタイムアウト時間を変更可能なＳｏＣ１００について説明する。
【０１０１】
図１３は本実施例のＳｏＣの機能ブロック図の一例を示す。本実施例ではレジスタ処理部５４に加え、タイムアウト時間変更部５５を有している。タイムアウト時間変更部５５は、ＳＴＲモード時のメモリアクセス頻度に応じてタイムアウト時間を変更する。
【０１０２】
図１４（ａ）はＳＴＲモードが維持される時間とメモリアクセスのタイミングを模式的に説明する図の一例である。例えば、タイムアウト時間が１０分であるとする。この場合、メモリアクセスから約１０分で（タイムアウトまでに次のメモリアクセスがない場合）、ＳｏＣ１００はＳＴＲモードに移行する。そして、ＳＴＲモード時に次にメモリアクセスが発生する。
【０１０３】
レジスタ処理部５４は、２つのメモリアクセスの時刻ｔ１，ｔ２を記録するので、タイムアウト時間変更部５５はメモリアクセスの時間間隔を算出できる。時間間隔が１０分＋αのようにタイムアウト時間より若干長い程度の場合、ＳＴＲモードに以降後、早期にメモリアクセスが発生するので、タイムアウト時間を長めに変更した方が効率がよい。電源ドメインの頻繁なＯＮ／ＯＦＦがかえって消費電力を増大したり、電源ドメイン２の電源供給のための待ち時間が生じるためである。
【０１０４】
タイムアウト時間変更部５５は、例えば
時間間隔−タイムアウト時間  ＜  タイムアウト時間の１０〜２０％  …（１）
を判定し、条件が成立すれば、３０〜５０％、タイムアウト時間を長くする。こうすることで、電源ドメイン２の電源の頻繁なＯＮ／ＯＦＦを抑制できる。
【０１０５】
逆に、図１４に示すように、タイムアウト時間を短く変更することもできる。図１４（ｂ）はＳＴＲモードの時間とメモリアクセスのタイミングを模式的に説明する図の一例である。同様に、タイムアウト時間が１０分である場合、メモリアクセスから約１０分で、ＳｏＣ１００はＳＴＲモードに移行する。そして、ＳＴＲモード時に次にメモリアクセスが発生する。
【０１０６】
２つのメモリアクセスの時間間隔が１０分×ｎ（ｎは２以上の整数）以上のようにタイムアウト時間より充分に長い場合、ほとんどメモリアクセスがないことになるので、いつまでもＳｏＣ１００が通常動作モードを維持すると消費電力が増大してしまう。
【０１０７】
タイムアウト時間変更部５５は、例えば
時間間隔−タイムアウト時間  ＞  タイムアウト時間の３倍  …（２）
を判定し、条件が成立すれば、３０〜５０％、タイムアウト時間を短くする。こうすることで、通常動作モードに復帰した場合の消費電力の増大を抑制できる。
【０１０８】
なお、図１４（ａ）（ｂ）のいずれの場合も、１つの時間間隔だけで変更するのでなく、過去の数回の時間間隔の平均を使用するなどすることが好ましい。
【０１０９】
図１５は、ＳｏＣ１００の動作手順を示すフローチャート図の一例を示す。図１５の動作手順は図１０とほぼ同様であるが、ステップＳ３０の後でタイムアウト時間が変更されている。
【０１１０】
すなわち、電源回路制御部４４は電源制御回路１３にアクセスし、メモリインタフェース回路１８を含む電源ドメイン２の電源をＯＮに制御する（Ｓ３０）。
【０１１１】
これにより、タイムアウト時間変更部５５は、必要であればタイムアウト時間を変更する（Ｓ３５）。すなわち、レジスタ処理部５４はメモリ２０にアクセスして過去のメモリアクセス時刻を読み出し、時間間隔を算出する。そして、上記（１）（２）の条件が成立するか否かを判定し、成立する場合はタイムアウト時間を変更する。以降は実施例１の図１０にて説明した処理が実行される。
【０１１２】
したがって、本実施例の画像形成装置２００によれば、実施例１，２の効果に加え、タイムアウト時間を最適化することが可能になり、電源ドメインの頻繁なＯＮ／ＯＦＦ、消費電力の増大を抑制できる。
【符号の説明】
【０１１３】
１１    ＳＲＡＭ
１２    ＤＭＡＣ
１３    電源制御回路
１４    ＣＰＵ
１５    割込みコントローラ
１６    ステータスレジスタ
１７    トランザクションモニタ回路
１８    メモリインタフェース回路
１９    タイマー
２０    メモリ
１００  ＳｏＣ
２００  画像形成装置
【先行技術文献】
【特許文献】
【０１１４】
【特許文献１】特開2005-267595号公報
【図１】
2014157432.tif 000003
【図２】
2014157432.tif 000004
【図３】
2014157432.tif 000005
【図４】
2014157432.tif 000006
【図５】
2014157432.tif 000007
【図６】
2014157432.tif 000008
【図７】
2014157432.tif 000009
【図８】
2014157432.tif 000010
【図９】
2014157432.tif 000011
【図１０】
2014157432.tif 000012
【図１１】
2014157432.tif 000013
【図１２】
2014157432.tif 000014
【図１３】
2014157432.tif 000015
【図１４】
2014157432.tif 000016
【図１５】
2014157432.tif 000017
【図１６】
2014157432.tif 000018