(57)【要約】【課題】少ない回路追加によりプロセッサエレメントの消費電力を低減するとともにプロセッサエレメントの動作効率を向上させることができるＳＩＭＤ型マイクロプロセッサを提供する。【解決手段】演算結果から自身の動作条件を設定可能なＴレジスタ２６を備えたＰＥ３を複数備えるとともに、ＰＥ３に対する制御信号を出力するＧＰ４を有するＳＩＭＤ型マイクロプロセッサ２において、各ＰＥ３が、Ｔレジスタ２６に基づいて、内部を非動作状態とする信号を出力するとともに、内部に供給されるクロック信号を停止させる制御信号切替器４０を備えていることを特徴とする。【選択図】図１
2013161271.tif 000002
【特許請求の範囲】
【請求項１】
演算結果から自身の動作条件を設定可能な条件レジスタを備えたプロセッサエレメントを複数備えるとともに、前記プロセッサエレメントに対する制御信号を出力するグローバルプロセッサを有するＳＩＭＤ型マイクロプロセッサにおいて、
各前記プロセッサエレメントが、前記条件レジスタに基づいて、内部を非動作状態とする信号を出力するとともに、内部に供給されるクロック信号を停止させる制御信号切替手段を備えていることを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
前記グローバルプロセッサが、
自身が実行する命令を格納する命令格納手段と、
前記命令格納手段に格納されている命令を読み出す命令読み出し手段と、
前記命令読み出し手段が読み出した命令をデコードするデコード手段と、
前記デコード手段が現在デコードする命令の１つ前にデコードした命令における条件フラグを記憶する条件フラグ記憶手段と、
前記条件フラグ記憶手段に記憶された１つ前にデコードした命令の条件フラグと現在デコードした命令の条件フラグとの比較結果に基づいて動作制御信号を生成し出力する動作制御信号生成手段と、を備え、
前記制御信号切替手段が、前記動作制御信号生成手段が出力した動作制御信号と、前記条件レジスタに基づいて、前記内部を非動作状態とする信号を出力するとともに、内部に供給される前記クロック信号を停止させる
ことを特徴とする請求項１に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項３】
前記制御信号切替手段が、前記グローバルプロセッサから設定可能な動作可否フラグレジスタを備え、
前記動作可否フラグレジスタに非動作を示す値が設定された場合は、前記条件レジスタの値にかかわらず前記内部を非動作状態とする信号を出力するとともに、内部に供給される前記クロック信号を停止させる
ことを特徴とする請求項１または２に記載のＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つの演算命令により複数の画像データ等を並列処理するＳＩＭＤ（Single Instruction-stream Multiple Data-stream）型マイクロプロセッサに関する。
【背景技術】
【０００２】
近年、デジタル複写機やファクシミリ装置等の画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。こういった画像処理には複数の画像データに対して同じ処理をすることが多く、高速性を高めるため、１命令で１つのデータを処理するＳＩＳＤ（Single Instruction-stream Single Data-stream）方式のマイクロプロセッサより、１命令で複数のデータを同時処理するＳＩＭＤ（Single Instruction-stream Multiple Data-stream）方式のマイクロプロセッサ（ＳＩＭＤ型マイクロプロセッサ）が用いられることが多い。
【０００３】
ＳＩＭＤ型マイクロプロセッサは、算術論理演算器（ＡＬＵ）と演算レジスタを備えたプロセッサエレメントと呼ばれるブロックを備え、複数のデータを一度に処理するためにプロセッサエレメントを複数個装備している。プロセッサエレメントには算術論理演算に利用する汎用レジスタが装備されており、汎用レジスタのデータと演算レジスタの演算、汎用レジスタのデータと命令コード中に記述された数値データとの演算等を行う。
【０００４】
ＳＩＭＤ型マイクロプロセッサは通常１クロックサイクルで１命令を処理し、１命令でプロセッサエレメントの個数分のデータを一度に処理することができる。ＳＩＭＤ型マイクロプロセッサの性能を表すには、動作周波数やプロセッサエレメントの個数つまり１命令で処理できるデータの数などが重要な要素となる。
【０００５】
また、１つのプロセッサエレメントで扱えるデータビットサイズを増やし、全ビットを均等に分割してひとつのプロセッサエレメントで扱えるデータ数を増やしているＳＩＭＤ型マイクロプロセッサが提案されている（例えば、特許文献１を参照）。この種のＳＩＭＤ型マイクロプロセッサの特徴としては、扱うデータのビットサイズが多いときは全ビットを１つのデータとして処理し、扱うデータのビットサイズが小さいときは一度に処理できるデータ数を増やすことができるというメリットをもつ。
【０００６】
特許文献１に記載されているようなＳＩＭＤ型マイクロプロセッサでは、例えば１つのプロセッサエレメントで扱うデータサイズを３２ビット、プロセッサエレメントの個数を２５６個とした場合、１サイクルで同時に処理できるデータ数は、データサイズが３２ビットの場合２５６データ、データサイズが１６ビットの場合は２分割できるため２５６×２=５１２データ、データサイズが８ビットに至っては４分割できるため２５６×４=１０２４データを一度に処理することができる。
【０００７】
また、ＳＩＭＤ型マイクロプロセッサにおいて装備しているプロセッサエレメント全てを使用したり、データサイズを全て使用したりするとは限らず、例えば１つのＳＩＭＤ型マイクロプロセッサに３５２個のプロセッサエレメントを装備していた場合、入力するデータの種類によっては１２８個のプロセッサエレメントや２５６個のプロセッサエレメントしか使用しない場合もある。２５６個のプロセッサエレメントを使用する場合、残りのプロセッサエレメントは９６個で、１２８個の場合、残りは２２４個となる。また、上述したデータサイズが３２ビットのプロセッサエレメントの場合、１６ビットしか使用しない場合、各プロセッサエレメントでは下位もしくは上位のどちらかのみで演算が行えればよい。
【０００８】
上述したように、動作するプロセッサエレメントと動作しないプロセッサエレメントがある場合は、特許文献１、２などに記載されているような条件レジスタによって切り替えられる。
【０００９】
条件レジスタは各プロセッサエレメントにレジスタとして装備してあり、１プロセッサエレメントに１以上の条件フラグビットを有する。条件レジスタのビットを参照して各プロセッサエレメントの演算器の演算の可否や、Ａレジスタなどの出力用レジスタに格納するか否かが決定される。たとえば条件レジスタのＴフラグが１であった場合演算を実行、つまりＡレジスタを更新し、Ｔフラグが０であった場合演算を非実行、つまりＡレジスタは更新しないという動作となる。
【００１０】
ＳＩＭＤ型マイクロプロセッサにおけるデータ処理の中に、規則性をもったプロセッサエレメントのみ演算を行うことがよくある。例えば偶数のプロセッサエレメント（ＰＥ）番号をもったプロセッサエレメントだけを演算するとか、３の倍数（０，３，６，９，…）のＰＥ番号を持ったプロセッサエレメントだけを演算するとかである。この場合も演算を行う命令の前にＴフラグをセットしておき、対象のプロセッサエレメントのみを動作させる。
【発明の概要】
【発明が解決しようとする課題】
【００１１】
従来のＳＩＭＤ型マイクロプロセッサでは動作するプロセッサエレメントと動作しないプロセッサエレメントとの区別を、条件レジスタに設定することで行っていた。例えば、出力レジスタであるＡレジスタの書き込み制御を条件レジスタであるＴフラグの状態によりＡレジスタの書き込みの制御信号をネゲートする。つまり、基本的にＡレジスタへの書き込みの実行／非実行を切り替えているのみであった。
【００１２】
また、一般的なパイプライン処理を行うＳＩＭＤ型マイクロプロセッサでは、図８に示すように、例えば、プログラムメモリよりプログラムカウンタに一致したアドレスの命令コードをロードするフェッチ、フェッチされた命令コードがどの命令であるか、また命令のオペランドやオプションの種類などから、グローバルプロセッサやプロセッサエレメントへの制御信号を生成するためのデコード、デコードからの制御信号をもとにデータパスなどの演算器を実行する演算のステージに分けられる。図８の例ではパイプラインが３段となる。演算の後に、別のレジスタに値を書き込むライトバックや、メモリアクセスなどのステージもあるが、本発明では関連しないため省略する。
【００１３】
図８では命令ＩＮＳＴ１〜ＩＮＳＴ３までの３つの命令がパイプラインで順にステージごとに動作していることを表している。パイプライン処理によって、本来３クロック必要な１命令の処理が実質１クロックで動作することになる。
【００１４】
図８においてＩＮＳＴ１が条件レジスタを設定する命令であった場合、ＩＮＳＴ１によって更新された条件レジスタを参照するためには、２サイクル後の確定以降にしか使用できず、ＩＮＳＴ２の実行時に参照することはできない。
【００１５】
本発明はかかる問題を解決することを目的としている。
【００１６】
すなわち、本発明は、少ない回路追加によりプロセッサエレメントの消費電力を低減するとともにプロセッサエレメントの動作効率を向上させることができるＳＩＭＤ型マイクロプロセッサを提供することを目的としている。
【課題を解決するための手段】
【００１７】
上記に記載された課題を解決するために請求項１に記載された発明は、演算結果から自身の動作条件を設定可能な条件レジスタを備えたプロセッサエレメントを複数備えるとともに、前記プロセッサエレメントに対する制御信号を出力するグローバルプロセッサを有するＳＩＭＤ型マイクロプロセッサにおいて、各前記プロセッサエレメントが、前記条件レジスタに基づいて、内部を非動作状態とする信号を出力するとともに、内部に供給されるクロック信号を停止させる制御信号切替手段を備えていることを特徴とするＳＩＭＤ型マイクロプロセッサである。
【発明の効果】
【００１８】
請求項１に記載の発明によれば、プロセッサエレメントに制御信号切替手段を備えたことにより、各プロセッサエレメントの条件レジスタの状態によりプロセッサエレメント内の各回路動作の実行／非実行を決定でき、動作しないプロセッサエレメントの回路を止め、消費電力を低減することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサの構成図である。
【図２】図１に示された制御信号切替器の構成を示した構成図である。
【図３】本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサの構成図である。
【図４】図３に示された制御信号切替器の構成を示した構成図である。
【図５】図３に示されたＳＩＭＤ型マイクロプロセッサの動作を示したフローチャートである。
【図６】本発明の第３の実施形態にかかるＳＩＭＤ型マイクロプロセッサの制御信号切替器の構成を示した構成図である。
【図７】ＥＸＥフラグを設定する命令を含むプログラムの例である。
【図８】従来のＳＩＭＤ型マイクロプロセッサのパイプラインを示したタイミングチャートである。
【発明を実施するための最良の形態】
【００２０】
（第１実施形態）
以下、本発明の第１の実施形態を、図１及び図２を参照して説明する。図１は、本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサの構成図である。図２は、図１に示された制御信号切替器の構成を示した構成図である。
【００２１】
図１に示したＳＩＭＤ型マイクロプロセッサ２は、グローバルプロセッサ（ＧＰ）４と、複数のプロセッサエレメント（ＰＥ）３と、を備えている。
【００２２】
ＧＰ４は、図示しないプログラムメモリに格納されているプログラムに記述された命令に従ってＳＣＵ（シーケンシャル・コントロール・ユニット；Sequential Control Unit）３６でデコードされた制御信号を各ＰＥ３に出力して、ＰＥ３の制御を行う。ＧＰ４は、図示しない算術論理演算装置（ＡＬＵ）も備えている。ＧＰ４はＡＬＵの演算結果などを汎用レジスタ（Ｇレジスタ）３４に保持する。ＳＣＵ３６はプログラムメモリから読み出された命令コードをデコードするデコーダを備え、そのデコーダでどの命令を表しているかをデコードする。デコーダからの命令信号から制御信号発生回路等により、ＧＰ４にある各回路の制御信号や、ＰＥ３に対する各制御信号を発生する。
【００２３】
図１では、ＧＰ４から出力するＰＥ３に対する制御信号経路をＰＥ制御信号３８として記載している。また、ＧＰ４と各ＰＥ３との間には、ＧＰ４の汎用レジスタ（Ｇレジスタ）３４から一度に全ＰＥ３にデータを転送する経路（ＧＡバス）３０と、各ＰＥ３のＡレジスタ２４からＧレジスタにデータを転送する経路（ＡＧバス）３２と、を有する。
【００２４】
プロセッサエレメント３は、例えば、Ｒ０〜Ｒ３１までの３２本の汎用レジスタ１０と、汎用レジスタ１０からのデータをシフト処理若しくはデータ拡張処理するシフタ１２と、算術論理演算装置（ＡＬＵ）２０と、算術論理演算装置２０への２つの入力データを一旦保持する第１の記憶手段１６及び第２の記憶手段１８と、シフタ１２や算術論理演算装置２０の演算結果を保持する演算レジスタ（Ａレジスタ）２４と、演算結果により設定されるフラグデータを保持するＰＰレジスタ２２と、算術論理演算装置２０の結果に基づいて、以後（次命令）の当該ＰＥにおける演算の実行または非実行を制御する（演算結果から自身の動作条件を設定可能な）条件フラグを複数ビット持つＴレジスタ２６（条件レジスタ）と、から構成されている。
【００２５】
第１の記憶手段１６には、ＧＰ４のＳＣＵ３６で命令コードから抜き出された即値データを転送することも可能である。第１の記憶手段１６への即値データの転送はＩＭＭ１４として示されている。即値は命令コードに１種類しか含まれないため、通常全プロセッサエレメントのＩＭＭ１４は、同じデータである。
【００２６】
図１に示す本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２では、プロセッサエレメントの数は３５２とし、特に指定のないレジスタのサイズは３２ビットとする。また、レジスタのサイズの３２ビットに対してレジスタの分割数は２とする。３２本の汎用レジスタ１０は、図示していないが、外部装置（例えば、画像データの格納されたメモリ）と接続している。３５２個のプロセッサエレメントにおける同一番号の汎用レジスタは、例えば、水平ラインの画像データを一度に保持したりする。
【００２７】
さらに、図１に示す本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２のＰＥ３は、制御信号切替器４０を備えている。制御信号切替器４０は、図２に示したように、セレクタ４１と、ＮＯＰ時のコード４２と、ＡＮＤ回路４３と、を備えている。
【００２８】
セレクタ４１は、ＧＰ４からのＰＥ制御信号３８と、ＮＯＰ時のコード４２と、が入力され、Ｔレジスタ２６の条件フラグビットの値に応じて、いずれか一方が出力される。ＮＯＰ時のコード４２は、ＮＯＰ（Non Operation）を示すコードがあらかじめ設定されている回路であり、ＰＥ制御信号３８の各信号に対応して、演算の非実行となる信号値（“０”または“１”）が設定されている。即ち、内部を非動作状態とする信号が設定されている。ＡＮＤ回路４３は、クロック信号とＴレジスタ２６の条件フラグビットとの論理積をとって出力している。
【００２９】
制御信号切替手段としての制御信号切替器４０は、ＰＥ３に対して、各ＰＥの演算の実行／非実行の状態を示す条件フラグビットの結果から、ＰＥ制御信号３８とＮＯＰ時のコード４２とをセレクタ４１によって選択する構成となっている。条件フラグビットの結果が“１”であれば、セレクタ４１手前で論理が反転され、該ＰＥ内の各回路の制御信号はＧＰ４からのＰＥ制御信号３８が選択され、“０”であれば同様にセレクタ４１手前で反転されＮＯＰ時のコード４２が選択される。
【００３０】
クロック信号に対しては条件フラグビットの結果からクロック信号をネゲートするかアサートするかが決まる。つまり、条件フラグビットの結果が“０”であればクロック信号をネゲート、つまり、クロック信号を停止させ、条件フラグビットの結果が“１”であればアサート、つまり、クロック信号を動作させる。
【００３１】
条件フラグ（条件フラグビット）は、命令によって演算結果により設定したり、ユーザがプログラムで設定したりする。その場合、条件フラグを変更した後直後の命令で、同じ条件フラグにより実行／非実行を決定することはできない。この場合は、プログラムで変更後にｎｏｐ命令を挿入したり、アセンブラが自動で挿入したりすることにより、常に条件フラグにより制御することができる。
【００３２】
本実施形態によれば、各ＰＥに制御信号切替器４０を備えたことにより、各ＰＥの条件レジスタの状態によりＰＥ内の各回路動作の実行／非実行を決定でき、動作しないＰＥの回路を止め、消費電力を低減することが可能となる。
【００３３】
（第２実施形態）
次に、本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサを図３乃至図６を参照して説明する。なお、前述した第１の実施形態と同一部分には、同一符号を付して説明を省略する。図３は、本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサの構成図である。図４は、図３に示された制御信号切替器の構成を示した構成図である。図５は、図３に示されたＳＩＭＤ型マイクロプロセッサの動作を示したフローチャートである。
【００３４】
図３に示したＳＩＭＤ型マイクロプロセッサ２は、基本構造は第１の実施形態と同様であるが、ＧＰ４のＳＣＵ３６と、ＰＥ３の制御信号切替器４０の構成が異なる。
【００３５】
ＳＣＵ３６は、デコーダ３６ａと、制御信号発生器３６ｂと、前命令Ｔレジスタ３６ｃと、現命令Ｔレジスタ３６ｄと、比較器３６ｅと、を備えている。
【００３６】
デコーダ３６ａは、ＧＰ４で実行するプログラムが格納されている命令格納手段としてのプログラムメモリ５０から命令コードを読み出してデコードする。即ち、命令読み出し手段、デコード手段として機能する。なお、プログラムメモリ５０は、図３ではＧＰ４の外部に設けられているように記載されているが、ＧＰ４の内部に設けてもよい。制御信号発生器３６ｂは、デコーダ３６ａからの命令信号から、ＧＰ４にある各回路の制御信号や、ＰＥ３に対する各制御信号を発生する。
【００３７】
前命令Ｔレジスタ３６ｃは、現在デコーダ３６ａでデコードする命令の１つ前の命令のデコード結果からその命令で設定または参照するＴレジスタのフラグの位置情報を保持（記憶）している。つまり、どの条件フラグを設定または参照しようとしているか情報を保持している（詳細は後述する）。即ち、条件フラグ記憶手段として機能する。現命令Ｔレジスタ３６ｄは、現在デコーダ３６ａでデコードされる命令のデコード結果からその命令で設定または参照するＴレジスタのフラグの位置情報を保持している。前命令Ｔレジスタ３６ｃは、例えば現命令Ｔレジスタ３６ｄの内容をシフトすることで更新される。比較器３６ｅは、前命令Ｔレジスタ３６ｃの内容と現命令Ｔレジスタ３６ｄの内容とを比較し、比較結果を制御信号発生器３６ｂに出力する。
【００３８】
本実施形態にかかる制御信号切替器４０の構成を図４に示す。本実施形態にかかる制御信号切替器４０は、セレクタ４１と、ＮＯＰ時のコード４２と、ＡＮＤ回路４３、４４と、を備えている。
【００３９】
セレクタ４１は、ＧＰ４からのＰＥ制御信号３８と、ＮＯＰ時のコード４２と、が入力されている点は第１の実施形態と同様であるが、ＡＮＤ回路４４の出力値に応じていずれか一方が出力される点が異なる。ＮＯＰ時のコード４２は、第１の実施形態と同様である。ＡＮＤ回路４３は、クロック信号とＡＮＤ回路４４の出力の反転信号との論理積をとって出力している。ＡＮＤ回路４４は、Ｔレジスタ２６の条件フラグビットの値の反転信号と、後述するＮＯＰ制御信号３９の反転信号との論理積をとって出力している。
【００４０】
本実施形態では、上述したように、今から実行しようとする命令（現命令）の条件フラグの位置情報（ビット情報）を格納する現命令Ｔレジスタ３６ｄと、現命令一つ前の命令の条件フラグの位置情報を格納する前命令Ｔレジスタ３６ｃを備えている。
【００４１】
ＰＥ３のＴレジスタのビット数が８ビットでＴ０フラグ〜Ｔ７フラグまでの８ビットを条件フラグとして使用できるのであれば、現命令Ｔレジスタ３６ｄと前命令Ｔレジスタ３６ｃのビット数は８ビットとなる。また、ＰＥ３のＴレジスタのビット数が１６ビットでＴ０フラグ〜Ｔ１５フラグまでの１６ビットを条件フラグとして使用できるのであれば、現命令Ｔレジスタ３６ｄと前命令Ｔレジスタ３６ｃのビット数は１６ビットとなる。
【００４２】
前命令Ｔレジスタ３６ｃと現命令Ｔレジスタ３６ｄの値は比較器３６ｅにより演算され、例えば論理積演算により結果が“０”以外であれば“１”を、論理積演算の結果が“０”であれば“０”を比較結果信号として出力する。つまり同一のビット位置にて双方が１であれば結果が“１”となり、制御信号発生器３６ｂへと出力される。
【００４３】
制御信号発生器３６ｂでは、比較器３６ｂの出力信号をＮＯＰ制御信号３９として各ＰＥ３に出力する。即ち、前命令Ｔレジスタ３６ｃと現命令Ｔレジスタ３６ｄとの比較結果に基づいてＮＯＰ制御信号３９を生成し出力する動作制御信号生成手段として機能する。
【００４４】
ＰＥ３では、ＮＯＰ制御信号３９と各ＰＥ３が備えているＴレジスタ２６の条件フラグビットの結果とを論理積演算し、セレクタ４１に選択信号として送られる。セレクタ４１の出力がＰＥ内のレジスタやＡＬＵ２０などの各回路の動作を制御する信号となる。
【００４５】
また、クロック信号の場合は、ＮＯＰ制御信号３９と各ＰＥ３が備えているＴレジスタ２６の条件フラグビットの結果とを論理積演算した結果を、クロック信号のネゲート信号として使用する。
【００４６】
例えば、８ビットで構成されるＴレジスタ２６であった場合、前命令がＴ３フラグに対して値を設定する命令であれば、前命令Ｔレジスタ３６ｃには“００００＿１０００ｂ”がデコーダ３６ａによって設定される。現命令がＴ３フラグを参照して各ＰＥ３の演算動作の実行／非実行を決定するのであれば、現命令Ｔレジスタ３６ｄには“００００＿１０００ｂ”が設定される。前命令Ｔレジスタ３６ｃと現命令Ｔレジスタ３６ｄが比較器３６ｅで各ビットごとに論理積され、その結果が“００００＿１０００ｂ”となり、結果が“０”以外なので比較結果信号は“１”となる。なお、“ｂ”はバイナリ表記を表す。
【００４７】
比較結果信号は制御信号発生器３６ｄに出力され、ＮＯＰ制御信号３９として各ＰＥ３の制御信号切替器４０に出力される。この場合の制御信号は１ビットとなる。なお、ＰＥ３内の各回路で動作タイミングが変動する場合は、その数のＮＯＰ制御信号３９が必要となり、制御信号発生器３６ｄが各ＮＯＰ制御信号ごとにタイミング調整を行って出力する。
【００４８】
制御信号切替器４０に“１”が入力されるため、図４の構成から、条件フラグ（ＰＥのＴレジスタ２６）の値が“０”あるいは“１”のいずれであっても、ＡＮＤ回路４４の出力は“０”となり、ＰＥ制御信号３８が選択され、ＰＥ３内部の制御信号として伝達され、また、クロック信号はアサートされるため、全てのＰＥ３で演算が実行されることになる。
【００４９】
同様に、例えば８ビットで構成されるＴレジスタ２６であった場合、前命令がＴ３フラグに対して値を設定する命令であり、前命令Ｔレジスタ３６ｃには“００００＿１０００ｂ”がデコーダ３６ａによって設定される。現命令がＴ７フラグを参照して各ＰＥ３の演算動作の実行／非実行を決定するのであれば、現命令Ｔレジスタ３６ｄには“１０００＿００００ｂ”が設定される。前命令Ｔレジスタ３６ｃと現命令Ｔレジスタ３６ｄが比較器３６ｅで各ビットごとに論理積され、その結果が“００００＿００００ｂ”となり、結果が“０”なので比較結果信号は“０”となる。
【００５０】
制御信号切替器４０に“０”が入力されるため、図４の構成から、条件フラグ（ＰＥのＴレジスタ２６）の値が“０”のＰＥ３では、ＡＮＤ回路４４の出力は“１”となり、条件フラグの値が“１”のＰＥ３では、ＡＮＤ回路４４の出力は“０”となる。これにより、演算動作を実行するＰＥ３と実行しないＰＥ３を条件フラグで制御する。即ち、ＮＯＰ制御信号３９と、Ｔレジスタ２６に基づいて、ＮＯＰ時のコードを出力するとともに、内部に供給されるクロック信号を停止させている。
【００５１】
上述したＳＣＵ３６における動作説明を図５のフローチャートに示す。まず、前回更新条件フラグ情報（前命令Ｔレジスタ３６ｃ）をリセットし（ステップＳ１）、プログラムメモリ５０より命令コードのフェッチをして（ステップＳ２）、命令コードをデコーダ３６ａでデコードする（ステップＳ３）。
【００５２】
そして、デコードした現命令がＰＥ３の条件フラグを更新するか否かを判断し（ステップＳ４）、更新する場合は、ステップＳ５で変更する条件フラグの位置情報を更新条件フラグ情報（現命令Ｔレジスタ３６ｄ）にセットし、更新しない場合は、ステップＳ６で更新条件フラグ情報をリセットする。更新条件フラグ情報は、条件フラグごとに対応するビットが定められており、そのビット位置を条件フラグの位置情報という。
【００５３】
そして、前命令Ｔレジスタ３６ｃと現命令Ｔレジスタ３６ｄとを比較器３６ｅで比較し（ステップＳ７）、比較して結果セットされているビット位置が同じか否か判断して（ステップＳ８）、同じであった場合は制御信号発生器３６ｂがステップＳ９でＮＯＰ制御信号３９をＯＮ（“１”）にし、同じでない場合は制御信号発生器３６ｂがステップＳ１０でＮＯＰ制御信号３９をＯＦＦ（“０”）にする。
【００５４】
そして、ステップＳ１１で、現命令Ｔレジスタ３６ｄの内容を前命令レジスタ３６ｃに転送してステップＳ２に戻る。
【００５５】
本実施形態によれば、ＧＰ４のＳＣＵ３６において、現命令Ｔレジスタ３６ｄにデコーダ３６ａデコードされた更新条件フラグ情報をセットし、前命令Ｔ３６レジスタｃに一つ前の命令でデコーダ３６ａデコードされた更新条件フラグ情報をセットして、比較器３６ｅで比較し、制御信号発生器３６ｂで比較器３６ａの結果に基づいてＮＯＰ制御信号３９を出力して、ＰＥ３の制御信号切替器４０は、ＮＯＰ制御信号３９がＯＮの場合は、全ＰＥ３が動作し、ＮＯＰ制御信号３９がＯＦＦの場合は各ＰＥ３の条件フラグに応じて動作するようにしたので、ＳＣＵ３６でのデコード結果の情報を使っているため、前命令のデコードのステージでの情報により現在の命令の制御を行うことができる。したがって、パイプラインを効率的に動作させることができ、ＰＥ３の動作効率を向上させることができる。
【００５６】
（第３実施形態）
次に、本発明の第３の実施形態にかかるＳＩＭＤ型マイクロプロセッサを図６および図７を参照して説明する。なお、前述した第１、第２の実施形態と同一部分には、同一符号を付して説明を省略する。図６は、本発明の第３の実施形態にかかるＳＩＭＤ型マイクロプロセッサの制御信号切替器の構成を示した構成図である。図７は、ＥＸＥフラグを設定する命令を含むプログラムの例である。
【００５７】
本実施形態では、ＳＩＭＤ型マイクロプロセッサ２の基本構造は第１、第２の実施形態と同様であるが、ＰＥ３の制御信号切替器４０の構成が異なる。
【００５８】
本実施形態にかかる制御信号切替器４０の構成を図６に示す。本実施形態にかかる制御信号切替器４０は、セレクタ４１と、ＮＯＰ時のコード４２と、ＡＮＤ回路４３と、ＥＸＥフラグ４５と、を備えている。
【００５９】
セレクタ４１は、ＧＰ４からのＰＥ制御信号３８と、ＮＯＰ時のコード４２と、が入力されている点は第１の実施形態と同様であるが、動作可否フラグレジスタとしてのＥＸＥフラグ４５の出力値に応じていずれか一方が出力される点が異なる。ＮＯＰ時のコード４２は、第１の実施形態と同様である。ＡＮＤ回路４３は、クロック信号とＥＸＥフラグ４５の出力の反転信号との論理積をとって出力している。ＥＸＥフラグ４５は、１ビットのフラグレジスタであり、このＥＸＥフラグの設定は、ＰＥ制御信号３８の一部のデータで設定可能となっている。
【００６０】
つまり、制御信号切替器４０の中に設けているＥＸＥフラグ４５の状態により、ＰＥ制御信号３８とＮＯＰ時のコード４２との選択および、クロック信号のアサート／ネゲートを切り替えている。図７の構成では、ＥＸＥフラグ４５が“０”であればそのＰＥ３の演算を実行させ、ＥＸＥフラグ４５が“１”であれば演算を実行させないようにする。
【００６１】
図７はＥＸＥフラグ４５を設定する命令を含むプログラムの例である。ＥＸＥフラグ４５の初期状態は“０”とする。ｓｅｔｅｘｅ命令により指定範囲内のＰＥ３のＥＸＥフラグ４５を“０”にセットし、指定範囲外のＰＥ３のＥＸＥフラグ４５を“１”にセットしている。ｓｅｔｅｘｅ命令からｃｌｒｅｘｅ命令までがＰＥ３の演算動作の実行／非実行を制御していることになる。つまりこの間でのＰＥ番号が０番〜２５５番は常に実行状態で、それ以外の２５６番〜３５１番は演算動作が非実行状態となり、非実行状態のＰＥ分の消費電流を下げることが可能となる。即ち、ＧＰ４から設定可能なＥＸＥフラグ４５に非動作を示す値が設定された場合は、Ｔレジスタ２６に値にかかわらずＮＯＰ時のコードを出力するとともに、内部に供給されるクロック信号を停止させている。
【００６２】
本実施形態によれば、ＰＥ３の制御信号切替器４０にＧＰ４から設定可能なＥＸＥフラグ４５を設けたので、全ＰＥ３のうちの一部しか使用しない場合には、ＥＸＥフラグ４５を設定することで、各ＰＥ３の演算動作の実行／非実行を切り替えることができる。
【００６３】
なお、図６には、第１の実施形態で示した条件フラグや第２の実施形態で示したＮＯＰ制御信号が記載されていないが、勿論それらの実施形態にＥＸＥフラグ４５を付け加えるように構成してもよいことはいうまでもない。その場合、ＥＸＥフラグ４５は、第１、第２の実施形態の条件フラグ２６やＮＯＰ制御信号３９よりも優先されるように構成する。即ち、ＥＸＥフラグ４５が動作停止に設定されていた場合は、条件フラグ２６やＮＯＰ制御信号３９の値によらず動作停止するように構成する。
【００６４】
また、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００６５】
２          ＳＩＭＤ型マイクロプロセッサ
３          プロセッサエレメント
４          グローバルプロセッサ
２６        Ｔレジスタ（条件レジスタ）
３６ａ      デコーダ（命令読み出し手段、デコード手段）
３６ｃ      前命令Ｔレジスタ（条件フラグ記憶手段）
３６ｂ      制御信号発生器（動作制御信号生成手段）
４０        制御信号切替器（制御信号切替手段）
４５        ＥＸＥフラグ（動作可否フラグレジスタ）
５０        プログラムメモリ（命令格納手段）
【先行技術文献】
【特許文献】
【００６６】
【特許文献１】特開２００８−７１１３０号公報
【特許文献２】特開２０１０−２５７２００号公報
【図１】
2013161271.tif 000003
【図２】
2013161271.tif 000004
【図３】
2013161271.tif 000005
【図４】
2013161271.tif 000006
【図５】
2013161271.tif 000007
【図６】
2013161271.tif 000008
【図７】
2013161271.tif 000009
【図８】
2013161271.tif 000010