(57)【要約】【課題】必要最低限のクロックの供給にて省電力モードを行なう複数ＣＰＵクロック制御システム、その制御方法及びそのプログラムを提供する。【解決手段】メインＣＰＵ１は、メインクロック発振器２の起動及び停止を制御し、複数のサブＣＰＵ５ａ、５ｂを制御する。複数のサブＣＰＵは、それぞれのクロック制御スイッチ６ａ、６ｂを制御する。メインクロック発振器は、メインＣＰＵと複数のサブＣＰＵに共通の高速クロックを供給する。サブクロック発振器１０は、メインＣＰＵと複数のサブＣＰＵに共通の低速クロックを常時供給する。それぞれの複数のクロック制御スイッチは、メインクロック発振器から供給される高速クロックのそれぞれの複数のサブＣＰＵへの供給のオン、オフを制御する。【選択図】図１
2006164036.tif 000002
【特許請求の範囲】
【請求項１】
第１のクロックと、
前記第１のクロックよりも低速の第２のクロックと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受けるメインＣＰＵと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、
前記第１のクロックと前記複数のサブＣＰＵとの間にそれぞれ設けられて、前記第１のクロックから各前記サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備え、
前記メインＣＰＵにスリープイベントが発生した時は、
前記メインＣＰＵは、前記複数のサブＣＰＵそれぞれへスリープ要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記スリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号を前記メインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号を前記メインＣＰＵへ出力して前記スイッチをオフにし前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵは、前記複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、前記複数のサブＣＰＵ全てから前記スリープ受付通知信号が入力された後に、前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵに復帰要因が発生した時は、
前記メインＣＰＵは、前記第１のクロックからのクロック信号を供給し、前記複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記復帰要求信号を入力すると、前記スイッチをオンにし前記第１のクロックからのクロック信号の供給をし、復帰完了通知信号を前記メインＣＰＵへ出力する、複数ＣＰＵクロック制御システム。
【請求項２】
第１のクロックと、
前記第１のクロックよりも低速の第２のクロックと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受けるメインＣＰＵと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、
前記第１のクロックと前記複数のサブＣＰＵとの間にそれぞれ設けられて、前記第１のクロックから各前記サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備え、
前記サブＣＰＵにスリープイベントが発生した時は、
前記サブＣＰＵは、前記メインＣＰＵへスリープ要求信号を出力し、
前記メインＣＰＵは、前記サブＣＰＵから出力される前記スリープ要求信号を入力し、スリープ状態に移行できる条件になければ拒否通知信号を前記サブＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号を前記サブＣＰＵへ出力し、
前記サブＣＰＵは、前記メインＣＰＵから出力される前記スリープ受付通知信号を入力すると、前記スイッチをオフにし前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵにスリープイベントが発生した時は、
前記メインＣＰＵは、前記複数のサブＣＰＵのうち、前記第１のクロックからのクロック信号の供給を停止している前記サブＣＰＵを除き、それぞれへスリープ要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記スリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号を前記メインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号を前記メインＣＰＵへ出力して前記スイッチをオフにし前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵは、前記複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、前記複数のサブＣＰＵ全てから前記スリープ受付通知信号が入力された後に、前記第１のクロックからのクロック信号の供給を停止し、
前記サブＣＰＵに復帰要因が発生した時は、
前記サブＣＰＵは、前記メインＣＰＵへ復帰要求信号を出力し、
前記メインＣＰＵは、前記サブＣＰＵから出力される前記復帰要求信号を入力すると、前記第１のクロックからのクロック信号を供給し、前記複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記復帰要求信号を入力すると、前記スイッチをオンにし前記第１のクロックからのクロック信号の供給をし、復帰完了通知信号を前記メインＣＰＵへ出力する、複数ＣＰＵクロック制御システム。
【請求項３】
前記メインＣＰＵおよび前記複数のサブＣＰＵが前記第１のクロックからのクロック信号の供給を受けている時は、前記メインＣＰＵは、前記第２のクロックからのクロック信号の供給を停止する、請求項１または請求項２に記載の複数ＣＰＵクロック制御システム。
【請求項４】
前記第１のクロックは、メインクロック発振器が発生し、前記第２のクロックはサブクロック発振器が発生する、請求項１から請求項３のいずれか１項に記載の複数ＣＰＵクロック制御システム。
【請求項５】
第１のクロックと、
前記第１のクロックよりも低速の第２のクロックと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受けるメインＣＰＵと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、
前記第１のクロックと前記複数のサブＣＰＵとの間にそれぞれ設けられて、前記第１のクロックから各前記サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備える複数ＣＰＵクロック制御システムの制御方法であって、
前記メインＣＰＵにスリープイベントが発生した時は、
前記メインＣＰＵは、前記複数のサブＣＰＵそれぞれへスリープ要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記スリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号を前記メインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号を前記メインＣＰＵへ出力して前記スイッチをオフにし前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵは、前記複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、前記複数のサブＣＰＵ全てから前記スリープ受付通知信号が入力された後に、前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵに復帰要因が発生した時は、
前記メインＣＰＵは、前記第１のクロックからのクロック信号を供給し、前記複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記復帰要求信号を入力すると、前記スイッチをオンにし前記第１のクロックからのクロック信号の供給をし、復帰完了通知信号を前記メインＣＰＵへ出力する、複数ＣＰＵクロック制御システムの制御方法。
【請求項６】
第１のクロックと、
前記第１のクロックよりも低速の第２のクロックと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受けるメインＣＰＵと、
前記第１のクロックおよび前記第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、
前記第１のクロックと前記複数のサブＣＰＵとの間にそれぞれ設けられて、前記第１のクロックから各前記サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備える複数ＣＰＵクロック制御システムの制御方法であって、
前記サブＣＰＵにスリープイベントが発生した時は、
前記サブＣＰＵは、前記メインＣＰＵへスリープ要求信号を出力し、
前記メインＣＰＵは、前記サブＣＰＵから出力される前記スリープ要求信号を入力し、スリープ状態に移行できる条件になければ拒否通知信号を前記サブＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号を前記サブＣＰＵへ出力し、
前記サブＣＰＵは、前記メインＣＰＵから出力される前記スリープ受付通知信号を入力すると、前記スイッチをオフにし前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵにスリープイベントが発生した時は、
前記メインＣＰＵは、前記複数のサブＣＰＵのうち、前記第１のクロックからのクロック信号の供給を停止している前記サブＣＰＵを除き、それぞれへスリープ要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記スリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号を前記メインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号を前記メインＣＰＵへ出力して前記スイッチをオフにし前記第１のクロックからのクロック信号の供給を停止し、
前記メインＣＰＵは、前記複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、前記複数のサブＣＰＵ全てから前記スリープ受付通知信号が入力された後に、前記第１のクロックからのクロック信号の供給を停止し、
前記サブＣＰＵに復帰要因が発生した時は、
前記サブＣＰＵは、前記メインＣＰＵへ復帰要求信号を出力する手段を有し、
前記メインＣＰＵは、前記サブＣＰＵから出力される前記復帰要求信号を入力すると、前記第１のクロックからのクロック信号を供給し、前記複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、
前記複数のサブＣＰＵは、それぞれ前記メインＣＰＵから出力される前記復帰要求信号を入力すると、前記スイッチをオンにし前記第１のクロックからのクロック信号の供給をし、復帰完了通知信号を前記メインＣＰＵへ出力する、複数ＣＰＵクロック制御システムの制御方法。
【請求項７】
前記メインＣＰＵおよび前記複数のサブＣＰＵが前記第１のクロックからのクロック信号の供給を受けている時は、前記メインＣＰＵは、前記第２のクロックからのクロック信号の供給を停止する、請求項５または請求項６に記載の複数ＣＰＵクロック制御システムの制御方法。
【請求項８】
前記第１のクロックは、メインクロック発振器が発生し、前記第２のクロックはサブクロック発振器が発生する、請求項５から請求項７のいずれか１項に記載の複数ＣＰＵクロック制御システムの制御方法。
【請求項９】
前記メインＣＰＵ又は前記複数のサブＣＰＵに請求項５から請求項８のいずれか１項に記載の複数ＣＰＵクロック制御システムの制御方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数ＣＰＵクロック制御システム、その制御方法及びそのプログラムに関する。
【背景技術】
【０００２】
従来の技術としては、消費電力を低減することが可能なマルチプロセッサシステムがある（特許文献１参照。）。
【０００３】
図５は、その従来の技術のマルチプロセッサシステムの全体構成を示すものであり、プロセッサ数が４の場合である。それぞれ独立したプロセッサエレメント（ＰＥ）１３〜１６と、プロセッサエレメント１３〜１６が演算終了後に出力する演算終了信号を伝送する演算終了信号線２１〜２４と、各プロセッサエレメント１３〜１６からの演算終了信号を入力した後に、各プロセッサエレメント１３〜１６に演算開始信号線３０を介して演算開始信号を出力する同期制御手段（ＳＹＮＣｃｔｌ）４０と、演算開始信号線３０とから構成される。
【０００４】
図６は、その各プロセッサエレメント１３〜１６の構成を示すものである。演算を行なうプロセッサ（ＣＰＵ）４１と、周波数Ｆのクロック信号を生成し出力するクロック生成手段（ＣＬＫ）４２と、クロック信号の出力または停止をプロセッサへ行なうクロック制御手段（ＣＬＫｃｔｌ）４３とから構成される。
【０００５】
この従来の技術のマルチプロセッサシステムは、複数のプロセッサエレメント１３〜１６が、同期制御手段４０によって演算終了の同期と演算開始を制御されている。各プロセッサエレメント１３〜１６において、同期制御手段４０からの演算開始信号３０によってクロック供給を開始し、プロセッサ４１での演算が行われ、プロセッサ４１の演算終了後に同期制御手段４０へ出力する演算終了信号によってクロック供給を停止するクロック制御手段４３をもつ。
【０００６】
また、従来の技術としては、消費電力のセーブ効率を良くした消費電力セービング回路及びその制御方法がある（特許文献２参照。）。
【０００７】
図７は、その従来の技術の無線装置に用いられる消費電力セービング回路の構成ブロック図である。パワーセーブモードを有するＣＰＵ３１と、パワーセーブモード時間のカウントを行なうタイマカウンタ３２と、ＣＰＵ３１に供給する高周波のクロックを発生する高周波水晶発振回路３３と、高周波水晶発振回路３３から発生する高周波クロックを順次分周して低周波クロックに落とす多段分周回路３４と、パワーセービング回路全体をコントロールするイベント制御回路３５と、パワーセーブモード中のタイマカウンタ３２専用の低周波クロックを発生する低周波水晶発振回路３６と、タイマカウンタ３２へのクロックを選択するクロック選択スイッチ（ＳＥＬ）３７と、高周波水晶発振回路３３の出力を制御する出力制御回路３８と、高周波水晶発振回路３３の電源スイッチ３９と、低周波水晶発振回路３６の電源スイッチ５０とから構成される。
【０００８】
上述の従来の技術の消費電力セービング回路の制御方法は、ＣＰＵ３１からパワーセーブモード開始命令を受け取ったイベント制御回路３５が全体を制御して、パワーセーブモードへ移行した時は、タイマカウンタ３２とクロックを供給する低周波水晶発振回路３６だけを動作させ、通常モード時にＣＰＵ３１に高周波クロックを供給していた高周波水晶発振回路３３と、順次分周して低周波クロックをタイマカウンタ３２に供給していた多段分周回路３４とを停止する。
【特許文献１】特開平７−１４６８４６号公報
【特許文献２】特開平７−２０９６４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述の特許文献１に記載のマルチプロセッサシステムは、プロセッサエレメント１３〜１６が同期待ち状態で演算実効していない時にはクロック供給を停止するので、電力消費を抑えることができるが、各プロセッサエレメント１３〜１６毎にクロック生成手段４２が必要であり、部品点数は多くそれぞれのクロック生成手段４２で消費する電力は多くなってしまう。
【００１０】
上述の特許文献２に記載の消費電力セービング回路の制御方法は、パワーセーブモードへ移行した時は、高周波水晶発振回路３３と多段分周回路３４とを停止することができ、パワーセーブモード中の消費電力を大幅に低減できるが、無線装置に用いられる消費電力セービング回路であり、そのまま複数のＣＰＵを使用するシステムに用いても、高周波水晶発振回路３３や低周波水晶発振回路３６はそれぞれのＣＰＵ毎に必要となり、部品点数は多くそれぞれの高周波水晶発振回路３３や低周波水晶発振回路３６で消費する電力は多くなってしまう。
【００１１】
上述の従来の技術の問題点に鑑み、本発明の目的は、必要最低限のクロックの供給にて省電力モードを行なう複数ＣＰＵクロック制御システム、その制御方法及びそのプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明は複数のＣＰＵを使用するシステムにおいて、各ＣＰＵの源クロックとなる高速クロックを共通化すると共に、それぞれの源クロックを制御し、必要最低限のクロックの供給にて省電力モードを行なうことを特徴とする複数ＣＰＵクロック制御システムである。
【００１３】
本発明の複数ＣＰＵクロック制御システムは、
第１のクロックと、第１のクロックよりも低速の第２のクロックと、第１のクロックおよび第２のクロックからクロック信号の供給を受けるメインＣＰＵと、第１のクロックおよび第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、第１のクロックと複数のサブＣＰＵとの間にそれぞれ設けられて、第１のクロックから各サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備え、メインＣＰＵにスリープイベントが発生した時は、メインＣＰＵは、複数のサブＣＰＵそれぞれへスリープ要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力されるスリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号をメインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号をメインＣＰＵへ出力してスイッチをオフにし第１のクロックからのクロック信号の供給を停止し、メインＣＰＵは、複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、複数のサブＣＰＵ全てからスリープ受付通知信号が入力された後に、第１のクロックからのクロック信号の供給を停止し、メインＣＰＵに復帰要因が発生した時は、メインＣＰＵは、第１のクロックからのクロック信号を供給し、複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力される復帰要求信号を入力すると、スイッチをオンにし第１のクロックからのクロック信号の供給をし、復帰完了通知信号をメインＣＰＵへ出力する。
【００１４】
本発明の複数ＣＰＵクロック制御システムは、
第１のクロックと、第１のクロックよりも低速の第２のクロックと、第１のクロックおよび第２のクロックからクロック信号の供給を受けるメインＣＰＵと、第１のクロックおよび第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、第１のクロックと複数のサブＣＰＵとの間にそれぞれ設けられて、第１のクロックから各サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備え、サブＣＰＵにスリープイベントが発生した時は、サブＣＰＵは、メインＣＰＵへスリープ要求信号を出力し、メインＣＰＵは、サブＣＰＵから出力されるスリープ要求信号を入力し、スリープ状態に移行できる条件になければ拒否通知信号をサブＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号をサブＣＰＵへ出力し、サブＣＰＵは、メインＣＰＵから出力されるスリープ受付通知信号を入力すると、スイッチをオフにし第１のクロックからのクロック信号の供給を停止し、メインＣＰＵにスリープイベントが発生した時は、メインＣＰＵは、複数のサブＣＰＵのうち、第１のクロックからのクロック信号の供給を停止しているサブＣＰＵを除き、それぞれへスリープ要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力されるスリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号をメインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号をメインＣＰＵへ出力してスイッチをオフにし第１のクロックからのクロック信号の供給を停止し、メインＣＰＵは、複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、複数のサブＣＰＵ全てからスリープ受付通知信号が入力された後に、第１のクロックからのクロック信号の供給を停止し、サブＣＰＵに復帰要因が発生した時は、サブＣＰＵは、メインＣＰＵへ復帰要求信号を出力し、メインＣＰＵは、サブＣＰＵから出力される復帰要求信号を入力すると、第１のクロックからのクロック信号を供給し、複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力される復帰要求信号を入力すると、スイッチをオンにし第１のクロックからのクロック信号の供給をし、復帰完了通知信号をメインＣＰＵへ出力する。
【００１５】
また、メインＣＰＵおよび複数のサブＣＰＵが第１のクロックからのクロック信号の供給を受けている時は、メインＣＰＵは、第２のクロックからのクロック信号の供給を停止してもよい。
【００１６】
また、第１のクロックは、メインクロック発振器が発生し、第２のクロックはサブクロック発振器が発生してもよい。
【００１７】
本発明の複数ＣＰＵクロック制御システムの制御方法は、
第１のクロックと、第１のクロックよりも低速の第２のクロックと、第１のクロックおよび第２のクロックからクロック信号の供給を受けるメインＣＰＵと、第１のクロックおよび第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、第１のクロックと複数のサブＣＰＵとの間にそれぞれ設けられて、第１のクロックから各サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備える複数ＣＰＵクロック制御システムの制御方法であって、メインＣＰＵにスリープイベントが発生した時は、メインＣＰＵは、複数のサブＣＰＵそれぞれへスリープ要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力されるスリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号をメインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号をメインＣＰＵへ出力してスイッチをオフにし第１のクロックからのクロック信号の供給を停止し、メインＣＰＵは、複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、複数のサブＣＰＵ全てからスリープ受付通知信号が入力された後に、第１のクロックからのクロック信号の供給を停止し、メインＣＰＵに復帰要因が発生した時は、メインＣＰＵは、第１のクロックからのクロック信号を供給し、複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力される復帰要求信号を入力すると、スイッチをオンにし第１のクロックからのクロック信号の供給をし、復帰完了通知信号をメインＣＰＵへ出力する。
【００１８】
本発明の複数ＣＰＵクロック制御システムの制御方法は、
第１のクロックと、第１のクロックよりも低速の第２のクロックと、第１のクロックおよび第２のクロックからクロック信号の供給を受けるメインＣＰＵと、第１のクロックおよび第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵと、第１のクロックと複数のサブＣＰＵとの間にそれぞれ設けられて、第１のクロックから各サブＣＰＵへのクロック信号の供給をオン、オフする複数のスイッチとを備える複数ＣＰＵクロック制御システムの制御方法であって、サブＣＰＵにスリープイベントが発生した時は、サブＣＰＵは、メインＣＰＵへスリープ要求信号を出力し、メインＣＰＵは、サブＣＰＵから出力されるスリープ要求信号を入力し、スリープ状態に移行できる条件になければ拒否通知信号をサブＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号をサブＣＰＵへ出力し、サブＣＰＵは、メインＣＰＵから出力されるスリープ受付通知信号を入力すると、スイッチをオフにし第１のクロックからのクロック信号の供給を停止し、メインＣＰＵにスリープイベントが発生した時は、メインＣＰＵは、複数のサブＣＰＵのうち、第１のクロックからのクロック信号の供給を停止しているサブＣＰＵを除き、それぞれへスリープ要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力されるスリープ要求信号を入力すると、スリープ状態に移行できる条件になければ拒否通知信号をメインＣＰＵへ出力し、スリープ状態に移行できる条件にあればスリープ受付通知信号をメインＣＰＵへ出力してスイッチをオフにし第１のクロックからのクロック信号の供給を停止し、メインＣＰＵは、複数のサブＣＰＵそれぞれから出力されるスリープ受付通知信号を入力し、複数のサブＣＰＵ全てからスリープ受付通知信号が入力された後に、第１のクロックからのクロック信号の供給を停止し、サブＣＰＵに復帰要因が発生した時は、サブＣＰＵは、メインＣＰＵへ復帰要求信号を出力する手段を有し、メインＣＰＵは、サブＣＰＵから出力される復帰要求信号を入力すると、第１のクロックからのクロック信号を供給し、複数のサブＣＰＵそれぞれへ復帰要求信号を出力し、複数のサブＣＰＵは、それぞれメインＣＰＵから出力される復帰要求信号を入力すると、スイッチをオンにし第１のクロックからのクロック信号の供給をし、復帰完了通知信号をメインＣＰＵへ出力する。
【００１９】
また、メインＣＰＵおよび複数のサブＣＰＵが第１のクロックからのクロック信号の供給を受けている時は、メインＣＰＵは、第２のクロックからのクロック信号の供給を停止してもよい。
【００２０】
また、第１のクロックは、メインクロック発振器が発生し、第２のクロックはサブクロック発振器が発生してもよい。
【００２１】
本発明のプログラムは、
メインＣＰＵ又は複数のサブＣＰＵに上述の複数ＣＰＵクロック制御システムの制御方法を実行させる。
【発明の効果】
【００２２】
本発明は以下の効果を有する。
【００２３】
第１に、第１のクロックをメインＣＰＵ及び複数のサブＣＰＵで共通化することにより、部品点数を低減し、第１のクロックで消費する電力を低減するという効果を有する。
【００２４】
第２に、それぞれのサブＣＰＵへの第１のクロックの動作、停止を制御することにより、必要の無いサブＣＰＵで消費する電力を軽減するという効果を有する。
【００２５】
上記第１と第２の効果を併せることにより、複数ＣＰＵを併せ持つシステムに対し、低消費電力のシステムとすることを可能とするという効果を有する。
【発明を実施するための最良の形態】
【００２６】
（発明の第１の実施の形態）
図１を参照すると本発明の第１の実施の形態として複数ＣＰＵクロック制御システムが示されている。本発明の第１の実施の形態の複数ＣＰＵクロック制御システムは、メインクロック発振器（高速クロック）２で発生する第１のクロック（高速クロック）と、第１のクロックよりも低速のサブクロック発振器（低速クロック）１０で発生する第２のクロック（低速クロック）と、第１のクロックおよび第２のクロックからクロック信号の供給を受けるメインＣＰＵ１と、第１のクロックおよび第２のクロックからクロック信号の供給を受ける複数設けられたサブＣＰＵ（１）５ａおよびサブＣＰＵ（２）５ｂと、第１のクロックと複数のサブＣＰＵ（１）５ａおよびサブＣＰＵ（２）５ｂとの間にそれぞれ設けられて、第１のクロックから各サブＣＰＵ（１）５ａおよびサブＣＰＵ（２）５ｂへのクロック信号の供給をオン、オフする複数のクロック制御スイッチ６ａ、６ｂとを備えている。
【００２７】
図１では、主にＣＰＵの源クロックとなる高速クロックに関連する制御回路を示しており、以下に示されるブロックにおいて構成される。
（１）メインＣＰＵ１：
複数のＣＰＵの中で唯一のメインＣＰＵ１である。唯一の源クロックである高速クロックの動作、停止の制御が可能であり、サブＣＰＵ（１）５ａのコントロールをする。
（２）メインクロック発振器（高速クロック）２：
メインＣＰＵ１、サブＣＰＵ（１）５ａの共通の源クロックとなる高速クロックを発生する発振器である。
【００２８】
メインクロック発振器（高速クロック）２はメインＣＰＵ１によりコントロールされ、発振のオン（ＯＮ），オフ（ＯＦＦ）が制御される。
（３）クロックスイッチ信号３：
メインＣＰＵ１の出力信号である。メインクロック発振器（高速クロック）２へ接続され、発振のオン（ＯＮ），オフ（ＯＦＦ）を制御可能とするスイッチ信号である。
（４）メインＣＰＵ用クロック４：
メインクロック発振器（高速クロック）２の出力であり、メインＣＰＵ１の源クロックとなる高速クロックである。
（５）サブＣＰＵ（１）５ａ：
複数あるサブＣＰＵの一つであり、メインＣＰＵ１との連携動作を行ない、クロック制御スイッチ６ａの制御を行なう。
（６）クロック制御スイッチ６ａ：
メインクロック発振器（高速クロック）２から供給されるメインＣＰＵ用クロック４のサブＣＰＵ（１）５ａへの供給ＯＮ，ＯＦＦを制御可能とするスイッチである。例えばアナログスイッチであり、またはデジタルによるゲート回路で構成される。
（７）サブＣＰＵ用クロック７ａ：
サブＣＰＵ（１）５ａの源クロックとなる。クロック制御スイッチ６ａがＯＮとなっている場合はメインＣＰＵ用クロック４とサブＣＰＵ用クロック７ａは同等の高速クロックとなる。
（８）クロックスイッチ信号８ａ：
サブＣＰＵ（１）５ａが自身のサブＣＰＵ用クロック７ａのＯＮ、ＯＦＦを制御するスイッチ信号である。
（９）ＣＰＵ間制御信号９ａ：
メインＣＰＵ１とサブＣＰＵ（１）５ａの間の制御信号である。お互いのステータス情報などのメッセージの送受信に使用される。
（１０）サブクロック発振器（低速クロック）１０：
消費電力に影響を与えない低速クロックの発振器であり常時発振している。
（１１）全ＣＰＵ用サブクロック１１：
スリープ動作時に使用する低速クロックであり、各ＣＰＵのスリープ動作時に使用される。
【００２９】
図１ではサブＣＰＵ（２）５ｂ、クロック制御スイッチ６ｂ、サブＣＰＵ用クロック７ｂ、クロックスイッチ信号８ｂ、ＣＰＵ間制御信号９ｂが記されている。
【００３０】
サブＣＰＵ（２）５ｂはサブＣＰＵ（１）５ａと並列に接続され、機能、及び接続方法はサブＣＰＵ（１）５ａと同等である。クロック制御スイッチ６ｂ、サブＣＰＵ用クロック７ｂ、クロックスイッチ信号８ｂ、ＣＰＵ間制御信号９ｂの機能、及び接続方法はクロック制御スイッチ６ａ、サブＣＰＵ用クロック７ａ、クロックスイッチ信号８ａ、ＣＰＵ間制御信号９ａと同等である。複数のサブＣＰＵを接続可能とするが、接続されるサブＣＰＵの数量に関しては、ここでは規定しない。
【００３１】
次に、本発明の第１の実施の形態の動作の説明をする。
【００３２】
図２、図３では本発明の実施の形態の低消費電力モードへの移行シーケンス、及び通常動作モード（高消費電力モード）への復帰に関するシーケンスが示されている。
【００３３】
メインＣＰＵ１はメインクロック発振器（高速クロック）２の制御を行なうため、全てのサブＣＰＵ５ａ、５ｂがスリープした状態にある時のみスリープすることが可能となる。
【００３４】
図２は、メインＣＰＵ１側からのイベント発生による「スリープ動作」、「ｗａｋｅ−ｕｐ（復帰）動作」のシーケンスが示されている。
【００３５】
全てのＣＰＵが通常状態（高消費電力モード）にある場合に、メインＣＰＵ１側にスリープイベントが発生したとする。メインＣＰＵ１は、サブＣＰＵ５ａ、５ｂへ「スリープ要求」信号を出力する。サブＣＰＵ５ａ、５ｂはメインＣＰＵ１からの「スリープ要求」に対し、移行できる条件になければ「拒否通知」を返すことが可能であり、メインＣＰＵ１はこれに従わなければならない。また、全てのサブＣＰＵ５ａ、５ｂが「スリープ要求」に対し、「スリープ受付通知」を返した時点で、メインＣＰＵ１はスリープ動作に移行することが可能となり、この時全てのサブＣＰＵ５ａ、５ｂとメインＣＰＵ１がスリープ状態となり、全ＣＰＵ用サブクロック（低速クロック）１１による低速動作を行なっている。即ち、全てのＣＰＵがスリープ状態（全低消費電力モード）となる。
【００３６】
メインＣＰＵ１に「ｗａｋｅ−ｕｐ（復帰）要因」が発生した時は、メインＣＰＵ１は、メインクロック発振器（高速クロック）２を起動しメインＣＰＵ用クロック（高速クロック）４を供給する。メインＣＰＵ１は、サブＣＰＵ５ａ、５ｂへ「ｗａｋｅ−ｕｐ（復帰）要求」信号を出力する。サブＣＰＵ５ａ、５ｂは、メインＣＰＵ１から出力される「ｗａｋｅ−ｕｐ（復帰）要求」信号を入力すると、クロック制御スイッチ６ａ、６ｂをオンにしサブＣＰＵ用クロック（高速クロック）７ａ、７ｂの供給をし、「ｗａｋｅ−ｕｐ（復帰）完了通知」信号をメインＣＰＵ１へ出力する。こうして再び全てのＣＰＵが通常状態（高消費電力モード）になる。
【００３７】
図３では主にサブＣＰＵ５ａ、５ｂ側からのイベント発生による「スリープ動作」、及び「ｗａｋｅ−ｕｐ（復帰）動作」のシーケンスが示されている。
【００３８】
全てのＣＰＵが通常状態（高消費電力モード）にある場合に、サブＣＰＵ５ａ側にスリープイベントが発生したとする。サブＣＰＵ５ａは、メインＣＰＵ１へ「スリープ要求」信号を出力する。サブＣＰＵ５ａからの「スリープ要求」に対し、メインＣＰＵ１は「拒否通知」を発行することが可能であり、サブＣＰＵ５ａは「スリープ受付通知」を返されたときのみスリープ動作へ移行可能となる。この場合の特徴としては、メインＣＰＵ１がメインＣＰＵ用クロック（高速クロック）４の供給を受けて動作しているのに対し、サブＣＰＵ５ａは全ＣＰＵ用サブクロック（低速クロック）１１による低速動作を行なっている点が挙げられる。この状態（半低消費電力モード）においては、必要の無いサブＣＰＵは低速動作となり、必要最低限の消費電力の発生に抑止することを可能としている。
【００３９】
サブＣＰＵ５ａのみがスリープ状態（半消費電力モード）にある場合に、メインＣＰＵ１側にスリープイベントが発生したとする。メインＣＰＵ１は、サブＣＰＵ５ｂへ「スリープ要求」信号を出力する。サブＣＰＵ５ｂはメインＣＰＵ１からの「スリープ要求」に対し、移行できる条件になければ「拒否通知」を返すことが可能であり、メインＣＰＵ１はこれに従わなければならない。また、サブＣＰＵ５ｂが「スリープ要求」に対し、「スリープ受付通知」を返した時点で、全てのサブＣＰＵ５ａ、５ｂがスリープ状態となるため、メインＣＰＵ１はスリープ動作に移行することが可能となり、この時全てのサブＣＰＵ５ａ、５ｂとメインＣＰＵ１がスリープ状態となり、全ＣＰＵ用サブクロック（低速クロック）１１による低速動作を行なっている。即ち、全てのＣＰＵがスリープ状態（全低消費電力モード）となる。
【００４０】
サブＣＰＵ５ａ、５ｂに「ｗａｋｅ−ｕｐ（復帰）要因」が発生した時は、サブＣＰＵ５ａ、５ｂは、メインＣＰＵ１へ「ｗａｋｅ−ｕｐ（復帰）要求」信号を出力する。メインＣＰＵ１は、メインクロック発振器（高速クロック）２を起動しメインＣＰＵ用クロック（高速クロック）４を供給する。メインＣＰＵ１は、サブＣＰＵ５ａ、５ｂへ「ｗａｋｅ−ｕｐ（復帰）要求」信号を出力する。サブＣＰＵ５ａ、５ｂは、メインＣＰＵ１から出力される「ｗａｋｅ−ｕｐ（復帰）要求」信号を入力すると、クロック制御スイッチ６ａ、６ｂをオンにしサブＣＰＵ用クロック（高速クロック）７ａ、７ｂの供給をし、「ｗａｋｅ−ｕｐ（復帰）完了通知」信号をメインＣＰＵ１へ出力する。こうして再び全てのＣＰＵが通常状態（高消費電力モード）になる。
【００４１】
以上説明したように、メインクロック発振器（高速クロック）２をメインＣＰＵ１及び複数のサブＣＰＵ５ａ、５ｂで共通化することにより、部品点数を低減し、メインクロック発振器（高速クロック）２で消費する電力を低減することができる。
【００４２】
また、それぞれのサブＣＰＵ５ａ、５ｂへの高速クロックの動作、停止を制御することにより、必要の無いサブＣＰＵで消費する電力を軽減することができる。
【００４３】
従って、複数ＣＰＵを併せ持つシステムに対し、低消費電力のシステムとすることを可能とする。
【００４４】
また、本発明のプログラムにより、メインＣＰＵ又は複数のサブＣＰＵに上述の複数ＣＰＵクロック制御システムの制御方法を実行させることができる。
【００４５】
（発明の第２の実施の形態）
図４を参照すると本発明の第２の実施の形態として複数ＣＰＵで構成されるマルチプロセッサシステムが示されている。図４の本発明の第２の実施の形態は、サブクロックスイッチ信号１２が、メインＣＰＵ１とサブクロック発振器（低速クロック）１０とを接続している以外は、図１の本発明の第１の実施の形態と同様である。
【００４６】
本発明の第１の実施の形態ではサブクロック発振器（低速クロック）１０は常時発振しており、メインＣＰＵ１はサブクロック発振器（低速クロック）１０を制御せず、全ＣＰＵ用サブクロック（低速クロック）の制御は行なっていない。しかし、本発明の第２の実施の形態では、メインＣＰＵ１はサブクロック発振器（低速クロック）１０を制御し、全ＣＰＵ用サブクロック（低速クロック）１１の制御を行なう。サブクロックスイッチ信号１２は、メインＣＰＵ１の出力信号であり、サブクロック発振器（低速クロック）１０へ接続され、発振のオン（ＯＮ），オフ（ＯＦＦ）を制御可能とするスイッチ信号である。
【００４７】
メインＣＰＵ１は、メインクロック発振器（高速クロック）２が起動し、かつ、クロック制御スイッチ６ａ、６ｂがオンの時、サブクロック発振器（低速クロック）１０を停止し全ＣＰＵ用サブクロック（低速クロック）１１の供給を停止する。なお、サブＣＰＵ５ａ、５ｂによるクロック制御スイッチ６ａ、６ｂの制御は、ＣＰＵ間制御信号９ａ、９ｂによりメインＣＰＵ１へ伝達される。
【００４８】
本発明の第２の実施の形態の動作は、上述のメインＣＰＵ１によるサブクロック発振器（低速クロック）１０の制御以外は、本発明の第１の実施の形態の動作と同様である。
【００４９】
本発明の第２の実施の形態により、メインＣＰＵ１は、メインクロック発振器（高速クロック）２が起動し、かつ、クロック制御スイッチ６ａ、６ｂがオンの時、サブクロック発振器（低速クロック）１０を停止し全ＣＰＵ用サブクロック（低速クロック）１１の供給を停止することが可能となり、これによる更なる低消費電力設計が可能である。
【００５０】
また、本発明のプログラムにより、メインＣＰＵ又は複数のサブＣＰＵに上述の複数ＣＰＵクロック制御システムの制御方法を実行させることができる。
【産業上の利用可能性】
【００５１】
以上のように、本発明にかかる複数ＣＰＵクロック制御システムは、２つのＣＰＵを実装したＰＣカード端末の開発において、部品点数の削減、及び低消費電力設計のシステムとして有用である。
【図面の簡単な説明】
【００５２】
【図１】本発明の第１の実施の形態の複数ＣＰＵクロック制御システムの構成を示す図である。
【図２】本発明の第１の実施の形態のメインＣＰＵ側からのイベント発生による「スリープ動作」、「ｗａｋｅ−ｕｐ（復帰）動作」のシーケンスを示す図である。
【図３】本発明の第１の実施の形態の主にサブＣＰＵ側からのイベント発生による「スリープ動作」、「ｗａｋｅ−ｕｐ（復帰）動作」のシーケンスを示す図である。
【図４】本発明の第２の実施の形態の複数ＣＰＵクロック制御システムの構成を示す図である。
【図５】従来の技術のマルチプロセッサシステムの全体構成を示す図である。
【図６】従来の技術の各プロセッサエレメントの構成を示す図である。
【図７】従来の技術の無線装置に用いられる消費電力セービング回路の構成ブロック図である。
【符号の説明】
【００５３】
１    メインＣＰＵ
２    メインクロック発振器（高速クロック）
３、８ａ、８ｂ    クロックスイッチ信号
４    メインＣＰＵ用クロック
５ａ    サブＣＰＵ（１）
５ｂ    サブＣＰＵ（２）
６ａ、６ｂ    クロック制御スイッチ
７ａ、７ｂ    サブＣＰＵ用クロック
９ａ、９ｂ    ＣＰＵ間制御信号
１０    サブクロック発振器（低速クロック）
１１    全ＣＰＵ用サブクロック
１２    サブクロックスイッチ信号
１３〜１６    プロセッサエレメント
２１〜２４    演算終了信号線
３０    演算開始信号線
３１    ＣＰＵ
３２    タイマカウンタ
３３    高周波水晶発振回路
３４    多段分周回路
３５    イベント制御回路
３６    低周波水晶発振回路
３７    クロック選択スイッチ（ＳＥＬ）
３８    出力制御回路
３９、５０    電源スイッチ
４０    同期制御手段
４１    プロセッサ
４２    クロック生成手段
４３    クロック制御手段
５１    データバス
【図１】
2006164036.tif 000003
【図２】
2006164036.tif 000004
【図３】
2006164036.tif 000005
【図４】
2006164036.tif 000006
【図５】
2006164036.tif 000007
【図６】
2006164036.tif 000008
【図７】
2006164036.tif 000009