(57)【要約】【課題】  内蔵アクセラレータの処理実行中におけるプロセッサコアの無駄な消費電力を削減する。【解決手段】  プロセッサコアＣＯＲＥは、パイプライン処理方式を採用して構成され、インターロック機構ＩＬＭを有する。内蔵アクセラレータＢＡ０、ＢＡ１は、プロセッサコアに代わって特定の処理を実行する。インターロック機構は、パイプライン処理の処理結果の正当性を保証するために動作するうえに、内蔵アクセラレータにより処理が実行されかつプロセッサコアにより実行されるべき処理がない場合、内蔵アクセラレータの処理実行開始および処理実行完了にそれぞれ応答してパイプライン処理を停止および再開させる。インターロック機構を流用して内蔵アクセラレータに対する処理実行完了待ち機構を実現しているため、内蔵アクセラレータの処理実行中におけるプロセッサコアの無駄な消費電力を容易に削減できる。【選択図】    図１
2006244382.tif 000002
【特許請求の範囲】
【請求項１】
パイプライン処理方式を採用し、パイプライン処理の処理結果の正当性を保証するために処理データに応じてパイプライン処理を停止および再開させるインターロック機構を有するプロセッサコアと、
前記プロセッサコアに代わって特定の処理を実行する補助回路とを備え、
前記インターロック機構は、パイプライン処理の処理結果の正当性を保証するために動作するうえに、前記補助回路により処理が実行されかつ前記プロセッサコアにより実行されるべき処理がない場合、前記補助回路の処理実行開始および処理実行完了にそれぞれ応答してパイプライン処理を停止および再開させることを特徴とするマイクロプロセッサ。
【請求項２】
請求項１記載のマイクロプロセッサにおいて、
前記プロセッサコアは、通常モードおよび低消費電力モードを備え、
前記プロセッサコアは、通常モード中に、前記補助回路により処理が実行されかつ自身により実行されるべき処理がない場合、前記インターロック機構が前記補助回路の完了待ちによるパイプライン処理の停止に応答して低消費電力モードに移行することを特徴とするマイクロプロセッサ。
【請求項３】
請求項２記載のマイクロプロセッサにおいて、
前記プロセッサコアは、低消費電力モード中、前記インターロック機構が前記補助回路の完了待ちによるパイプライン処理の再開に応答して通常モードに復帰することを特徴とするマイクロプロセッサ。
【請求項４】
請求項１記載のマイクロプロセッサにおいて、
前記インターロック機構は、パイプライン処理を停止させているときに割り込みの発生に応答してパイプライン処理を再開させ、前記プロセッサコアによる割り込み処理の実行完了後にパイプライン処理を再び停止させることを特徴とするマイクロプロセッサ。
【請求項５】
請求項１記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行開始および処理実行完了をそれぞれ検知する検知回路を備え、
前記インターロック機構は、前記補助回路の処理実行中に前記プロセッサコアにより実行されるべき処理がない場合、前記検知回路による前記補助回路の処理実行開始の検知および処理実行完了の検知にそれぞれ応答してパイプライン処理を停止および再開させることを特徴とするマイクロプロセッサ。
【請求項６】
請求項５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行開始に伴ってアクセスされる第１レジスタを備え、
前記検知回路は、前記第１レジスタへのアクセスの発生により前記補助回路の処理実行開始を検知することを特徴とするマイクロプロセッサ。
【請求項７】
請求項５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行完了に応答してセットされる第２レジスタを備え、
前記検知回路は、前記第２レジスタのセットにより前記補助回路の処理実行完了を検知することを特徴とするマイクロプロセッサ。
【請求項８】
請求項５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記検知回路の検知動作の許可／禁止を示す第３レジスタを備え、
前記検知回路は、前記第３レジスタが許可を示すときにのみ、検知動作を実施することを特徴とするマイクロプロセッサ。
【請求項９】
請求項５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行中にセットされる第４レジスタを備えていることを特徴とするマイクロプロセッサ。
【請求項１０】
請求項１記載のマイクロプロセッサにおいて、
複数の前記補助回路を備え、
前記プロセッサコアは、
前記複数の補助回路に対応してそれぞれ設けられ、対応する補助回路の処理実行開始および処理実行完了を検知する複数の検知回路と、
前記複数の補助回路の処理実行開始に伴ってアクセスされる第１レジスタと、
前記複数の補助回路にそれぞれ対応し、対応する補助回路の処理実行完了に応答してセットされる複数のビットを有する第２レジスタと、
前記複数の検知回路にそれぞれ対応し、対応する検知回路の検知動作の許可／禁止を示す複数のビットを有する第３レジスタとを備え、
前記各検知回路は、前記第３レジスタにおける対応するビットが許可を示すときにのみ、前記第１レジスタへのアクセスの発生により対応する補助回路の処理実行開始を検知するとともに、前記第２レジスタにおける対応するビットのセットにより対応する補助回路の処理実行完了を検知し、
前記インターロック機構は、前記複数の補助回路により処理が実行されかつ前記プロセッサコアにより実行されるべき処理がない場合、前記第３レジスタにおける許可を示すビットに対応する検知回路が対応する補助回路の処理実行開始を検知したときにパイプライン処理を停止させ、前記第３レジスタにおける許可を示すビットに対応する検知回路が対応する補助回路の処理実行完了を検知したときにパイプライン処理を再開させることを特徴とするマイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサに関し、特に、ハードアクセラレータ（内蔵アクセラレータ）を有するパイプライン処理方式のマイクロプロセッサに関する。
【背景技術】
【０００２】
近時、電子機器の性能向上は著しく、電子機器の制御系統を担うマイクロプロセッサには、より高い処理能力が要求される。一方では、小型携帯機器の稼働時間や環境問題等の面から、マイクロプロセッサには低消費電力も要求される。マイクロプロセッサの開発において、これらの相反する要求を如何にバランスよく実現させるかが重要である。
ハイエンドのマイクロプロセッサでは、プロセッサコア（ＣＰＵ）の限られた処理能力を効率的に使用するために、従来ソフトウェアで実現していた機能をハードウェアで実現したハードアクセラレータ（コプロセッサを含む）が内蔵されている。このようなマイクロプロセッサでは、ハードアクセラレータで実行可能な特定の処理に限って、ハードアクセラレータを起動することによりプロセッサコアを動作させることなくハードウェアでその処理を高速に実施できる。プロセッサコアは、ハードアクセラレータの処理実行中に別の処理を実行することが可能である。
【０００３】
また、特許文献１では、チャネルコマンドワード方式のシステムにおいて、チャネル装置がデータを受信した場合に発生させる割り込みに対する主中央処理装置の割り込み処理の効率を向上する技術が開示されている。具体的には、チャネル装置の割り込みステータスレジスタにレシーブコマンド実行完了ビットを設ける。主中央処理装置は、チャネル装置からのチャネルコマンドワード実行完了割り込みが発生したときにレシーブコマンド実行完了ビットをチェックし、レシーブコマンド実行完了ビットがセットされていることで、チャネル装置のデータ受信を指示するレシーブコマンドの実行完了を認識する。
【特許文献１】特開昭６０−５５３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
ハードアクセラレータにより特定の処理が実行される場合、プロセッサコアは、ハードアクセラレータによる処理実行が完了したか否かを認識する必要がある。このため、プロセッサコアは、ハードアクセラレータに対して定期的にポーリングを実施する、あるいはハードアクセラレータの処理実行完了を示す割り込みの発生を待つ必要がある。従って、ハードアクセラレータの処理実行中、プロセッサコアは、実行すべき処理がない場合であっても、ハードアクセラレータの処理実行完了を認識するためだけに常に動作している必要があり、無駄に電力を消費してしまうという問題がある。
【０００５】
この問題の解決を目的としてハードアクセラレータの処理実行完了待ち機構を構築する場合、最も安易な手段として、ハードアクセラレータに対する処理実行完了待ち動作を実施するための専用回路を設けることが挙げられる。仮に、このような専用回路をマイクロプロセッサに搭載する場合、プロセッサコアとは独立してハードアクセラレータの処理実行状況を判断するような回路の検討が必要になる。この回路には、ハードアクセラレータの処理実行完了後に、低消費電力モードに移行しているプロセッサコアを起動するための機構が搭載されている必要がある。従って、そのような専用回路を搭載したマイクロプロセッサを設計・開発する際に、プロセッサコアの低消費電力モード中に発生する割り込みの扱い方や、専用回路の搭載によりマイクロプロセッサの本来の動作に問題が生じないかを入念に検討しなければならない。また、マイクロプロセッサの設計完了後に、多項目にわたる新たな動作検証も必要となる。さらに、専用回路の搭載に伴いマイクロプロセッサの回路規模の増大も懸念される。
【０００６】
本発明の目的は、ハードアクセラレータの処理実行中におけるプロセッサコアの無駄な消費電力を容易に削減することにある。
【課題を解決するための手段】
【０００７】
本発明のマイクロプロセッサの一形態では、プロセッサコアは、パイプライン処理方式を採用して構成され、インターロック機構を有する。インターロック機構は、パイプライン処理の処理結果の正当性を保証するために、処理データに応じてパイプライン処理を停止および再開させる。補助回路は、プロセッサコアに代わって特定の処理を実行する。インターロック機構は、パイプライン処理の処理結果の正当性を保証するために動作するうえに、補助回路により処理が実行されかつプロセッサコアにより実行されるべき処理がない場合、補助回路の処理実行開始および処理実行完了にそれぞれ応答してパイプライン処理を停止および再開させる。
【０００８】
本発明では、インターロック機構を有するマイクロプロセッサに対して、インターロック機構によるパイプライン処理の停止要因に”補助回路の処理実行開始”を追加するとともに、インターロック機構によるパイプライン処理の再開要因に”補助回路の処理実行完了”を追加するだけで、補助回路に対する処理実行完了待ち機構を実現できる。一般に、パイプライン処理方式のプロセッサコアは、インターロック機構を有している。従って、既存のマイクロプロセッサに対して、前述のようにインターロック機構を流用して補助回路に対する処理実行完了待ち機構を実現することで、補助回路の処理実行中におけるプロセッサコアの無駄な消費電力を簡易な回路構成で削減できるうえに、マイクロプロセッサの設計完了後の検証工数が大幅に増加することも回避できる。
【０００９】
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアは、通常モードおよび低消費電力モードを有する。プロセッサコアは、通常モード中に、補助回路により処理が実行されかつ自身が実行すべき処理がない場合、インターロック機構が補助回路の完了待ちによるパイプライン処理の停止に応答して低消費電力モードに移行する。このため、プロセッサコアを通常モードから低消費電力モード（例えば、プロセッサコア内のクロックが停止するモード）に高速に移行させることができ、無駄な消費電力を更に削減できる。
【００１０】
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアは、低消費電力モード中、インターロック機構が補助回路の完了待ちによるパイプライン処理の再開に応答して通常モードに復帰する。このため、プロセッサコアを低消費電力モードから通常モードに高速に復帰させることができる。
本発明のマイクロプロセッサの前記一形態における好ましい例では、インターロック機構は、パイプライン処理を停止させているときに割り込みの発生に応答してパイプライン処理を再開させる。これにより、プロセッサコアは、低消費電力モードから通常モードに復帰する。そして、インターロック機構は、プロセッサコアによる割り込み処理の実行完了後にパイプライン処理を再び停止させる。これにより、プロセッサコアは、低消費電力モードに再び移行する。従って、プロセッサコアが低消費電力モード中である場合にも、割り込みを受け付けることができる。通常、インターロック機構を有するマイクロプロセッサは、インターロック機構の動作中（インターロック機構によるパイプライン処理の停止中）に発生する割り込みを受け付ける機能を有している。このため、マイクロプロセッサの設計完了後に、プロセッサコアの低消費電力モード中に発生する割り込みに関する動作検証を新たに実施する必要はない。
【００１１】
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアの検知回路は、補助回路の処理実行開始および処理実行完了をそれぞれ検知する。インターロック機構は、補助回路の処理実行中にプロセッサコアにより実行されるべき処理がない場合、検知回路による補助回路の処理実行開始の検知および処理実行完了の検知にそれぞれ応答してパイプライン処理を停止および再開させる。検知回路を設けることで、インターロック機構によるパイプライン処理の停止タイミングおよび再開タイミングを容易に規定できる。
【００１２】
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアの第１レジスタは、補助回路の処理実行開始に伴ってアクセスされる。検知回路は、第１レジスタへのアクセスの発生により補助回路の処理実行開始を検知する。これにより、検知回路による補助回路の処理実行開始の検知を容易に実現できる。
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアの第２レジスタは、補助回路の処理実行完了に応答してセットされる。検知回路は、第２レジスタのセットにより補助回路の処理実行完了を検知する。これにより、検知回路による補助回路の処理実行完了の検知を容易に実現できる。
【００１３】
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアの第３レジスタは、検知回路の検知動作の許可／禁止を示す。検知回路は、第３レジスタが許可を示すときにのみ、検知動作を実施する。第３レジスタを設けることで、補助回路に対する処理実行完了待ち動作の有効・無効を容易に設定できる。
本発明のマイクロプロセッサの前記一形態における好ましい例では、プロセッサコアの第４レジスタは、補助回路の処理実行中にセットされる。第４レジスタを参照することで、補助回路の処理実行状況を容易に認識できる。
【００１４】
本発明のマイクロプロセッサの前記一形態における好ましい例では、マイクロプロセッサは、複数の補助回路を有する。プロセッサコアの複数の検知回路は、複数の補助回路に対応してそれぞれ設けられる。各検知回路は、対応する補助回路の処理実行開始および処理実行完了を検知する。プロセッサコアの第１レジスタは、複数の補助回路の処理実行開始に伴ってアクセスされる。プロセッサコアの第２レジスタは、複数の補助回路にそれぞれ対応する複数のビットを有する。第２レジスタの各ビットは、対応する補助回路の処理実行完了に応答してセットされる。プロセッサコアの第３レジスタは、複数の検知回路にそれぞれ対応するビットを有する。第３レジスタの各ビットは、対応する検知回路の検知動作の許可／禁止を示す。各検知回路は、第３レジスタにおける対応するビットが許可を示すときにのみ、第１レジスタへのアクセスの発生により対応する補助回路の処理実行開始を検知するとともに、第２レジスタにおける対応するビットのセットにより対応する補助回路の処理実行完了を検知する。インターロック機構は、複数の補助回路により処理が実行されかつプロセッサコアにより実行されるべき処理がない場合、第３レジスタにおける許可を示すビットに対応する検知回路が対応する補助回路の処理実行開始を検知したときにパイプライン処理を停止させ、第３レジスタにおける許可を示すビットに対応する検知回路が対応する補助回路の処理実行完了を検知したときにパイプライン処理を再開させる。これにより、補助回路毎に処理実行完了待ち動作の有効・無効を設定でき、複数の補助回路を有する場合にも本発明を適用できる。
【発明の効果】
【００１５】
本発明のマイクロプロセッサでは、インターロック機構を流用して補助回路（ハードアクセラレータ）に対する処理実行完了待ち機構を実現することで、補助回路の処理実行中におけるプロセッサコアの無駄な消費電力を容易に削減できる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を用いて本発明の実施形態を説明する。図１〜図３は、本発明のマイクロプロセッサの一実施形態を示している。図１は、本発明のマイクロプロセッサの概要を示している。マイクロプロセッサＭＰは、パイプライン処理方式のプロセッサコアＣＯＲＥ、プロセッサコアＣＯＲＥに代わって特定の処理を実行する内蔵アクセラレータＢＡ０、ＢＡ１（補助回路）を有している。なお、図示を省略するが、マイクロプロセッサＭＰは、例えば、ＲＯＭやＲＡＭ等のメモリ回路、タイマ機能や通信インタフェース機能等を具現する周辺回路も有している。
【００１７】
プロセッサコアＣＯＲＥは、インターロック機構ＩＬＭ、内蔵アクセラレータＢＡ０、ＢＡ１にそれぞれ対応する実行完了待ち制御回路Ｃ０、Ｃ１（検知回路）、実行完了待ち実行レジスタＢＣＷＲ（第１レジスタ）、実行完了ステータスレジスタＢＣＳＲ（第２レジスタ）、実行完了待ちイネーブルレジスタＢＣＷＥＲ（第３レジスタ）、実行ステータスレジスタＢＡＳＲ（第４レジスタ）を有している。プロセッサコアＣＯＲＥは、ＲＯＭに格納されているプログラムに従ってパイプライン処理を実行する。プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０（ＢＡ１）により実行可能な処理については内蔵アクセラレータＢＡ０（ＢＡ１）に実行させる。この際、プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０（ＢＡ１）への処理実行開始要求Ｓ０（Ｓ１）を出力するとともに、データバスＤＢ０（ＤＢ１）を介して内蔵アクセラレータＢＡ０（ＢＡ１）に処理入力データを出力する。
【００１８】
実行完了待ち制御回路Ｃ０は、内蔵アクセラレータＢＡ０の処理実行状況およびプロセッサコアＣＯＲＥへの割り込みの発生状況に応じて、インターロック機構ＩＬＭへのインターロック要求信号ＩＬＲ０を活性化させる。同様に、実行完了待ち制御回路Ｃ１は、内蔵アクセラレータＢＡ１の処理実行状況およびプロセッサコアＣＯＲＥへの割り込みの発生状況に応じて、インターロック機構ＩＬＭへのインターロック要求信号ＩＬＲ１を活性化させる。実行完了待ち制御回路Ｃ０、Ｃ１の詳細については、図２で説明する。
【００１９】
インターロック機構ＩＬＭは、プロセッサコアＣＯＲＥのパイプライン処理実行中における処理データの依存関係を調べて、処理結果の正当性を保証するために必要に応じてパイプライン処理を停止させる。また、インターロック機構ＩＬＭは、内蔵アクセラレータＢＡ０の処理実行完了までプロセッサコアＣＯＲＥにより実行されるべき処理がない場合、実行完了待ち制御回路Ｃ０からのインターロック要求信号ＩＬＲ０の活性化に応答してインターロック動作を開始する（パイプライン処理を停止させる）。インターロック機構ＩＬＭは、インターロック要求信号ＩＬＲ０の非活性化に応答してインターロック動作を終了する（パイプライン処理を再開させる）。
【００２０】
同様に、インターロック機構ＩＬＭは、内蔵アクセラレータＢＡ１の処理実行完了までプロセッサコアＣＯＲＥにより実行されるべき処理がない場合、実行完了待ち制御回路Ｃ１からのインターロック要求信号ＩＬＲ１の活性化に応答してインターロック動作を開始する。インターロック機構ＩＬＭは、インターロック要求信号ＩＬＲ１の非活性化に応答してインターロック動作を終了する。また、インターロック機構ＩＬＭは、インターロック動作中、周辺回路等からの割り込みが発生すると、プロセッサコアＣＯＲＥによる割り込み処理実行のためにインターロック動作を終了する。
【００２１】
インターロック機構ＩＬＭのインターロック動作中、プロセッサコアＣＯＲＥは、通常モードから低消費電力モード（例えば、プロセッサコアＣＯＲＥ内のクロックが停止するモード）へ移行する。また、プロセッサコアＣＯＲＥは、低消費電力モード中に、周辺回路等からの割り込みが発生すると、低消費電力モードから通常モードに復帰して、発生した割り込みに対応する割り込み処理を実行した後、後述するように低消費電力モードに再び移行する。
【００２２】
内蔵アクセラレータＢＡ０は、プロセッサコアＣＯＲＥからの処理実行開始要求Ｓ０に応答して、プロセッサコアＣＯＲＥからデータバスＤＢ０を介して出力される処理入力データを用いて特定の処理を実行する。内蔵アクセラレータＢＡ０は、処理実行が完了したときに、処理実行完了通知Ｅ０を出力するとともに、データバスＤＢ０を介して処理結果データをプロセッサコアＣＯＲＥに出力する。同様に、内蔵アクセラレータＢＡ１は、プロセッサコアＣＯＲＥからの処理実行開始要求Ｓ１に応答して、プロセッサコアＣＯＲＥからデータバスＤＢ１を介して出力される処理入力データを用いて特定の処理を実行する。内蔵アクセラレータＢＡ１は、処理実行が完了したときに、処理実行完了通知Ｅ１を出力するとともに、データバスＤＢ１を介して処理結果データをプロセッサコアＣＯＲＥに出力する。
【００２３】
実行完了待ち実行レジスタＢＣＷＲは、内蔵アクセラレータＢＡ０、ＢＡ１の処理実行開始に伴ってプロセッサコアＣＯＲＥによりアクセスされる。実行完了ステータスレジスタＢＣＳＲは、内蔵アクセラレータＢＡ０、ＢＡ１にそれぞれ対応するビットＢＣＳＲ０、ＢＣＳＲ１を有している。ビットＢＣＳＲ０（ＢＣＳＲ１）は、内蔵アクセラレータＢＡ０（ＢＡ１）からの処理実行完了通知Ｅ０（Ｅ１）に応答して”１”にセットされる。実行完了ステータスレジスタＢＣＳＲのビットＢＣＳＲ０（ＢＣＳＲ１）は、プロセッサコアＣＯＲＥがデータ”０”をライトすることで、”０”にリセットされる。
【００２４】
実行完了待ちイネーブルレジスタＢＣＷＥＲは、実行完了待ち制御回路Ｃ０、Ｃ１（すなわち、内蔵アクセラレータＢＡ０、ＢＡ１）にそれぞれ対応するビットＢＣＷＥＲ０、ＢＣＷＥＲ１を有している。ビットＢＣＷＥＲ０（ＢＣＷＥＲ１）は、実行完了待ち制御回路Ｃ０（Ｃ１）の動作（内蔵アクセラレータＢＡ０（ＢＡ１）に対する処理実行完了待ち動作）の許可／禁止を示す。実行ステータスレジスタＢＡＳＲは、内蔵アクセラレータＢＡ０、ＢＡ１にそれぞれ対応するビットＢＡＳＲ０、ＢＡＳＲ１を有している。ビットＢＡＳＲ０（ＢＡＳＲ１）は、プロセッサコアＣＯＲＥから内蔵アクセラレータＢＡ０（ＢＡ１）への処理実行開始要求Ｓ０（Ｓ１）に応答して”１”にセットされ、内蔵アクセラレータＢＡ０（ＢＡ１）からプロセッサコアＣＯＲＥへの処理実行完了通知Ｅ０（Ｅ１）に応答して”０”にリセットされる。従って、プロセッサコアＣＯＲＥは、実行ステータスレジスタＢＡＳＲをリードすることで、内蔵アクセラレータＢＡ０、ＢＡ１が処理実行中であるか否かを認識できる。
【００２５】
図２は、図１のプロセッサコアＣＯＲＥの要部を示している。実行完了待ち制御回路Ｃ０は、デコーダＤＥＣ、ゲート回路Ｇ０、Ｇ１を有している。デコーダＤＥＣは、アクセス先のアドレスＡＤＤが実行完了待ち実行レジスタＢＣＷＲを示すときに出力信号を”１”に活性化させる。従って、デコーダＤＥＣの出力信号は、実行完了待ち実行レジスタＢＣＷＲへのアクセスが発生したとき（すなわち、内蔵アクセラレータＢＡ０、ＢＡ１の少なくともいずれかが処理実行を開始したとき）に、”１”に活性化される。
【００２６】
ゲート回路Ｇ０は、デコーダＤＥＣの出力信号および実行完了待ちイネーブルレジスタＢＣＷＥＲのビットＢＣＷＥＲ０が共に”１”であるときに、出力信号を”１”に活性化させる。すなわち、ゲート回路Ｇ０の出力信号は、内蔵アクセラレータＢＡ０に対する処理実行完了待ち動作が許可された状態で、実行完了待ち実行レジスタＢＣＷＲへのアクセスが発生したときに、”１”に活性化される。
【００２７】
ゲート回路Ｇ１は、ゲート回路Ｇ０の出力信号が”１”であり、かつ実行完了ステータスレジスタＢＣＳＲのビットＢＣＳＲ０が”０”であるときに、インターロック要求信号ＩＬＲ０を”１”に活性化させる。すなわち、ゲート回路Ｇ１の出力信号は、内蔵アクセラレータＢＡ０に対する処理実行完了待ち動作が許可され、かつ内蔵アクセラレータＢＡ０による処理実行が完了していない状態で、実行完了待ち実行レジスタＢＣＷＲへのアクセスが発生したときに、”１”に活性化される。なお、実行完了待ち制御回路Ｃ１の構成および動作は、内蔵アクセラレータＢＡ１に対応するビットＢＣＷＥＲ１、ＢＣＳＲ１を参照することを除いて、実行完了待ち制御回路Ｃ０と同様であるため、説明を省略する。
【００２８】
インターロック機構ＩＬＭは、内蔵アクセラレータＢＡ０（ＢＡ１）の処理実行完了までプロセッサコアＣＯＲＥにより実行されるべき処理がない場合、インターロック要求信号ＩＬＲ０（ＩＬＲ１）の活性化（”０”から”１”への変化）に応答してインターロック動作を開始し、インターロック要求信号ＩＬＲ０（ＩＬＲ１）の非活性化（”１”から”０”への変化）に応答してインターロック動作を終了する。
【００２９】
図３は、図１のプロセッサコアＣＯＲＥの動作例を示している。例えば、プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０のみに特定の処理を実行させる場合、以下のように動作する。また、プロセッサＣＯＲＥは、内蔵アクセラレータＢＡ０の処理実行完了まで実行すべき処理がない場合について説明する。なお、実行完了ステータスレジスタＢＣＳＲのビットＢＣＳＲ０、ＢＣＳＲ１は、予め”０”にリセットされている。
（ステップＳ１０）プロセッサＣＯＲＥは、実行ステータスレジスタＢＡＳＲをリードすることで、内蔵アクセラレータＢＡ０が処理実行中ではないことを確認する。この後、プロセッサコアＣＯＲＥの動作は、ステップＳ２０に移行する。
（ステップＳ２０）プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０に対する処理実行完了待ち動作を許可するために、実行完了待ちイネーブルレジスタＢＣＷＥＲのビットＢＣＷＥＲ０にデータ”１”をライトする。この後、プロセッサコアＣＯＲＥの動作は、ステップＳ３０に移行する。
（ステップＳ３０）プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０への処理実行開始要求Ｓ０を出力することで、内蔵アクセラレータＢＡ０に処理実行を開始させる。この後、プロセッサコアＣＯＲＥの動作は、ステップＳ４０に移行する。
（ステップＳ４０）プロセッサコアＣＯＲＥは、実行完了待ち実行レジスタＢＣＷＲにアクセスする。これにより、デコーダＤＥＣの出力信号および実行完了待ちイネーブルレジスタＢＣＷＥＲのビットＢＣＷＥＲ１が共に”１”になるため、ゲート回路Ｇ０の出力信号も”１”に活性化する。このとき、実行完了ステータスレジスタＢＣＳＲのビットＢＣＳＲ０は”０”であるため、インターロック要求信号ＩＬＲ０（ゲート回路Ｇ２の出力信号）も”１”に活性化される。内蔵アクセラレータＢＡ０の処理実行完了までプロセッサＣＯＲＥにより実行されるべき処理がないため、インターロック機構ＩＬＭは、インターロック要求信号ＩＬＲ０の活性化に応答してインターロック動作を開始する。すなわち、プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０に対する処理実行完了待ち動作を開始する。これに伴って、プロセッサコアＣＯＲＥは、通常モードから低消費電力モードに移行する。この後、プロセッサコアＣＯＲＥの動作は、ステップＳ５０に移行する。
（ステップＳ５０、Ｓ６０）プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０からの処理実行完了通知Ｅ０あるいは周辺回路等からの割り込みのいずれかが発生するまで、低消費電力モードのまま待機する。内蔵アクセラレータＢＡ０からの処理実行完了通知Ｅ０が発生すると、プロセッサコアＣＯＲＥの動作は、ステップＳ８０に移行する。一方、割り込みが発生すると、プロセッサコアＣＯＲＥの動作は、ステップＳ７０に移行する。
（ステップＳ７０）プロセッサコアＣＯＲＥは、割り込みが発生すると、低消費電力モードから通常モードに復帰する。この際、インターロック機構ＩＬＭは、割り込みの発生に応答してインターロック動作を終了する。そして、プロセッサコアＣＯＲＥは、発生した割り込みに対応する割り込み処理を実施する。この後、プロセッサコアＣＯＲＥの動作は、ステップＳ４０に移行する。これにより、インターロック機構ＩＬＭは、インターロック動作を再開し、プロセッサコアＣＯＲＥは、低消費電力モードに再び移行する。
（ステップＳ８０）内蔵アクセラレータＢＡ０からの処理実行完了通知Ｅ０が発生すると、実行完了ステータスレジスタＢＣＳＲのビットＢＣＳＲ０が”１”にセットされる。従って、インターロック要求信号ＩＬＲ０が”０”に非活性化される。このため、インターロック機構ＩＬＭは、インターロック要求信号ＩＬＲ０の非活性化に応答してインターロック動作を終了する。すなわち、プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０に対する処理実行完了待ち動作を終了する。これに伴って、プロセッサコアＣＯＲＥは、低消費電力モードから通常モードに復帰し、後続の処理を実行する。
【００３０】
以上のような構成のマイクロプロセッサＭＰでは、内蔵アクセラレータＢＡ０、ＢＡ１の処理実行状況を認識するための動的なポーリングや処理実行完了を示す割り込みの発生を待つことを不要にできるため、内蔵アクセラレータＢＡ０、ＢＡ１の処理実行中におけるプロセッサコアＣＯＲＥの動作率を低下させることができ、無駄な消費電力を削減できる。
【００３１】
図４は、本発明の比較例を示している。マイクロプロセッサＭＰａは、パイプライン処理方式のプロセッサコアＣＯＲＥａ、プロセッサコアＣＯＲＥａに代わって特定の処理を実行する内蔵アクセラレータＢＡ０ａ、ＢＡ１ａを有している。プロセッサコアＣＯＲＥａは、パイプライン処理の処理結果の正当性を保証するためのインターロック機構ＩＬＭａを有している。プロセッサコアＣＯＲＥａは、内蔵アクセラレータＢＡ０ａ（ＢＡ１ａ）により実行可能な処理については内蔵アクセラレータＢＡ０ａ（ＢＡ１ａ）に実行させる。この際、プロセッサコアＣＯＲＥａは、内蔵アクセラレータＢＡ０ａ（ＢＡ１ａ）への処理実行開始要求Ｓ０（Ｓ１）を出力するとともに、データバスＤＢ０（ＤＢ１）を介して内蔵アクセラレータＢＡ０ａ（ＢＡ１ａ）に処理入力データを出力する。
【００３２】
内蔵アクセラレータＢＡ０ａは、プロセッサコアＣＯＲＥａからの処理実行開始要求Ｓ０に応答して、プロセッサコアＣＯＲＥａからデータバスＤＢ０を介して出力される処理入力データを用いて特定の処理を実行する。内蔵アクセラレータＢＡ０ａは、処理実行が完了したときに、処理実行完了通知Ｅ０を出力するとともに、データバスＤＢ０を介して処理結果データをプロセッサコアＣＯＲＥａに出力する。プロセッサコアＣＯＲＥａは、内蔵アクセラレータＢＡ０ａからの処理実行完了通知Ｅ０を割り込みとして受け、その割り込みの発生により、内蔵アクセラレータＢＡ０ａの処理実行完了を認識する。
【００３３】
内蔵アクセラレータＢＡ１ａは、プロセッサコアＣＯＲＥａからの処理実行開始要求Ｓ１に応答して、プロセッサコアＣＯＲＥａからデータバスＤＢ１を介して出力される処理入力データを用いて特定の処理を実行する。内蔵アクセラレータＢＡ１ａは、処理実行が完了したときにのみ、プロセッサコアＣＯＲＥａからの通知要求ＲＥＱ１に応答して処理実行完了通知ＡＣＫ１を出力するとともに、データバスＤＢ１を介して処理結果データをプロセッサコアＣＯＲＥａに出力する。
【００３４】
このような構成のマイクロプロセッサＭＰａでは、プロセッサコアＣＯＲＥａは、内蔵アクセラレータＢＡ０ａの処理実行状況を確認するために処理実行完了通知Ｅ０に対応する割り込みを待つ必要がある。また、プロセッサコアＣＯＲＥａは、内蔵アクセラレータＢＡ１ａの処理実行状況を確認するために定期的にポーリングする必要がある。このため、プロセッサコアＣＯＲＥａは、内蔵アクセラレータＢＡ０ａ、ＢＡ１ａの処理実行完了まで実行すべき処理がない場合でも常に動作している必要がある。この結果、内蔵アクセラレータＢＡ０ａ、ＢＡ１ａの処理実行中におけるプロセッサコアＣＯＲＥａ（マイクロプロセッサＭＰａ）の消費電力が無駄に増大してしまう。
【００３５】
以上、本実施形態では、プロセッサコアＣＯＲＥは、内蔵アクセラレータＢＡ０、ＢＡ１の処理実行状況を認識するための動的なポーリングや処理実行完了を示す割り込みの発生を待つための制御が必要なく、内蔵アクセラレータＢＡ０、ＢＡ１の処理実行中における無駄な消費電力を削減できる。また、通常、パイプライン処理方式のマイクロプロセッサはインターロック機構を搭載しており、このインターロック機構を流用して処理実行完了待ち機構を実現しているため、既存のマイクロプロセッサに対して大幅な回路修正を加えることなく容易に実現できる。
【００３６】
インターロック機構を流用して内蔵アクセラレータＢＡ０、ＢＡ１の処理実行完了待ち機構を実現しているため、プロセッサコアＣＯＲＥは、通常モードおよび低消費電力モード間を高速（１命令サイクル）に移行できる。また、インターロック機構を流用して内蔵アクセラレータＢＡ０、ＢＡ１の実行完了待ち機構を実現することで、プロセッサコアＣＯＲＥは、低消費電力モード中に発生した割り込みを受け付け可能であり、割り込みに関する新たな動作検証も不要にできる。さらに、２個の内蔵アクセラレータＢＡ０、ＢＡ１にそれぞれ対応して実行完了ステータスレジスタＢＣＳＲ、実行完了待ちイネーブルレジスタＢＣＷＥＲ、実行ステータスレジスタＢＡＳＲのビットを設けることで、どちらか一方あるいは双方に対する処理実行完了待ち動作の有効・無効を一括して切り替えることができ、２個の内蔵アクセラレータＢＡ０、ＢＡ１を有する場合でも本発明を容易に適用できる。
【００３７】
なお、前述の実施形態では、内蔵アクセラレータを２個備えたマイクロプロセッサに本発明を適用した例について述べたが、本発明はかかる実施形態に限定されるものではない。例えば、内蔵アクセラレータを１個のみ備えたマイクロプロセッサ、あるいは内蔵アクセラレータを３個以上備えたマイクロプロセッサに本発明を適用してもよい。
以上の実施形態において説明した発明を整理して、付記として開示する。
（付記１）
パイプライン処理方式を採用し、パイプライン処理の処理結果の正当性を保証するために処理データに応じてパイプライン処理を停止および再開させるインターロック機構を有するプロセッサコアと、
前記プロセッサコアに代わって特定の処理を実行する補助回路とを備え、
前記インターロック機構は、パイプライン処理の処理結果の正当性を保証するために動作するうえに、前記補助回路により処理が実行されかつ前記プロセッサコアにより実行されるべき処理がない場合、前記補助回路の処理実行開始および処理実行完了にそれぞれ応答してパイプライン処理を停止および再開させることを特徴とするマイクロプロセッサ。
（付記２）
付記１記載のマイクロプロセッサにおいて、
前記プロセッサコアは、通常モードおよび低消費電力モードを備え、
前記プロセッサコアは、通常モード中に、前記補助回路により処理が実行されかつ自身により実行されるべき処理がない場合、前記インターロック機構が前記補助回路の完了待ちによるパイプライン処理の停止に応答して低消費電力モードに移行することを特徴とするマイクロプロセッサ。
（付記３）
付記２記載のマイクロプロセッサにおいて、
前記プロセッサコアは、低消費電力モード中、前記インターロック機構が前記補助回路の完了待ちによるパイプライン処理の再開に応答して通常モードに復帰することを特徴とするマイクロプロセッサ。
（付記４）
付記１記載のマイクロプロセッサにおいて、
前記インターロック機構は、パイプライン処理を停止させているときに割り込みの発生に応答してパイプライン処理を再開させ、前記プロセッサコアによる割り込み処理の実行完了後にパイプライン処理を再び停止させることを特徴とするマイクロプロセッサ。
（付記５）
付記１記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行開始および処理実行完了をそれぞれ検知する検知回路を備え、
前記インターロック機構は、前記補助回路の処理実行中に前記プロセッサコアにより実行されるべき処理がない場合、前記検知回路による前記補助回路の処理実行開始の検知および処理実行完了の検知にそれぞれ応答してパイプライン処理を停止および再開させることを特徴とするマイクロプロセッサ。
（付記６）
付記５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行開始に伴ってアクセスされる第１レジスタを備え、
前記検知回路は、前記第１レジスタへのアクセスの発生により前記補助回路の処理実行開始を検知することを特徴とするマイクロプロセッサ。
（付記７）
付記５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行完了に応答してセットされる第２レジスタを備え、
前記検知回路は、前記第２レジスタのセットにより前記補助回路の処理実行完了を検知することを特徴とするマイクロプロセッサ。
（付記８）
付記５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記検知回路の検知動作の許可／禁止を示す第３レジスタを備え、
前記検知回路は、前記第３レジスタが許可を示すときにのみ、検知動作を実施することを特徴とするマイクロプロセッサ。
（付記９）
付記５記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記補助回路の処理実行中にセットされる第４レジスタを備えていることを特徴とするマイクロプロセッサ。
（付記１０）
付記１記載のマイクロプロセッサにおいて、
複数の前記補助回路を備え、
前記プロセッサコアは、
前記複数の補助回路に対応してそれぞれ設けられ、対応する補助回路の処理実行開始および処理実行完了を検知する複数の検知回路と、
前記複数の補助回路の処理実行開始に伴ってアクセスされる第１レジスタと、
前記複数の補助回路にそれぞれ対応し、対応する補助回路の処理実行完了に応答してセットされる複数のビットを有する第２レジスタと、
前記複数の検知回路にそれぞれ対応し、対応する検知回路の検知動作の許可／禁止を示す複数のビットを有する第３レジスタとを備え、
前記各検知回路は、前記第３レジスタにおける対応するビットが許可を示すときにのみ、前記第１レジスタへのアクセスの発生により対応する補助回路の処理実行開始を検知するとともに、前記第２レジスタにおける対応するビットのセットにより対応する補助回路の処理実行完了を検知し、
前記インターロック機構は、前記複数の補助回路により処理が実行されかつ前記プロセッサコアにより実行されるべき処理がない場合、前記第３レジスタにおける許可を示すビットに対応する検知回路が対応する補助回路の処理実行開始を検知したときにパイプライン処理を停止させ、前記第３レジスタにおける許可を示すビットに対応する検知回路が対応する補助回路の処理実行完了を検知したときにパイプライン処理を再開させることを特徴とするマイクロプロセッサ。
（付記１１）
付記１０記載のマイクロプロセッサにおいて、
前記プロセッサコアは、前記複数の補助回路にそれぞれ対応し、対応する補助回路の処理実行中にセットされる複数のビットを有する第４レジスタを備えていることを特徴とするマイクロプロセッサ。
【００３８】
以上、本発明について詳細に説明してきたが、前述の実施形態およびその変形例は発明の一例に過ぎず、本発明はこれらに限定されるものではない。本発明を逸脱しない範囲で変形可能であることは明らかである。
【図面の簡単な説明】
【００３９】
【図１】本発明のマイクロプロセッサの一実施形態を示すブロック図である。
【図２】図１のプロセッサコアの要部を示すブロック図である。
【図３】図１のプロセッサコアの動作例を示すフローチャートである。
【図４】本発明の比較例を示すブロック図である。
【符号の説明】
【００４０】
ＢＡ０、ＢＡ１  内蔵アクセラレータ
ＢＡＳＲ  実行ステータスレジスタ
ＢＣＳＲ  実行完了ステータスレジスタ
ＢＣＷＥＲ  実行完了待ちイネーブルレジスタ
ＢＣＷＲ  実行完了待ち実行レジスタ
Ｃ０、Ｃ１  実行完了待ち制御回路
ＣＯＲＥ  プロセッサコア
ＤＢ０、ＤＢ１  データバス
ＤＥＣ  デコーダ
Ｅ０、Ｅ１  処理実行完了通知
Ｇ０、Ｇ１  ゲート回路
ＩＬＭ  インターロック機構
ＩＬＲ０、ＩＬＲ１  インターロック要求信号
ＭＰ  マイクロプロセッサ
Ｓ０、Ｓ１  処理実行開始要求
【図１】
2006244382.tif 000003
【図２】
2006244382.tif 000004
【図３】
2006244382.tif 000005
【図４】
2006244382.tif 000006