説明

情報処理装置、情報処理装置の制御方法及びプログラム

【課題】 情報処理装置において、第1の演算手段の起動中で第2の演算手段の起動処理が完了している間に、第2の演算手段に対してクロックの供給を停止すること。
【解決手段】 DSP203は、DSP203の起動処理が完了したら、DSP203を割り込み待ち状態へ移行させる(S204)。
DSP203は、DSP203が割り込み待ち状態へ移行したら、クロック制御部310を用いて、DSP203に対するクロックの供給を停止させる(S205)。
DSP203は、CPU201から割り込み信号を受信したら、クロック制御部310を用いて、DSP203に対するクロックの供給を再開させる(S207)。
DSP203は、DSP203を割り込み待ち状態から復帰させる(S209)。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理装置の制御方法及びプログラムに関するものである。
【背景技術】
【0002】
近年、情報処理装置は、CPU(汎用のプロセッサ)とDSP(データ処理に特化したプロセッサ)を組み合わせた非対称マルチプロセッサシステムで構成されるものが増えてきた。
【0003】
非対称マルチプロセッサシステムでは、多くの場合、CPUとDSPはマスタ−スレーブ型の構成となっている。マスタ−スレーブ型の構成においては、CPUがマスタプロセッサ、DSPがスレーブプロセッサとなり、CPUとDSPがメモリを共有し、CPUがDSPの起動や動作を制御する。
【0004】
従来、マスタ−スレーブ型の非対称マルチプロセッサシステムで構成される情報処理装置において、システムの起動時には図5に示すような処理が実行されていた。まず、CPUは、CPUの起動処理を実行する(t1〜t3)。次に、CPUは、DSPのソフトをダウンロードする(t3〜t4)。次に、CPUは、DSPのリセットを解除する(t4〜t5)。次に、DSPは、DSPの起動処理を実行する(t5〜t6)。
【0005】
一方、ハードウェアの消費電力を削減する技術として、クロックゲーティングと呼ばれる技術が存在する。クロックゲーティングとは、ハードウェアが動作していない場合に、ハードウェアに対してクロックの供給を停止する技術である(特許文献1参照)。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平5−235710
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般に、ハードウェアをリセットしているときは、そのハードウェアに対してクロックを供給し続ける必要がある。
【0008】
そのため、上述した構成の情報処理装置において、CPUが起動処理等を実行している間、DSPは、何の処理も実行していないにも関わらず、クロックゲーティングを適用して消費電力を削減させることができなかった。
【0009】
本発明は、情報処理装置において、第1の演算手段の起動中で第2の演算手段の起動処理が完了している間に、第2の演算手段に対してクロックの供給を停止することを目的とする。
【課題を解決するための手段】
【0010】
本発明に係る情報処理装置は、第1の演算手段と、前記第1の演算手段とは異なる第2の演算手段と、前記第1の演算手段及び前記第2の演算手段に対してクロックを供給する供給手段と、前記第2の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を停止させ、前記第1の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を再開させるよう前記供給手段を制御する制御手段とを有することを特徴とする。
【発明の効果】
【0011】
本発明により、情報処理装置において、第1の演算手段の起動中で第2の演算手段の起動処理が完了している間に、第2の演算手段に対してクロックの供給を停止することが可能となる。
【図面の簡単な説明】
【0012】
【図1】システムの構成を示すブロック図
【図2】DSP203の構成を示すブロック図
【図3】MFP001が起動する際にCPU201及びDSP203が実行する処理のシーケンスを示すフローチャート
【図4】MFP001が起動する際にCPU201及びDSP203が実行する処理のシーケンスを示すタイムチャート
【図5】従来技術を説明するためのタイムチャート
【発明を実施するための形態】
【0013】
〔第1の実施形態〕
図1は、本実施形態に係るシステムの構成を示すブロック図である。
【0014】
001は、MFP(マルチファンクションプリンタ)である。002は、PCである。003は、ネットワークである。MFP001は、ネットワーク003を介して、PC002と通信可能である。
【0015】
MFP001は、101〜106の構成を有する。101は、システムLSIである。102は、RAM(揮発性の記憶媒体)である。103は、ROM(不揮発性の記憶媒体)であり、CPU201のブートプログラム、CPU201の制御プログラム及びDSP203のデータ処理プログラム等が記憶される。104は、操作部である。105は、プリンタである。106は、スキャナである。MFP001は、PC002から印刷命令を受信した場合、システムLSI101により画像データに対して画像処理を実行して、プリンタ105により用紙に画像を印刷する。また、MFP001は、操作部104によりユーザからコピー命令を受け付けた場合、スキャナ106で原稿を読み取り、システムLSI101画像データに対して画像処理を実行して、プリンタ105により用紙に画像を印刷する。
【0016】
システムLSI101は、201〜216の構成を有する。201は、CPUであり、MFP001を制御する。CPU201は、ROM103に記憶されたプログラムをRAM102に展開して実行する。202は、割込コントローラであり、ネットワーク003等からの割り込みをCPU201に伝える。203は、DSPであり、CPU201の処理を補助するために、レンダリング処理やスキャナ画像処理などを実行する。CPU201とDSP203は、CPU201がマスターでDSP203がスレーブという関係になっている。204は、ROM(不揮発性の記憶媒体)であり、DSP203のブートプログラム等を記憶が記憶される。ROM204には、DSP203のデータ処理プログラムが記憶されるRAM102上のアドレスも記憶される。205は、割込コントローラであり、ネットワーク003等からの割り込みをDSP203に伝える。206は、RAMコントローラであり、CPU201等からのメモリアクセス要求により、RAM102に対してデータの読み出しや書き込みを実行する。207は、ROMコントローラであり、CPU201等からのROMアクセス要求により、ROM103に対してデータの読み出しを実行する。208は、ネットワークインターフェースであり、CPU201等からのネットワークアクセス要求により、ネットワーク003に対してデータの送信や受信を実行する。209は、UIコントローラであり、操作部104にて表示を行うためのデータをCPU201から操作部104へ転送し、操作部104にてユーザから入力されたデータを操作部104からCPU201へ転送する。210は、プリンタインターフェースであり、RAM102に記憶された画像データをプリンタ105へ転送する。211は、スキャナインターフェースであり、スキャナ106で読み取られた画像データをRAM102へ転送する。212は、画像処理プロセッサであり、RAM102に記憶された画像を印刷するための画像処理を実行する。213は、JBIG圧縮器であり、RAM102に記憶されたJBIG圧縮前の画像データに対してJBIG圧縮を実行する。214は、JBIG伸張器であり、RAM102に記憶されたJBIG圧縮後の画像データに対してJBIG伸張を実行する。215は、バスであり、システムLSI101の各構成の間でデータの通信を媒介する。216は、バスであり、DSP203とROM204やバス215の間でデータの通信を媒介する。217は、クロックジェネレータであり、CPU201やDSP203が動作するために必要なクロックを発生し、発生したクロックをCPU201やDSP203に供給する。なお、クロックジェネレータ217は、CPU201やDSP203以外の構成に対しても、必要に応じて、発生したクロックを供給することが可能である。
【0017】
図2は、本実施形態に係るDSP203の構成を示すブロック図である。
【0018】
DSP203は、主ドメイン301と、副ドメイン302に分けられる。主ドメイン301には、パイプライン303、命令キャッシュ304、汎用レジスタ305、データキャッシュ306、バスインターフェースユニット307が含まれる。副ドメインには、オンチップデバック部308、割り込み処理部309、クロック制御部310、クロックゲート回路311が含まれる。
【0019】
DSP203の状態としては、動作状態とリセット状態と割り込み待ち状態が存在する。DSP203が動作状態であるとき、主ドメイン301と副ドメイン302にクロックが供給され、電力が消費される。DSP203がリセット状態であるとき、主ドメイン301と副ドメイン302にクロックが供給され、動作状態より低い電力が消費される。DSP203が割り込み待ち状態であるとき、主ドメイン301にはクロックが供給されず、副ドメイン302のみにクロックが供給され、リセット状態より低い電力が消費される。
【0020】
図3は、MFP001が起動する際に実行されるCPU201及びDSP203の処理のシーケンスを示すフローチャートである。
【0021】
このフローチャートに示すシーケンスは、MFP001が電源オンになったとき又は省電力モードから通常モードに復帰した際に実行される。
【0022】
まず、クロックジェネレータ217は、CPU201に対してクロックの供給を開始する(S101)。これとともに、クロックジェネレータ217は、DSP203に対してクロックの供給を開始する(S201)。
【0023】
次に、CPU201は、CPU201をリセットする(S102)。これとともに、DSP203は、DSP203をリセットする(S202)。
【0024】
次に、CPU201は、ROM103に記憶されたCPU201のブートプログラムを用いて、CPU201の起動処理を実行する(S103)。これとともに、DSP203は、ROM204に記憶されたDSP203のブートプログラムを用いて、DSP203の起動処理を実行する(S203)。
【0025】
CPU201は、CPU201の起動処理が完了したら、CPU201の制御プログラム及びDSP203のデータ処理プログラムを、ROM103からRAM102にダウンロードする(S104)。
【0026】
DSP203は、DSP203の起動処理が完了したら、DSP203を割り込み待ち状態へ移行させる(S204)。そして、DSP203は、DSP203が割り込み待ち状態へ移行したら、クロック制御部310を用いて、DSP203に対するクロックの供給を停止させる(S205)。
【0027】
次に、CPU201は、DSPのプログラムのダウンロードが完了したら、DSP203に割り込み信号を送信する(S105)。そして、DSP203は、割り込み処理部309を用いて、CPU201から割り込み信号を受信する(S206)。
【0028】
CPU201は、DSP203に割り込み信号を送信したら、DSP203がデータ処理を完了するまで待機する(S106)。
【0029】
DSP203は、CPU201から割り込み信号を受信したら、クロック制御部310を用いて、DSP203に対するクロックの供給を再開させる(S207)。
【0030】
次に、DSP203は、CPU201から送信された割り込み信号を受信したら、以下に説明する例外処理(DSP203を割り込み状態から復帰させるために必要な各種処理)を実行する(S208)。まず、割り込み要因の解析を行う。次に、割り込み要因が主ドメイン301を用いたデータ処理であった場合、割り込み要因をクリアし、割り込み状態から復帰するための割り込み復帰命令を実行する。割り込み復帰命令では、ROM204においてDSP203のデータ処理プログラムが記憶された記憶領域を示すアドレスに基づいて、RAM102に記憶されたDSP203のデータ処理プログラムにアクセスする。
【0031】
次に、DSP203は、DSP203を割り込み待ち状態から復帰させる(S209)。
【0032】
次に、DSP203は、RAM102に記憶されたDSP203のデータ処理プログラムを用いて、データの処理を実行する(S210)。
【0033】
図4は、図3のシーケンスを実行したときのCPU201及びDSP203の動作状況を示すタイムチャートである。
【0034】
t2〜t5において、DSPに対してクロックゲーティングを適用することにより、DSPで消費される電力を削減できることが分かる。
【0035】
本実施形態により、CPU201の起動中でDSP203の起動が完了している間に、DSP203にクロックゲーティングを適用することにより、DSP203の消費電力を削減することが可能となる。
【0036】
〔第2の実施形態〕
第1の実施形態では、ROM204に、DSP203のデータ処理プログラムが記憶されるRAM102上のアドレスを格納していた。そして、S206の例外処理における割り込み復帰命令を実行する際には、ROM204に格納されたアドレスに基づいて、RAM102に記憶されたDSP203のデータ処理プログラムにアクセスしていた。
【0037】
しかし、プログラムが記憶されるRAM102上のアドレスは、プログラムをコンパイルしたときに確定する。よって、DSP203のデータ処理プログラムは、システムLSI101を作成するときにコンパイルを済ませておかなければならない。すると、DSP203のデータ処理プログラムは、後から変更しようと思っても変更することができなくなってしまう。
【0038】
第2の実施形態では、上記の問題を解決するために、第1の実施形態の構成を以下のように変更する。
【0039】
まず、ROM204に、所定のレジスタ(図示しない)のアドレスを格納する。次に、S206の例外処理の割り込み復帰命令を実行する前に、DSP203のデータ処理プログラムが記憶されたRAM102上のアドレスを、前述の図示しない所定のレジスタに格納する。この処理は、CPUがDSP203のデータ処理プログラムをRAM102にダウンロードした際に実行してもよい。そして、S206の例外処理の割り込み復帰命令を実行する際には、ROM204に格納されたアドレスに基づいて、所定のレジスタにアクセスする。そして、所定のレジスタに格納されたアドレスに基づいて、RAM102に記憶されたDSP203のデータ処理プログラムにアクセスする。
【0040】
本実施形態により、DSP203のデータ処理プログラムのコンパイルを済ませない状態でシステムLSI101を作成することが可能となる。これにより、DSP203のデータ処理プログラムを後から変更することが可能となる。
【0041】
〔他の実施形態〕
本発明の目的は、前述したシステムまたは情報処理装置が記憶媒体から前述した実施の形態の機能を実現するソフトウェアのプログラムを読み出し実行することによっても達成される。プログラムを実行する演算手段としては、例えば、第1の演算手段、第2の演算手段が含まれる。
【0042】
この場合、記憶媒体から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラム及びプログラムを記憶した記憶媒体は本発明を構成することになる。プログラムとしては、例えば、第1のプログラム、第2のプログラム、第3のプログラムが含まれる。プログラムの起動としては、例えば、第1の起動、第2の起動が含まれる。プログラムを記憶する記憶媒体としては、例えば、第1の記憶媒体、第2の記憶媒体、第3の記憶媒体、第4の記憶媒体が含まれる。また、プログラム等により実行される制御としては、例えば、第1の制御、第2の制御が含まれる。また、プログラム等により使用される情報としては、例えば、第1の情報、第1のアドレス、第2のアドレスが含まれる。
【0043】
プログラムコードを供給するための記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、ROM、光ディスク、光磁気ディスク、CD−ROM、DVD−ROM、DVD−RAM、磁気テープ、メモリカード等を用いることができる。
【0044】
また、プログラムの指示に基づき、コンピュータ上で稼動しているOS等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【0045】
更に、プログラムがコンピュータに接続された機能拡張ユニット等に備わるメモリに書き込まれた後、その機能拡張ユニットに備わるCPU等が実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれる。
【符号の説明】
【0046】
001 MFP
002 PC
003 ネットワーク

