(57)【要約】【課題】プロセッサの内部にハードウェアを追加することなく、より消費電力を抑えつつ複数のプロセッサの同期を制御することができる。【解決手段】前段プロセッサ１４および後段プロセッサ１５は、供給されるクロックに基づいて動作し、実行する命令が記憶されている位置を示すプログラムカウンタを出力する。共有メモリ１３は、前段プロセッサ１４と後段プロセッサ１５との間で共有するデータを記憶する。レジスタは、前段プロセッサ１４および後段プロセッサ１５の制御条件を示す制御情報を記憶する。クロック制御部は、プログラムカウンタと制御情報とに基づいて、前段プロセッサ１４と後段プロセッサ１５にクロックを供給する。【選択図】図１
2013250696.tif 000002
【特許請求の範囲】
【請求項１】
供給されるクロックに基づいて動作し、実行する命令が記憶されている位置を示すプログラムカウンタを出力する複数のプロセッサと、
前記プロセッサ間で共有するデータを記憶する共有メモリと、
前記プロセッサの制御条件を示す制御情報を記憶するレジスタと、
前記プログラムカウンタと前記制御情報とに基づいて、前記プロセッサに前記クロックを供給するクロック制御部と、
を備えることを特徴とするプロセッサシステム。
【請求項２】
前記クロック制御部は、前記共有メモリの同一領域に複数の前記プロセッサが同時にアクセスしないように、前記プロセッサに前記クロックを供給する
ことを特徴とする請求項１に記載のプロセッサシステム。
【請求項３】
前記制御情報は、前記プロセッサに前記クロックを供給するタイミングと、前記プロセッサに供給している前記クロックを停止するタイミングとを示す情報を含む
ことを特徴とする請求項１または請求項２に記載のプロセッサシステム。
【請求項４】
前記制御情報は、前記クロックを供給する前記プロセッサを特定する情報を含む
ことを特徴とする請求項３に記載のプロセッサシステム。
【請求項５】
複数のプロセッサの制御条件を示す制御情報を記憶するレジスタと、
前記プロセッサが実行する命令を示すプログラムカウンタと前記制御情報とに基づいて、前記プロセッサにクロックを供給し、当該プロセッサの駆動を制御するクロック制御部と、
を備えることを特徴とするプロセッサ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プロセッサシステムおよびプロセッサ制御装置に関する。
【背景技術】
【０００２】
近年の組み込み機器では、複数のプロセッサ（ＣＰＵ）を備えたハードウェア構成が少なくない。このような構成において、複数のプロセッサが実行順序に制約があるプログラムを同時並列的に処理する場合、プロセッサ同士が互いの処理状況を監視してプログラムの実行タイミングの同期を行う必要がある。
【０００３】
一般的には、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、オペレーティングシステム）など、ソフトウェアによりプロセッサの同期を行うことが多い。ソフトウェアによってプロセッサの同期を行う場合、プログラムの実行時間によってプロセッサの動作時間が長くなり、消費電力が増大するという問題がある。
【０００４】
また、ハードウェアを用いてプロセッサの同期を行う方法も知られている（例えば、特許文献１参照）。特許文献１に記載の方法は、プロセッサの外部にプログラムカウンタ監視部を追加し、プロセッサの内部に実行部を追加することにより、複数のプロセッサの同期を行っている。ハードウェアを用いてプロセッサの同期を行う方法は、ソフトウェアを用いてプロセッサの同期を行う方法と比較してプログラムの実行時間が短いため消費電力を抑えることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−７５９４８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に記載の技術では、プロセッサの内部にハードウェア（実行部）を追加する必要があるため、プロセッサの設計および検証のコストが増大するという問題がある。また、プロセッサが第３者により開発されている場合、プロセッサ内部にハードウェアを追加できない可能性がある。
【０００７】
また、特許文献１に記載の技術では、プロセッサの同期が必要になった場合、同期元のプロセッサの内部に追加された実行部は、プロセッサの外部に追加されたプログラムカウンタ監視部に問い合わせる。プログラムカウンタ監視部は、同期の問い合わせがあった場合、同期先のプロセッサの処理状況に応じて、同期元のプロセッサの処理を開始してよいか否かを判定し、判定結果を同期元のプロセッサに対して出力する。同期元のプロセッサは、プログラムカウンタ監視部の判定結果に基づいて、処理の開始または処理を待機する。従って、特許文献１に記載の技術ではプロセッサの同期が必要になってから同期の判定結果を得るまでに時間がかかり、その時間分だけプロセッサが動作するため電力をより消費するという問題がある。
【０００８】
本発明は、上記の問題を解決するためになされたものであり、プロセッサの内部にハードウェアを追加することなく、より消費電力を抑えつつ複数のプロセッサの同期を制御することができるプロセッサシステムおよびプロセッサ制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明は、供給されるクロックに基づいて動作し、実行する命令が記憶されている位置を示すプログラムカウンタを出力する複数のプロセッサと、前記プロセッサ間で共有するデータを記憶する共有メモリと、前記プロセッサの制御条件を示す制御情報を記憶するレジスタと、前記プログラムカウンタと前記制御情報とに基づいて、前記プロセッサに前記クロックを供給するクロック制御部と、を備えることを特徴とするプロセッサシステムである。
【００１０】
また、本発明のプロセッサシステムにおいて、前記クロック制御部は、前記共有メモリの同一領域に複数の前記プロセッサが同時にアクセスしないように、前記プロセッサに前記クロックを供給することを特徴とする。
【００１１】
また、本発明のプロセッサシステムにおいて、前記制御情報は、前記プロセッサに前記クロックを供給するタイミングと、前記プロセッサに供給している前記クロックを停止するタイミングとを示す情報を含むことを特徴とする。
【００１２】
また、本発明のプロセッサシステムにおいて、前記制御情報は、前記クロックを供給する前記プロセッサを特定する情報を含むことを特徴とする。
【００１３】
また、本発明は、複数のプロセッサの制御条件を示す制御情報を記憶するレジスタと、前記プロセッサが実行する命令を示すプログラムカウンタと前記制御情報とに基づいて、前記プロセッサにクロックを供給し、当該プロセッサの駆動を制御するクロック制御部と、を備えることを特徴とするプロセッサ制御装置である。
【発明の効果】
【００１４】
本発明によれば、レジスタはプロセッサの制御条件を示す制御情報を記憶する。また、クロック制御部は、プログラムカウンタと制御情報とに基づいて前記プロセッサに前記クロックを供給する。これにより、プロセッサの内部にハードウェアを追加することなく、より消費電力を抑えつつ複数のプロセッサの同期を制御することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施形態におけるプロセッサシステムの構成を示したブロック図である。
【図２】本実施形態におけるプロセッサ制御装置の構成を示したブロック図である。
【図３】本実施形態におけるプロセッサ制御装置による前段プロセッサと後段プロセッサとの同期処理の動作の概念を示した概略図である。
【図４】本実施形態におけるプロセッサ制御装置による前段プロセッサと後段プロセッサとの同期処理の動作のタイミングを示したタイミングチャートである。
【図５】本実施形態におけるプロセッサ制御装置による前段プロセッサと後段プロセッサとの同期処理の動作のタイミングを示したタイミングチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の一実施形態について図を参照しながら説明する。図１は、本実施形態におけるプロセッサシステムの構成を示したブロック図である。図示する例では、プロセッサシステム１は、メインプロセッサ１１と、プロセッサ制御装置１２と、共有メモリ１３と、前段プロセッサ１４（プロセッサ）と、後段プロセッサ１５（プロセッサ）とを備える。
【００１７】
メインプロセッサ１１は、前段プロセッサ１４と後段プロセッサ１５との制御条件を示す制御情報をプロセッサ制御装置１２に対して出力する。プロセッサ制御装置１２は、メインプロセッサ１１から入力される制御情報に基づいて前段プロセッサ１４と後段プロセッサ１５との同期を制御する。共有メモリ１３は、前段プロセッサ１４と後段プロセッサ１５とが処理に用いるデータを記憶する。前段プロセッサ１４は、プロセッサシステム１が実行する処理の前段部分の処理を実行する。後段プロセッサ１５は、前段プロセッサ１４が実行した結果を用いて、プロセッサシステム１が実行する処理の後段部分の処理を実行する。そのため、前段プロセッサ１４の処理が完了した後に、後段プロセッサ１５の処理を開始する必要がある。また、前段プロセッサ１４と、後段プロセッサ１５とは、実行する命令が記憶された位置を示すプログラムカウンタを出力する。
【００１８】
次に、プロセッサ制御装置１２の構成について説明する。図２は、本実施形態におけるプロセッサ制御装置１２の構成を示したブロック図である。図示する例では、プロセッサ制御装置１２は、レジスタ１２１と、前段クロック制御部１２２（クロック制御部）と、後段クロック制御部１２３（クロック制御部）とを備える。レジスタ１２１は、メインプロセッサ１１から入力される制御情報を記憶する。
【００１９】
前段クロック制御部１２２は、レジスタ１２１が記憶する制御情報と、前段プロセッサ１４が出力するプログラムカウンタと、後段プロセッサ１５が出力するプログラムカウンタとに基づいて、前段プロセッサ１４の動作を制御する。具体的には、前段クロック制御部１２２は、前段プロセッサ１４にクロックを供給することで前段プロセッサ１４を動作させ、前段プロセッサ１４に供給するクロックを停止することで前段プロセッサ１４の動作を停止させる。
【００２０】
後段クロック制御部１２３は、レジスタ１２１が記憶する制御情報と、前段プロセッサ１４が出力するプログラムカウンタと、後段プロセッサ１５が出力するプログラムカウンタとに基づいて、後段プロセッサ１５の動作を制御する。具体的には、後段クロック制御部１２３は、後段プロセッサ１５にクロックを供給することで後段プロセッサ１５を動作させ、後段プロセッサ１５に供給するクロックを停止することで後段プロセッサ１５の動作を停止させる。
【００２１】
次に、プロセッサ制御装置１２による前段プロセッサ１４と後段プロセッサ１５との同期処理について説明する。図３は、本実施形態におけるプロセッサ制御装置１２による前段プロセッサ１４と後段プロセッサ１５との同期処理の動作の概念を示した概略図である。
【００２２】
以下、プロセッサシステム１が処理[０]と処理[１]とを交互に２回ずつ実行する場合の例を用いて説明する。プロセッサ制御装置１２は、処理[０]を実行するために、前段プロセッサ１４に前段処理[０]を実行させ、その後、後段プロセッサ１５に後段処理[０]を実行させる。また、プロセッサ制御装置１２は、処理[１]を実行するために、前段プロセッサ１４に前段処理[１]を実行させ、その後、後段プロセッサ１５に後段処理[１]を実行させる。
【００２３】
前段プロセッサ１４が前段処理[０]を行う際に出力するプログラムカウンタは前段ＰＣ[０][０]〜[０][１]である。また、前段プロセッサ１４が前段処理[１]を行う際に出力するプログラムカウンタは前段ＰＣ[１][０]〜[１][１]である。また、後段プロセッサ１５が後段処理[０]を行う際に出力するプログラムカウンタは後段ＰＣ[０][０]〜[０][１]である。また、後段プロセッサ１５が後段処理[１]を行う際に出力するプログラムカウンタは後段ＰＣ[１][０]〜[１][１]である。
【００２４】
また、この場合においてレジスタ１２１が記憶するプロセッサの制御情報で示される条件は以下の（１）〜（８）である。
（１）後段プロセッサ１５が共有メモリ１３のメモリ領域[０]にアクセスしていない場合、共有メモリ１３のメモリ領域[０]にアクセスする処理（前段処理[０]）を前段プロセッサ１４に実行させる。
（２）後段プロセッサ１５が共有メモリ１３のメモリ領域[０]にアクセスしている場合、前段プロセッサ１４が共有メモリ１３のメモリ領域[０]にアクセスする処理（前段処理[０]）を実行する直前に前段プロセッサ１４の動作を停止させる。
（３）前段プロセッサ１４が共有メモリ１３のメモリ領域[０]にアクセスしていない場合、共有メモリ１３のメモリ領域[０]にアクセスする処理（後段処理[０]）を後段プロセッサ１５に実行させる。
（４）前段プロセッサ１４が共有メモリ１３のメモリ領域[０]にアクセスしている場合、後段プロセッサ１５が共有メモリ１３のメモリ領域[０]にアクセスする処理（後段処理[０]）を実行する直前に後段プロセッサ１５の動作を停止させる。
【００２５】
（５）後段プロセッサ１５が共有メモリ１３のメモリ領域[１]にアクセスしていない場合、共有メモリ１３のメモリ領域[１]にアクセスする処理（前段処理[１]）を前段プロセッサ１４に実行させる。
（６）後段プロセッサ１５が共有メモリ１３のメモリ領域[１]にアクセスしている場合、前段プロセッサ１４が共有メモリ１３のメモリ領域[１]にアクセスする処理（前段処理[１]）を実行する直前に前段プロセッサ１４の動作を停止させる。
（７）前段プロセッサ１４が共有メモリ１３のメモリ領域[１]にアクセスしていない場合、共有メモリ１３のメモリ領域[１]にアクセスする処理（後段処理[１]）を後段プロセッサ１５に実行させる。
（８）前段プロセッサ１４が共有メモリ１３のメモリ領域[１]にアクセスしている場合、後段プロセッサ１５が共有メモリ１３のメモリ領域[１]にアクセスする処理（後段処理[１]）を実行する直前に後段プロセッサ１５の動作を停止させる。
【００２６】
従って、前段クロック制御部１２２は、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[０][０]〜[０][１]（前段処理[０]）であり、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[１][０]〜[１][１]（後段処理[１]）である場合には、前段プロセッサ１４に前段処理[０]を実行させるために、前段プロセッサ１４にクロックを供給する。また、前段クロック制御部１２２は、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[０][０]〜[０][１]（前段処理[０]）であり、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[０][０]〜[０][１]（後段処理[０]）である場合には、前段プロセッサ１４に前段処理[０]の実行を待機させるために、前段プロセッサ１４に供給するクロックを停止する。
【００２７】
また、前段クロック制御部１２２は、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[１][０]〜[１][１]（前段処理[１]）であり、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[０][０]〜[０][１]（後段処理[０]）である場合には、前段プロセッサ１４に前段処理[１]を実行させるために、前段プロセッサ１４にクロックを供給する。また、前段クロック制御部１２２は、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[１][０]〜[１][１]（前段処理[１]）であり、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[１][０]〜[１][１]（後段処理[１]）である場合には、前段プロセッサ１４に前段処理[１]の実行を待機させるために、前段プロセッサ１４に供給するクロックを停止する。
【００２８】
また、後段クロック制御部１２３は、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[０][０]〜[０][１]（後段処理[０]）であり、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[１][０]〜[１][１]（前段処理[１]）である場合には、後段プロセッサ１５に後段処理[０]を実行させるために、後段プロセッサ１５にクロックを供給する。また、後段クロック制御部１２３は、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[０][０]〜[０][１]（後段処理[０]）であり、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[０][０]〜[０][１]（前段処理[０]）である場合には、後段プロセッサ１５に後段処理[０]の実行を待機させるために、後段プロセッサ１５に供給するクロックを停止する。
【００２９】
また、後段クロック制御部１２３は、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[１][０]〜[１][１]（後段処理[１]）であり、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[０][０]〜[０][１]（前段処理[０]）である場合には、後段プロセッサ１５に後段処理[１]を実行させるために、後段プロセッサ１５にクロックを供給する。また、後段クロック制御部１２３は、後段プロセッサ１５が出力するプログラムカウンタが後段ＰＣ[１][０]〜[１][１]（後段処理[１]）であり、前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[１][０]〜[１][１]（前段処理[１]）である場合には、後段プロセッサ１５に後段処理[１]の実行を待機させるために、後段プロセッサ１５に供給するクロックを停止する。
【００３０】
なお、プロセッサシステム１の起動時など、処理[０]を初めて実行する場合には、前段プロセッサ１４が出力するプログラムカウンタは前段ＰＣ[０][０]であり、後段プロセッサ１５が出力するプログラムカウンタは後段ＰＣ[０][０]である。この場合、レジスタ１２１が記憶するプロセッサの制御情報で示される条件（１）〜（８）のうち、どの条件にも当てはまらない。従って、処理[０]を初めて実行する場合には、例外的に、前段クロック制御部１２２は、前段プロセッサ１４が前段処理[０]を完了するまで（前段プロセッサ１４が出力するプログラムカウンタが前段ＰＣ[１][０]となるまで）前段プロセッサ１４にクロックを供給する。
【００３１】
図４は、本実施形態におけるプロセッサ制御装置１２による前段プロセッサ１４と後段プロセッサ１５との同期処理の動作のタイミングを示したタイミングチャートである。なお、図示する例では、前段プロセッサ１４の動作時間が後段プロセッサ１５の動作時間よりも長い場合の例を示している。
【００３２】
処理[０]を初めて実行する場合には、プロセッサ制御装置１２は、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[０]を実行する（時間ａ）。
【００３３】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[０]を終了し、後段プロセッサ１５が後段処理[０]の実行を待機しているため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[０]を実行する。また、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]を実行し、前段プロセッサ１４が前段処理[１]の実行を待機しているため、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[１]を実行する（時間ｂ）。
【００３４】
続いて、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]を終了しても、前段プロセッサ１４が前段処理[１]を実行しているため、後段プロセッサ１５に供給しているクロックを停止する。これにより、後段プロセッサ１５は、後段処理[１]の実行を待機する。なお、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[１]を完了していないため、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[１]の実行を続ける（時間ｃ）。
【００３５】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[１]を終了し、後段プロセッサ１５が後段処理[１]の実行を待機しているため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[１]を実行する。また、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[１]を実行し、前段プロセッサ１４が前段処理[０]の実行を待機しているため、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[０]を実行する（時間ｄ）。
【００３６】
続いて、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[１]を終了しても、前段プロセッサ１４が前段処理[０]を実行しているため、後段プロセッサ１５に供給しているクロックを停止する。これにより、後段プロセッサ１５は、後段処理[０]の実行を待機する。なお、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[０]を完了していないため、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[０]の実行を続ける（時間ｅ）。時間ｆ〜ｇについては、時間ｂ〜ｃと同様である。
【００３７】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[１]を終了し、後段プロセッサ１５が後段処理[１]の実行を待機しているため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[１]を実行する。なお、前段処理[０]および前段処理[１]を２回ずつ実行したため、プロセッサ制御装置１２は、前段プロセッサ１４にクロックの供給を行わない。これにより、前段プロセッサ１４は、処理を停止する。また、後段プロセッサ１５が後段処理[１]を終了した場合、後段処理[０]および後段処理[１]を２回ずつ実行したため、プロセッサ制御装置１２は、後段プロセッサ１５に供給しているクロックを停止する。これにより、後段プロセッサ１５は、処理を停止する（時間ｈ）。
【００３８】
図５は、本実施形態におけるプロセッサ制御装置１２による前段プロセッサ１４と後段プロセッサ１５との同期処理の動作のタイミングを示したタイミングチャートである。なお、図示する例では、前段プロセッサ１４の動作時間が後段プロセッサ１５の動作時間よりも短い場合の例を示している。
【００３９】
処理[０]を初めて実行する場合には、プロセッサ制御装置１２は、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[０]を実行する（時間Ａ）。
【００４０】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[０]を終了し、後段プロセッサ１５が後段処理[０]の実行を待機しているため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[０]を実行する。また、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]を実行し、前段プロセッサ１４が前段処理[１]の実行を待機しているため、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[１]を実行する（時間Ｂ）。
【００４１】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[１]を終了しても、後段プロセッサ１５が後段処理[０]を実行しているため、前段プロセッサ１４に供給しているクロックを停止する。これにより、前段プロセッサ１４は、前段処理[０]の実行を待機する。なお、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]を完了していないため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[０]の実行を続ける（時間Ｃ）。
【００４２】
続いて、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]を終了し、前段プロセッサ１４が前段処理[０]の実行を待機しているため、前段プロセッサ１４にクロックを供給する。これにより、前段プロセッサ１４は、前段処理[０]を実行する。また、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[０]を実行し、後段プロセッサ１５が後段処理[１]の実行を待機しているため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[１]を実行する（時間Ｄ）。
【００４３】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[０]を終了しても、後段プロセッサ１５が後段処理[１]を実行しているため、前段プロセッサ１４に供給しているクロックを停止する。これにより、前段プロセッサ１４は、前段処理[１]の実行を待機する。なお、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[１]を完了していないため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[１]の実行を続ける（時間Ｅ）。時間Ｆについては、時間Ｂと同様である。
【００４４】
続いて、プロセッサ制御装置１２は、前段プロセッサ１４が前段処理[１]を終了し、前段処理[０]および前段処理[１]を２回ずつ実行したため、前段プロセッサ１４へのクロックの供給を停止する。これにより、前段プロセッサ１４は、処理を停止する。なお、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]の処理を完了していないため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[０]の実行を続ける（時間Ｇ）。
【００４５】
続いて、プロセッサ制御装置１２は、後段プロセッサ１５が後段処理[０]を終了し、前段プロセッサ１４が前段処理[０]の実行を待機しているため、後段プロセッサ１５にクロックを供給する。これにより、後段プロセッサ１５は、後段処理[１]を実行する。また、後段プロセッサ１５が後段処理[１]を終了した場合、後段処理[０]および後段処理[１]を２回ずつ実行したため、プロセッサ制御装置１２は、後段プロセッサ１５に供給しているクロックを停止する。これにより、後段プロセッサ１５は、処理を停止する（時間Ｈ）。
【００４６】
上述したように、前段クロック制御部１２２と後段クロック制御部１２３とは、前段プロセッサ１４が出力するプログラムカウンタと、後段プロセッサ１５が出力するプログラムカウンタと、レジスタ１２１が記憶する制御情報とに基づいて、前段プロセッサ１４と後段プロセッサ１５とに供給するクロックを制御することで、前段プロセッサ１４と後段プロセッサ１５との同期を制御することができる。
【００４７】
従って、プロセッサシステム１およびプロセッサ制御装置１２は、前段プロセッサ１４および後段プロセッサ１５の内部にハードウェアを追加することなく、より消費電力を抑えつつ前段プロセッサ１４と後段プロセッサ１５との同期を制御することができる。
【００４８】
以上、この発明の一実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。例えば、上述した実施形態においては、プロセッサ制御装置１２は前段プロセッサ１４と後段プロセッサ１５との２つのプロセッサの同期を制御しているが、これに限らず、３つ以上のプロセッサの同期を制御するようにしてもよい。なお、３つ以上のプロセッサの同期を制御する場合においても、２つのプロセッサの同期を制御する処理と同様に、プロセッサ制御装置１２は、各プロセッサが出力するプログラムカウンタとレジスタ１２１が記憶する制御情報とに基づいて、３つ以上のプロセッサの同期を制御する。
【符号の説明】
【００４９】
１・・・プロセッサシステム、１１・・・メインプロセッサ、１２・・・プロセッサ制御装置、１３・・・共有メモリ、１４・・・前段プロセッサ、１５・・・後段プロセッサ、１２１・・・レジスタ、１２２・・・前段クロック制御部、１２３・・・後段クロック制御部
【図１】
2013250696.tif 000003
【図２】
2013250696.tif 000004
【図３】
2013250696.tif 000005
【図４】
2013250696.tif 000006
【図５】
2013250696.tif 000007