(57)【特許請求の範囲】
【請求項１】
情報処理装置であって、
前記情報処理装置を制御する第１の演算手段と、
前記第１の演算手段から発行されるコマンドに従ってデータ処理を実行する第２の演算手段と、
前記第１の演算手段及び前記第２の演算手段に対してクロックを供給する供給手段と、
前記第１の演算手段及び前記第２の演算手段のリセットを解除した後であって、前記第２の演算手段による第１ブートプログラムを用いた前記第２の演算手段の起動処理が完了した後、且つ前記第１の演算手段による第２ブートプログラムを用いた前記第１の演算手段の起動処理が完了する前に、前記第２の演算手段に対するクロックの供給を停止し、前記第１の演算手段の起動が完了した後、前記第２の演算手段に対するクロックの供給を再開する制御手段と、を有することを特徴とする情報処理装置。
【請求項２】
前記第１の演算手段は、ＣＰＵであることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２の演算手段は、ＤＳＰであることを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記第１の演算手段を起動するための前記第２ブートプログラムを記憶する第１の記憶手段と、前記第２の演算手段を起動するための前記第１ブートプログラムを記憶する第２の記憶手段と、を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記第１の記憶手段及び前記第２の記憶手段は、不揮発性の記憶手段であることを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記第２の演算手段がデータ処理を実行するためのデータ処理プログラムを記憶する第３の記憶手段を更に有することを特徴とする請求項４又は５に記載の情報処理装置。
【請求項７】
前記第３の記憶手段は、揮発性の記憶手段であることを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記第１の演算手段は、前記第１の演算手段の起動が完了したことに応じて、前記データ処理プログラムを前記第３の記憶手段に記憶させることを特徴とする請求項６又は７に記載の情報処理装置。
【請求項９】
前記第１の演算手段は、前記データ処理プログラムが前記第３の記憶手段に記憶された後、前記制御手段に割り込み信号を送信し、
前記制御手段は、前記割り込み信号を受信したことに応じて、前記第２の演算手段に対するクロックの供給を再開することを特徴とする請求項８に記載の情報処理装置。
【請求項１０】
前記第２の演算手段は、前記第２の演算手段に対してクロックの供給が再開されたことに応じて、前記第３の記憶手段に記憶された前記データ処理プログラムを用いてデータ処理を実行することを特徴とする請求項７乃至９のいずれか１項に記載の情報処理装置。
【請求項１１】
前記第２の記憶手段は、前記第３の記憶手段に記憶された前記データ処理プログラムにアクセスするための第１の情報を記憶し、
前記第２の演算手段は、前記第２の記憶手段に記憶された前記第１の情報に基づいて前記第３の記憶手段に記憶された前記データ処理プログラムにアクセスすることを特徴とする請求項７乃至９のいずれか１項に記載の情報処理装置。
【請求項１２】
前記第１の情報は、前記第３の記憶手段において前記データ処理プログラムが記憶された記憶領域を示す第１のアドレスであることを特徴とする請求項１１に記載の情報処理装置。
【請求項１３】
前記第３の記憶手段において前記データ処理プログラムが記憶された記憶領域を示す第１のアドレスを記憶する第４の記憶手段を更に有し、
前記第１の情報は、前記第４の記憶手段において前記第１のアドレスが記憶された記憶領域を示す第２のアドレスであることを特徴とする請求項１１に記載の情報処理装置。
【請求項１４】
第１の演算手段と、
前記第１の演算手段から発行されるコマンドに従ってデータ処理を実行する第２の演算手段と、
前記第１の演算手段及び前記第２の演算手段に対してクロックを供給する供給手段とを有する情報処理装置の制御方法であって、
前記第１の演算手段及び前記第２の演算手段のリセットを解除する解除工程と、
第１ブートプログラムを用いて前記第１の演算手段の起動処理を実行し、及び第２ブートプログラムを用いて前記２の演算手段の起動処理を実行する起動工程と、
前記第２の演算手段の起動処理が完了した後、且つ前記第１の演算手段の起動処理が完了する前に、前記第２の演算手段に対するクロックの供給を停止する第１の制御工程と、
前記第１の演算手段の起動が完了した後、前記第２の演算手段に対するクロックの供給を再開する第２の制御工程と、を有することを特徴とする制御方法。
【請求項１５】
第１の演算手段と、
前記第１の演算手段から発行されるコマンドに従ってデータ処理を実行する第２の演算手段と、
前記第１の演算手段及び前記第２の演算手段に対してクロックを供給する供給手段とを有する情報処理装置に、
前記第１の演算手段及び前記第２の演算手段のリセットを解除する解除工程と、
第１ブートプログラムを用いて前記第１の演算手段の起動処理を実行し、及び第２ブートプログラムを用いて前記２の演算手段の起動処理を実行する起動工程と、
前記第２の演算手段の起動処理が完了した後、且つ前記第１の演算手段の起動処理が完了する前に、前記第２の演算手段に対するクロックの供給を停止する第１の制御工程と、前記第１の演算手段の起動が完了した後、前記第２の演算手段に対するクロックの供給を再開する第２の制御工程と、を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに関するものである。
【背景技術】
【０００２】
近年、情報処理装置は、ＣＰＵ（汎用のプロセッサ）とＤＳＰ（データ処理に特化したプロセッサ）を組み合わせた非対称マルチプロセッサシステムで構成されるものが増えてきた。
【０００３】
非対称マルチプロセッサシステムでは、多くの場合、ＣＰＵとＤＳＰはマスタ−スレーブ型の構成となっている。マスタ−スレーブ型の構成においては、ＣＰＵがマスタプロセッサ、ＤＳＰがスレーブプロセッサとなり、ＣＰＵとＤＳＰがメモリを共有し、ＣＰＵがＤＳＰの起動や動作を制御する。
【０００４】
従来、マスタ−スレーブ型の非対称マルチプロセッサシステムで構成される情報処理装置において、システムの起動時には図５に示すような処理が実行されていた。まず、ＣＰＵは、ＣＰＵの起動処理を実行する（ｔ１〜ｔ３）。次に、ＣＰＵは、ＤＳＰのソフトをダウンロードする（ｔ３〜ｔ４）。次に、ＣＰＵは、ＤＳＰのリセットを解除する（ｔ４〜ｔ５）。次に、ＤＳＰは、ＤＳＰの起動処理を実行する（ｔ５〜ｔ６）。
【０００５】
一方、ハードウェアの消費電力を削減する技術として、クロックゲーティングと呼ばれる技術が存在する。クロックゲーティングとは、ハードウェアが動作していない場合に、ハードウェアに対してクロックの供給を停止する技術である（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平５−２３５７１０
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一般に、ハードウェアをリセットしているときは、そのハードウェアに対してクロックを供給し続ける必要がある。
【０００８】
そのため、上述した構成の情報処理装置において、ＣＰＵが起動処理等を実行している間、ＤＳＰは、何の処理も実行していないにも関わらず、クロックゲーティングを適用して消費電力を削減させることができなかった。
【０００９】
本発明は、情報処理装置において、第１の演算手段の起動中で第２の演算手段の起動処理が完了している間に、第２の演算手段に対してクロックの供給を停止することを目的とする。
【課題を解決するための手段】
【００１０】
本発明に係る情報処理装置は、情報処理装置を制御する第１の演算手段と、前記第１の演算手段から発行されるコマンドに従ってデータ処理を実行する第２の演算手段と、前記第１の演算手段及び前記第２の演算手段に対してクロックを供給する供給手段と、前記第１の演算手段及び前記第２の演算手段のリセットを解除した後であって、前記第２の演算手段による第１ブートプログラムを用いた前記第２の演算手段の起動処理が完了した後、且つ前記第１の演算手段による第２ブートプログラムを用いた前記第１の演算手段の起動処理が完了する前に、前記第２の演算手段に対するクロックの供給を停止し、前記第１の演算手段の起動が完了した後、前記第２の演算手段に対するクロックの供給を再開する制御手段と、を有することを特徴とする。
【発明の効果】
【００１１】
本発明により、情報処理装置において、第１の演算手段の起動中で第２の演算手段の起動処理が完了している間に、第２の演算手段に対してクロックの供給を停止することが可能となる。
【図面の簡単な説明】
【００１２】
【図１】システムの構成を示すブロック図
【図２】ＤＳＰ２０３の構成を示すブロック図
【図３】ＭＦＰ００１が起動する際にＣＰＵ２０１及びＤＳＰ２０３が実行する処理のシーケンスを示すフローチャート
【図４】ＭＦＰ００１が起動する際にＣＰＵ２０１及びＤＳＰ２０３が実行する処理のシーケンスを示すタイムチャート
【図５】従来技術を説明するためのタイムチャート
【発明を実施するための形態】
【００１３】
〔第１の実施形態〕
図１は、本実施形態に係るシステムの構成を示すブロック図である。
【００１４】
００１は、ＭＦＰ（マルチファンクションプリンタ）である。００２は、ＰＣである。００３は、ネットワークである。ＭＦＰ００１は、ネットワーク００３を介して、ＰＣ００２と通信可能である。
【００１５】
ＭＦＰ００１は、１０１〜１０６の構成を有する。１０１は、システムＬＳＩである。１０２は、ＲＡＭ（揮発性の記憶媒体）である。１０３は、ＲＯＭ（不揮発性の記憶媒体）であり、ＣＰＵ２０１のブートプログラム、ＣＰＵ２０１の制御プログラム及びＤＳＰ２０３のデータ処理プログラム等が記憶される。１０４は、操作部である。１０５は、プリンタである。１０６は、スキャナである。ＭＦＰ００１は、ＰＣ００２から印刷命令を受信した場合、システムＬＳＩ１０１により画像データに対して画像処理を実行して、プリンタ１０５により用紙に画像を印刷する。また、ＭＦＰ００１は、操作部１０４によりユーザからコピー命令を受け付けた場合、スキャナ１０６で原稿を読み取り、システムＬＳＩ１０１画像データに対して画像処理を実行して、プリンタ１０５により用紙に画像を印刷する。
【００１６】
システムＬＳＩ１０１は、２０１〜２１６の構成を有する。２０１は、ＣＰＵであり、ＭＦＰ００１を制御する。ＣＰＵ２０１は、ＲＯＭ１０３に記憶されたプログラムをＲＡＭ１０２に展開して実行する。２０２は、割込コントローラであり、ネットワーク００３等からの割り込みをＣＰＵ２０１に伝える。２０３は、ＤＳＰであり、ＣＰＵ２０１の処理を補助するために、レンダリング処理やスキャナ画像処理などを実行する。ＣＰＵ２０１とＤＳＰ２０３は、ＣＰＵ２０１がマスターでＤＳＰ２０３がスレーブという関係になっている。２０４は、ＲＯＭ（不揮発性の記憶媒体）であり、ＤＳＰ２０３のブートプログラム等を記憶が記憶される。ＲＯＭ２０４には、ＤＳＰ２０３のデータ処理プログラムが記憶されるＲＡＭ１０２上のアドレスも記憶される。２０５は、割込コントローラであり、ネットワーク００３等からの割り込みをＤＳＰ２０３に伝える。２０６は、ＲＡＭコントローラであり、ＣＰＵ２０１等からのメモリアクセス要求により、ＲＡＭ１０２に対してデータの読み出しや書き込みを実行する。２０７は、ＲＯＭコントローラであり、ＣＰＵ２０１等からのＲＯＭアクセス要求により、ＲＯＭ１０３に対してデータの読み出しを実行する。２０８は、ネットワークインターフェースであり、ＣＰＵ２０１等からのネットワークアクセス要求により、ネットワーク００３に対してデータの送信や受信を実行する。２０９は、ＵＩコントローラであり、操作部１０４にて表示を行うためのデータをＣＰＵ２０１から操作部１０４へ転送し、操作部１０４にてユーザから入力されたデータを操作部１０４からＣＰＵ２０１へ転送する。２１０は、プリンタインターフェースであり、ＲＡＭ１０２に記憶された画像データをプリンタ１０５へ転送する。２１１は、スキャナインターフェースであり、スキャナ１０６で読み取られた画像データをＲＡＭ１０２へ転送する。２１２は、画像処理プロセッサであり、ＲＡＭ１０２に記憶された画像を印刷するための画像処理を実行する。２１３は、ＪＢＩＧ圧縮器であり、ＲＡＭ１０２に記憶されたＪＢＩＧ圧縮前の画像データに対してＪＢＩＧ圧縮を実行する。２１４は、ＪＢＩＧ伸張器であり、ＲＡＭ１０２に記憶されたＪＢＩＧ圧縮後の画像データに対してＪＢＩＧ伸張を実行する。２１５は、バスであり、システムＬＳＩ１０１の各構成の間でデータの通信を媒介する。２１６は、バスであり、ＤＳＰ２０３とＲＯＭ２０４やバス２１５の間でデータの通信を媒介する。２１７は、クロックジェネレータであり、ＣＰＵ２０１やＤＳＰ２０３が動作するために必要なクロックを発生し、発生したクロックをＣＰＵ２０１やＤＳＰ２０３に供給する。なお、クロックジェネレータ２１７は、ＣＰＵ２０１やＤＳＰ２０３以外の構成に対しても、必要に応じて、発生したクロックを供給することが可能である。
【００１７】
図２は、本実施形態に係るＤＳＰ２０３の構成を示すブロック図である。
【００１８】
ＤＳＰ２０３は、主ドメイン３０１と、副ドメイン３０２に分けられる。主ドメイン３０１には、パイプライン３０３、命令キャッシュ３０４、汎用レジスタ３０５、データキャッシュ３０６、バスインターフェースユニット３０７が含まれる。副ドメインには、オンチップデバック部３０８、割り込み処理部３０９、クロック制御部３１０、クロックゲート回路３１１が含まれる。
【００１９】
ＤＳＰ２０３の状態としては、動作状態とリセット状態と割り込み待ち状態が存在する。ＤＳＰ２０３が動作状態であるとき、主ドメイン３０１と副ドメイン３０２にクロックが供給され、電力が消費される。ＤＳＰ２０３がリセット状態であるとき、主ドメイン３０１と副ドメイン３０２にクロックが供給され、動作状態より低い電力が消費される。ＤＳＰ２０３が割り込み待ち状態であるとき、主ドメイン３０１にはクロックが供給されず、副ドメイン３０２のみにクロックが供給され、リセット状態より低い電力が消費される。
【００２０】
図３は、ＭＦＰ００１が起動する際に実行されるＣＰＵ２０１及びＤＳＰ２０３の処理のシーケンスを示すフローチャートである。
【００２１】
このフローチャートに示すシーケンスは、ＭＦＰ００１が電源オンになったとき又は省電力モードから通常モードに復帰した際に実行される。
【００２２】
まず、クロックジェネレータ２１７は、ＣＰＵ２０１に対してクロックの供給を開始する（Ｓ１０１）。これとともに、クロックジェネレータ２１７は、ＤＳＰ２０３に対してクロックの供給を開始する（Ｓ２０１）。
【００２３】
次に、ＣＰＵ２０１は、ＣＰＵ２０１をリセットする（Ｓ１０２）。これとともに、ＤＳＰ２０３は、ＤＳＰ２０３をリセットする（Ｓ２０２）。
【００２４】
次に、ＣＰＵ２０１は、ＲＯＭ１０３に記憶されたＣＰＵ２０１のブートプログラムを用いて、ＣＰＵ２０１の起動処理を実行する（Ｓ１０３）。これとともに、ＤＳＰ２０３は、ＲＯＭ２０４に記憶されたＤＳＰ２０３のブートプログラムを用いて、ＤＳＰ２０３の起動処理を実行する（Ｓ２０３）。
【００２５】
ＣＰＵ２０１は、ＣＰＵ２０１の起動処理が完了したら、ＣＰＵ２０１の制御プログラム及びＤＳＰ２０３のデータ処理プログラムを、ＲＯＭ１０３からＲＡＭ１０２にダウンロードする（Ｓ１０４）。
【００２６】
ＤＳＰ２０３は、ＤＳＰ２０３の起動処理が完了したら、ＤＳＰ２０３を割り込み待ち状態へ移行させる（Ｓ２０４）。そして、ＤＳＰ２０３は、ＤＳＰ２０３が割り込み待ち状態へ移行したら、クロック制御部３１０を用いて、ＤＳＰ２０３に対するクロックの供給を停止させる（Ｓ２０５）。
【００２７】
次に、ＣＰＵ２０１は、ＤＳＰのプログラムのダウンロードが完了したら、ＤＳＰ２０３に割り込み信号を送信する（Ｓ１０５）。そして、ＤＳＰ２０３は、割り込み処理部３０９を用いて、ＣＰＵ２０１から割り込み信号を受信する（Ｓ２０６）。
【００２８】
ＣＰＵ２０１は、ＤＳＰ２０３に割り込み信号を送信したら、ＤＳＰ２０３がデータ処理を完了するまで待機する（Ｓ１０６）。
【００２９】
ＤＳＰ２０３は、ＣＰＵ２０１から割り込み信号を受信したら、クロック制御部３１０を用いて、ＤＳＰ２０３に対するクロックの供給を再開させる（Ｓ２０７）。
【００３０】
次に、ＤＳＰ２０３は、ＣＰＵ２０１から送信された割り込み信号を受信したら、以下に説明する例外処理（ＤＳＰ２０３を割り込み状態から復帰させるために必要な各種処理）を実行する（Ｓ２０８）。まず、割り込み要因の解析を行う。次に、割り込み要因が主ドメイン３０１を用いたデータ処理であった場合、割り込み要因をクリアし、割り込み状態から復帰するための割り込み復帰命令を実行する。割り込み復帰命令では、ＲＯＭ２０４においてＤＳＰ２０３のデータ処理プログラムが記憶された記憶領域を示すアドレスに基づいて、ＲＡＭ１０２に記憶されたＤＳＰ２０３のデータ処理プログラムにアクセスする。
【００３１】
次に、ＤＳＰ２０３は、ＤＳＰ２０３を割り込み待ち状態から復帰させる（Ｓ２０９）。
【００３２】
次に、ＤＳＰ２０３は、ＲＡＭ１０２に記憶されたＤＳＰ２０３のデータ処理プログラムを用いて、データの処理を実行する（Ｓ２１０）。
【００３３】
図４は、図３のシーケンスを実行したときのＣＰＵ２０１及びＤＳＰ２０３の動作状況を示すタイムチャートである。
【００３４】
ｔ２〜ｔ５において、ＤＳＰに対してクロックゲーティングを適用することにより、ＤＳＰで消費される電力を削減できることが分かる。
【００３５】
本実施形態により、ＣＰＵ２０１の起動中でＤＳＰ２０３の起動が完了している間に、ＤＳＰ２０３にクロックゲーティングを適用することにより、ＤＳＰ２０３の消費電力を削減することが可能となる。
【００３６】
〔第２の実施形態〕
第１の実施形態では、ＲＯＭ２０４に、ＤＳＰ２０３のデータ処理プログラムが記憶されるＲＡＭ１０２上のアドレスを格納していた。そして、Ｓ２０６の例外処理における割り込み復帰命令を実行する際には、ＲＯＭ２０４に格納されたアドレスに基づいて、ＲＡＭ１０２に記憶されたＤＳＰ２０３のデータ処理プログラムにアクセスしていた。
【００３７】
しかし、プログラムが記憶されるＲＡＭ１０２上のアドレスは、プログラムをコンパイルしたときに確定する。よって、ＤＳＰ２０３のデータ処理プログラムは、システムＬＳＩ１０１を作成するときにコンパイルを済ませておかなければならない。すると、ＤＳＰ２０３のデータ処理プログラムは、後から変更しようと思っても変更することができなくなってしまう。
【００３８】
第２の実施形態では、上記の問題を解決するために、第１の実施形態の構成を以下のように変更する。
【００３９】
まず、ＲＯＭ２０４に、所定のレジスタ（図示しない）のアドレスを格納する。次に、Ｓ２０６の例外処理の割り込み復帰命令を実行する前に、ＤＳＰ２０３のデータ処理プログラムが記憶されたＲＡＭ１０２上のアドレスを、前述の図示しない所定のレジスタに格納する。この処理は、ＣＰＵがＤＳＰ２０３のデータ処理プログラムをＲＡＭ１０２にダウンロードした際に実行してもよい。そして、Ｓ２０６の例外処理の割り込み復帰命令を実行する際には、ＲＯＭ２０４に格納されたアドレスに基づいて、所定のレジスタにアクセスする。そして、所定のレジスタに格納されたアドレスに基づいて、ＲＡＭ１０２に記憶されたＤＳＰ２０３のデータ処理プログラムにアクセスする。
【００４０】
本実施形態により、ＤＳＰ２０３のデータ処理プログラムのコンパイルを済ませない状態でシステムＬＳＩ１０１を作成することが可能となる。これにより、ＤＳＰ２０３のデータ処理プログラムを後から変更することが可能となる。
【００４１】
〔他の実施形態〕
本発明の目的は、前述したシステムまたは情報処理装置が記憶媒体から前述した実施の形態の機能を実現するソフトウェアのプログラムを読み出し実行することによっても達成される。プログラムを実行する演算手段としては、例えば、第１の演算手段、第２の演算手段が含まれる。
【００４２】
この場合、記憶媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラム及びプログラムを記憶した記憶媒体は本発明を構成することになる。プログラムとしては、例えば、第１のプログラム、第２のプログラム、第３のプログラムが含まれる。プログラムの起動としては、例えば、第１の起動、第２の起動が含まれる。プログラムを記憶する記憶媒体としては、例えば、第１の記憶媒体、第２の記憶媒体、第３の記憶媒体、第４の記憶媒体が含まれる。また、プログラム等により実行される制御としては、例えば、第１の制御、第２の制御が含まれる。また、プログラム等により使用される情報としては、例えば、第１の情報、第１のアドレス、第２のアドレスが含まれる。
【００４３】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、ＲＯＭ、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、メモリカード等を用いることができる。
【００４４】
また、プログラムの指示に基づき、コンピュータ上で稼動しているＯＳ等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【００４５】
更に、プログラムがコンピュータに接続された機能拡張ユニット等に備わるメモリに書き込まれた後、その機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【符号の説明】
【００４６】
００１  ＭＦＰ
００２  ＰＣ
００３  ネットワーク
【図１】
0005578811.tif 000002
【図２】
0005578811.tif 000003
【図３】
0005578811.tif 000004
【図４】
0005578811.tif 000005
【図５】
0005578811.tif 000006