【特許請求の範囲】
【請求項1】
第1の演算手段と、
前記第1の演算手段とは異なる第2の演算手段と、
前記第1の演算手段及び前記第2の演算手段に対してクロックを供給する供給手段と、
前記第2の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を停止させ、前記第1の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を再開させるよう前記供給手段を制御する制御手段とを有することを特徴とする情報処理装置。
【請求項2】
前記第1の演算手段は、前記情報処理装置を制御するCPUであり、
前記第2の演算手段は、前記第1の演算手段からの命令に従ってデータ処理を実行するDSPであることを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記第1の演算手段が起動する際に用いる第1のプログラムを記憶する第1の記憶手段と、
前記第2の演算手段が起動する際に用いる第2のプログラムを記憶する第2の記憶手段とを更に有することを特徴とする請求項1又は2に記載の情報処理装置。
【請求項4】
前記第1の記憶手段及び前記第2の記憶手段は、不揮発性の記憶手段であることを特徴とする請求項3に記載の情報処理装置。
【請求項5】
前記第2の演算手段がデータ処理を実行する際に用いる第3のプログラムを記憶する第3の記憶手段を更に有することを特徴とする請求項3又は4に記載の情報処理装置。
【請求項6】
前記第3の記憶手段は、揮発性の記憶手段であることを特徴とする請求項5に記載の情報処理装置。
【請求項7】
前記第1の演算手段は、前記第1の演算手段の起動が完了したことに応じて、前記第3のプログラムを前記第3の記憶手段に記憶させるよう前記第3の記憶手段を制御することを特徴とする請求項5又は6に記載の情報処理装置。
【請求項8】
前記第2の演算手段は、前記第2の演算手段に対してクロックの供給が再開されたことに応じて、前記第3の記憶手段に記憶された前記第3のプログラムを用いてデータ処理を実行することを特徴とする請求項5乃至7のいずれか1項に記載の情報処理装置。
【請求項9】
前記第2の記憶手段は、前記第3の記憶手段に記憶された前記第3のプログラムにアクセスする際に用いる第1の情報を記憶し、
前記第2の演算手段は、前記第2の記憶手段に記憶された前記第1の情報に基づいて前記第3の記憶手段に記憶された前記第3のプログラムにアクセスすることを特徴とする請求項5乃至8のいずれか1項に記載の情報処理装置。
【請求項10】
前記第1の情報は、前記第3の記憶手段において前記第3のプログラムが記憶された記憶領域を示す第1のアドレスであることを特徴とする請求項9に記載の情報処理装置。
【請求項11】
前記第3の記憶手段において前記第3のプログラムが記憶された記憶領域を示す第1のアドレスを記憶する第4の記憶手段を更に有し、
前記第1の情報は、前記第4の記憶手段において前記第1のアドレスが記憶された記憶領域を示す第2のアドレスであることを特徴とする請求項9に記載の情報処理装置。
【請求項12】
第1の演算手段と、
前記第1の演算手段とは異なる第2の演算手段と、
前記第1の演算手段及び前記第2の演算手段に対してクロックを供給する供給手段とを有する情報処理装置の制御方法であって、
前記第2の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を停止させるよう前記供給手段を制御する第1の制御工程と、
前記第1の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を再開させるよう前記供給手段を制御する第2の制御工程とを有することを特徴とする制御方法。
【請求項13】
第1の演算手段と、
前記第1の演算手段とは異なる第2の演算手段と、
前記第1の演算手段及び前記第2の演算手段に対してクロックを供給する供給手段とを有する情報処理装置に、
前記第2の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を停止させるよう前記供給手段を制御する第1の制御工程と、
前記第1の演算手段の起動が完了したことに応じて、前記第2の演算手段に対するクロックの供給を再開させるよう前記供給手段を制御する第2の制御工程とを実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−13775(P2011−13775A)
【公開日】平成23年1月20日(2011.1.20)
【国際特許分類】
【出願番号】特願2009−155315(P2009−155315)
【出願日】平成21年6月30日(2009.6.30)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】