(57)【要約】【課題】  主従関係にあるメインシステムとサブシステムとを有する処理システムにおいて、スリープ状態から復帰する場合に、メインシステムの起動を待つことなくサブシステムの起動を可能にする技術を提供すること。【解決手段】  サブシステムは、スリープモードに移行する条件が満たされると、サブシステムが管理するサブシステムメモリに格納されているサブシステム用のブートイメージを、メインシステムが管理するメインシステムメモリに書き込むように制御する。メインシステムは、スリープモードから通常動作のモードに移行する場合には、メインシステムメモリに書き込んだサブシステム用のブートイメージを、サブシステムメモリに書き込むよう制御する。サブシステムは、該サブシステムメモリに書き込んだブートイメージを用いてブートを行う。【選択図】  図１
2016115075.tif 000002
【特許請求の範囲】
【請求項１】
サブシステムと、該サブシステムを制御するメインシステムと、を有する処理システムであって、
前記サブシステムは、スリープモードに移行する条件が満たされると、前記サブシステムが管理するサブシステムメモリに格納されているサブシステム用のブートイメージを、前記メインシステムが管理するメインシステムメモリに書き込むように制御し、
前記メインシステムは、前記スリープモードから通常動作のモードに移行する場合には、前記メインシステムメモリに書き込んだサブシステム用のブートイメージを、前記サブシステムメモリに書き込むよう制御し、
前記サブシステムは、該サブシステムメモリに書き込んだブートイメージを用いてブートを行うことを特徴とする処理システム。
【請求項２】
前記サブシステムが有するＣＰＵは、前記条件が満たされると、前記サブシステムメモリに格納されているサブシステム用のブートイメージを、前記メインシステムメモリに書き込むよう制御することを特徴とする請求項１に記載の処理システム。
【請求項３】
前記サブシステムが有するＤＭＡＣは、前記条件が満たされると、前記サブシステムメモリに格納されているサブシステム用のブートイメージを、前記メインシステムメモリに書き込むよう制御することを特徴とする請求項１に記載の処理システム。
【請求項４】
サブシステムと、該サブシステムを制御するメインシステムと、を有する処理システムの制御方法であって、
前記サブシステムは、スリープモードに移行する条件が満たされると、前記サブシステムが管理するサブシステムメモリに格納されているサブシステム用のブートイメージを、前記メインシステムが管理するメインシステムメモリに書き込むように制御し、
前記メインシステムは、前記スリープモードから通常動作のモードに移行する場合には、前記メインシステムメモリに書き込んだサブシステム用のブートイメージを、前記サブシステムメモリに書き込むよう制御し、
前記サブシステムは、該サブシステムメモリに書き込んだブートイメージを用いてブートを行う
ことを特徴とする処理システムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メインシステムとサブシステムとを有する処理システムにおけるスリープ状態からの復帰技術に関するものである。
【背景技術】
【０００２】
メインシステムとサブシステムとを有するシステムの構成において、サブシステムのブートアップ方法として、メインシステムがサブシステムのブートプログラムの展開を行い、サブシステムのブートタイミングを制御する、という従来技術がある。具体的には、メインシステムが、サブシステムのブートプラグラムを展開した後にサブシステムのリセットを解除する制御を行っている（特許文献１）。
【０００３】
また、メインシステムとサブシステムとを有するシステムの構成において、システムのＳｌｅｅｐ状態における消費電力を低減させる従来技術がある。具体的には、Ｓｌｅｅｐ移行時にメインシステムのメモリに保持されているメインＣＰＵのブートプログラムと、サブシステム内のメインメモリに保持されているサブＣＰＵのブートプログラムと、をメインシステム内の不揮発性メモリに記録する。その後、サブシステム内のメモリの電源を切断している（特許文献２）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−２６５６００号公報
【特許文献２】特開２００９−２２３８６６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１では、メインシステムがサブシステムのブートを制御すると、メインシステムが起動してからでないとサブシステムの起動ができないので、システム全体の起動が遅くなるという課題がある。Ｓｌｅｅｐ状態からの復帰に関して、システムメモリをセルフリフレッシュ状態にして値を保持し、Ｓｌｅｅｐ復帰時間を早くすることが一般的に知られている。しかし、メインシステム起動後にサブシステムが起動するシステムでは、サブシステムのシステムメモリをセルフリフレッシュ状態に保持しても、サブシステムの起動はメインシステムの起動後となるので、Ｓｌｅｅｐ復帰に時間を要する。
【０００６】
特許文献２では、Ｓｌｅｅｐ移行時にサブシステム内のメモリの電源を切断するので、Ｓｌｅｅｐ状態の消費電力の低減は実現しているものの、特許文献１と同様に、メインシステム起動後にサブシステムが起動するシステムであるため、サブシステムの起動はメインシステム起動後となり、Ｓｌｅｅｐ復帰に時間を要する。
【０００７】
本発明はこのような問題に鑑みてなされたものであり、主従関係にあるメインシステムとサブシステムとを有する処理システムにおいて、スリープ状態から復帰する場合に、メインシステムの起動を待つことなくサブシステムの起動を可能にする技術を提供する。
【課題を解決するための手段】
【０００８】
本発明の一様態は、サブシステムと、該サブシステムを制御するメインシステムと、を有する処理システムであって、前記サブシステムは、スリープモードに移行する条件が満たされると、前記サブシステムが管理するサブシステムメモリに格納されているサブシステム用のブートイメージを、前記メインシステムが管理するメインシステムメモリに書き込むように制御し、前記メインシステムは、前記スリープモードから通常動作のモードに移行する場合には、前記メインシステムメモリに書き込んだサブシステム用のブートイメージを、前記サブシステムメモリに書き込むよう制御し、前記サブシステムは、該サブシステムメモリに書き込んだブートイメージを用いてブートを行うことを特徴とする。
【発明の効果】
【０００９】
本発明の構成によれば、主従関係にあるメインシステムとサブシステムとを有する処理システムにおいて、スリープ状態から復帰する場合に、メインシステムの起動を待つことなくサブシステムの起動を可能にする。
【図面の簡単な説明】
【００１０】
【図１】処理システムの構成例を示すブロック図。
【図２】メインシステム１０１の構成例を示すブロック図。
【図３】サブシステム１０２の構成例を示すブロック図。
【図４】処理システムの電源をオンにした場合に行われる処理のフローチャート。
【図５】処理システムをスリープモードに移行させる場合に行われる処理のフローチャート。
【図６】スリープモードに移行した状態の処理システムの各機能部の電源状態を示す図。
【図７】通常動作モードに移行させる場合に行われる処理のフローチャート。
【図８】簡易タイミングチャート。
【図９】サブシステム１０２の構成例を示すブロック図。
【図１０】処理システムをスリープモードに移行させる場合に行われる処理のフローチャート。
【図１１】通常動作モードに移行させる場合に行われる処理のフローチャート。
【発明を実施するための形態】
【００１１】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の１つである。
【００１２】
［第１の実施形態］
先ず、本実施形態に係る処理システムの構成例について、図１のブロック図を用いて説明する。以下では、処理システムが、プリント機能及びスキャナ機能を有する複合機である場合について説明するが、サブシステムと、該サブシステムを制御するメインシステムと、を有する処理システムであって、
・  サブシステムは、スリープモードに移行する条件が満たされると、サブシステムが管理するサブシステムメモリに格納されているサブシステム用のブートイメージを、メインシステムが管理するメインシステムメモリに書き込むように制御する
・  メインシステムは、スリープモードから通常動作のモードに移行する場合には、メインシステムメモリに書き込んだサブシステム用のブートイメージを、サブシステムメモリに書き込むように制御する
・  サブシステムは、サブシステムメモリに書き込まれたブートイメージを用いてブートを行う
ような処理システムであれば、如何なる機器であっても構わない。また、このような処理システムを複合機に適用した場合であっても、該複合機の構成は図１に示した構成に限るものではなく、以下に説明する複合機の動作と同様以上の動作が可能な構成であれば、如何なる構成を採用しても構わない。
【００１３】
メインシステム１０１は、主にＣＰＵ（ＣｅｎｔｒａｌＰｒｏｃｅｓｓｉｎｇＵｎｉｔ）で構成されており、メインシステムＲＯＭ１０９やメインシステムＤＲＡＭ１０５に格納されているコンピュータプログラムやデータを用いて処理を実行することで処理システム全体の動作制御を行うと共に、メインシステム１０１が行うものとして後述する各処理を実行する。例えば、メインシステム１０１は、処理システムをスリープモードに移行させるための指示が入力された場合には、該処理システムをスリープモードに移行させるための動作制御を行う。また、メインシステム１０１は、サブシステム１０２の動作制御（サブシステム１０２のブートプログラムの展開やサブシステム１０２の初期設定等）をも行う。メインシステム１０１の詳細については、図２を用いて後述する。
【００１４】
サブシステム１０２は、ＣＰＵや画像処理回路を搭載しているＳｏＣ（ＳｙｓｔｅｍＯｎＣｈｉｐ）であって、メインシステム１０１に対して従属関係にあり、メインシステム１０１がサブシステム１０２の各種設定や動作制御を行う。サブシステム１０２は、サブシステムＲＯＭ１０４やサブシステムＤＲＡＭ１０６に格納されているコンピュータプログラムやデータを用いて処理を実行することで、例えば、該サブシステム１０２に接続されているプリンタ部１１１やスキャナ部１１２の動作制御を行うと共に、サブシステム１０２が行うものとして後述する各処理を実行する。サブシステム１０２の詳細については、図３を用いて後述する。
【００１５】
電源制御部１０３は、処理システム全体の電源制御を担い、ＣＰＬＤ（ＣｏｍｐｌｅｘＰｒｏｇｒａｍｍａｂｌｅＬｏｇｉｃＤｅｖｉｃｅ）で構成される。電源制御部１０３は、電源部１０７に対して電源をオンにするよう指示したり、オフにするよう指示したりすることで、スリープモード等の動作モードにおける電源状態を制御する。また、電源制御部１０３は、処理システムがスリープモードにある状態（スリープ状態）に、該スリープ状態からの復帰要因を検知すると、メインシステム１０１に対して割り込み信号を出力する。
【００１６】
電源部１０７は、ＤＣ／ＤＣコンバータ等で構成され、処理システムの各機能部に必要な複数種類の電源の生成を行う。また、電源部１０７は、電源制御部１０３によって制御され、複数種類電源のオンやオフを実行し、スリープモード等の各動作モードの電源状態を生成する。
【００１７】
メインシステムＲＯＭ１０９は、メインシステム１０１と接続されており、メインシステム１０１が処理対象とする処理プログラムやデータが格納されている、書き換え可能なフラッシュＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）である。メインシステム１０１は、電源が投入されると、まずメインシステムＲＯＭ１０９内に格納されている処理プログラム及びデータを用いて処理を実行する。
【００１８】
メインシステムＨＤＤ（ハードディスクドライブ）１０８は、ＨＤＤ（ＨａｒｄＤｉｓｋＤｒｉｖｅ）等の大容量記憶装置の一例であり、メインシステム１０１及びサブシステム１０２を動作せるためのＯＳ（ＯｐｅｒａｔｉｎｇＳｙｓｔｅｍ）やアプリケーションプログラム、データなどが保存されている。
【００１９】
メインシステムＤＲＡＭ１０５は、メインシステム１０１と接続されており、メインシステムＲＯＭ１０９やメインシステムＨＤＤ１０８からロードされたＯＳや処理プログラムを展開するためのエリアや、メインシステム１０１が各種の処理を実行する際に用いるワークエリア、サブシステム１０２から出力されたコンピュータプログラムやデータを格納するためのエリア等の各種のエリアを有する。
【００２０】
操作部１１０は、各種の情報表示を行う表示画面、該表示画面上のタッチ位置を検知するためのタッチパネル、ハードキーなどを有するユーザインターフェースである。
【００２１】
プリンタ部１１１は、サブシステム１０２から供給されたデータに基づいて紙などの記録媒体上に画像や文字を印刷する。
【００２２】
スキャナ部１１２は、紙などの記録媒体に記録されている情報を画像として読み取り、該読み取った画像をサブシステム１０２に対して出力する。
【００２３】
サブシステムＲＯＭ１０４は、サブシステム１０２と接続されており、サブシステム１０２が処理対象とする処理プログラムやデータが格納されている、書き換えが可能なフラッシュＲＯＭ（ＲｅａｄＯｎｌｙＭｅｍｏｒｙ）である。
【００２４】
サブシステムＤＲＡＭ１０６は、サブシステム１０２と接続されており、サブシステムＲＯＭ１０４やメインシステムＨＤＤ１０８からロードされたＯＳや処理プログラムを展開するためのエリアや、サブシステム１０２が各種の処理を実行する際に用いるワークエリア、メインシステム１０１から出力されたコンピュータプログラムやデータを格納するためのエリア等の各種のエリアを有する。
【００２５】
次に、メインシステム１０１の構成例について、図２のブロック図を用いて説明する。なお、図２に示した構成は、メインシステム１０１に適用可能な構成の一例に過ぎず、以下に説明するメインシステム１０１の動作と同等以上の動作を実現可能な構成であれば、如何なる構成を採用しても構わない。
【００２６】
ＣＰＵ２０１は、メインシステム１０１の動作制御を行うものであり、以下でメインシステム１０１が行うものとして説明する処理は何れも、このＣＰＵ２０１によって実行される。ＣＰＵ２０１は、メインシステムＲＯＭ１０９やメインシステムＤＲＡＭ１０５に格納されているコンピュータプログラムやデータを用いて処理を実行することで、メインシステム１０１が行うものとして後述する各処理を実行する。例えば、ＣＰＵ２０１は、処理システムの電源を立ち上げた際には、メインシステムＲＯＭ１０９に格納されているコンピュータプログラムやデータを用いて処理を実行することでブートを行い、メインシステムＤＲＡＭ１０５に展開されたＯＳやアプリケーションプログラムを実行する。また、ＣＰＵ２０１は、メインシステム１０１が有するものとして後述するそれぞれのＩＦ（インターフェース）部の動作制御をも行う。
【００２７】
ＨＤＤＩＦ部２０２は、メインシステムＨＤＤ１０８にアクセスするためのＩ／Ｆモジュールである。
【００２８】
操作部ＩＦ部２０３は、操作部１１０にアクセスするためのＩ／Ｆモジュールであり、例えば、メインシステムＨＤＤ１０８に格納されているＧＵＩ（グラフィカルユーザインターフェース）等の表示画面のデータに基づく表示画面を操作部ＩＦ部２０３を介して操作部１１０に送出したり、ユーザが操作部１１０に対して行った操作内容を操作部ＩＦ部２０３を介してＣＰＵ２０１に通知したりすることができる。
【００２９】
電源制御ＩＦ部２０７は、電源制御部１０３と接続するためのＩＦモジュールであり、メインシステム１０１の電源状態を電源制御部１０３へ通知したり、電源制御部１０３からの上記割り込み信号を受信したりすることができる。
【００３０】
ネットワークＩＦ部２０８は、例えばＬＡＮカード等で実現され、メインシステム１０１をＬＡＮ等のネットワークに接続するためのものであり、該ネットワーク上の外部機器との間でデバイス情報や画像データ等の送受信を行うことができる。
【００３１】
メインＲＯＭＩＦ部２０４は、メインシステムＲＯＭ１０９にアクセスするためのＩ／Ｆモジュールである。
【００３２】
メインＤＲＡＭＩＦ部２０５は、メインシステムＤＲＡＭ１０５にアクセスするためのＩ／Ｆモジュールである。メインＤＲＡＭＩＦ部２０５は、メインシステムＤＲＡＭ１０５の設定や制御を行うためのレジスタを備えており、該レジスタの設定はＣＰＵ２０１が行う。例えば、メインシステムＤＲＡＭ１０５をセルフリフレッシュ状態に設定する場合は、ＣＰＵ２０１がメインＤＲＡＭＩＦ部２０５のレジスタを設定することで、メインシステムＤＲＡＭ１０５にセルフリフレッシュコマンドを発行することができる。
【００３３】
サブシステムＩＦ部２０６は、メインシステム１０１にサブシステム１０２を接続するためのＩ／Ｆモジュールである。具体的には、サブシステムＩＦ部２０６は、ＰＣＩＥｘｐｒｅｓｓで構成され、ルートコンプレックスがメインシステム１０１で、エンドポイントがサブシステム１０２となる。
【００３４】
次に、サブシステム１０２の構成例について、図３のブロック図を用いて説明する。なお、図３に示した構成は、サブシステム１０２に適用可能な構成の一例に過ぎず、以下に説明するサブシステム１０２の動作と同等以上の動作を実現可能な構成であれば、如何なる構成を採用しても構わない。
【００３５】
メインＣＰＵ３０１は、画像処理部３０７の設定や画像データ制御を行う。メインＣＰＵ３０１は、サブシステムＤＲＡＭ１０６に展開されたＯＳやアプリケーションプログラムを実行する。
【００３６】
サブＣＰＵ３０２は、画像処理を行う機能の制御を行う。サブＣＰＵ３０２は、サブシステムＲＯＭ１０４に格納されているコンピュータプログラムやデータを用いて処理を実行する。
【００３７】
レジスタ部３０３は、サブシステム１０２の設定や制御に関わるレジスタである。レジスタ部３０３は、メインＣＰＵ３０１からの読み書きが可能であり、特に、メインＣＰＵ３０１のリセットを制御することができる。
【００３８】
画像処理部３０７は、各種画像処理を行う回路であり、メインＣＰＵ３０１によって設定、制御され各種画像処理を行う。例えば、プリンタ部１１１によって印刷される画像に対する補正処理を行ったり、スキャナ部１１２が読み取った画像に対して各種の画像処理（補正、加工、編集等）を施したりする。
【００３９】
プリンタＩＦ部３０９は、サブシステム１０２にプリンタ部１１１を接続するためのもので、プリンタ部１１１との間のデータ通信はこのプリンタＩＦ部３０９を介して行われる。
【００４０】
スキャナＩＦ部３０８は、サブシステム１０２にスキャナ部１１２を接続するためのもので、スキャナ部１１２との間のデータ通信はこのスキャナＩＦ部３０８を介して行われる。
【００４１】
サブＲＯＭＩＦ部３０４は、サブシステムＲＯＭ１０４にアクセスするためのＩ／Ｆモジュールである。
【００４２】
サブＤＲＡＭＩＦ部３０５は、サブシステムＤＲＡＭ１０６にアクセスするためのＩ／Ｆモジュールである。サブＤＲＡＭＩＦ部３０５は、サブシステムＤＲＡＭ１０６の設定や制御を行うためのレジスタを備えており、メインＣＰＵ３０１、サブＣＰＵ３０２、のいずれもレジスタ設定することが可能である。
【００４３】
メインシステムＩＦ部３０６は、サブシステム１０２にメインシステム１０１を接続するためのＩ／Ｆモジュールである。具体的には、メインシステムＩＦ部３０６は、ＰＣＩＥｘｐｒｅｓｓで構成され、ルートコンプレックスがメインシステム１０１で、エンドポイントがサブシステム１０２となる。
【００４４】
次に、処理システムの電源をオンにした場合に、メインシステム１０１、サブシステム１０２、電源制御部１０３、のそれぞれが行う処理について、図４のフローチャートを用いて説明する。本フローチャートのステップＳ４０１、Ｓ４０４、Ｓ４０５における処理は電源制御部１０３によって実行若しくは制御される。また、ステップＳ４０２、Ｓ４０６〜Ｓ４０９、Ｓ４１８における処理は、メインシステム１０１のＣＰＵ２０１が、メインシステムＲＯＭ１０９に保存されているコンピュータプログラムやデータ、メインシステムＤＲＡＭ１０５に格納されているコンピュータプログラムやデータを用いて処理を実行することで実行若しくは制御される。また、ステップＳＳ４１０〜Ｓ４１２，Ｓ４１６〜Ｓ４１８の処理は、サブシステム１０２（メインＣＰＵ３０１、サブＣＰＵ３０２）が、サブシステムＲＯＭ１０４に保存されているコンピュータプログラムやデータ、サブシステムＤＲＡＭ１０６に格納されているコンピュータプログラムやデータを用いて処理を実行することで実行若しくは制御される。
【００４５】
処理システムの電源をオンにすると、電源部１０７から電源が供給されるため、ステップＳ４０１では、電源制御部１０３の電源が投入され、ステップＳ４０２では、メインシステム１０１の電源が投入される。
【００４６】
ステップＳ４０４では、電源制御部１０３は、サブシステム１０２に電源を供給するよう、電源部１０７に指示する。これにより電源部１０７から電源が供給されるため、ステップＳ４１０では、サブシステム１０２の電源が投入されて、サブＣＰＵ３０２のリセットが解除される。
【００４７】
また、ステップＳ４０５では、電源制御部１０３は、今回の電源のオンが、「電源がオフ状態にある処理システムの電源をオンにした」（電源投入）ものであるのか、それともスリープモードからの復帰（Ｓｌｅｅｐ復帰）によるものであるのか、を示す信号である復帰フラグ信号を、サブシステム１０２に対して送信する。ここでは、今回の電源のオンが、「電源がオフ状態にある処理システムの電源をオンにした」（電源投入）ものである。
【００４８】
ステップＳ４０６では、メインシステム１０１のＣＰＵ２０１は、メインシステム１０１の初期化を実行する。具体的には、ＣＰＵ２０１は、メインシステムＲＯＭ１０９に格納されているコンピュータプログラムやデータをメインシステムＤＲＡＭ１０５に読み出し、該コンピュータプログラムやデータを用いて処理を実行することで、ＩＯ設定、割り込みの初期化、メインシステムＨＤＤ１０８に格納してあるＯＳイメージの展開等を行う。
【００４９】
ステップＳ４０７では、メインシステム１０１のＣＰＵ２０１は、サブシステムＤＲＡＭ１０６にアクセスするための初期設定を行う。より具体的には、ＣＰＵ２０１は、サブシステムＩＦ部２０６を介してサブシステム１０２にアクセスし、サブシステム１０２のサブＣＰＵ３０２に、サブＤＲＡＭＩＦ部３０５のレジスタ設定を行うよう、指示する。これによりサブシステム１０２のサブＣＰＵ３０２は、サブＤＲＡＭＩＦ部３０５のレジスタ設定を行う。
【００５０】
ステップＳ４０８では、メインシステム１０１のＣＰＵ２０１は、メインシステムＨＤＤ１０８からサブシステム１０２用（メインＣＰＵ３０１用）のブートイメージを読み出し、該読み出したブートイメージをサブシステムＩＦ部２０６を介してサブシステム１０２に対して送出し、サブシステム１０２に該読み出したブートイメージをサブシステムＤＲＡＭ１０６に展開させるよう制御する。
【００５１】
ステップＳ４０９では、メインシステム１０１のＣＰＵ２０１は、サブシステムＩＦ部２０６を介してサブシステム１０２のメインＣＰＵ３０１に、該メインＣＰＵ３０１のリセットを解除させる。詳細には、ＣＰＵ２０１は、サブシステムＩＦ部２０６を介してサブシステム１０２にアクセスし、サブシステム１０２のメインＣＰＵ３０１に、レジスタ部３０３のレジスタ設定を行わせる。
【００５２】
ステップＳ４１１では、サブシステム１０２のサブＣＰＵ３０２は、サブシステムＲＯＭ１０４に格納されているコンピュータプログラム（ブートプログラム）やデータを用いて処理を実行することで、ブートを行う。
【００５３】
ステップＳ４１２では、サブシステム１０２のサブＣＰＵ３０２は、ステップＳ４０５においてメインシステム１０１から送信された復帰フラグ信号を受信すると、該復帰フラグ信号が格納されるレジスタを読み出す。復帰フラグ信号はサブＣＰＵ３０２のＧＰＩＯ（ＧｅｎｅｒａｌＰｅｒｐｏｓｅＩＯ）に入力される。
【００５４】
ステップＳ４１６では、サブＣＰＵ３０２のブート制御処理は終了し、ステップＳ４０９におけるメインシステム１０１によるメインＣＰＵ３０１のリセット解除設定制御により、メインＣＰＵ３０１のリセットが解除される。
【００５５】
ステップＳ４１７では、メインＣＰＵ３０１は、リセットベクタに設定されているサブシステムＤＲＡＭ１０６から、展開されているブートイメージを用いて処理を実行することで、ブートを開始する。
【００５６】
ステップＳ４１８では、メインシステム１０１とサブシステム１０２との間で初期化シーケンスを実行する。具体的には、メインシステム１０１のＣＰＵ２０１とメインＣＰＵ３０１との間でＣＰＵ間通信を行い、メインＣＰＵ３０１が画像処理部３０７へのレジスタ設定を行う。
【００５７】
以上説明した電源投入時の制御処理によって、電源投入時にメインシステム１０１によって、サブシステムＤＲＡＭ１０６にメインＣＰＵ３０１のブートイメージを展開し、メインＣＰＵ３０１のリセットを解除し、メインＣＰＵ３０１のブートタイミングを制御することができる。
【００５８】
次に、図４のフローチャートに従った処理の後、即ち、電源がオンになった後で、処理システムをスリープモードに移行させる場合に、メインシステム１０１、サブシステム１０２、電源制御部１０３、のそれぞれが行う処理について、図５のフローチャートを用いて説明する。本フローチャートのステップＳ５０２、Ｓ５０９、Ｓ５１１における処理は電源制御部１０３によって実行若しくは制御される。また、ステップＳ５０１、Ｓ５０４、Ｓ５０５、Ｓ５０７、Ｓ５０８における処理は、メインシステム１０１のＣＰＵ２０１が、メインシステムＲＯＭ１０９に保存されているコンピュータプログラムやデータ、メインシステムＤＲＡＭ１０５に格納されているコンピュータプログラムやデータを用いて処理を実行することで実行若しくは制御される。また、ステップＳ５０３、Ｓ５１２〜Ｓ５１４における処理は、サブシステム１０２（メインＣＰＵ３０１、サブＣＰＵ３０２）が、サブシステムＲＯＭ１０４に保存されているコンピュータプログラムやデータ、サブシステムＤＲＡＭ１０６に格納されているコンピュータプログラムやデータを用いて処理を実行することで実行若しくは制御される。図５のフローチャートの場合、サブシステム１０２は、メインシステム１０１及び電源制御部１０３からの制御を受けるのみである。
【００５９】
ステップＳ５０１では、メインシステム１０１のＣＰＵ２０１は、スリープモードに移行するための条件が満たされたか否かを判断する。例えば、ある一定時間ユーザからの操作が無い場合やデータ処理リクエストが無い場合に、この条件が満たされたと判断する。この条件が満たされた場合には、処理はステップＳ５０４に進み、満たされていない場合には、ステップＳ５０１で待機する。
【００６０】
ステップＳ５０２では、電源制御部１０３は、メインシステム１０１のＣＰＵ２０１からのスリープモードへの移行指示を待機する。
【００６１】
ステップＳ５０３では、サブシステム１０２は、メインシステム１０１及び電源制御部１０３からの指示を待機する。
【００６２】
ステップＳ５０４では、メインシステム１０１のＣＰＵ２０１は、サブシステムＩＦ部２０６を介してサブシステム１０２のメインＣＰＵ３０１に対し、サブシステム１０２のレジスタ部３０３へアクセスしてメインＣＰＵ３０１にリセットをかけさせる。この処理は、サブシステムＤＲＡＭ１０６内のメインＣＰＵ３０１用のブートイメージをメインシステムＤＲＡＭ１０５に書き込んでいる間に、メインＣＰＵ３０１がサブシステムＤＲＡＭ１０６にアクセスしないようにするためである。
【００６３】
ステップＳ５１２では、ステップＳ５０４における処理により、メインＣＰＵ３０１はリセット状態となる。
【００６４】
ステップＳ５１３では、サブシステム１０２のサブＣＰＵ３０２は、メインシステム１０１のＣＰＵ２０１から、「サブシステムＤＲＡＭ１０６に格納されているメインＣＰＵ３０１用のブートイメージをメインシステムＤＲＡＭ１０５に書き込む」旨の指示を受けると、サブシステムＤＲＡＭ１０６に格納されているメインＣＰＵ３０１用のブートイメージを、メインシステムＩＦ部３０６を介してメインシステム１０１に転送し、該メインシステム１０１に対し、該ブートイメージをメインシステムＤＲＡＭ１０５に書き込むよう、指示する。具体的には、メインＣＰＵ３０１用のブートイメージやレジスタ部３０３の各種レジスタ設定値を書き込むよう、メインシステム１０１に指示する。この指示は、「サブシステムＤＲＡＭ１０６に格納されているメインＣＰＵ３０１用のブートイメージをメインシステムＤＲＡＭ１０５に書き込む」ことを直接的に示す指示であっても良いし、スリープモードに移行する旨を示すことで間接的に「サブシステムＤＲＡＭ１０６に格納されているメインＣＰＵ３０１用のブートイメージをメインシステムＤＲＡＭ１０５に書き込む」ことを指示するものであっても良い。
【００６５】
ステップＳ５０５では、メインシステム１０１のＣＰＵ２０１は、ステップＳ５１３においてサブシステム１０２から受けた指示に応じて、サブシステム１０２から受けたメインＣＰＵ３０１用のブートイメージをメインシステムＤＲＡＭ１０５に書き込む。  ステップＳ５０７では、メインシステム１０１のＣＰＵ２０１は、メインシステムＤＲＡＭ１０５をセルフリフレッシュ状態に移行させる。これにより、メインシステム１０１はスリープ状態となる。
【００６６】
ステップＳ５０８では、メインシステム１０１のＣＰＵ２０１は、メインシステム１０１がスリープ状態になったことを電源制御部１０３に通知する。
【００６７】
ステップＳ５０９では、電源制御部１０３は、メインシステム１０１のＣＰＵ２０１から、該メインシステム１０１がスリープ状態になった旨を受信したか否かを判断する。この判断の結果、受信した場合には、処理はステップＳ５１１に進み、受信していない場合には、ステップＳ５０９で待機する。
【００６８】
ステップＳ５１１では、電源制御部１０３は、電源部１０７を制御して、スリープモード時の電源状態に設定する。
【００６９】
以上説明した、図５のフローチャートに従った処理を行うことで、処理システムをスリープモードに移行させることができると共に、処理システムの電源をオンにした時にサブシステムＤＲＡＭ１０６に展開したメインＣＰＵ３０１用のブートイメージを、該サブシステムＤＲＡＭ１０６からメインシステムＤＲＡＭ１０５に移動させることができる。
【００７０】
スリープモードに移行した状態における処理システムの各機能部における電源状態を図６に示す。スリープモードに移行した状態では、メインシステムＲＯＭ１０９、メインシステムＨＤＤ１０８、サブシステム１０２、サブシステムＲＯＭ１０４、サブシステムＤＲＡＭ１０６、プリンタ部１１１、スキャナ部１１２の電源がオフ（ＯＦＦ）となり、それ以外はオン（ＯＮ）となる。また、メインシステムＤＲＡＭ１０５はセルフリフレッシュ状態である。
【００７１】
次に、スリープモードに移行した処理システムを、通常動作モードに移行させる（スリープ状態から復帰させる）場合に、メインシステム１０１、サブシステム１０２、電源制御部１０３、のそれぞれが行う処理について、図７のフローチャートを用いて説明する。本フローチャートのステップＳ７０１、Ｓ７０４、Ｓ７０６における処理は、電源制御部１０３によって実行若しくは制御される。また、ステップＳ７０２、Ｓ７０５、Ｓ７０７、Ｓ７０８、Ｓ７１７における処理は、メインシステム１０１のＣＰＵ２０１が、メインシステムＲＯＭ１０９に保存されているコンピュータプログラムやデータ、メインシステムＤＲＡＭ１０５に格納されているコンピュータプログラムやデータを用いて処理を実行することで実行若しくは制御される。また、ステップＳ７０９〜Ｓ７１１、Ｓ７１３，Ｓ７１６，Ｓ７１７における処理は、サブシステム１０２（メインＣＰＵ３０１、サブＣＰＵ３０２）が、サブシステムＲＯＭ１０４に保存されているコンピュータプログラムやデータ、サブシステムＤＲＡＭ１０６に格納されているコンピュータプログラムやデータを用いて処理を実行することで実行若しくは制御される。
【００７２】
ステップＳ７０１では、電源制御部１０３は、スリープ状態からの復帰要因が発生したか否かを判断する。例えば、ユーザが操作部１１０を操作して何らかの操作入力を行うと、操作部１１０はスリープ復帰信号を電源制御部１０３に対して出力するので、電源制御部１０３は、該スリープ復帰信号を受信すると、スリープ状態からの復帰要因が発生したと判断する。スリープ状態からの復帰要因が発生したと判断した場合には、処理はステップＳ７０４に進み、発生していないと判断した場合には、ステップＳ７０１で待機する。
【００７３】
ステップＳ７０４では、電源制御部１０３は、電源部１０７に対してメインシステム１０１への電源投入を指示すると共に、メインシステム１０１に対してスリープ復帰割り込み信号を出力する。これによりメインシステム１０１には電源が投入されることになる。
【００７４】
ステップＳ７０２では、メインシステム１０１のＣＰＵ２０１は、電源制御部１０３からのスリープ復帰割り込み信号を受信する。
【００７５】
ステップＳ７０５では、メインシステム１０１のＣＰＵ２０１は、電源制御部１０３に対して、サブシステム１０２への電源投入を指示する。
【００７６】
ステップＳ７０６では、電源制御部１０３は、メインシステム１０１のＣＰＵ２０１からサブシステム１０２への電源投入の指示を受けると、サブシステム１０２などに電源投入を行うために、電源部１０７に電源投入を指示する。これによりサブシステム１０２には、電源が投入されることになる。
【００７７】
ステップＳ７０７では、メインシステム１０１のＣＰＵ２０１は、スリープモードから通常動作モードに移行させるための処理として、まず、メインシステムＤＲＡＭ１０５のセルフリフレッシュを解除する。
【００７８】
ステップＳ７０８では、メインシステム１０１のＣＰＵ２０１は、メインシステム１０１全体の初期化処理を行う。
【００７９】
ステップＳ７０９〜Ｓ７１１、Ｓ７１７の各ステップにおける処理はそれぞれ、上記のステップＳ４１０〜Ｓ４１２、Ｓ４１８と同様であるため、これらのステップに係る説明は省略する。
【００８０】
ステップＳ７１３では、サブシステム１０２のサブＣＰＵ３０２は、上記のステップＳ５１３においてメインシステムＤＲＡＭ１０５に書き込んだメインＣＰＵ３０１用のブートイメージの転送要求を、メインシステムＩＦ部３０６を介してメインシステム１０１に送信する。メインシステム１０１は、この転送要求に応じて、上記のステップＳ５１３においてメインシステムＤＲＡＭ１０５に書き込んだメインＣＰＵ３０１用のブートイメージを読み出し、該読み出したブートイメージをサブシステムＩＦ部２０６を介してサブシステム１０２に対して送出する。サブシステム１０２のサブＣＰＵ３０２は、メインシステム１０１から送出されたブートイメージを、サブシステムＤＲＡＭ１０６に書き込む。
【００８１】
ステップＳ７１６では、メインＣＰＵ３０１は、ステップＳ７１３でサブシステムＤＲＡＭ１０６に書き込んだブートイメージを用いて処理を実行することで、ブートを開始する。
【００８２】
このように、本実施形態によれば、処理システムがスリープ状態から復帰する場合に、メインシステム１０１の起動を待つことなく、サブシステム１０２を起動させることが可能となる。
【００８３】
図８（ａ）に、処理システムの電源をオンにした時の簡易タイミングチャートを、図８（ｂ）に、スリープ状態から復帰させる時の簡易タイミングチャートを示す。図８（ａ）では、メインシステム１０１が起動し、メインＣＰＵ３０１のリセット解除によってサブシステム１０２が起動を始める。図８（ｂ）では、メインシステム１０１がスリープ状態からの復帰処理を開始するとほぼ同時に、サブシステム１０２も起動を始めることができる。また、図８（ｃ）に、本実施形態とは異なる従来の起動タイミングチャートを示す。従来の起動シーケンスでは、メインシステム１０１がスリープ状態からの復帰処理を行い、サブシステム１０２の初期化を実行してからメインＣＰＵ３０１のリセットを解除する。メインＣＰＵ３０１のリセットを解除した時点からサブシステム１０２はブートを開始するので、システム全体の起動時間が遅くなる。図８（ｂ）では、図８（ｃ）のようにメインシステム１０１の起動を待つ必要がないので、スリープ状態からの復帰時間を短縮することが可能となる。さらに、サブＣＰＵ３０２の処理がサブシステムＲＯＭ１０４を使用する前提であるならば、システムとしてのコスト増加なしで、スリープ状態からの復帰時間を短縮することが可能となる。
【００８４】
［第２の実施形態］
第１の実施形態では、ＣＰＵ２０１による制御に応じて、サブＣＰＵ３０２がサブシステムＤＲＡＭ１０６内のメインＣＰＵ３０１用ブートイメージをメインシステムＤＲＡＭ１０５に書き込みするよう、ＣＰＵ２０１に指示する構成であった。これに対し、本実施形態では、サブシステムＤＲＡＭ１０６内のメインＣＰＵ３０１用ブートイメージをメインシステムＤＲＡＭ１０５に書き込むための専用ＤＭＡＣがサブシステム１０２に備わっている。以下では第１の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第１の実施形態と同様であるものとする。
【００８５】
本実施形態に係るサブシステム１０２の構成例について、図９のブロック図を用いて説明する。図９において図２に示した機能部と同じ機能部には同じ参照番号を付しており、該機能部に係る説明は省略する。図９に示した構成は、図２に示した構成にＤＭＡＣ９００を追加したものとなる。
【００８６】
次に、図４のフローチャートに従った処理の後、即ち、電源がオンになった後で、処理システムをスリープモードに移行させる場合に、メインシステム１０１、サブシステム１０２、電源制御部１０３、のそれぞれが行う処理について、図１０のフローチャートを用いて説明する。図１０において、図５に示した処理ステップと同じ処理ステップには同じ参照番号を付しており、該処理ステップに係る説明は省略する。
【００８７】
ステップＳ５１３では、サブシステム１０２のサブＣＰＵ３０２が、サブシステムＤＲＡＭ１０６に格納されているメインＣＰＵ３０１用のブートイメージを、メインシステムＩＦ部３０６を介して、メインシステム１０１に転送していた。これに対し、ステップＳ１１１３では、ＤＭＡＣ９００が、サブシステムＤＲＡＭ１０６に格納されているメインＣＰＵ３０１用のブートイメージを、メインシステムＩＦ部３０６を介して、メインシステム１０１に転送する。
【００８８】
次に、スリープモードに移行した処理システムを、通常動作モードに移行させる（スリープ状態から復帰させる）場合に、メインシステム１０１、サブシステム１０２、電源制御部１０３、のそれぞれが行う処理について、図１１のフローチャートを用いて説明する。図１１において、図７に示した処理ステップと同じ処理ステップには同じ参照番号を付しており、該処理ステップに係る説明は省略する。
【００８９】
ステップＳ７１３では、サブシステム１０２のサブＣＰＵ３０２が、上記のステップＳ５１３においてメインシステムＤＲＡＭ１０５に書き込んだメインＣＰＵ３０１用のブートイメージを、メインシステム１０１から受け取ってサブシステムＤＲＡＭ１０６に書き込んでいた。これに対し、ステップＳ１２１４では、ＤＭＡＣ９００が、上記のステップＳ１１１３においてメインシステムＤＲＡＭ１０５に書き込んだメインＣＰＵ３０１用のブートイメージを、メインシステム１０１から受け取ってサブシステムＤＲＡＭ１０６に書き込む。
【００９０】
このように、本実施形態によれば、ＤＭＡＣ９００でメインＣＰＵ３０１用のブートイメージを書き込み、展開することで、Ｓｌｅｅｐ起動時間、Ｓｌｅｅｐ復帰時間を短縮することが可能となる。
【００９１】
また、以上説明した各実施形態によれば、主従関係にあるメインシステムとサブシステムとを有する処理システムにおいて、スリープ状態から復帰する場合に、メインシステムの起動を待つことなくサブシステムの起動を可能にする。これにより、スリープ状態からの復帰時間を短くすることが可能となる。
【００９２】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００９３】
１０１：メインシステム  １０２：サブシステム  １０５：メインシステムＤＲＡＭ  １０６：サブシステムＤＲＡＭ
【図１】
2016115075.tif 000003
【図２】
2016115075.tif 000004
【図３】
2016115075.tif 000005
【図４】
2016115075.tif 000006
【図５】
2016115075.tif 000007
【図６】
2016115075.tif 000008
【図７】
2016115075.tif 000009
【図８】
2016115075.tif 000010
【図９】
2016115075.tif 000011
【図１０】
2016115075.tif 000012
【図１１】
2016115075.tif 000013