(57)【要約】【課題】各ＰＥに演算回路を複数存在させ、演算回路を独立して、又は連動して動作させることで、ＰＥ数や演算ビット幅を実質的に変更できるＳＩＭＤ型マイクロプロセッサにおいて、適切にＰＥ番号を生成でき、それらＰＥ番号を用いて適切に全体を制御できる。【解決手段】グローバルプロセッサ、及び複数のプロセッサエレメントを備え、各プロセッサエレメントは複数の演算ユニットを含み、グローバルプロセッサからの制御によって、プロセッサエレメントにおける演算ユニットの連結構成を一律に変更し、演算ユニットが連結されて若しくは独立してなる演算単位のプロセッサエレメントでの数、及び、演算単位で処理されるデータのデータ幅を変更するＳＩＭＤ型マイクロプロセッサにおいて、上記プロセッサエレメントにおける演算単位に対して、ラベル値を割り付け、割り付けたラベル値を処理に使用することを特徴とする。【選択図】図１
2008217061.tif 000002
【特許請求の範囲】
【請求項１】
グローバルプロセッサ、及び複数のプロセッサエレメントを備え、
各プロセッサエレメントは複数の演算ユニットを含み、
グローバルプロセッサからの制御によって、プロセッサエレメントにおける演算ユニットの連結構成を一律に変更し、演算ユニットが連結されて若しくは独立してなる演算単位のプロセッサエレメントでの数、及び、演算単位で処理されるデータのデータ幅を変更するＳＩＭＤ型マイクロプロセッサにおいて、
上記プロセッサエレメントにおける演算単位に対して、ラベル値を割り付け、割り付けたラベル値を処理に使用することを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
上記プロセッサエレメントにおける演算単位に対して割り付けられるラベル値を、上記演算単位で使用するデータの一つとして生成する
ことを特徴とする請求項１に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項３】
上記ラベル値を、グローバルプロセッサからの指定により行う各プロセッサエレメントの各演算単位に対する範囲選択に用いる
ことを特徴とする請求項１又は２に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項４】
請求項３に記載のＳＩＭＤ型マイクロプロセッサであって、
各プロセッサエレメントは２個の演算ユニットを含み、
（Ａ）各プロセッサエレメントに含まれる２つの演算ユニットを一律に連動して動作させ、各プロセッサエレメントで一組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット２つずつに１つのラベル値を、そのラベル値がプロセッサエレメントの並びに対して昇順又は降順になるように付与する第１のラベル値割り付け、
（Ｂ）各プロセッサエレメントに含まれる２つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット２つに２つのラベル値を、そのラベル値が２つの演算ユニットにて昇順又は降順になるように付与し、
次いで、隣接するプロセッサエレメントに移り、続きとなるラベル値を用いて、再び、演算ユニット２つに２つのラベル値をそのラベル値が２つの演算ユニットにて昇順又は降順になるように付与する第２のラベル値割り付け、及び、
（Ｃ）各プロセッサエレメントに含まれる２つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット２つに２つのラベル値を、そのラベル値が２つの演算ユニットにて同じになるように付与し、
更に、プロセッサエレメントの並びに対して昇順又は降順になるように付与する第３のラベル値割り付け
の少なくとも３通りのラベル値の割り付けに、対応するものであり、
各プロセッサエレメントの２つの演算ユニットは、自らに割り付けられたラベル値が、グローバルプロセッサから指定される選択範囲内にあるか否かを判定する判定回路を夫々備えており、
まず、各プロセッサエレメントの各演算ユニットには上記（Ｂ）の第２のラベル値割り付けに従って、ラベル値が割り付けられており、
上記（Ａ）の第１のラベル値割り付け、又は、上記（Ｃ）の第３のラベル値割り付けに対応する場合には、グローバルプロセッサからの選択範囲の指定値を２倍して、各プロセッサエレメントの各演算ユニットに与え、各演算ユニットに備わる判定回路は最下位１ビットを判定に加えない
ことを特徴とするＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マイクロプロセッサ、特にＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）型マイクロプロセッサに関する。
【背景技術】
【０００２】
ＳＩＭＤ型マイクロプロセッサでは、複数のデータに対して１つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理（例えばデジタル複写機などにおける画像処理）に係る用途において頻用される。
【０００３】
ＳＩＭＤ型マイクロプロセッサにおける通常の画像処理では、複数の演算ユニット（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ  ［ＰＥ］；  プロセッサエレメント）を主走査方向に並べ、同一の演算を同時に複数のデータに対して実行することによって高速演算処理を実現する。従って、ＳＩＭＤ型マイクロプロセッサが有するＰＥ数は、画像処理の処理速度を決定する最も重要な要素の一つである。
【０００４】
一方、画像処理装置への要求性能として、出力画像の品質向上ということも挙げられる。このことは、各ＰＥで一度に処理可能な演算データのビット幅に大きく依存する。つまり、ＰＥに含まれる演算回路やデータ記憶回路のビット幅が大きく、このことにより演算精度を高くできるのであれば出力画像の品質は向上し得る。
【０００５】
但し、演算速度を高めるためのＰＥ数の増加と、演算精度を高めるための演算回路やデータ記憶回路のビット幅の増加とは、回路規模の観点からトレードオフの関係にある。従って、対象とする画像処理の処理内容を適宜分析して適切に対応できる仕組みを構築することが重要であるといえる。
【０００６】
特許文献１では、こうした課題を踏まえ、各ＰＥに演算回路を複数存在させ、状況に応じて、演算回路を独立、もしくは連動して動作させることで、実質のＰＥ数、演算ビット幅を変更することが可能である構成のＳＩＭＤ型プロセッサについて開示している。
【０００７】
このような構成のＳＩＭＤ型マイクロプロセッサにおいて、例えば各ＰＥに割り付けられる昇順の数字等であるＰＥ番号について考えてみると、各ＰＥが演算回路を複数備えているため、それら演算回路の構成の仕方によっては、ＰＥ番号と、演算（データ）の単位との対応が１対１の関係ではなくなってしまう。ＰＥ番号は特定の画像データを指定して利用するときなどに有用であるため、演算（データ）の単位とは１対１の関係である必要がある。
【０００８】
なお、特許文献２は、各ＰＥに付与されたＰＥ番号をＳＩＭＤ処理の制御に利用することで、処理の効率化を図るＳＩＭＤ型マイクロプロセッサを開示する。各ＰＥに付与されたＰＥ番号は固定である。
【０００９】
また、特許文献３は、複数あるＰＥをいくつかのグループに分け、グループ内に含まれるＰＥのローカルメモリ等のハードウェアリソースを共有化することで、プロセッサ全体としてＰＥを有効活用できるような手法を実現するＳＩＭＤ型マイクロプロセッサを開示している。その中で、グループの中に含まれる複数のＰＥの中から特定のＰＥを指定するための識別コードを与える手法を用いている。この識別コードは、グループごとに同じ配列で与えているので、すべてのグループで同じ識別コードを持ったＰＥに対して、同一の処理を行うことが可能である。
【００１０】
更に、特許文献４は、外部からＰＥ個別の値を設定するための個別定数レジスタを各ＰＥに持たせ、これをＳＩＭＤ処理の制御に利用することで、ＰＥごとに固有の処理を実行させる手段を有するＳＩＭＤ型マイクロプロセッサを開示している。
【特許文献１】特開２００６−２６０４７９号公報
【特許文献２】特開２００２−１０８８３２号公報
【特許文献３】特開２００２−７３５９号公報
【特許文献４】特開２００２−９１９２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
本発明は、各ＰＥに演算回路を複数存在させ、状況に応じて、演算回路を独立して、若しくは連動して動作させることで、ＰＥ数や演算ビット幅を実質的に変更することが可能である構成のＳＩＭＤ型マイクロプロセッサにおいて、適切にＰＥ番号を生成でき、更に、それらＰＥ番号を用いて適切に全体を制御できるＳＩＭＤ型マイクロプロセッサとすることを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、上記の目的を達成するために為されたものである。本発明に係る請求項１に記載のＳＩＭＤ型マイクロプロセッサは、
グローバルプロセッサ、及び複数のプロセッサエレメントを備え、
各プロセッサエレメントは複数の演算ユニットを含み、
グローバルプロセッサからの制御によって、プロセッサエレメントにおける演算ユニットの連結構成を一律に変更し、演算ユニットが連結されて若しくは独立してなる演算単位のプロセッサエレメントでの数、及び、演算単位で処理されるデータのデータ幅を変更するＳＩＭＤ型マイクロプロセッサである。そのようなＳＩＭＤ型マイクロプロセッサにおいて、
上記プロセッサエレメントにおける演算単位に対して、ラベル値を割り付け、割り付けたラベル値を処理に使用することを特徴とする。
【００１３】
本発明に係る請求項２に記載のＳＩＭＤ型マイクロプロセッサは、
上記プロセッサエレメントにおける演算単位に対して割り付けられるラベル値を、上記演算単位で使用するデータの一つとして生成する
ことを特徴とする請求項１に記載のＳＩＭＤ型マイクロプロセッサである。
【００１４】
本発明に係る請求項３に記載のＳＩＭＤ型マイクロプロセッサは、
上記ラベル値を、グローバルプロセッサからの指定により行う各プロセッサエレメントの各演算単位での範囲選択に用いる
ことを特徴とする請求項１又は２に記載のＳＩＭＤ型マイクロプロセッサである。
【００１５】
本発明に係る請求項４に記載のＳＩＭＤ型マイクロプロセッサは、
請求項３に記載のＳＩＭＤ型マイクロプロセッサであって、
各プロセッサエレメントは２個の演算ユニットを含み、
（Ａ）各プロセッサエレメントに含まれる２つの演算ユニットを一律に連動して動作させ、各プロセッサエレメントで一組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット２つずつに１つのラベル値を、そのラベル値がプロセッサエレメントの並びに対して昇順又は降順になるように付与する第１のラベル値割り付け、
（Ｂ）各プロセッサエレメントに含まれる２つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット２つに２つのラベル値を、そのラベル値が２つの演算ユニットにて昇順又は降順になるように付与し、
次いで、隣接するプロセッサエレメントに移り、続きとなるラベル値を用いて、再び、演算ユニット２つに２つのラベル値をそのラベル値が２つの演算ユニットにて昇順又は降順になるように付与する第２のラベル値割り付け、及び、
（Ｃ）各プロセッサエレメントに含まれる２つの演算ユニットを一律に独立して動作させ、各プロセッサエレメントで二組ずつ演算データを処理する場合に、
各プロセッサエレメントに含まれる演算ユニット２つに２つのラベル値を、そのラベル値が２つの演算ユニットにて同じになるように付与し、
更に、プロセッサエレメントの並びに対して昇順又は降順になるように付与する第３のラベル値割り付け
の少なくとも３通りのラベル値の割り付けに、対応するものであり、
各プロセッサエレメントの２つの演算ユニットは、自らに割り付けられたラベル値が、グローバルプロセッサから指定される選択範囲内にあるか否かを判定する判定回路を夫々備えており、
まず、各プロセッサエレメントの各演算ユニットには上記（Ｂ）の第２のラベル値割り付けに従って、ラベル値が割り付けられており、
上記（Ａ）の第１のラベル値割り付け、又は、上記（Ｃ）の第３のラベル値割り付けに対応する場合には、グローバルプロセッサからの選択範囲の指定値を２倍して、各プロセッサエレメントの各演算ユニットに与え、各演算ユニットに備わる判定回路は最下位１ビットを判定に加えない
ことを特徴とするＳＩＭＤ型マイクロプロセッサである。
【発明の効果】
【００１６】
本発明を利用することにより、ＰＥ内部に複数の演算単位が存在する場合でも、演算単位ごとにＳＩＭＤ処理の制御を行うことが可能となる。
【発明を実施するための最良の形態】
【００１７】
［第１の実施形態］
図１１は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の概略の構成図である。ＳＩＭＤ型マイクロプロセッサ２は、概略、グローバルプロセッサ３０、プロセッサエレメントグループ７２、及び外部インターフェース７０から構成される。プロセッサエレメントグループ７２は複数のＰＥの配列体（集合体）であり、後で説明するように各ＰＥの演算器が演算アレイ６２に属しており、各ＰＥのレジスタがレジスタファイル６０に属している。
【００１８】
図１２は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２のより詳しい構成図である。図１２では、プロセッサエレメントグループ７２の中央付近にある６個のＰＥ４を中心に示している。図１２の右部に示すグローバルプロセッサ３０には、プログラム格納用のプログラムＲＡＭ（Ｐｒｏｇｒａｍ−ＲＡＭ）５２と演算データ格納用のデータＲＡＭ（Ｄａｔａ−ＲＡＭ）５４が内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）４２、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ３レジスタ（３２、３４、３６、３８）、レジスタ退避・復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）４０、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）４４、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩレジスタ４６、ＬＮレジスタ４８、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）５０が内蔵されている。これらのレジスタ、図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、及びＧＰ演算制御回路を使用してグローバルプロセッサ命令の実行が行われる。
【００１９】
ＰＥ命令実行時には、グローバルプロセッサ３０は、命令デコーダ、図示していないレジスタファイル制御回路、及びＰＥ演算制御回路を使用して、レジスタファイル６０の制御と演算アレイ６２の制御をおこなう。
【００２０】
レジスタファイル６０において、ＰＥ毎に１６ビット・レジスタ（８、１６）が複数本内蔵されており、ＰＥの個数分の組でアレイ構成を形成している。それぞれのレジスタ（８、１６）は、演算アレイ６２に対してポートを備えており、１６ビットのリード/ライト兼用のバス（以下、レジスタバスと言う。）１０で演算アレイ６２からアクセスされる。図１２では便宜上、各ＰＥ４で６本のレジスタ（８、１６）を示している。
【００２１】
各ＰＥ４の演算部１４は、１６ビットＡＬＵ（１８ａ、１８ｂ）、１６ビットＡレジスタ（２０ａ、２０ｂ）、及びＦレジスタ（２２ａ、２２ｂ）を、下位ビット用と上位ビット用として２個ずつ内蔵している。ＰＥ命令による演算では、基本的にレジスタファイル６０から読み出されたデータをＡＬＵ（１８ａ、１８ｂ）の一方の入力とし、Ａレジスタ（２０ａ、２０ｂ）にあるデータをＡＬＵ（１８ａ、１８ｂ）のもう一方入力とする。演算結果はＡレジスタ（２０ａ、２０ｂ）に格納される。つまり、Ａレジスタ（２０ａ、２０ｂ）にあるデータと、レジスタ（８、１６）上のデータとの演算が行われることになる。
【００２２】
２個のＡＬＵ（１８ａ、１８ｂ）は、夫々１６ビットの演算が可能である。また上位用ＡＬＵ１８ｂと下位用ＡＬＵ１８ａとは連動できるように構成されており、上位用ＡＬＵ１８ｂと下位用ＡＬＵ１８ａとが併せられると３２ビットの演算が可能となる。それぞれのＡＬＵの動作はグローバルプロセッサ３０から制御される。また、上位ＡＬＵ１８ｂと下位ＡＬＵ１８ａを連動させるために、両ＡＬＵ間には情報伝達経路が備わる。
【００２３】
レジスタ（８、１６）と演算部１４との接続部分に１６ビット幅の７対１（７ｔｏ１）のマルチプレクサ（７ｔｏ１ＭＵＸ）１２が設けられている。各マルチプレクサ（７ｔｏ１ＭＵＸ）１２は、ＰＥが並ぶ方向（図１２における左右の方向）において、左に１つ、２つ及び３つ離れたＰＥ４のレジスタバスと、右に１つ、２つ及び３つ離れたＰＥ４のレジスタバスと、当該ＰＥ４のレジスタバスとに接続し、それらレジスタバスに付属するレジスタのデータを演算対象として選択する。選択の制御は、グローバルプロセッサ３０により行われる。
【００２４】
７ｔｏ１ＭＵＸ１２とＡＬＵ（１８ａ、１８ｂ）の間には、シフタ（Ｓｈｉｆｔ  Ｅｘｐａｎｄ）１６が設けられている。シフタ（Ｓｈｉｆｔ  Ｅｘｐａｎｄ）１６は、レジスタ（８、１６）から読み出されたデータのビットシフトと拡張とを行う。シフタの制御は、グローバルプロセッサ３０により行われる。
【００２５】
レジスタファイル６０に含まれる上段２つのレジスタ１６は、マイクロプロセッサ外の外部メモリデータ転送装置（図示せず。）から内容の読み出し／書き込みがなされ得るレジスタである。マイクロプロセッサ外の外部メモリデータ転送装置からデータバスとコントロール信号を用いて、任意のレジスタ１６の読み出し／書き込みが可能である。外部メモリデータ転送装置から任意のレジスタ１６にアクセスするには、メモリにアクセスするのと同じようにアドレスによって行う。外部メモリデータ転送装置からアクセス可能なレジスタ１６は夫々固有の番地を割り振られており、外部メモリデータ転送装置はアクセスするレジスタ固有の番地をアドレスとしてコントロール信号に含めて出力する。このバスに接続されたレジスタ１６は、外部メモリデータ転送装置がアクセスするレジスタの番地と自身の番地を比較し、一致していればアクセスに対応する。
【００２６】
図１は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサにおけるＰＥの識別子の論理的構成を示す図である。本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサは、図１２を用いて説明したように、１６ビット演算が可能な演算ユニットを２つ搭載している。それら２つの演算ユニットは、独立若しくは連結して動作するため、グローバルプロセッサ３０からの制御によって以下の２通りの動作が可能である。
（Ａ）  ＰＥごとに１つの３２ビット演算を実行
（Ｂ）  ＰＥごとに２つの１６ビット演算を同時に実行
【００２７】
通常ＰＥには、特定のＰＥを指定できるように夫々のＰＥに対してユニークな識別子が割り付けられる。従前のように、１つのＰＥで１つの演算を行うならば、演算（データ）の単位とＰＥに割り付けられる識別子との対応が、１対１の関係であればよい。
【００２８】
しかしながら、本発明に係るＳＩＭＤ型マイクロプロセッサでは、上記（Ｂ）の場合のように、１つのＰＥで２つ（若しくはそれ以上）の演算が実行可能であるため、演算の単位と識別子の対応が１対１ではないことがある。このため、本発明の第１の実施形態では、設定可能である演算単位毎に識別子の割り付けを行う。つまり、上記のプロセッサの状態（Ａ）と状態（Ｂ）とで別々の識別子が割り付けられることになる。
【００２９】
図１は、上記状態（Ａ）のときの識別子の割り付けと上記状態（Ｂ）のときの識別子の割り付けとを模式的に示している。つまり、図１（ａ）は上記状態（Ａ）に対応する図であり、Ｍ個のＰＥに含まれるＭ個の演算単位に対して、順に具体的に｛ａ、ｂ、・・・、ｌ｝の識別子が割り付けられている様子を示す図である。図１（ｂ）は上記状態（Ｂ）に対応する図であり、Ｍ個のＰＥに含まれるＭ×２個の演算単位に対して、順に具体的に｛ａｌ、ａｈ、ｂｌ、ｂｈ、・・・、ｌｌ、ｌｈ｝の識別子が割り付けられている様子を示す図である。
【００３０】
図１に示されるようなＰＥ（及び演算単位）に対する識別子として、昇順の番号が使われることが多い。従って、以下では識別子として昇順の番号を使用し、識別子をＰＥ番号と称することとする。図２、図３、及び図４は、識別子として昇順のＰＥ番号を用いた場合の、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサにおけるＰＥの識別子の論理的構成を示す図である。
【００３１】
まず、図２（ａ）は上記状態（Ａ）に対応する図であり、Ｍ（Ｍは２以上の自然数）個の演算単位に対して、順に具体的に｛０，１，２，・・・，Ｍ−１｝の番号が割り付けられている様子を示す図である。図２（ｂ）は上記状態（Ｂ）に対応する図であり、Ｍ×２個の演算単位に対して、｛０，１，２，・・・，２×Ｍ−１｝の番号が割り付けられている様子を示す図である。図２（ｂ）では、同一ＰＥ内の演算単位に昇順に番号が割り付けられた後、隣接（図２では右側）ＰＥへ移って同様に番号が割り付けられる。
【００３２】
次に、図３（ａ）は上記状態（Ａ）に対応する図であり、Ｍ（Ｍは２以上の自然数）個の演算単位に対して、順に具体的に｛０，１，２，・・・，Ｍ−１｝の番号が割り付けられている様子を示す図である。図３（ｂ）は上記状態（Ｂ）に対応する図であり、Ｍ×２個の演算単位に対して、｛０，１，２，・・・，Ｍ−１｝の番号が割り付けられている様子を示す図である。図２（ｂ）では、同一ＰＥに属する演算単位に対しては重複して同じ番号が割り付けられている。
【００３３】
次に、図４（ａ）は上記状態（Ａ）に対応する図であり、Ｍ（Ｍは２以上の自然数）個の演算単位に対して、順に具体的に｛０，１，２，・・・，Ｍ−１｝の番号が割り付けられている様子を示す図である。図４（ｂ）は上記状態（Ｂ）に対応する図であり、Ｍ×２個の演算単位に対して、｛０，１，２，・・・，２×Ｍ−１｝の番号が割り付けられている様子を示す図である。図４（ｂ）では、まず、最初のＰＥから最後のＰＥまでＰＥ内の一方の演算単位に昇順に番号が割り付けられた後、番号がその続きとなるように、再び最初のＰＥから最後のＰＥまでＰＥ内のもう一方の演算単位に昇順に番号が割り付けられている。
【００３４】
［第２の実施形態］
図５は、本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の詳細な構成図である。本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２は、上記の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２と略同様のものであり、同一部位には同一符号を付して説明を省略する。
【００３５】
図５に示されるＳＩＭＤ型マイクロプロセッサでは、各ＰＥ４が備えるレジスタ（８、１６）と同格に、ＰＥ番号発生回路６６を備えている。ＰＥ番号発生回路６６は、グローバルプロセッサ３０からの制御に従って、図２から図５に示されるようなＰＥ番号を発生させ、１６ビットのレジスタバス１０に出力する。
【００３６】
ここで、上記状態（Ａ）の場合、１６ビットのレジスタバスすべてが専有され得るので、０から２１６−１までのＰＥ番号の生成が理論上可能である。上記（Ｂ）の場合、１６ビットのレジスタバスを上位側と下位側で８ビットずつに分けた２つのデータが、一つのＰＥ内に存在する２つの演算単位にそれぞれ割り当てられるため、０から２８−１までのＰＥ番号が理論上生成可能である。
【００３７】
図６、図７、及び図８は、本発明の第２の実施形態に係るＰＥ番号発生回路６６の構成例をその一部動作と共に示す図である。図６から図８までに示されるＰＥ番号発生回路では、1つの１６ビットの定数データＫと、グローバルプロセッサ３０によって制御される1つのマルチプレクサとを備える。まず、図２（ａ）、図３（ａ）及び図４（ａ）に示される状態(なお、これらはすべて同じ状態である。)に対応する場合には、１６ビットの定数データＫがそのまま１６ビットのレジスタバスに出力される。このときの動作が図６に図示されている。
【００３８】
次に、図２（ｂ）に示される状態に対応する場合には、１６ビットのレジスタバスの下位８ビットには、２Ｋ（即ち、定数データＫを左に１ビットシフトした値の下位８ビットデータ）を出力し、１６ビットのレジスタバスの上位８ビットには、２Ｋ＋１（即ち、定数データＫを左に１ビットシフトした値の下位８ビットデータに、１［最下位ビットが１であるデータ］を加えたデータ）を出力する。このときの動作が図７に図示されている。
【００３９】
次に、図３（ｂ）に示される状態に対応する場合には、１６ビットのレジスタバスの下位８ビットと上位８ビットと共に、定数データＫの下位８ビットを出力する。このときの動作が図８に図示されている。
【００４０】
また、図４（ｂ）に示される状態に対応する場合には、図６から図８には図示していないが、同一ＰＥ内の片方の演算単位には、ＰＥ総数分だけオフセット量を付与する制御が行われればよい。
【００４１】
［第３の実施形態］
図９は、本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２に含まれるプロセッサエレメント４の演算部１４の詳細な構成図である。本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２は、上記の第１又は第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２と略同様のものであり、同一部位には同一符号を付して説明を省略する。
【００４２】
図９に示される演算部は、演算単位毎にＰＥ番号エリア判定回路（２６ａ、２６ｂ）を備える。このＰＥ番号エリア判定回路（２６ａ、２６ｂ）は、グローバルプロセッサ３０から即値データで入力される範囲指定を示す下限のＰＥ番号／上限のＰＥ番号と、上記状態（Ａ）又は状態（Ｂ）の状態に応じて演算単位毎に割り付けられるＰＥ番号とを比較し、該当／非該当の結果を、各ＰＥが演算単位毎に備えている実行条件レジスタＴ（２４ａ、２４ｂ）に反映させる。各ＰＥが備える２つのＡＬＵ（１８ａ、１８ｂ）は、夫々の実行条件レジスタＴ（２４ａ、２４ｂ）の値に従って、演算の実行／非実行を決定する。従って、演算単位レベルでの演算実行（若しくは、非実行）の範囲指定が可能となる。
【００４３】
図９に示される演算部を含むＳＩＭＤ型マイクロプロセッサ２では、各ＰＥにつき演算単位が１つしかない場合でもＰＥ番号エリア判定回路（２６ａ、２６ｂ）が各ＰＥに２つずつ存在することになる。このときには、下位用ＰＥ番号エリア判定回路２６ａと上位用ＰＥ番号エリア判定回路２６ｂが同一の動作をするように制御されればよい。その場合の制御内容を、本発明の第３の実施形態に係るＰＥを示す図１０を用いて、以下説明する。
【００４４】
図１０に示されるＳＩＭＤ型マイクロプロセッサ２は、図２（ａ）、図２（ｂ）、図３（ａ）（図２（ａ）に同じ）、図３（ｂ）の状態に対応できるものであり、演算ユニット（３ａ、３ｂ）を２つ備える。従って、図１０のＳＩＭＤ型マイクロプロセッサは、演算ユニット毎にＰＥ番号エリア判定回路（２６ａ、２６ｂ）を備えるが、このＰＥ番号エリア判定回路（２６ａ、２６ｂ）が、以下に示すようにできるだけ小さくなるように構成されている。
【００４５】
まず、図２（ａ）又は図３（ａ）（図２（ａ）に同じ）の状態において、例えば、ＰＥ番号が“２”であるＰＥは、図２（ｂ）の状態ではＰＥ内に存在する２つの演算ユニット（３ａ、３ｂ）に対して、それぞれ“４”と“５”のＰＥ番号が割り付けられる。ＰＥ番号エリア判定回路（２６ａ、２６ｂ）は、グローバルプロセッサ３０から入力される上限のＰＥ番／下限のＰＥ番号と、演算ユニット自身に与えられている定数値とを比較し、定数値が範囲内であるか否かを判定する。図１０に示される演算ユニット（３ａ、３ｂ）では、この定数値を、図２（ｂ）の状態のＰＥ番号に対応した形で与えられることを特徴としている。つまり、図１０に示されたＰＥが図２（ａ）又は図３（ａ）の状態で、例えばＰＥ番号が“２”である場合には、下位側ＡＬＵ１８ａに付随するＰＥ番号エリア判定回路２６ａの定数値には“４”が、上位側ＡＬＵ１８ｂに付随するＰＥ番号エリア判定回路２６ｂの定数値には“５”が、与えられることになる。
【００４６】
まず、このようにすれば図２（ｂ）の状態に対応することができる。
【００４７】
次に、図２（ａ）又は図３（ａ）（図２（ａ）に同じ）の状態に対応できることを示す。このとき、図１０に示されるＳＩＭＤ型マイクロプロセッサでは、グローバルプロセッサ３０から入力される上限のＰＥ番号／下限のＰＥ番号が２倍された形でＰＥ番号エリア判定回路（２６ａ、２６ｂ）に与えられる。更にこのとき、上位側ＡＬＵ２６ｂに付随するＰＥ番号エリア判定回路２６ｂでは、最下位１ビットの比較を行わない（即ち、最下位１ビットの比較結果を無視する、考慮しない）構成となっている。
【００４８】
つまり、図１０に示されたＰＥで下位側ＡＬＵ１８ａのＰＥ番号エリア判定回路２６ａの定数値には“４”が、上位側ＡＬＵ１８ｂのＰＥ番号エリア判定回路２６ｂの定数値には“５”が、与えられている場合には、上位側、下位側のどちらに付随するＰＥ番号エリア判定回路（２６ａ、２６ｂ）も、実質的に定数値“４”がグローバルプロセッサ３０からのデータによる選択範囲内にあるか否かの判定が、されることとなる。
【００４９】
即ち、図２（ａ）、又は図３（ａ）（図２（ａ）に同じ）の状態のときの実際のＰＥ番号“２”が２倍されたものが判定に利用されるため、グローバルプロセッサ３０から入力する上限のＰＥ番号／下限のＰＥ番号も、２倍した値を与えている。
【００５０】
上記では説明を簡単にするために、具体的なＰＥ番号を例にとったが、同様の説明がすべてのＰＥ番号で成立する。更に、図３（ｂ）の状態についても、このときと同様の方法で対応可能である。
【図面の簡単な説明】
【００５１】
【図１】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサにおけるＰＥの識別子の論理的構成を示す図である。
【図２】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサにおけるＰＥ番号の論理的構成を示す図である。
【図３】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサにおけるＰＥ番号の論理的構成を示す図である。
【図４】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサにおけるＰＥ番号の論理的構成を示す図である。
【図５】本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサの詳細な構成図である。
【図６】本発明の第２の実施形態に係るＰＥ番号発生回路の構成例をその一部動作と共に示す図である。
【図７】本発明の第２の実施形態に係るＰＥ番号発生回路の構成例をその一部動作と共に示す図である。
【図８】本発明の第２の実施形態に係るＰＥ番号発生回路の構成例をその一部動作と共に示す図である。
【図９】本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサに含まれるプロセッサエレメントの演算部の詳細な構成図である。
【図１０】本発明の第３の実施形態に係るＰＥを示す図である。
【図１１】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサの概略の構成図である。
【図１２】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサのより詳しい構成図である。
【符号の説明】
【００５２】
２・・・ＳＩＭＤ型マイクロプロセッサ、３ａ、３ｂ・・・演算ユニット、４・・・プロセッサエレメント、３０・・・グローバルプロセッサ。
【図１】
2008217061.tif 000003
【図２】
2008217061.tif 000004
【図３】
2008217061.tif 000005
【図４】
2008217061.tif 000006
【図５】
2008217061.tif 000007
【図６】
2008217061.tif 000008
【図７】
2008217061.tif 000009
【図８】
2008217061.tif 000010
【図９】
2008217061.tif 000011
【図１０】
2008217061.tif 000012
【図１１】
2008217061.tif 000013
【図１２】
2008217061.tif 000014