(57)【要約】      （修正有）【課題】メモリから、リセット制御と電源遮断制御の命令をフェッチする場合に、当該命令をフェッチするタイミングでメモリがリフレッシュ動作を行わないようにする。【解決手段】省電力モードを備えた装置を制御するための制御装置であって、演算手段と、演算手段へのリセット制御手段と、演算手段への電力制御手段と、リセット制御手段に演算手段のリセットを実行させるためのリセット指示及び電力制御手段に演算手段への電力の供給を停止させるための電力制御指示を記憶する記憶手段と、記憶手段のリフレッシュ動作を実行するメモリ制御手段と、を備える。演算手段は、記憶手段からリセット指示と電力制御指示とをフェッチするまでの間にメモリ制御手段がリフレッシュ動作を実行するのを制限するための処理を実行した後、記憶手段からリセット指示と電源制御指示とをフェッチする。【選択図】図３
2016143219.tif 000002
【特許請求の範囲】
【請求項１】
省電力モードを備えた装置を制御するための制御装置であって、
演算手段と、
前記演算手段のリセットを制御するリセット制御手段と、
前記演算手段への電力の供給を制御する電力制御手段と、
前記リセット制御手段に前記演算手段のリセットを実行させるためのリセット指示、及び前記電力制御手段に前記演算手段への電力の供給を停止させるための電力制御指示、を記憶する記憶手段と、
前記記憶手段のリフレッシュ動作を実行するメモリ制御手段と、
を備え、
前記演算手段は、前記演算手段が前記記憶手段から前記リセット指示と前記電力制御指示とをフェッチするまでの間に前記メモリ制御手段が前記リフレッシュ動作を実行するのを制限するための処理を実行した後、前記記憶手段から前記リセット指示と前記電源制御指示とをフェッチする
ことを特徴とする制御装置。
【請求項２】
前記リフレッシュ動作を実行するのを制限するための処理は、前記演算手段が前記リセット指示と前記電力制御指示とをフェッチする前に、強制的に前記リフレッシュ動作を実行させる処理である、ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記リフレッシュ動作を実行するのを制限するための処理は、前記メモリ制御手段に対し、前記リフレッシュ動作の実行間隔を再設定する処理である、ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記リフレッシュ動作が完了したかどうかを判定する判定手段をさらに備え、
前記演算手段は、前記判定手段で前記リフレッシュ動作が完了したと判定された場合に、前記電力制御指示及び前記リセット指示をフェッチする
ことを特徴とする請求項１乃至３のいずれか１項に記載の制御装置。
【請求項５】
前記リフレッシュ動作を実行するのを制限するための処理は、前記リフレッシュ動作の実行を禁止する処理である
ことを特徴とする請求項１に記載の制御装置。
【請求項６】
次のリフレッシュ動作が実行されるまでに残っている時間が所定時間以上か否かを判定する判定手段をさらに備え、
前記演算手段は、前記判定手段によって前記次のリフレッシュ動作が実行されるまでに残っている時間が前記所定時間以上であると判定された場合には、前記リフレッシュ動作を実行するのを制限するための処理を実行せずに、前記電力制御指示と前記リセット制御手指示とをフェッチすることを特徴とする請求項１に記載の制御装置。
【請求項７】
省電力モードを備えた装置を制御するための制御装置における制御方法であって、
前記制御装置は、
演算手段と、
前記演算手段のリセットを制御するリセット制御手段と、
前記演算手段への電力の供給を制御する電力制御手段と、
前記リセット制御手段に前記演算手段のリセットを実行させるためのリセット指示、及び前記電力制御手段に前記演算手段への電力の供給を停止させるための電力制御指示、を記憶する記憶手段と、
前記記憶手段のリフレッシュ動作を実行するメモリ制御手段と、
を備え、
前記演算手段において、
前記演算手段が、前記記憶手段から前記リセット指示と前記電力制御指示とをフェッチするまでの間に、前記メモリ制御手段が前記リフレッシュ動作を実行するのを制限するための処理を実行するステップと、
前記制限するための処理を実行した後、前記記憶手段から前記リセット指示と前記電源制御指示とをフェッチする
ことを特徴とする制御方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の制御装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は省電力モードを備える装置の制御装置に関する。
【背景技術】
【０００２】
近年の省エネルギーに対する関心の高まりを背景として、電子機器の省電力化に関する法令等が制定されている。例えばコピー機やプリンタ等の画像処理装置については、国際エネルギースタープログラム（画像機器基準）、ErP（Energy related Products）指令のLot6/Lot26などが適用される。Erp指令のLot26では、電子機器へのリモートアクセスをトリガとして当該電子機器が復帰可能なネットワークスタンバイ状態時の消費電力が規定されている。ネットワークスタンバイ状態での消費電力を低減するために、CPUへの電力供給を停止することが考えられる。
【０００３】
CPUに対する電力供給を停止して電源遮断状態にする際は、リセット制御をしてから電源遮断制御を行う必要がある。ここで、リセット制御とは、CPUがリセット制御モジュールに対してwriteアクセスを行うことで、当該CPUのプログラムカウンタ等のレジスタを初期状態（以下、リセット状態と呼ぶ）にすることを意味する。また、電源遮断制御とは、CPUが電源制御モジュールに対してwriteアクセスを行うことで、当該CPUを電源遮断状態にすることを意味する。CPUが電源遮断状態となる際は、当該CPUが実行するソフトウェアが展開される主記憶部も合わせて電源遮断状態となる。そのため、CPUをリセット状態にしないまま電源遮断制御を行うと、電源復帰後にCPUが実行するソフトウェアが展開されていない状態でCPUが動作し始めてしまい、CPUが異常動作をしてしまうことになる。一方で、リセット制御を行って直ちにCPUがリセット状態になると、それ以降CPUはレジスタアクセスを行うことができないので、電源遮断制御を行うことができなくなってしまう。
【０００４】
以上のことから、CPUが実行するリセット制御と電源遮断制御の命令実行のタイミングには非常に厳しい制約がある。
【０００５】
この命令実行のタイミングに関する厳しい制約をクリアしてリセット制御と電源遮断制御とを実現するためには、CPUがプログラムを格納するDouble-Data-Rate SDRAM（以下、DDRメモリと呼ぶ。）等の揮発性メモリから連続してリセット制御を行うための指示と電源遮断制御を行うための指示とをフェッチする必要がある。また、DDRメモリ等は揮発性メモリであるため、一定時間メモリに刺激を与えないとデータ内容が揮発する可能性がある。このデータの揮発を回避するために、DDRメモリ等の揮発性メモリを制御するメモリコントローラには、DDRメモリに対して定期的にデータをリフレッシュ（電荷の補充）させることを指示する仕組みが備わっている（特許文献1参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１２−１３３４５４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
前述のネットワークスタンバイ状態（＝省電力状態）に移行するために、CPUがリセット制御を行うための指示と電源遮断制御を行うための指示とを揮発性のメモリからフェッチするときに、揮発性のメモリがリフレッシュ動作を実行すると、上記２つの指示を連続してフェッチすることができない。
【０００８】
そこで、本発明は、リフレッシュ動作を行うことによって情報が揮発しないようにするメモリから、リセット制御と電源遮断制御の指示をフェッチする場合に、当該命令をフェッチするタイミングでメモリがリフレッシュ動作を行わないようにすることを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る制御装置は、省電力モードを備えた装置を制御するための制御装置であって、演算手段と、前記演算手段のリセットを制御するリセット制御手段と、前記演算手段への電力の供給を制御する電力制御手段と、前記リセット制御手段に前記演算手段のリセットを実行させるためのリセット指示、及び前記電力制御手段に前記演算手段への電力の供給を停止させるための電力制御指示、を記憶する記憶手段と、前記記憶手段のリフレッシュ動作を実行するメモリ制御手段と、を備え、前記演算手段は、前記演算手段が前記記憶手段から前記リセット指示と前記電力制御指示とをフェッチするまでの間に前記メモリ制御手段が前記リフレッシュ動作を実行するのを制限するための処理を実行した後、前記記憶手段から前記リセット指示と前記電源制御指示とをフェッチすることを特徴とする。
【発明の効果】
【００１０】
本発明によれば、リフレッシュ動作を行うことによって情報が揮発しないようにするメモリから、リセット制御と電源遮断制御の命令をフェッチする場合に、当該命令をフェッチするタイミングでメモリがリフレッシュ動作を行わないようにすることができる。
【図面の簡単な説明】
【００１１】
【図１】画像処理装置の構成の一例を示すブロック図である。
【図２】メインコントローラ上のメインCPUが実行するシーケンスのフローチャートである。
【図３】サブコントローラ上のサブCPUが実行するシーケンスのフローチャートである。
【図４】サブコントローラにおける内部処理のタイミングチャートである。
【図５】サブCPUへの電力供給が停止するタイミングまでに、サブCPUからのレジスタアクセスの発行処理ができなかった場合の内部処理のタイミングチャートである。
【図６】サブコントローラのUSB-D制御部及び電力制御部、そしてメインコントローラのCPLDにおける、ハードウェア的な動作の流れを示すフローチャートである。
【図７】メインコントローラのメインCPUによって処理されるソフトシーケンスを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して、本発明を実施する形態について説明する。なお、以下の実施例において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。
【００１３】
［実施例１］
図１は、本実施例に係る画像処理装置１００の構成の一例を示すブロック図である。
【００１４】
画像処理装置１００は、システム全体を制御するメインコントローラ１１０と、主にプリンタ、スキャナが接続されるサブコントローラ１２０とに別れる。本発明においては、サブコントローラ１２０における制御が重要であるが、発明の全体的なシーケンスを説明する都合上、メインコントローラ１１０とサブコントローラ１２０との関係についても説明する。
【００１５】
メインコントローラ１１０は、画像処理装置１００全体を制御し、内部に演算手段としてのメインCPU１１１を抱え、画像処理装置１００全体を制御する。画像処理装置１００を制御するプログラムは、HDD等の外部記憶装置１１３に格納され、システム動作時には、メインメモリ１１２に展開され、メインCPU１１１がそのプログラムを実行し、システム全体を制御する。メインコントローラバス１１６は、メインコントローラ１１０内部の各ブロックを接続し、そのバス上をプログラム及びデータが流れ、システム内部での通信を可能としている。メインコントローラ１１０はPCIe Root Complex１１４を持ち、PCIe１６０を介してサブコントローラ１２０と接続し、サブコントローラ１２０をPCIeのスレーブデバイスとして相互通信を行う。メインCPU１１１は、必要に応じPCIe空間にマッピングしたサブコントローラ１２０内部のブロックを直接操作することが可能になる。Complex Programmable Logic Device（以下、CPLD）１１５は、画像処理装置１００内部で発生する様々な信号を検知し、CPLD１１５内部に持つファームウェアで発生する信号に基づいた制御を行う。そして、本実施例におけるCPLD１１５は、信号線１８０を介して後述する電力制御部１２３と接続され、電力制御部１２３が発生する信号を検知するようになっている。メインコントローラ１１０内部には、他にも複数の機能部が存在するが、本発明の説明に関係無いものについては説明を省略するものとする。
【００１６】
サブコントローラ１２０は、演算手段としてのサブCPU１２１、DDRメモリ制御部１３１、スキャナ制御部１４１、プリンタ制御部１５１、電力制御部１２３、リセット制御部１２４、PCIe制御部１２５、USBデバイス制御部（以下、USB-D制御部）１２６から構成される。サブCPU１２１は、DDRメモリ１３０のプログラムコードをフェッチして各モジュールの制御を行なう。サブCPU１２１の内部には、処理高速化のための命令キャッシュ１２２とデータキャッシュ（不図示）を備えている。命令キャッシュ１２２は、サブCPU１２１が、DDRメモリ１３０からフェッチしたプログラムコードを一時的に格納する箇所である。DDRメモリ制御部１３１は、サブコントローラ１２０の外部に設けられたDDRメモリ１３０へのアクセスを制御する。揮発性メモリであるDDRメモリ１３０における保持データ消失を防ぐための定期的なリフレッシュコマンドの発行は、DDRメモリ制御部１３１が行なう。サブコントローラバス１２７は、サブコントローラ１２０内の各ブロック間を通信するためのバスである。PCIe制御部１２５は、PCIe１６０を介して、外部デバイスとデータ通信を行なう。例えば、サブコントローラ１２０はPCIe EndPointとして、PCIe１６０を介してPCIe Root Complex１１４と接続される。メインCPU１１１は、PCIe制御部１２５やDDRメモリ制御部１３１の初期設定を行なった後に、サブコントローラ１２０のブートプログラムをDDRメモリ１３０に転送し、サブCPU１２１のリセットを解除してブートプログラムを実行させる。このようにしてサブコントローラ１２０のブートが実行される。USB-D制御部１２６は、USB I/F１７０を介して、外部のUSBホストデバイスとデータ通信を行なう。例えば、サブコントローラ１２０はUSBデバイスとして、USB I/F１７０を介して、不図示のUSB Host（PC等）と接続され、受信したデータをDDRメモリ１３０に格納して、内部でデータ処理を行なう。また、USB-D制御部１２６は、メインCPU１１１及びサブCPU１２１からの指示に応じて、USBデバイスの待機状態（以下、USB-D待機状態）に移行する。USB-D待機状態時は、USB I/F１７０から所定パケットを受信すると、USB-D制御部１２６は、所定パケットに対する応答パケットを、USB I/F１７０経由で外部デバイスに送信する。同時に、USB-D制御部１２６は、電力制御部１２３を介して、CPLD１１５に対し待機状態解除信号を通知する。この通知を受けたCPLD１１５は、メインコントローラ１１０に対して待機状態解除処理を実行すると共に、サブコントローラ１２０に対しても待機状態解除処理を実行する。リセット制御部１２４は、サブCPU１２１からの指示に応じて、DDRメモリ制御部１３１、サブCPU１２１、PCIe制御部１２５、USB-D制御部１２６のリセット制御を行なう。スキャナ制御部１４１は、サブCPU１２１からの要求に応じて、スキャナ１４０からのデータ受信制御を行なう。プリンタ制御部１５１は、サブCPU１２１からの要求に応じて、プリンタ１５０へのデータ送信制御を行なう。
【００１７】
図２及び図３は、本発明の特徴である、省電力モードとしてのUSB待機モードへの移行処理シーケンスを示したフローチャートである。図２はメインコントローラ１１０上のメインCPU１１１が実行するシーケンスのフローチャートであり、図３はサブコントローラ１２０上のサブCPU１２１が実行するシーケンスのフローチャートである。
【００１８】
まず、メインコントローラ１１０におけるシーケンスを説明する。
【００１９】
ステップ２０１において、メインCPU１１１は、画像処理装置１００がUSB待機モードに移行可能かどうかを判定する。具体的には、例えば以下に挙げる条件が満たされたかどうかが判定される。  
・一定期間、USBデバイス経由で外部JOBの要求がない
・一定期間、Ethernet（登録商標）経由での外部JOB要求がない
・予め設定されている省電力モード（USB待機モード）への移行時間に到達
なお、上記省電力モードへの移行時間については、例えば数分〜数時間の幅の中でユーザによって任意の時間が設定される。
【００２０】
判定の結果、上述したようなUSB待機モードに移行するための所定の条件を満足している場合は、ステップ２０２に進む。一方、上記所定の条件を満足していない場合は、引き続き監視を継続し、定期的に判定を繰り返す。
【００２１】
ステップ２０２において、メインCPU１１１は、USB-D制御部１２６に対して待機時設定を行う。具体的には、USB-D制御部１２６の持つレジスタ設定を変更し、USB待機モード時に外部のUSBホストデバイスからパケットを受信した場合、NAK応答を変更する設定を行う。同時に、外部のUSBホストデバイスからパケットを受信したことを電力制御部１２３経由でCPLD１１５に伝える信号を出す設定を行う。
【００２２】
ステップ２０３において、メインCPU１１１は、PCIe Root Complex１１４経由で、サブコントローラ１２０のPCIe制御部１２５に対して、PCIeでの省電力状態を意味するD３ステート移行処理を行う。
【００２３】
ステップ２０４において、メインCPU１１１は、メインコントローラ１１０上に動作するオペレーティングシステムのSleepモード移行処理を実行する。具体的には、ファイルシステムを使用しているシステム等では、FileのSync動作や、各レジスタのSuspend処理を行う。
【００２４】
以上により、メインコントローラ１１０上のUSB待機モード移行処理は終了する。
【００２５】
続いて、サブコントローラ１２０におけるシーケンスを説明する。ここで、命令キャッシュ１２２でのキャッシュミスの発生や、DDRメモリ１３０でプログラムフェッチが発生した際にリフレッシュ動作中であった場合のアクセスペナルティを考慮する必要がある。本実施例では、揮発性メモリのリフレッシュ間隔（リフレッシュ動作が行われてから再びリフレッシュ動作が行なわれるまでの時間間隔）を再設定することにより、上記アクセスペナルティの問題が顕在化しないようにしている。以下、詳しく説明する。
【００２６】
ステップ３０１において、サブCPU１２１は、メインコントローラ１１０からのUSB待機モードへの移行指示の有無を判定する。この移行指示は、メインコントローラ１１０における、上述のD３ステート移行処理（ステップ２０３）の実行後に発生するものである。判定の結果、メインコントローラ１１０から移行指示があった場合は、ステップ３０２に進む。一方、移行指示がない場合は、引き続き監視を継続し、定期的に判定を繰り返す。
【００２７】
ステップ３０２において、サブCPU１２１は、USB待機モード移行前処理を行う。具体的には、サブコントローラ１２０上に存在するレジスタをUSB待機モード用の設定にする。設定内容の詳細は、本発明の特徴とは無関係であるので説明を割愛する。
【００２８】
ステップ３０３において、サブCPU１２１は、DDRメモリ１３０のリフレッシュ間隔の再設定を行う。具体的には、DDRメモリ制御部１３１のレジスタの操作によって、例えば7.8マイクロ秒といったリフレッシュ間隔が再設定される。このリフレッシュ間隔再設定により、DDRメモリ制御部１３１は、DDRメモリ１３０をリフレッシュ動作状態に移行させる。すなわち、例えその直前にリフレッシュが完了していたとしても、リフレッシュ間隔が再設定されたタイミングで、DDRメモリ１３０に対するリフレッシュ動作が再度実行されることになる。これにより、リセット制御命令と電源遮断制御命令の双方の命令におけるアクセスレイテンシの最小化を図っている。
【００２９】
ステップ３０４において、サブCPU１２１は、DDRメモリ１３０のリフレッシュが完了したかどうかを判定する。判定手法としては、例えばリフレッシュ動作に見込まれる所定時間（例えば5〜10ナノ秒）の経過を待ってもよいし、DDRメモリ１３０のリフレッシュ完了の検知機能を有するDDRメモリ制御部１３１であれば、その検知をもって終了してもよい。
【００３０】
ステップ３０５において、サブCPU１２１は、電力制御部１２３に対し、所定モジュールの電源遮断を指示する。具体的には、電力制御部１２３のレジスタの操作によって、サブコントローラ１２０上にあるモジュールであって、USB-D制御部１２６及び電力制御部１２３、リセット制御部１２４以外の各モジュールについての電源停止処理を開始させる。
【００３１】
ステップ３０６において、サブCPU１２１は、リセット制御部１２４に対し、所定モジュールのリセットを指示する。具体的には、リセット制御部１２４のレジスタの操作によって、サブCPU１２１自身のリセット処理を開始させる。
【００３２】
以上により、サブコントローラ１２０上のUSB待機モード移行処理は終了する。
【００３３】
続いて、USB待機モードへの移行処理が実行された時の、サブコントローラ１２０における内部処理のタイミングについて説明する、図４は、サブコントローラ１２０における内部処理のタイミングチャートである。
【００３４】
図４において、チャート４０１は、サブCPU１２１からサブコントローラバス１２７を介して各制御モジュールへ発行されるレジスタアクセスのタイミングのうち、電力制御部１２３及びリセット制御部１２４に対するレジスタアクセスの発行タイミングを示している。チャート４０１において、最初のパルス４１１が電力制御部１２３に対するレジスタアクセスの発行タイミングであり、２つ目のパルス４１２がリセット制御部１２４に対するレジスタアクセスの発行タイミングである。チャート４０２は、電力制御部１２３のレジスタに対し実際にアクセスがなされたタイミングを示している。チャート４０３は、電力制御部１２３からサブCPU１２１に対する電力供給の状態を示しており、HighからLowに立ち下がっている時点が電力供給が停止された時点を示している。チャート４０４は、リセット制御部１２４のレジスタに対し実際にアクセスがなされたタイミングを示している。チャート４０５は、リセット制御部１２４からサブCPU１２１に対して掛けられるリセット信号の状態を示しており、HighからLowに立ち下がっている時点が、サブCPU１２１がリセット状態になったタイミングを示している。そして、図４において、矢印４２１は前述のステップ３０５の処理に相当し、矢印４２２は前述のステップ３０６の処理に相当する。すなわち、矢印４２１はサブCPU１２１から電力制御部１２３へのレジスタアクセスのタイミングを表し、矢印４２２はサブCPU１２１からリセット制御部１２４へのレジスタアクセスのタイミングを表している。そして、ｔ１は、電力制御部１２３へのレジスタアクセスから、所定の遅延を経て、サブCPU１２１への電力供給が停止されるまでの時間を示している。そして、ｔ２は、リセット制御部１２４へのレジスタアクセスから、所定の遅延を経て、サブCPU１２１にリセットが掛けられるまでの時間を示している。なお、上記所定の遅延（＝アクセスレイテンシ）は、サブCPU１２１のクロック周波数など様々な条件によって変化するもので、例えば数十〜百数十ナノ秒といった値である。
【００３５】
図４から明らかなように、電力制御部１２３に対しレジスタアクセスがなされると（チャート４０２及び４０４）、上述した所定の遅延の後、サブCPU１２１の動作は停止することになる。すなわち、電力制御部１２３に対するレジスタアクセスによってサブCPU１２１への電力供給が停止されてしまうと、それ以降はサブCPU１２１から各モジュールへのレジスタアクセスの発行ができなくなる。その結果、サブCPU１２１からリセット制御部１２４へのレジスタアクセスも不能になり、サブCPU１２１に対してリセットが掛けられなくなってしまう。つまり、USB待機モードへの移行を正常に行なうためには、サブCPU１２１からのレジスタアクセスの発行処理を、サブCPU１２１への電力供給が停止するタイミングより前に行なう必要がある。図５は、サブCPU１２１への電力供給が停止するタイミングまでに、サブCPU１２１からのレジスタアクセスの発行処理（より詳細には、リセット制御部１２４へのレジスタアクセスの発行処理）ができなかった場合の内部処理のタイミングチャートを示している。図５では、電力制御部１２３へのレジスタアクセスの発行タイミングを示すパルス４１１から、リセット制御部１２４へのレジスタアクセスの発行タイミングを示すパルス４１２’までの間隔（両矢印５００）が、図４の両矢印４００で示される間隔に比べて大きくなっている。図５の場合、サブCPU１２１への電力供給が停止されるタイミング（立ち下がりの時点）よりも、リセット制御部１２４へのレジスタアクセスの発行処理のタイミング（パルス４１２’）が遅いことから、実際にはパルス４１２’のタイミングでのレジスタアクセス発行はできない。したがって、パルス４１２’で示すタイミングでのリセット制御部１２４からのサブCPU１２１のリセットはできなくなる。図５における波線の箇所は、実際上は不可能である（実現されない）ということを表している。
【００３６】
ここで、サブCPU１２１から制御モジュールへのレジスタアクセスの発行の間隔が、図５で示したように空いてしまう要因としては、以下のようなことが考えられる。その１つは、図３のフローにおけるステップ３０５の処理とステップ３０６の処理に係る２つの命令を実行する時、当該２つの命令実行の間で、サブCPU１２１のキャッシュミスが発生し、DDRメモリ１３０からのキャッシュリフィルが発生することが挙げられる。キャッシュリフィルが発生すると、DDRメモリ１３０からの命令のリフィルによって、通常で1〜数ナノ秒のペナルティ（キャッシュリフィル終了まで、サブCPU１２１は次のプログラムを実行できない）が生じることになる。そして、リフィルのためのメモリアクセスの直前に、DDRメモリ１３０に対するリフレッシュが発行されると、ペナルティは更に長くなることになる。つまり、サブCPU１２１は、「DDRメモリ１３０のリフレッシュ動作の時間（5〜10ナノ秒）＋キャッシュリフィル動作の時間（１〜数ナノ秒）」の分だけ待たされることになり、図５の両矢印５００で示すような間隔が空いてしまうことが起こり得る。こうなると、リセット制御部１２４へのレジスタアクセスの発行処理のタイミングが、パルス４１２’で示すようなタイミングとなってしまい、結果的にUSB待機モードへの正常な移行ができなくなるという事態が起こり得てしまう。
【００３７】
そこで、本実施例では、DDRメモリ１３０のリフレッシュ間隔の再設定処理（図３のフローのステップ３０３）を行うことで、キャッシュリフィル時に、DDRメモリ１３０がリフレッシュ動作状態に入っているという事態が発生するのを回避している。これは、一旦リフレッシュが行われると一定期間はリフレッシュ動作が実行されないという点に着目したものである。すなわち、リフレッシュ間隔の再設定によって、後続の２つの命令実行の直近のタイミングでDDRメモリ１３０のリフレッシュを完了させておくことで、DDRメモリ１３０のリフレッシュ中によるアクセス停止のペナルティ発生を抑制している。こうして、USB待機モード移行に不可欠なレジスタアクセスに要する一定時間（図３のフローのステップ３０５とステップ３０６の処理に要する時間。例えば、10〜20ナノ秒。）を確保している。
【００３８】
なお、DDRメモリ１３０から命令をリフィルするペナルティに比べると、DDRメモリのリフレッシュ中によるアクセス停止のペナルティの方がその影響が格段に大きいため、キャッシュリフィルについては本実施例では特に手当を行なっていない。キャッシュリフィルが発生しても、DDRメモリ１３０のリフレッシュが起きていなければ、上述の問題は発生しないため、本実施例の手法によって本願の課題は十分に解決することができる。
【００３９】
以上のとおり、本実施例では、サブCPU１２１からの、電力制御部１２３に対する所定モジュールの電源遮断指示及びリセット制御部１２４に対する所定モジュールのリセット指示に先行して、DDRメモリ１３０のリフレッシュ動作がなされるように制御される。これにより、サブCPU１２１が動作可能な間に、USB待機モード移行に必要なレジスタアクセスの発行を可能にして、正常なモード移行を担保している。
【００４０】
図６及び図７は、USB待機モードからの復帰処理のシーケンスを示したフローチャートである。図６は、サブコントローラ１２０のUSB-D制御部１２６及び電力制御部１２３、そしてメインコントローラ１１０のCPLD１１５における、ハードウェア的な動作の流れを示すフローチャートである。図７は、メインコントローラ１１０のメインCPU１１１によって処理されるソフトシーケンスを示すフローチャートである。
【００４１】
まず、図６のフローチャートに沿って、ハードウェア的な動作の流れから説明する。
前述の図２及び図３で示したシーケンスを終了した画像処理装置１００の動作モードは、USB待機モードになっている。そのため、USB-D制御部１２６は、USBホストデバイスからのパケット投入の有無を監視している状態である。
【００４２】
ステップ６０１において、サブコントローラ１２０のUSB-D制御部１２６は、USBホストデバイスからパケットを受信したかどうかを判定する。パケットが受信された場合は、ステップ６０２に進む。一方、パケットが受信されない場合は、パケット投入の監視を継続する。
【００４３】
ステップ６０２において、サブコントローラ１２０のUSB-D制御部１２６は、NAK応答をUSBホストデバイスに対して応答すると同時に、電力制御部１２３に対してパケットの受信割り込みを通知する。
【００４４】
ステップ６０３において、サブコントローラ１２０の電力制御部１２３は、メインコントローラ１１０のCPLD１１５に対して、USB-D制御部１２６からの受信割り込み通知の取得を通知する。
【００４５】
電力制御部１２３からの通知を受けて、ステップ６０４において、メインコントローラ１１０のCPLD１１５は、メインコントローラ１１０及びサブコントローラ１２０に対して、USB待機モードからの復帰指示（電源投入処理の実行指示）を行なう。
【００４６】
以上が、画像処理装置１００がUSB待機モードから復帰する際のハードウェア的な動作の流れである。
【００４７】
続いて、メインコントローラ１１０のメインCPU１１１によって処理されるソフトシーケンスを説明する。
【００４８】
CPLD１１５からのUSB待機モード復帰指示を受け、ステップ７０１において、メインCPU１１１は、OSのレジューム処理（電力供給が停止された時点の状態から作業を再開するための復帰処理）を開始する。
【００４９】
ステップ７０２において、メインCPU１１１は、各ドライバの復帰処理を行う。具体的には、PCIeに関するレジューム処理やUSBデバイスに関するレジューム処理などが実行される。PCIeのレジューム処理の完了によってPCIeリンクが確立し、メインCPU１１１からPCIeデバイスとしてのサブコントローラ１１０の制御が可能になる。また、USBデバイスのレジューム処理の完了によって、メインCPU１１１からのUSB-D制御部１２６の制御が可能になり、USBホストデバイスからの受信パケットを処理出来るようになる。具体的には、前述のステップ６０２におけるNAK応答設定を解除し、データ受信を再開する。
【００５０】
ステップ７０３において、メインCPU１１１は、DDRメモリ制御部１３１のリセット解除を、リセット制御部１２４に対して指示する。
【００５１】
ステップ７０４において、メインCPU１１１は、DDRメモリ制御部１３１に対して初期設定を行う。この初期設定処理により、メインCPU１１１からDDRメモリ１３０へのアクセスが可能になる。
【００５２】
ステップ７０５において、メインCPU１１１は、サブコントローラ１１０の処理プログラムをDDRメモリ１３０にロードする。これにより、メインCPU１１１は、リセット制御部１２４のレジスタを制御して、サブCPU１２１のリセットを解除する。このリセット解除処理により、サブコントローラ１１０は、サブCPU１２１の制御下での動作開始が可能になる。
【００５３】
以上が、USB待機モードからの復帰する際のメインCPU１１１によって処理されるソフトシーケンスの内容である。上述した処理によってサブコントローラ１１０が、USB待機モードから復帰し、併せて、メインコントローラ１１０と共に画像処理装置１００がUSB待機モードから復帰（すなわち、通常電力モードに移行）することになる。
【００５４】
＜変形例１＞
なお、本実施例では、揮発性メモリに対してリフレッシュ間隔を再設定することにより、CPUからの電力制御部に対する電源遮断指示及びリセット制御部に対するリセット指示の直前のタイミングでリフレッシュ処理が実行されるように制御していた。これに代えて、揮発性メモリを制御するメモリ制御部が、明示的に揮発性メモリのリフレッシュ動作を促すように構成してもよい。すなわち、明示的に揮発性メモリのリフレッシュ動作を促す機能を有するメモリ制御部であれば、図３のフローのステップ３０３にて、サブCPU１２１によってDDRメモリ制御部１３１のレジスタを操作して、直接的にリフレッシュ動作を開始させて、DDRメモリ１３０をリフレッシュ状態に移行させるようにしてもよい。このような手法によっても同様の効果を得ることができる。
【００５５】
＜変形例２＞
また、CPUからの電力制御部に対する電源遮断指示及びリセット制御部に対するリセット指示の直前にリフレッシュ処理を実行するのではなく、メモリ制御部によって明示的に揮発性メモリのリフレッシュ動作を禁止することで、必要な時間を確保するようにしてもよい。すなわち、サブCPU１２１がDDRメモリ制御部１３１のレジスタを操作して、DDRメモリ１３０がリフレッシュ状態に陥るのを事前に阻止することで、上述したUSB待機モード移行に不可欠なレジスタアクセスに要する一定時間（例えば10〜20ナノ秒）を確保するようにしてもよい。なお、この場合の明示的なリフレッシュの禁止指示については、メインコントローラ１１０のメインCPU１１１によって処理される復帰処理における、DDRメモリ制御部１３１に対する初期設定（（図７のフローのステップ７０４）によってクリアされ、通常電力モードに復帰後は問題なく所定のリフッレシュ間隔でリフレッシュ動作がなされることになる。
【００５６】
＜変形例３＞
また、リフレッシュ間隔の再設定やリフレッシュの動作の明示的な実行指示に代えて、次のリフレッシュまでの時間が十分にあるかを判定し、USB待機モード移行に不可欠なレジスタアクセスに要する時間が残されている場合に次の処理に進むように構成してもよい。具体的には、上述したUSB待機モード移行に不可欠なレジスタアクセスに要する時間（例えば10〜20ナノ秒）よりも長い時間が、次のリフレッシュ動作の開始までに残っているかどうかの判定処理をサブCPU１２１が行う。判定の結果、USB待機モード移行に不可欠なレジスタアクセスに要する時間よりも長い時間が残っている場合にのみ、電力制御部１２３に対する電源遮断指示及びリセット制御部１２４に対するリセット指示（図３のフローのステップ３０５とステップ３０６の処理）に進むようにすればよい。
【００５７】
以上のとおり本実施例によれば、リフレッシュ動作を要する揮発性のメモリから、リセット制御と電源遮断制御の命令をフェッチする場合に、当該命令をフェッチするタイミングで上記揮発性メモリに対するリフレッシュが発生しないように制御される。その結果、省電力モードの移行に必要なCPUからのレジスタアクセスの発行を確実に行うことができる。
【００５８】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2016143219.tif 000003
【図２】
2016143219.tif 000004
【図３】
2016143219.tif 000005
【図４】
2016143219.tif 000006
【図５】
2016143219.tif 000007
【図６】
2016143219.tif 000008
【図７】
2016143219.tif 000009
【手続補正書】
【提出日】平成27年12月11日(2015.12.11)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
本発明に係る制御装置は、省電力モードを備えた装置を制御するための制御装置であって、演算手段と、前記演算手段のリセットを制御するリセット制御手段と、前記演算手段への電力の供給を制御する電力制御手段と、前記リセット制御手段に前記演算手段のリセットを実行させるためのリセット指示、及び前記電力制御手段に前記演算手段への電力の供給を停止させるための電力制御指示、を記憶する記憶手段と、前記記憶手段のリフレッシュ動作を実行するメモリ制御手段と、を備え、前記演算手段は、前記演算手段が前記記憶手段から前記リセット指示と前記電力制御指示とを取得するまでの間に前記メモリ制御手段が前記リフレッシュ動作を実行するのを制限するための処理を実行した後、前記記憶手段から前記リセット指示と前記電力制御指示とを取得することを特徴とする。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
省電力モードを備えた装置を制御するための制御装置であって、
演算手段と、
前記演算手段のリセットを制御するリセット制御手段と、
前記演算手段への電力の供給を制御する電力制御手段と、
前記リセット制御手段に前記演算手段のリセットを実行させるためのリセット指示、及び前記電力制御手段に前記演算手段への電力の供給を停止させるための電力制御指示、を記憶する記憶手段と、
前記記憶手段のリフレッシュ動作を実行するメモリ制御手段と、
を備え、
前記演算手段は、前記演算手段が前記記憶手段から前記リセット指示と前記電力制御指示とを取得するまでの間に前記メモリ制御手段が前記リフレッシュ動作を実行するのを制限するための処理を実行した後、前記記憶手段から前記リセット指示と前記電力制御指示とを取得する
ことを特徴とする制御装置。
【請求項２】
前記リフレッシュ動作を実行するのを制限するための処理は、前記演算手段が前記リセット指示と前記電力制御指示とを取得する前に、強制的に前記リフレッシュ動作を実行させる処理である、ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記リフレッシュ動作を実行するのを制限するための処理は、前記メモリ制御手段に対し、前記リフレッシュ動作の実行間隔を再設定する処理である、ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記リフレッシュ動作が完了したかどうかを判定する判定手段をさらに備え、
前記演算手段は、前記判定手段で前記リフレッシュ動作が完了したと判定された場合に、前記電力制御指示及び前記リセット指示を取得する
ことを特徴とする請求項１乃至３のいずれか１項に記載の制御装置。
【請求項５】
前記リフレッシュ動作を実行するのを制限するための処理は、前記リフレッシュ動作の実行を禁止する処理である
ことを特徴とする請求項１に記載の制御装置。
【請求項６】
次のリフレッシュ動作が実行されるまでに残っている時間が所定時間以上か否かを判定する判定手段をさらに備え、
前記演算手段は、前記判定手段によって前記次のリフレッシュ動作が実行されるまでに残っている時間が前記所定時間以上であると判定された場合には、前記リフレッシュ動作を実行するのを制限するための処理を実行せずに、前記電力制御指示と前記リセット指示とを取得することを特徴とする請求項１に記載の制御装置。
【請求項７】
省電力モードを備えた装置を制御するための制御装置における制御方法であって、
前記制御装置は、
演算手段と、
前記演算手段のリセットを制御するリセット制御手段と、
前記演算手段への電力の供給を制御する電力制御手段と、
前記リセット制御手段に前記演算手段のリセットを実行させるためのリセット指示、及び前記電力制御手段に前記演算手段への電力の供給を停止させるための電力制御指示、を記憶する記憶手段と、
前記記憶手段のリフレッシュ動作を実行するメモリ制御手段と、
を備え、
前記演算手段において、
前記演算手段が、前記記憶手段から前記リセット指示と前記電力制御指示とを取得するまでの間に、前記メモリ制御手段が前記リフレッシュ動作を実行するのを制限するための処理を実行するステップと、
前記制限するための処理を実行した後、前記記憶手段から前記リセット指示と前記電力制御指示とを取得する
ことを特徴とする制御方法。
【請求項８】
コンピュータを、請求項１乃至６のいずれか１項に記載の制御装置として機能させるためのプログラム。