(57)【特許請求の範囲】
【請求項１】
プログラム実行時に発生するプロセスを処理する複数のプロセッサと、該複数のプロセッサにてプロセスが実行される際に必要となるデータを格納するメモリユニットと、前記複数のプロセッサと前記メモリユニットとをそれぞれ接続するネットワークユニットと、前記複数のプロセッサ及び前記メモリユニットに対してシステムに同期したクロックを供給するクロックジェネレータとを有してなるマルチプロセッサにおいて、
前記複数のプロセッサのそれぞれは、
前記プロセスを実行する命令の生成及び制御を行う命令実行制御部と、
該命令実行制御部における実行命令停止時間をカウントする命令アイドルカウンタと、
前記ネットワークユニットを介して他のプロセッサ及び前記メモリユニットとの間にてデータの送受信を行うとともに、前記命令アイドルカウンタにおけるカウント値が予め決められた値以上となった場合に、前記命令実行制御部が命令実行停止状態であることを示すフラグをプロセッサ状態フラグに設定し、前記ネットワークユニットを介してプロセス起動通知を受信した場合に前記プロセッサ状態フラグの前記フラグを解除するネットワークインタフェースユニットと、
前記プロセッサ状態フラグの状態に基づいて、前記クロックジェネレータから供給されたクロックの前記ネットワークインタフェースユニットを除く当該プロセッサの構成要素に対する供給を制御するクロック分配制御部とを有することを特徴とするマルチプロセッサ。
【請求項２】
請求項１に記載のマルチプロセッサにおいて、
前記クロック分配制御部は、前記プロセッサ状態フラグに前記フラグが設定されている場合、前記ネットワークインタフェースユニットを除く当該プロセッサの構成要素に対するクロックの供給を停止することを特徴とするマルチプロセッサ。
【請求項３】
請求項２に記載のマルチプロセッサにおいて、
前記クロック分配制御部は、前記プロセッサ状態フラグに設定された前記フラグが解除された場合、当該プロセッサの構成要素に対するクロックの供給を再開することを特徴とするマルチプロセッサ。
【請求項４】
プログラム実行時に発生するプロセスを処理する複数のプロセッサと、該複数のプロセッサにてプロセスが実行される際に必要となるデータを格納するメモリユニットと、前記複数のプロセッサと前記メモリユニットとをそれぞれ接続するネットワークユニットと、前記複数のプロセッサ及び前記メモリユニットに対してシステムに同期したクロックを供給するクロックジェネレータとを有してなるマルチプロセッサの制御方法において、
前記複数のプロセッサのそれぞれは、その命令実行制御部における実行命令停止時間をカウントする命令アイドルカウンタと、ネットワークインタフェースユニットとを有し、
前記命令アイドルカウンタにおけるカウント値が予め決められた値以上となった場合、ネットワークインタフェースユニットが、当該プロセッサが命令実行停止状態であることを示すフラグをプロセッサ状態フラグに設定し、当該プロセッサにて前記ネットワークユニットを介してプロセス起動通知を受信した場合に前記プロセッサ状態フラグの前記フラグを解除し、
前記プロセッサ状態フラグにフラグが設定されている場合にネットワークインタフェースユニットを除く当該プロセッサの構成要素に対するクロック供給を停止させることを特徴とするマルチプロセッサの制御方法。
【請求項５】
請求項４に記載のマルチプロセッサの制御方法において、
前記プロセッサ状態フラグに設定された前記フラグが解除された場合、前記クロックジェネレータから供給されたクロックの当該プロセッサに対する供給を再開することを特徴とするマルチプロセッサの制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、マルチプロセッサに関し、特に、低消費電力を実現するマルチプロセッサに関する。
【０００２】
【従来の技術】
従来より、マルチプロセッサは、複数のプロセッサを有し、複数の演算を並列して行うことができるため、処理速度の向上を図るために広く用いられている。
【０００３】
【発明が解決しようとする課題】
しかしながら、上述したような従来のマルチプロセッサにおいては、システム全体の負荷が極めて小さな場合においても、全てのプロセッサ内のクロックがピーク時と同様に動作するため、動作休止状態（命令を実行していない）のプロセッサにおいて無駄な電力が消費されてしまうという問題点がある。
【０００４】
近年においては、システム規模の大規模化が図られ、プロセッサの数が増加し、それにより、消費電力がさらに増大する傾向にある。
【０００５】
一方、社会的には環境問題として消費電力の低減が大きく取り上げられ、装置規模が大きくなるのに反して消費電力を抑えることが求められている。
【０００６】
そこで、バス接続のマルチプロセッサシステムにおいて、バス監視を行い電力制御をする方式があげられるが、バス監視装置を実現するためにはバスに接続される装置構成を考慮する必要があり、複雑なＨＷが必要となってしまう。
【０００７】
本発明は、上述したような従来の技術が有する問題点に鑑みてなされたものであって、消費電力の低減を図ることができるマルチプロセッサを提供することを目的とする。
【０００８】
【課題を解決するための手段】
上記目的を達成するために本発明は、プログラム実行時に発生するプロセスを処理する複数のプロセッサと、該複数のプロセッサにてプロセスが実行される際に必要となるデータを格納するメモリユニットと、前記複数のプロセッサと前記メモリユニットとをそれぞれ接続するネットワークユニットと、前記複数のプロセッサ及び前記メモリユニットに対してシステムに同期したクロックを供給するクロックジェネレータとを有してなるマルチプロセッサにおいて、前記複数のプロセッサのそれぞれは、前記プロセスを実行する命令の生成及び制御を行う命令実行制御部と、該命令実行制御部における実行命令停止時間をカウントする命令アイドルカウンタと、前記ネットワークユニットを介して他のプロセッサ及び前記メモリユニットとの間にてデータの送受信を行うとともに、前記命令アイドルカウンタにおけるカウント値が予め決められた値以上となった場合に、前記命令実行制御部が命令実行停止状態であることを示すフラグをプロセッサ状態フラグに設定し、前記ネットワークユニットを介してプロセス起動通知を受信した場合に前記プロセッサ状態フラグの前記フラグを解除するネットワークインタフェースユニットと、前記プロセッサ状態フラグの状態に基づいて、前記クロックジェネレータから供給されたクロックの前記ネットワークインタフェースユニットを除く当該プロセッサの構成要素に対する供給を制御するクロック分配制御部とを有することを特徴とする。
【０００９】
また、前記クロック分配制御部は、前記プロセッサ状態フラグに前記フラグが設定されている場合、前記ネットワークインタフェースユニットを除く当該プロセッサの構成要素に対するクロックの供給を停止することを特徴とする。
【００１０】
また、前記クロック分配制御部は、前記プロセッサ状態フラグに設定された前記フラグが解除された場合、当該プロセッサの構成要素に対するクロックの供給を再開することを特徴とする。
【００１１】
また、プログラム実行時に発生するプロセスを処理する複数のプロセッサと、該複数のプロセッサにてプロセスが実行される際に必要となるデータを格納するメモリユニットと、前記複数のプロセッサと前記メモリユニットとをそれぞれ接続するネットワークユニットと、前記複数のプロセッサ及び前記メモリユニットに対してシステムに同期したクロックを供給するクロックジェネレータとを有してなるマルチプロセッサの制御方法において、実行命令停止時間が予め決められた時間以上となった場合、当該プロセッサが命令実行停止状態であることを示すフラグをプロセッサ状態フラグに設定し、当該プロセッサにて前記ネットワークユニットを介してプロセス起動通知が受信された場合に前記プロセッサ状態フラグの前記フラグを解除し、前記プロセッサ状態フラグにフラグが設定されている場合に当該プロセッサへのクロック供給を停止させることを特徴とする。
【００１２】
また、前記プロセッサ状態フラグに前記フラグが設定されている場合、前記クロックジェネレータから供給されたクロックの当該プロセッサに対する供給を停止することを特徴とする。
【００１３】
また、前記プロセッサ状態フラグに設定された前記フラグが解除された場合、前記クロックジェネレータから供給されたクロックの当該プロセッサに対する供給を再開することを特徴とする。
【００１４】
（作用）
上記のように構成された本発明においては、マルチプロセッサシステムを構成する複数のプロセッサの各々において、自装置内の命令実行状態が監視されており、一定時間の連続した停止状態が検出された場合にプロセッサ内のクロックが停止されるので、動作休止状態のプロセッサにおいて無駄な電力が消費されてしまうことはない。
【００１５】
【発明の実施の形態】
以下に、本発明の実施の形態について図面を参照して説明する。
【００１６】
図１は、本発明のマルチプロセッサの実施の一形態を示すブロック図である。
【００１７】
本形態は図１に示すように、プログラム実行時に発生するプロセスを処理する複数のプロセッサ１−１〜１−ｎと、プロセッサ１−１〜１−ｎにてプロセスが実行される際に必要となるデータを格納するメモリユニット２と、プロセッサ１−１〜１−ｎとメモリユニット２とをそれぞれ接続するネットワークユニット３と、プロセッサ１−１〜１−ｎ及びメモリユニット２に対してシステムに同期したクロックを供給するクロックジェネレータ４とから構成されている。なお、ネットワークユニット３の形態については、本発明の本質ではないため、バス形式やクロスバ形式等のいずれの形態でも構わない。
【００１８】
図２は、図１に示したプロセッサ１−ｍの構成を示すブロック図である。なお、プロセッサ１−１〜１−ｎにおいては全て同様の構成である。
【００１９】
本形態におけるプロセッサ１−ｍは図２に示すように、オペレーティングシステム（以下、ＯＳと称する）が割り付けた指定プロセスを実行する命令の生成及び制御を行う命令実行制御部１１と、命令実行制御部１１における実行命令停止時間をカウントする命令アイドルカウンタ１２と、ネットワークユニット３を介して他のプロセッサ１−１〜１−ｎとの間及びプロセッサ１−ｍとメモリユニット２との間のデータを入出力するネットワークインタフェースユニット１３と、プロセッサ１−ｍ内のクロック動作状態を示すプロセッサ状態フラグ１３１と、プロセッサ状態フラグ１３１を監視し、自プロセッサ１−ｍ内のサブユニットに供給するクロックを制御するクロック分配制御部１４とを少なくとも有しており、さらに、Ｃａｃｈｅ１５及びＶＰＵ１６が設けられている。
【００２０】
なお、ネットワークインタフェースユニット１３は、他プロセッサ１−１〜１−ｎまたはメモリユニット２に対してデータの送受信を行う。
【００２１】
また、プロセッサ状態フラグ１３１は、命令アイドルカウンタ１２から送されたプロセッサ休止状態報告と、ネットワークユニット３から受信するプロセス起動通知を参照し、プロセッサ１−ｍ内のクロック動作状態をクロック分配制御部１４に対して出力する。
【００２２】
また、命令実行制御部１１は、ネットワークインタフェースユニット１３を介して受信したプロセス起動通知を参照し、ＯＳが指定した任意のプロセスを実行する命令の生成及び実行制御を行う。
【００２３】
また、命令アイドルカウンタ１２は、命令実行制御部１１から送信された命令実行状態を受信し、連続した命令実行停止時間をカウントする。一定時間命令実行停止状態が継続した場合、プロセッサ１−ｍがアイドル状態であると判断し、プロセッサ状態フラグ１３１に対してプロセッサ休止状態報告を送信する。
【００２４】
また、クロック分配制御部１４は、システム全体で同期したクロックをクロックジェネレータ４から受信し、プロセッサ状態フラグ１３１を参照し、プロセッサ１−ｍ内の各サブユニットに対するクロックの分配制御を実施する。
【００２５】
以下に、上記のように構成されたマルチプロセッサの動作について説明する。
【００２６】
クロックジェネレータ４は、各ユニットに対して同期したクロックを送出する。複数のプロセッサ１−１〜１−ｎとメモリユニット２は、クロックジェネレータ４から出力されたクロックを受信し、該クロックに同期して動作する。
【００２７】
ＯＳは、プロセッサ１−１〜１−ｎが実行する複数のプロセスを管理する。プログラムの実行が開始されると、ＯＳは該プログラムを構成するプロセス群のスケジューリングを行い、プロセッサ１−ｍに対してプロセスの割付を行う。なお、プロセッサに対するプロセス起動方式については、本発明の本質ではない。
【００２８】
本形態においては、プロセス起動方式としてネットワークを介したプロセッサ間通信によるプロセス起動方法を例に挙げて説明する。
【００２９】
ＯＳにおいてプロセス群のスケジューリングが実施され、プロセッサ１−１〜１−ｎにプロセスが割り付けられると、ネットワークユニット３を介してプロセッサ１−ｍにプロセス起動通信データが送信される。
【００３０】
プロセッサ１−ｍにてネットワークユニット３を介して送信されてきた自宛プロセス起動通信データが受信されると、プロセッサ１−ｍにおいて、プロセス起動通信データが参照されてプロセス処理が開始される。
【００３１】
プロセス処理の完了後、プロセッサ１−ｍにおいて、一定時間内に自プロセッサ内において実行した命令がなかったことが検出されると、プロセッサ１−ｍ内の一部のクロックが停止され、クロック停止状態に遷移する。
【００３２】
その後、クロック停止状態にあるプロセッサ１−ｍにおいて、自宛プロセス起動通信データが受信された場合、プロセッサ内部の停止しているクロックパスが再活性化され、ＯＳによって割り付けられたプロセスが実行される。
【００３３】
次に、プロセッサ１−ｍ内の動作について詳細に説明する。
【００３４】
プログラムの実行が開始されると、ＯＳにおいて発生プロセスに対してスケジューリングが実施され、発生プロセスがプロセッサ１−ｍに割り当てられる。
【００３５】
プロセスの割り当てが完了すると、ネットワークユニット３を介してプロセッサ１−ｍに対してプロセス起動通信データが送信される。
【００３６】
プロセッサ１−ｍに対して送信されたプロセス起動通信データは、プロセッサ１−ｍ内のネットワークインタフェース１３において受信される。
【００３７】
プロセス起動通信データがネットワークインタフェース１３にて受信されると、受信されたプロセス起動通信データが、ネットワークインタフェース１３からプロセッサ１−ｍ内の命令実行制御部１１に対して送信される。
【００３８】
ネットワークインタフェース１３から送信されたプロセス起動通信データが命令実行制御部１１にて受信されると、命令実行制御部１１において、プロセス起動通信データにて指定されたメモリアドレスに対するデータロード要求がメモリユニット２に対して発行される。
【００３９】
命令実行制御部１１にて発行されたデータロード要求は、ネットワークインタフェースユニット１３及びネットワークユニット３を介してメモリユニット２にて受信され、メモリユニット２において、該データロード要求にて指定されたアドレスに格納されたデータが抽出され、ネットワークユニット３を介してプロセッサ１−ｍに対して出力される。
【００４０】
メモリユニット２から出力されたロードデータは、ネットワークユニット３及びネットワークインタフェースユニット１３を介して命令実行制御部１１にて受信され、命令実行制御部１１において、受信したロードデータが参照され、ＯＳにて割り付けられた指定プロセスが命令レベルで実行される。
【００４１】
ここで、命令アイドルカウンタ１２においては、命令実行制御部１１における命令発行状態が監視されており、プロセッサ１−ｍにおける命令実行停止時間がカウントされる。
【００４２】
プロセス完了後、次のプロセスが長時間発生しない場合、命令アイドルカウンタ１２において、予め決められた一定回数の連続した命令実行停止時間が検出されると、プロセッサ１−ｍがアイドル状態にあると判断され、ネットワークインタフェースユニット１３に対してアイドル状態通知データが出力される。
【００４３】
命令アイドルカウンタ１２から出力されたアイドル状態通知データがネットワークインタフェースユニット１３にて受信されると、ネットワークインタフェースユニット１３において、プロセッサ状態フラグ１３１がセットされる。なお、本形態においては、プロセッサ状態フラグ１３１がネットワークインタフェース１２に設けられているが、プロセッサ状態フラグ１３１の位置においては、必ずしもネットワークインタフェースユニット１３に設けられる必要はない。
【００４４】
クロック分配制御部１４においては、クロックジェネレータ４にて生成されたクロックが受信され、各プロセッサを構成するサブユニットへクロックの分配及び制御が行われる。
【００４５】
ネットワークインタフェースユニット１３に設けられたプロセッサ状態フラグ１３１がセットされた場合、クロック分配制御部１４において、ネットワークインタフェースユニット１３を除くサブユニット（本形態においては、命令実行制御部１１、Ｃａｃｈｅ１５及びＶＰＵ１６）のクロック分配経路に対して、クロックをＨＩ状態（もしくはＬＯ状態）で固定される。クロックが停止されたサブユニット内のメモリ／レジスタにおいては、クロックが固定された時点の状態が保持される。
【００４６】
その後、新規プロセスが発生した場合、ＯＳにおいて発生プロセスのスケジューリングが行われ、プロセッサ１−ｍに対してプロセス起動通信データが送信される。
【００４７】
プロセッサ１−ｍ内のネットワークインタフェースユニット１３において、ネットワークユニット３を介して自宛プロセス起動通信データが受信される。
【００４８】
プロセッサ１−ｍがクロック停止状態である場合、ネットワークインタフェースユニット１３において、プロセス起動通信データが受信された時点でプロセッサ状態フラグ１３１がリセットされる。
【００４９】
クロック分配制御部１４においては、プロセッサ状態フラグ１３１が監視され、ホールドされていたクロックパスが活性化される。
【００５０】
クロックが活性化されると、プロセス起動通信データがネットワークインタフェースユニット１３から命令実行制御部１１に対して送信される。
【００５１】
ネットワークインタフェース１３から送信されたプロセス起動通信データが命令実行制御部１１にて受信されると、命令実行制御部１１において、メモリユニット２に対して、プロセス起動通信データに示されたメモリアドレスに格納されたデータのロード要求が発行され、上述した動作と同様に指定プロセスの命令列が実行される。
【００５２】
【発明の効果】
以上説明したように本発明においては、マルチプロセッサシステムを構成する複数のプロセッサの各々において、自装置内の命令実行状態が監視されており、一定時間の連続した停止状態が検出された場合にプロセッサ内のクロックが停止されるため、動作休止状態のプロセッサにおいて無駄な電力が消費されてしまうことはなく、消費電力の低減を図ることができる。
【００５３】
近年採用されるテクノロジに多く見られるＣＭＯＳ回路を採用した同期式回路においては、同期回路に供給するクロックを停止し、回路データを固定することによって、消費電力を削減することができる。
【００５４】
また、マルチプロセッサシステムにおいて、比較的簡単な回路でプロセッサ単位に内部クロック動作を制御することにより、大規模なシステムにおいても繊細な消費電力制御を行うことができる。
【図面の簡単な説明】
【図１】本発明のマルチプロセッサの実施の一形態を示すブロック図である。
【図２】図１に示したプロセッサの構成を示すブロック図である。
【符号の説明】
１−１〜１−ｎ    プロセッサ
２    メモリユニット
３    ネットワークユニット
４    クロックジェネレータ
１１    命令実行制御部
１２    命令アイドルカウンタ
１３    ネットワークインタフェースユニット
１４    クロック分配制御部
１５    Ｃａｃｈｅ
１６    ＶＰＵ
【図１】
0003570905.tif 000002
【図２】
0003570905.tif 000003