(57)【要約】【課題】ウェイト挿入における最大駆動周波数低下に対する処理性能向上又は性能品質維持可能な、マイクロプロセッサ及び画像形成装置を提供すること。【解決手段】ウェイト挿入を用いて、命令コードの処理を行う時間を延長する手段を有するマイクロプロセッサであって、レジスタを有し、特定の命令コードに対するウェイトモードの設定を、出荷又は起動時に、前記レジスタへ記憶するウェイトモード設定記憶手段３１と、ウェイトモード設定記憶手段３１により記憶されたレジスタから、該当する特定の命令コードが実行された場合、対応するウェイトモード設定読み出す、ウェイトモード設定読み出し手段３２と、ウェイトモード設定読み出し手段３２により読み出されたウェイトモード設定に従って、特定の命令コードに対し、ウェイト挿入するためのウェイト挿入手段３３とを特徴とするマイクロプロセッサ。【選択図】図４
2007249866.tif 000002
【特許請求の範囲】
【請求項１】
ウェイト挿入を用いて、命令コードの処理を行う時間を延長する手段を有するマイクロプロセッサであって、
レジスタを有し、
特定の命令コードに対するウェイトモードの設定を、出荷又は起動時に、前記レジスタへ記憶するウェイトモード設定記憶手段と、
前記ウェイトモード設定記憶手段により記憶されたレジスタから、ウェイトモード設定読み出す、ウェイトモード設定読み出し手段と、
前記ウェイトモード設定読み出し手段により読み出されたウェイトモード設定に従って、特定の命令コードに対し、ウェイト挿入するためのウェイト挿入手段と、を特徴とするマイクロプロセッサ。
【請求項２】
該マイクロプロセッサは、自己診断プログラムを有し、
前記ウェイトモード設定記憶手段は、前記自己診断プログラム実行時に検出された特定の命令コードに対し、ウェイト挿入する設定を、前記レジスタに記憶することを特徴とする請求項１に記載されたマイクロプロセッサ。
【請求項３】
該マイクロプロセッサは、ウェイトモード設定用レジスタ入出力制御回路を有し、
出荷時に、前記ウェイトモード設定用レジスタ入出力制御回路に対し、ウェイトモード設定をトリミングにより行うことを特徴とする請求項１に記載されたマイクロプロセッサ。
【請求項４】
該マイクロプロセッサは、ウェイトモード設定用不揮発性の記憶装置を有し、
出荷時に、前記ウェイトモード設定用不揮発性の記憶装置へ、ウェイトモード設定を記憶することを特徴とする請求項１に記載されたマイクロプロセッサ。
【請求項５】
請求項１に記載されたマイクロプロセッサを備えた画像形成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェイト挿入における最大駆動周波数低下に対する性能向上又は性能品質維持可能な、マイクロプロセッサ及び画像形成装置に関するものである。
【背景技術】
【０００２】
画像形成装置の印刷性能は、該画像形成装置が備えるマイクロプロセッサ（MPU：Micro Processing Unit）の処理性能に依存する。
【０００３】
そのため、マイクロプロセッサの性能指標である最大駆動周波数を実現することが、性能の良い該画像形成装置を設計する上で非常に重要となる。
【０００４】
しかし、マイクロプロセッサの最大駆動周波数は、演算命令、データ操作命令、分岐命令、入出力命令等、処理する上で最も時間がかかり複雑な命令（クリティカルな命令：インストラクション）に対し、動作可能な周波数で決定され、設置される回路ボードや使用される動作環境に影響を受けやすいため、製造者にとって、様々な使用環境下で、安定した最大駆動周波数を実現するのは、非常に難しい。
【０００５】
マイクロプロセッサで、演算命令、データ操作命令、分岐命令、入出力命令等、処理する上で最も時間がかかり複雑な命令が順次パイプライン処理された場合、複数個の命令が、レジスタリード（F）・デコード（D）・演算実行（E）・レジスタライト（W）の各ステージにて、1命令1サイクルで処理される。
【０００６】
しかし、ある命令だけ1命令1サイクルで処理不可能な場合、一般的な方法として、ウェイト信号(Low)により、ウェイト挿入され、サイクル時間が延長（パイプライン延長）され、クロック周波数が低下する。
【０００７】
このサイクル延長時間の内、最大の延長時間に基づいてサイクル時間決定されるためので、低速のクロックで動作する必要がない命令においても、ウェイト挿入された状態で動作し、マイクロプロセッサ全体の処理性能を低下させてしまう。
【０００８】
そこで、上記の問題を解決するため、ウェイト挿入によるマイクロプロセッサ性能低下に対し、ウェイト挿入を制御する方法で、マイクロプロセッサ及びマイクロプロセッサを搭載した製品性能の向上を実現しようとしている（例えば、特許文献１、２を参照。）。
【特許文献１】特開２００３−２９９６５号公報
【特許文献２】特開２００３−３６２４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、特許文献１に記述される方法では、ウェイト挿入の対象となる、特定の命令コードに対し、命令コードの一部にウェイト数を設定する方法が提案されており、効果はあるが、ウェイト挿入が必要な命令コード全てに対し、必ず対応コードが必要となり、プログラム上の変更や修正が煩雑になり、対応コード分、プログラム全体のサイズが増加してしまう。
【００１０】
また、特許文献２に記述される方法では、外部デバイス装着時の対応方法が提案されており、効果はあるが、対応範囲が限定されていることにより、それ以外でウェイトの挿入が必要な命令に対して、最適なウェイトサイクルを実現できない。
【００１１】
本発明は、上記従来技術の問題点を鑑み、ウェイト挿入における最大駆動周波数低下に対する処理性能向上又は性能品質維持可能な、マイクロプロセッサ及び画像形成装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するため、本発明のマイクロプロセッサは、ウェイト挿入を用いて、命令コードの処理を行う時間を延長する手段を有するマイクロプロセッサであって、レジスタを有し、特定の命令コードに対するウェイトモードの設定を、出荷又は起動時に、前記レジスタへ記憶するウェイトモード設定記憶手段と、前記ウェイトモード設定記憶手段により記憶されたレジスタから、ウェイトモード設定読み出す、ウェイトモード設定読み出し手段と、前記ウェイトモード設定読み出し手段により読み出されたウェイトモード設定に従って、特定の命令コードに対し、ウェイト挿入するためのウェイト挿入手段と、を備えるように構成することができる。
【００１３】
これによって、マイクロプロセッサは、ウェイト挿入における最大駆動周波数低下に対し、処理性能の向上又は性能品質の維持を実現することができる。
【００１４】
また、上記目的を達成するため、本発明のマイクロプロセッサは、自己診断プログラムを有し、前記ウェイトモード設定記憶手段は、前記自己診断プログラム実行時に検出された特定の命令コードに対し、ウェイト挿入する設定を、前記レジスタに記憶するように構成することができる。
【００１５】
これによって、マイクロプロセッサは、製品出荷時に予想していない使用環境下において、発生したウェイト挿入の対象となる命令コードに対し、対応を行うことが可能であり、処理性能品質を維持することができる。
【００１６】
また、上記目的を達成するため、本発明のマイクロプロセッサは、ウェイトモード設定用レジスタ入出力制御回路を有し、出荷時に、前記ウェイトモード設定用レジスタ入出力制御回路に対し、ウェイトモード設定をトリミングにより行うように構成することができる。
【００１７】
これによって、マイクロプロセッサは、製品出荷時の段階から、ウェイト挿入における最大駆動周波数低下に対し、処理性能の向上又は性能品質の維持を実現することができる。
【００１８】
また、上記目的を達成するため、本発明のマイクロプロセッサは、ウェイトモード設定用不揮発性の記憶装置を有し、出荷時に、前記ウェイトモード設定用不揮発性の記憶装置へ、ウェイトモード設定を記憶するように構成することができる。
【００１９】
これによって、マイクロプロセッサは、製品出荷時の段階から、ウェイト挿入における最大駆動周波数低下に対し、処理性能の向上又は性能品質の維持を実現することができる。
【００２０】
また、上記目的を達成するため、本発明の画像形成装置は、請求項１に記載のマイクロプロセッサを備えるよう構成することができる。
【発明の効果】
【００２１】
本発明は、ウェイト挿入における最大駆動周波数低下に対する処理性能向上又は性能品質維持可能な、マイクロプロセッサ及び画像形成装置を提供することができる。
【発明を実施するための最良の形態】
【００２２】
以下、本発明の好適な実施の形態について、図面を用いて詳細に説明する。
【実施例】
【００２３】
図１は、本発明の実施例に係るマイクロプロセッサ１０の構成例を示す図である。
【００２４】
図１において、実施例に係るマイクロプロセッサ１０は、汎用レジスタ１１、シーケンスユニット（SCU：Sequence Unit）１２、演算回路（ALU：Arithmetic and Logic Unit）１３、クロックジェネレータ（CG：Clock Generator）１４、ウェイトモード設定用レジスタ１５、バス１６a〜cを備えている。
【００２５】
汎用レジスタ１１は、一度に扱える情報量は少ないが、極めて高速な記憶素子であり、メモリから、マイクロプロセッサ（以降、MPUと言う。）１０が演算処理等を行う際に必要な命令コードやデータ等を読み込み、一時的に記憶しておく（以降、フェッチと言う。）ものである。また、汎用レジスタは、メモリから転送された命令コードを一時的に記憶しておく命令レジスタIR（IR：instruction register）、演算結果等を一時的に記憶しておくデータレジスタDR（DR：data register）として使用される。
【００２６】
シーケンスユニット（以降、SCUと言う。）１２は、MPU１０の制御部であり、命令レジスタ（以降、IRと言う。）に転送された命令コードを解読（以降、デコードと言う。）し、演算指令等の制御信号を送出し、MPUを制御するものである。
【００２７】
演算回路（以降、ALUと言う。）１３は、MPU１０の演算部であり、命令実行の段階において、SCU１２からの制御信号により、入力されたデータの算術演算及び論理演算を行うものである。
【００２８】
クロックジェネレータ（以降、CGと言う。）１４は、SCU１２からのクロック制御信号に従い、クロックを送出する。サイクル時間の延長を行うためのウェイト挿入は、前記SCU１２から、ウェイト挿入したクロック送出を指示する制御信号が送られてくるため、それに従い、ウェイトを挿入したサイクル時間のクロックを、各回路へ送出する。
【００２９】
ウェイトモード設定用レジスタ１５は、レジスタが備える複数ビットに、ウェイト挿入が必要な命令に対応付けられた、ウェイトモード設定情報を記憶しておくものである。また、前記ウェイトモード設定用レジスタ１５は、該MPU１０を備えた装置に電源が投入された際、後述する自己診断プログラムにより、ウェイト挿入が必要な命令コードを検出し、その結果から、対応付けられたウェイトモード設定情報を記憶する。
【００３０】
バス１６a〜cは、アドレスバス１６a、データバス１６b及び制御バス（コントロールバス）１６cであり、各回路がデータをやり取りするための伝送路である。
【００３１】
アドレスバス１６aは、メモリ上のプログラムやデータを指定するためのアドレス情報をやり取りするためのバス、データバス１６bは、バスに接続されたデバイス同士がやり取りするためのデータが通るバス、制御バス１６cは、SCU１２を含むMPU１０内の制御部より送出される制御信号が通るバスである。
【００３２】
本発明のMPU１０が、従来のMPU１０と異なる点は、ウェイトモード設定用レジスタ１７が備わっているか否かである。
【００３３】
図２は、本発明の実施例に係るMPU１０の例としてあげるSIMD（Single Instruction/Multiple Data）プロセッサ２０の構成例を示す図である。
【００３４】
本実施例においてSIMDプロセッサ２０を例としてあげる理由は、SIMDプロセッサ２０の特性が、実施例として取り上げ易いためであって、本発明はMPU１０全般に適用可能なものである。
【００３５】
SIMDプロセッサ２０は、MPU１０において、1つの命令で複数のデータを扱う処理方式を有し、画像処理、暗号化及び復号化等によく使用される並列処理プロセッサである。
【００３６】
以下に、SIMDプロセッサ２０の主な構成及び処理の流れについて説明する。
【００３７】
SIMDプロセッサ２０は、グローバルプロセッサ（GP：Global Processor）２１、プログラムRAM２２、データRAM２３、バス２４、プロセッサエレメント（PE：Processor Element）２５を備えている。
【００３８】
SIMDプロセッサ２０が備えるグローバルプロセッサ（以降、GPと言う。）２１は、プログラムRAM上にあった命令コードをデコードし、デコードされた結果から、制御信号を、制御バス２４を介して、対象となる各回路に送出するものである。GP２１から送出される制御信号の先には、プロセッサエレメント（以降、PEと言う。）２５が複数個ある。前記PE２５は、演算データを保持する複数個のRレジスタＲｎ、演算回路であるALU２５３、フラグレジスタFLAG（FF：flag register Flag）２５２、アキュムレータACC（ACC：accumulator）２５４で構成されており、外部端子入出力２６から入力されたデータをRレジスタ２５１に保持し、ALU２５３により演算処理を行い、その結果をアキュムレータACC２５４に格納し、Rレジスタ２５１に戻され、外部端子入出力２６へ出力される。
【００３９】
このように、SIMDプロセッサ２０は、前記GP２１から、複数個のPE２５ｎへ同一の制御信号が送出され、その指示に従い、前記PE２５が演算処理を行っており、複数個のPE２５nによって並列演算処理を行うものである。
【００４０】
ここで、SIMDプロセッサ２０の最大駆動周波数について考えてみると、SIMDプロセッサ２０におけるPE２５の比率が大きいため、処理する上で最も時間がかかり複雑な命令を実行させた場合、複数個のPE２５ｎを同時に動作させるためには1クロックの内、多くの消費電力が必要となる。また、SIMDプロセッサ２０がCMOS（Complementary Metal Oxide Semiconductor）で構成される場合は、その性質上、ゲートが０から１、１から０と変化したときに電流を消費し、扱うデータによっては全て同時に変化する場合があり、その消費電力の急激な変化によって不安定な状態となり、1クロック内で安定した状態へ回復するのが難しいため、消費電力抑制等を行う必要がある。よって、安定した動作レベルを保証するため、最大駆動周波数を低速クロックへと変更しなくてはならない。
【００４１】
本発明は、上記のような例を含む、MPU１０全般に係るウェイト挿入における最大駆動周波数低下に対する処理性能向上又は性能品質維持を実現するものである。
【００４２】
図３は、本発明の実施例に係るMPU１０の動作の流れを示す図である。
【００４３】
MPU１０の基本機能は、命令コードの読み出し（F：命令フェッチ）、命令コードのデコード（D：命令デコード）、算術及び論理演算の実行（E：演算実行）、実行結果の書き込み（W：結果格納）であり、命令コードの読み出し、デコード及び実行の順の流れで処理が行われている。
【００４４】
まず、命令フェッチ（F）では、メモリ上から、実行する命令コードの読み出しを行うため、命令コードのアドレスが一時的に記憶されているプログラムカウンタ（PC：Program Counter）４１から、アドレスバス１６aを介して、メモリへアドレス信号が送られる。その結果、命令キャッシュ４２を介して、IR４３へ命令コードがフェッチされる。
【００４５】
次に、命令デコード（D）では、フェッチされた命令コードは、SCU１２によってデコードされ、その結果に応じた制御信号が、制御バス１６cを介してCG１４へ送られ、前記CG１４は、制御信号に従ったクロックを各回路に送出する。この時、ウェイトモード設定用レジスタ１５に記憶されている、ウェイト挿入が必要な命令コードに対応付けられたウェイトモード設定に基づき、前記SCU１２から、ウェイト挿入したクロック送出を指示する制御信号がCG１４に送られ、前記CG１４によって各回路にクロックが送出される。
【００４６】
その後、演算実行（E）では、データバス１６bを介してDR１１に記憶された演算データを、ALU１３により演算実行し、結果格納（W）では、その結果をアキュムレータACC２５４へ格納する。
【００４７】
そして、プログラムカウンタ４１（以降、PCと言う。）を1進め、命令フェッチ（F）、命令デコード（D）、演算実行（E）、結果格納（W）の順番に繰り返す。その間、ウェイトモード設定に基づき、対象となる命令コードに対し、最適なウェイト挿入の制御がSCU１２により行われる。
【００４８】
図４は、本発明の実施例に係る主要部の構成例を示すブロック図である。
【００４９】
図４の構成は、ウェイトモード設定記憶手段３１、ウェイトモード設定読み取り手段３２及びウェイト挿入手段３３に分かれている。
【００５０】
ウェイトモード設定記憶手段３１は、該MPU１０を備えた装置に電源が投入された際、自己診断プログラムにより、ウェイト挿入が必要な命令コードを検出し、その結果に基づいたウェイトモード設定情報を、ウェイトモード設定用レジスタ１５へ記憶するものである。前記ウェイトモード設定用レジスタ１５は、予め、命令コード、命令（オペレーション部）とアドレス（オペランド部）の組み合わせ、又は、これらの組み合わせをグループ化したもの等に分類されたウェイト挿入の対象に対し、レジスタの１ビットが対応付けられており、その１ビットに、ウェイトモード設定、すなわち、ウェイト挿入ON、OFFの情報が記憶される。
【００５１】
また、前記ウェイトモード設定用レジスタ１５に対し、リセット命令が実行された場合の前記ウェイトモード設定情報の初期設定は、製品出荷時の設定情報が用いられる。製品出荷時のウェイトモード設定情報は、製品出荷を行う際の検査段階において、利用者の使用状況を考慮した該MPU１０の動作検査を実施し、その結果を基に、ウェイトモード設定情報を記憶しておく。記憶する方法例として、不揮発性の記憶装置NVRAM（Non-Volatile Random Access Memory）等（以降、不揮発性メモリと言う。）に記憶する方法や、ウェイトモード設定用レジスタ１５の入出力回路に対し、レーザトリミングを行うことで設定する方法等がある。
【００５２】
前記自己診断プログラムは、該MPU１０の動作検証を行うための各命令コードが記述されたプログラムであって、前記自己診断プログラムを、該MPU１０において実行し、その結果を検証することで、該MPU１０が動作仕様に従い正常に動作しているか否かを判断するものである。よって、前記自己診断プログラムの中に、ウェイト挿入が必要と思われる命令コードを予め入れておくことで、ウェイト挿入が必要か否かを検証することができる。
【００５３】
ウェイトモード設定読み取り手段３２は、ウェイトモード設定用レジスタ１５の対応付けられたビットから、ウェイトモード設定記憶手段３１により記憶されたウェイトモード設定情報を読み取るものである。読み取られたウェイトモード設定情報は、実行される命令コードがウェイト挿入の対象であるか否かの判断に使用される。また、前記ウェイトモード設定読み取り手段３２の中で行われる、実行される命令コードがウェイト挿入の対象か否かの判断は、SCU１２のデコード時に行われる。
【００５４】
ウェイト挿入手段３３は、前記ウェイトモード設定読み取り手段３２により、読み取られたウェイトモード設定情報に基づき、実行される命令コードがウェイト挿入の対象であるか否かを判断し、ウェイト挿入の対象と判断された場合、ウェイト挿入したクロック送出を指示する制御信号を、制御バス１６cを介して、クロックを各回路に送出するCG１４へ送る。また、命令コードがウェイト挿入の対象であるか否かについての判断方法は、ウェイトモード設定用レジスタには、予め、命令コード、命令（オペレーション部）とアドレス（オペランド部）の組み合わせ、又は、これらの組み合わせをグループ化したもの等に分類されたウェイト挿入の対象に対し、レジスタの各１ビットが対応付けられているため、判定中の命令コードに対応付けられたビットの設定情報を参照することで、判断することができる。
【００５５】
以下に、ウェイト挿入における最大駆動周波数低下に対する処理性能向上又は性能品質維持を実現する流れを示す。
【００５６】
本発明は、該MPU１０を備えた装置に電源が投入された際、自己診断プログラムにより動作検証され、ウェイトモード設定記憶手段３１により、前記自己診断プログラムにより検出されたウェイト挿入の対象となる命令コードに対応したウェイトモード設定情報が、ウェイトモード設定用レジスタ１５に記憶される。次に、該MPU１０が動作中に実行される命令コードがデコードされる際、前記ウェイトモード設定読み取り手段３２により、対象となる命令コードのウェイトモード設定情報を読み取り、ウェイト挿入手段３３により、読み取られたウェイトモード設定情報に基づいて、実行される命令コードがウェイト挿入の対象であるか否かを判断し、ウェイト挿入の対象であれば、ウェイト挿入したクロック送出を指示する制御信号を、制御バス１６cを介してCG１４へ送り、CG１４から各回路へクロックが送出されることで、実現するものである。
【００５７】
図５は、本発明の実施例に係るウェイトモード設定情報を記憶する処理の流れを示すフローチャートである。
【００５８】
図５は、自己診断プログラムによる動作検証中に、ウェイトモード設定情報を、ウェイトモード設定記憶手段３１により、ウェイトモード設定用レジスタへ記憶する流れを示すものである。
【００５９】
まず、該MPU１０を備えた装置に電源が投入される（Ｓ１０１）。
【００６０】
次に、該MPU１０は、自己診断プログラムをメモリ上へ読み出し（Ｓ１０２）、読み出した自己診断プログラムの実行を開始する（Ｓ１０３）。
【００６１】
次に、自己診断プログラムの中で、ウェイト挿入の検証対象となっている各命令コードを順次実行する（Ｓ１０４）。
【００６２】
次に、実行中の命令コードに対し、ウェイト挿入が必要か否かを、該MPU１０の最大駆動周波数の１クロックを基に、１クロック内で１命令が実行可能か否かによって判定する（Ｓ１０５）。
【００６３】
実行中の命令コードがウェイト挿入の対象と判断された場合（Ｓ１０５がYES）、ウェイトモード設定記憶手段３１により、ウェイトモード設定用レジスタ１５の、命令コードに対応した所定のビットに対し、ウェイト時間を挿入する旨を示す設定値を設定し（例えば、ウェイト時間を挿入する場合は、１を設定する等。）、命令コードに対応したウェイトモード設定情報として記憶する（Ｓ１０６）。この時、ウェイトモード設定用レジスタに読み出されている、製品出荷時の初期設定は、自己診断プログラムによる命令コード検証後、前記ウェイトモード設定記憶手段３１により、設定情報を上書きされ、最新の情報へと更新される。
【００６４】
また、検証中の命令コードがウェイト挿入の対象でない判断された場合（Ｓ１０５がNO）、前記ウェイトモード設定記憶手段３１は行われず、ウェイトモード設定用レジスタ１５には、製品出荷時のウェイトモード設定情報が記憶された状態となる。
【００６５】
次に、自己診断プログラムよる動作検証終了を判定する（Ｓ１０７）。
【００６６】
自己診断プログラムによる動作検証終了の場合（Ｓ１０７がYES）、自己診断プログラムを終了する。
【００６７】
また、自己診断プログラムによる動作検証中の場合（Ｓ１０７がNO）、自己診断プログラムが動作検証を終了するまで、各項目の動作検証を継続して行う。
【００６８】
このように、ウェイトモード設定用レジスタ１５には、該MPU１０が搭載された装置に電源が投入された時、自己診断プログラムによって、ウェイト挿入が必要な命令コードが検出され、その結果を基づいて、ウェイトモード設定記憶手段３１により、最新の動作環境に応じたウェイトモード設定情報が記憶される。
【００６９】
図６は、本発明の実施例に係るウェイト挿入されたクロック送出の流れを示すフローチャートである。
【００７０】
図６は、図５で示したウェイトモード設定記憶手段３１により記憶されたウェイトモード設定情報が、実行時に、ウェイトモード設定読み取り手段３２により読み取られ、ウェイトが挿入されたクロックが、各回路に送出されるまでの流れを示すものである。
【００７１】
まず、該MPU１０は、実行しようとしている命令コードのアドレスを記憶したPC４１から、アドレスバス１６aを介して、命令キャッシュ４２へアドレス信号を送る（Ｓ２０１）。
【００７２】
次に、該MPU１０は、命令キャッシュ４２から、制御バス１６cを介して、命令レジスタIR１１に制御信号が送られ、メモリから命令コードを命令レジスタIRへフェッチする（Ｓ２０２）。
【００７３】
次に、命令レジスタIR１１から、制御バス１６cを介して、SCU１２へ制御信号が送られ、SCU１２は、命令レジスタIR１１の命令コードをデコードする（Ｓ２０３）。
【００７４】
次に、ウェイトモード設定読み取り手段３２により、ウェイトモード設定用レジスタ１５に記憶されたウェイトモード設定情報を読み取る（Ｓ２０４）。
【００７５】
次に、ウェイト挿入手段３３により、前記ウェイトモード設定読み取り手段３２により読み取られたウェイトモード設定情報に基づき、実行される命令コードがウェイト挿入の対象であるか否かを判定する（Ｓ２０５）。
【００７６】
実行される命令コードがウェイト挿入の対象である場合（Ｓ２０５がYES）、ウェイト挿入手段３３は、ウェイト挿入したクロック送出を指示する制御信号を、制御バス１６cを介して、クロックを各回路に送出するCG１４へ送る（Ｓ２０６）。
【００７７】
また、実行される命令コードがウェイト挿入の対象でない場合（Ｓ２０５がNO）、ウェイト挿入手段３３は、最大駆動周波数のクロック送出を指示する制御信号を、制御バス１６cを介して、クロックを各回路に送出するCG１４へ送る（Ｓ２０７）。
【００７８】
最後に、ウェイト挿入手段３３は、SCU１２から送られたクロック送出を指示する制御信号に従い、CG１４から各回路へクロックを送出する（Ｓ２０８）。
【００７９】
このように、該MPU１０が動作中に実行される命令コードがデコードされる際、ウェイトモード設定読み取り手段３２により、対象となる命令コードのウェイトモード設定情報を読み取り、ウェイト挿入手段３３により、読み取られたウェイトモード設定情報に基づいて、実行される命令コードがウェイト挿入の対象であるか否かを判断し、ウェイト挿入の対象であれば、ウェイト挿入したクロック送出を指示する制御信号を、制御バス１６cを介してCG１４へ送られ、CG１４から各回路へクロックが送出される。
【００８０】
よって、ウェイト挿入における最大駆動周波数の低下に対し、該MPU１０全体の処理性能の向上又は性能品質の維持を実現することができる。
【００８１】
図７は、本発明の実施例に係るパイプライン処理の様子を示す図である。
【００８２】
図７（a）は、該MPU１０の最大駆動周波数で動作した場合のパイプライン処理の様子を示している。それに対し、図７（b）は、該MPU１０が特定の命令によって最大駆動周波数が変更された場合のパイプライン処理の様子を示している。
【００８３】
図７（a）と（b）を比較すると、（a）の最大駆動周波数fmax1より（b）の最大駆動周波数fmax2の方が低く、ウェイト時間が挿入された状態で全ての命令が動作していることから、該MPU１０の処理性能が低下していることが分かる。
【００８４】
それに対し、図７（c）は、ウェイト挿入を行う必要がある命令に対し、ウェイトを挿入した場合の様子で、図７（b）と（c）が異なる点は、（b）の場合、該MPU１０の全ての命令において、ウェイト挿入された最大駆動周波数fmax2の状態であるのに対し、（c）の場合、ウェイト挿入対象となる命令実行時のみ、ウェイト挿入された駆動周波数fmax2の状態となり、その他の命令に関しては、最大駆動周波数fmax1の状態で動作していることである。
【００８５】
このように、ウェイト挿入したクロック送出を、対象となる命令実行時に限定することで、ウェイト挿入における最大駆動周波数の低下を限定した命令の動作範囲に止め、該MPU１０全体の処理性能向上又は性能品質の維持を実現している。
【００８６】
以上のように、本発明の実施例によれば、該MPU１０を備えた装置に電源が投入された際、自己診断プログラムが実行され、ウェイトモード設定記憶手段３１により、前記自己診断プログラムにより検出されたウェイト挿入の対象となる命令コードに対応したウェイトモード設定情報が、ウェイトモード設定用レジスタ１５に記憶され、該MPU１０が動作中に実行される命令コードがデコードされる際、前記ウェイトモード設定読み取り手段３２により、対象となる命令コードのウェイトモード設定情報を読み取り、ウェイト挿入手段３３により、読み取られたウェイトモード設定情報に基づいて、実行される命令コードがウェイト挿入の対象であるか否かを判断し、ウェイト挿入の対象であれば、ウェイト挿入したクロック送出を指示する制御信号を、制御バス１６cを介してCG１４へ送り、CG１４から各回路へクロックが送出されることで、ウェイト挿入における最大駆動周波数の低下を限定した命令の動作範囲に止め、該MPU１０全体の処理性能の向上又は性能品質の維持を実現することができる。
【００８７】
また、該MPU１０を備えた装置に電源が投入された際、自己診断プログラムが実行され、ウェイトモード設定記憶手段３１により、前記自己診断プログラムにより検出されたウェイト挿入の対象となる命令コードに対応したウェイトモード設定情報が、ウェイトモード設定用レジスタ１５に記憶されることで、使用環境による影響等で動作に変化が生じた該MPU１０の状態を、電源投入時に検出でき、使用環境の変化に柔軟に対応し、性能品質の維持を実現することができる。
【００８８】
各実施例に基づき本発明の説明を行ってきたが、上記実施例に挙げた形状に、その他の要素との組み合わせ等、ここで示した要件に、本発明が限定されるものではない。
【００８９】
これらの点に関しては、本発明の主旨をそこなわない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
【図面の簡単な説明】
【００９０】
【図１】本発明の実施例に係るマイクロプロセッサの構成例を示す図である。
【図２】本発明の実施例に係るマイクロプロセッサの例としてあげるSIMDプロセッサの構成例を示す図である。
【図３】本発明の実施例に係るマイクロプロセッサの動作の流れを示す図である。
【図４】本発明の実施例に係る主要部の構成例を示すブロック図である。
【図５】本発明の実施例に係るウェイトモード設定情報を記憶する処理の流れを示すフローチャートである。
【図６】本発明の実施例に係るウェイト挿入されたクロック送出の流れを示すフローチャートである。
【図７Ａ】本発明の実施例に係るパイプライン処理の様子を示す図である。
【図７Ｂ】本発明の実施例に係るパイプライン処理の様子を示す図である。
【図７Ｃ】本発明の実施例に係るパイプライン処理の様子を示す図である。
【符号の説明】
【００９１】
１０  マイクロプロセッサ（MPU）
１１  汎用レジスタ
１２  シーケンスユニット（SCU）
１３  演算回路（ALU）
１４  クロックジェネレータ（CG）
１５  ウェイトモード設定用レジスタ
１６a、１６b、１６c  バス
【図１】
2007249866.tif 000003
【図２】
2007249866.tif 000004
【図３】
2007249866.tif 000005
【図４】
2007249866.tif 000006
【図５】
2007249866.tif 000007
【図６】
2007249866.tif 000008
【図７Ａ】
2007249866.tif 000009
【図７Ｂ】
2007249866.tif 000010
【図７Ｃ】
2007249866.tif 000011