(57)【要約】【課題】ＳＩＭＤ型マイクロプロセッサを利用する処理に伴う命令の命令実行サイクル数を減らす。【解決手段】各プロセッサエレメントは、プロセッサエレメントに含まれる算術論理演算装置の演算結果を汎用レジスタに格納する際の可否を決定する演算制御レジスタを持つ。各プロセッサエレメントにて、プロセッサエレメントに固有の数値を２進法により表記させた際の、指定された位を“０”若しくは“１”に固定させたデータを生成し、上記の各プロセッサエレメントにて生成されたデータと、命令コードにより指定された数値を全プロセッサエレメントに渡って同時に比較し、比較結果を上記演算制御レジスタに含まれるフラグに設定する。以上のようなＳＩＭＤ型マイクロプロセッサを提供する。【選択図】図２
2006338696.tif 000002
【特許請求の範囲】
【請求項１】
ＳＩＭＤ型マイクロプロセッサにおいて、
各々のプロセッサエレメントには、識別のための整数番号が順に付されており、
各プロセッサエレメントにて上記の識別のための整数番号を汎用レジスタに格納し、
更に、全てのプロセッサエレメントにて、上記の識別のための整数番号を２進法により表記させた際の、指定された位を“０”もしくは“１”に固定させて、汎用レジスタに格納する、
ＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データ等を高速処理するために同一の命令で複数データに対して同じ処理を行うＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）型マイクロプロセッサに関する。
【背景技術】
【０００２】
近年、デジタル複写機やファクシミリ装置等の画像処理においては、画素数の増加、画像処理の多様化などにより画質の向上が図られている。このような画像処理では、複数（多数）のデータに対して同時に同じ処理を施すことが多い。その際、高速性を高めるため、１命令で１つのデータを処理するＳＩＳＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｓｉｎｇｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）型マイクロプロセッサよりも、１命令で複数のデータを同時処理する、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）型マイクロプロセッサが用いられることが多い。
【０００３】
図１は、一般的なＳＩＭＤ型マイクロプロセッサ２の概略の構成を示すブロック図である。該ＳＩＭＤ型マイクロプロセッサ２は、概略、グローバルプロセッサ（以下では、ＧＰと言う。）４、及びプロセッサエレメント３により構成されるのであるが、複数のデータを一度に処理するためにプロセッサエレメント３を複数個装備している。各プロセッサエレメント３は、レジスタファイル６と演算アレイ８を備える。ＧＰ４は、プロセッサ２全体の制御を行ない、プロセッサエレメント３は、外部入出力装置からデータを入力しデータ処理を行ない、外部入出力装置に出力する。
【０００４】
上記のＳＩＭＤ型マイクロプロセッサ２は、通常、１クロックサイクルで１命令を処理するが、１命令でプロセッサエレメント３の個数分のデータを一度に処理することができる。ＳＩＭＤ型マイクロプロセッサ２の性能を表す際には、ＳＩＭＤ型マイクロプロセッサ２の動作周波数や、プロセッサエレメント３の個数、即ち１命令で処理できるデータの数などが重要視されるが、更に、命令サイクル数も重要な要素とされる。つまり、同じ画像処理を行う限り１命令サイクルでも少ないほうが性能がよいとされるのである。しかし、１命令で複雑な処理を行うために、複雑な回路を設計・利用するならば、どうしてもコストが増大する。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、有効な命令と命令を実現する簡素な手段を設けることにより、上記のような画像データ処理に伴う命令の命令実行サイクル数を減らすことを目的とする。
【課題を解決するための手段】
【０００６】
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項１に記載のＳＩＭＤ型マイクロプロセッサは、
各々のプロセッサエレメントには、識別のための整数番号が順に付されており、
各プロセッサエレメントにて上記の識別のための整数番号を汎用レジスタに格納し、
更に、全てのプロセッサエレメントにて、上記の識別のための整数番号を２進法により表記させた際の、指定された位を“０”もしくは“１”に固定させて、汎用レジスタに格納する、ＳＩＭＤ型マイクロプロセッサである。
【発明の効果】
【０００７】
本発明を利用することにより、特に、画像データ処理に伴う命令の命令実行サイクル数を減らすことができる。そのために増設の必要な回路は、簡素なものであるに過ぎない。
【発明を実施するための最良の形態】
【０００８】
以下、図面を参照して本発明に係る好適な実施の形態を説明する。
【０００９】
図１は、本発明を含む一般的なＳＩＭＤ型マイクロプロセッサ２の概略の構成を示すブロック図である。主としてプロセッサ２全体を制御するグローバルプロセッサ（以下、ＧＰと言う。）４と、主として外部入出力装置からデータを入力しデータ処理を行い、外部入出力装置にデータを出力するプロセッサエレメント３とから、構成される。プロセッサエレメント３は、複数データを同時に処理するために複数用意されている。図１では、１個のＧＰ４と、２５６個のプロセッサエレメント３とにより、ＳＩＭＤ型マイクロプロセッサ２が構成されている。
【００１０】
図２は、本発明に係るＳＩＭＤ型マイクロプロセッサ２のより詳細な構成を示すブロック図である。図に示されるようにＧＰ４は、
・命令コードで構成されるプログラムを格納するためのプログラムＲＡＭ１０と、
・ＧＰ４での演算データを格納するデータＲＡＭ１２と、
・プログラムを解読し各種ブロックに各種制御信号を送るシーケンシャルユニット（ＳＣＵ）９と、
・データを格納する複数の汎用レジスタ（Ｇ０〜Ｇ３）と、
・ＳＣＵ９にプログラムの命令コードを送るためにプログラムのアドレスを保持するプログラムカウンタ（ＰＣ）１４と、
・データメモリにスタックを形成するためデータメモリのアドレスを格納するスタックポインタ（ＳＰ）２４と、
・プログラムの途中でサブルーチン処理を行う際には分岐が発生するが分岐前のアドレスを格納する複数のリンクレジスタ（ＬＳ、ＬＩ、ＬＮ）と、
・データメモリのデータ、命令コード中に記述された数値（即値）データ、若しくは汎用レジスタに格納されているデータのいずれかの組み合わせで算術論理演算を行う算術論理演算装置（ＡＬＵ）１１と、
・プロセッサの状態を保持するプロセッサステータスレジスタ（図示せず。）と、
・ハードウェア割り込みとソフトウェア割り込みを制御する割り込み制御回路（図示せず。）と、
・外部入出力に直接接続され外部からのデータの入出力を制御する外部Ｉ／Ｏ制御回路（図示せず。）と
を含む。
【００１１】
図２では示していないが、上記ＳＣＵ９は、ＧＰ命令を解読し主にＧＰ内の各ブロックに制御信号を発生するＧＰインストラクションデコーダと、プロセッサエレメント命令を解読し主にプロセッサエレメント内の各ブロックに制御信号を発生するプロセッサエレメントインストラクションデコーダとで、構成される。即ち、本プロセッサに係る命令コードは、主にＧＰ４内の各ブロックを制御し、プログラムのシーケンスを決定したり、プロセッサエレメント３に転送する共通データをＧＰ４内のＡＬＵ１１で加工したりするＧＰ命令と、外部入出力から一度に入力されたデータをプロセッサエレメント３毎に処理をさせるプロセッサエレメント命令とに、分類される。
【００１２】
図１に示すように、各プロセッサエレメント３は、外部からの入出力データを一時的に保持するレジスタファイル６と、プロセッサエレメント３内で算術論理演算やビット演算のデータ処理を行うための演算アレイ８を含む。さらに図２に示すようにレジスタファイル６には、例えば、Ｒ０〜Ｒ３１までの８ビットのレジスタ３４が３２本用意されている。これらのレジスタ３４からデータが演算アレイ８に転送され、又逆に演算アレイ８からデータが転送されてレジスタ３４に格納される。レジスタ３４と演算アレイ６とのバスは、８ビットの双方向バスである。
【００１３】
更に図２に示すように、単体の演算アレイ８は演算ユニットであり、
・レジスタファイル６からのデータをシフトして符号付き拡張もしくは符号無し拡張をし１６ビットデータに加工するシフト・拡張器４４と、
・例えば、Ａレジスタ３６とＦレジスタ４０のような複数の汎用レジスタと、
・レジスタファイル６からのデータをシフト・拡張器４４を経由して加工し１入力とし、他方の入力をＡレジスタ３６からの入力とする算術論理演算装置（ＡＬＵ）３６と、
・（後で説明する）本発明に係るＰＥ番号マスク回路、固定値選択回路、及びｎおきビットパターンデータ出力回路の夫々からの出力を入力とし、自らの出力をＡレジスタ３８やＴレジスタ５４に繋げる選択回路３５と
を含む。算術論理演算装置（ＡＬＵ）３６の出力は、Ａレジスタ３６もしくはＦレジスタ４０に一時格納されように設定されているが、Ａレジスタ３６からレジスタファイル６の所定の１レジスタ３４にデータ転送されることも可能である。
【００１４】
また、演算アレイ８は、後でも説明するように、「Ｔレジスタ」と呼ばれる演算制御レジスタ５４を備える。ＡＬＵ３６からの出力は、該Ｔレジスタ５４によって、Ａレジスタ３６もしくはＦレジスタ４０への書き込み内容が制御される。例えば、演算制御レジスタ（Ｔレジスタ）５４の中の所定の１ビットの状態に応じて、“１”あればＡレジスタ３６もしくはＦレジスタ５４への書き込みを行い、“０”であれば行わないというような制御が行なわれる。
【００１５】
図３は、レジスタファイル６のレジスタ３４と演算アレイ８とを結び付けるマルチプレクサの機能を示すブロック図である。ＰＥｉ（ｉ＝０，１，２，・・・２５５）のプロセッサエレメントに備わるマルチプレクサは７ｔｏ１（７対１）のマルチプレクサであり、ＰＥｉ−３（ＰＥｉの３つ左隣り）、ＰＥｉ−２（ＰＥｉの２つ左隣り）、ＰＥｉ−１（ＰＥｉの１つ左隣り）、ＰＥｉ、ＰＥｉ＋１（ＰＥｉの１つ右隣り）、ＰＥｉ＋２（ＰＥｉの２つ右隣り）、ＰＥｉ＋３（ＰＥｉの３つ右隣り）のプロセッサエレメント３のレジスタファイル６からのデータを入出力することができるように設定されている。この機能を、ＰＥシフト機能と称する。マルチプレクサによって選択されたデータは、演算アレイ８のシフト・拡張部４４に転送される。
【００１６】
ここで、プロセッサエレメント３の番号を含む呼称について定義する。図２に示すように、本発明に係るＳＩＭＤ型マイクロプロセッサ２には２５６個のプロセッサエレメント３が設置されており、それらプロセッサエレメント３の個々に対し、（図では左側から）ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、・・・、ＰＥ２５４、ＰＥ２５５というように、プロセッサエレメント番号（ＰＥ番号）を付すと定義する。
【００１７】
≪第１の実施の形態≫
図４は、本発明の第１の実施の形態に係るＰＥ（プロセッサエレメント）番号マスク回路の回路図である。上記ＰＥ番号マスク回路は、（従来技術である）ＰＥ番号を所定の汎用レジスタに入力する接続線に対し、ＧＰ４からのマスク制御信号（即ち、ＰＥ番号マスク信号）を取り入れる論理回路を挿入することにより形成される。後でも説明するように、この図４の回路構成では、“０”によりマスクすることになる。
【００１８】
各ＰＥｉ（ｉ＝０，１，２，・・・２５５）においては、各ＰＥ番号を形成する接続線部５０とＰＥ番号マスク信号を取り込む論理回路（ＡＮＤ回路）部５１とが結合して設置されている。そこからの出力は、後で説明するように、各プロセッサエレメント３毎に設置されている選択回路３５（図２参照）に繋がる。その選択回路３５を介して例えばＡレジスタ３８にて上記出力が格納される。
【００１９】
（従来技術である）各ＰＥ番号を形成する接続線部５０を利用して、Ａレジスタ３８にＰＥ番号を設定することは従来も可能であった。例えば、「ＬＤＰＮ」（Ｌｏａｄ  ＰＥ  Ｎｕｍｂｅｒ）という命令を実行することにより、上記機能を実現していたとする。ここで、本発明の第１の実施の形態に係る回路によっても、全く同じ機能を実現すること、即ち各ＰＥ番号を各選択回路３５に送ることを「ＬＤＰＮ」の命令の利用によって実現するように設定することができる。なお、図４からも明白なように、ＬＤＰＮ命令を用いるときのＰＥ番号マスク信号は（８ビット）すべて“１”となる。このような設定により、ＶＣＣとＧＮＤとで形成されるパターンでＰＥ番号を表すデータが、各プロセッサエレメント３の選択回路３５に入力されることになる。
【００２０】
具体的に示すと、選択回路３５に入力されるデータは、
・ＰＥ０、ＰＥ１、ＰＥ２、・・・ＰＥ２５５の順に、
・０、１、２、・・・２５５
の値となる。
【００２１】
更に、本発明の第１の実施の形態に係る回路においては、ＳＩＭＤ型マイクロプロセッサ２への命令にて指定するビットを“０”に設定することにより、入力データをマスクすることができる。そのような処理を行なう命令として、「ＬＤＮＭ」（Ｌｏａｄ  ＰＥ  Ｎｕｍｂｅｒ  Ｍａｓｋｉｎｇ）命令が用意されている。ＬＤＮＭ命令は、マスクパターンを即値で指定することで出力データをマスクする。その即値はＰＥマスク信号として図４の回路に取り込まれる。ＬＤＮＭ命令は、次のように、記述される。
【００２２】
ＬＤＮＭ／０        ＃００００００１１ｂ
【００２３】
上記の記述で「００００００１１ｂ」の末尾のｂは、２進数表記であることを示す。上記の命令では、ＰＥ番号のビット３からビット７までの出力値に対しマスクが施されることになる。また、“／０”は、“０”によるマスクを表すオプション記述である。
【００２４】
よって、各選択回路３５に入力されるデータは、
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、・・・ＰＥ２５４、ＰＥ２５５の順に、
・０、１、２、３、０、１、２、・・・２、３
の値となる。
【００２５】
図４の第１の実施の形態にかかる回路では、ＡＮＤ回路が利用されているが、これをＯＲ回路に置き換えることも想定され得る。即ち、各ＰＥｉ（ｉ＝０，１，２，・・・２５５）において、各ＰＥ番号を形成する接続線部５０とＰＥ番号マスク信号を取り込む論理回路（ＯＲ回路）部（図示せず。）とが結合して設置されることになる。このとき、上記（図４）の回路構成では“０”によりマスクをしていたが、ＯＲ回路に置き換える回路の場合、“１”によるマスクとなる。命令は以下のように記述される。
【００２６】
ＬＤＮＭ／１        ＃１１１１１１００ｂ
【００２７】
上記の記述では、ＰＥ番号のビット３からビット７までの入力値が、“１”でマスクされることになる。／１は“１”によるマスクを表すオプション記述である。
【００２８】
このとき、各選択回路３５に入力されるデータは、
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、・・・ＰＥ２５４、ＰＥ２５５の順に、
・２５２（１１１１１１００ｂ）、２５３（１１１１１１０１ｂ）、２５４（１１１１１１１０ｂ）、２５５（１１１１１１１１ｂ）、２５２、２５３、２５４、・・・２５４、２５５
の値となる。
【００２９】
図４に示される本発明の第１の実施の形態に係る回路を利用することにより、マスク制御信号（ＰＥ番号マスク信号）にて“０”であるビットに対応する制御線がマスクされ、所定のビットのみで表され且つ繰り返しの規則性を備えるデータを、１命令で設定（形成）することができる。例えば、上位６ビットを全てマスクすることにより、下位２ビットのみが有効となり、ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、・・・のプロセッサエレメント３の各選択回路３５に対し、
・０、１、２、３、０、１、２、３、・・・
の規則性のある繰り返しの値を１命令で出力することができる。また、図４の回路において、ＡＮＤ回路を全てＯＲ回路にすることによっても、ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、・・・のプロセッサエレメント３の各選択回路３５に対し、規則性のある繰り返しの値を１命令で出力することができる。但し、このときは“１”によりマスクがなされることになる。
【００３０】
従来技術を利用する場合、ＬＤＰＮ命令でＰＥ番号を一旦Ａレジスタ３８に設定し、更にそのＡレジスタ３８の値を４で割ったときの剰余を同じくＡレジスタ３８に設定すれば、図４と同様の結果が得られる。しかし、
・ＬＤＰＮ命令で１命令サイクル、
・（乗除算器があると仮定して、）除算命令で１命令サイクル、
計２命令サイクルが必要である。然も、乗除算器をＳＩＭＤ型マイクロプロセッサ２の全プロセッサエレメント３内に設定するならば、莫大な回路規模が必要となる。通常のＳＩＭＤ型マイクロプロセッサ２には乗除算器は設定されてないため、除算の実施は、ＡＬＵ３６を利用して被除数のビット数の分までの減算を行なうことで実現される。汎用レジスタであるＡレジスタ３８は、例えば１６ビットであるならば、最短１６回の減算が必要となる（現実には除算前の設定が数命令サイクル必要になる）。ここで１６命令サイクルかかり、結局、全体で最短１８命令サイクルとなる。
【００３１】
以上、明白なように、本発明の第１の実施の形態に係る回路によって、相当数の命令サイクルの削減が行なえる。
【００３２】
≪第２の実施の形態≫
図５は、本発明の第２の実施の形態に係る固定値選択回路の回路図である。上記固定値選択回路は、ｎ（ｎは自然数）おきの周期変動を備え１周期内では単調に０から１ずつ増加する数値を、（後で説明する）選択回路３５に対し、入力値選択信号による選択制御の下、出力する回路である。図５に示される回路では、ｎの値として、３、５、７が想定されている。
【００３３】
図５に示されるように、各プロセッサエレメント３においては、各別の接続線部５０’とマルチプレクサ部５１’が備わる。接続線部５０’は、９ビットの信号を生成するのであるが、左方２ビットは「３」おきの周期変動を備え、中位３ビットは「５」おきの周期変動を備え、右方４ビットは「７」おきの周期変動を備えるように、接続線が設定されている。図５から明白なように、３おきの周期変動は、
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、・・・の順に、
・０、１、２、０、１、２、０、・・・
となる。５おきの周期変動は、
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、．．．の順に、
・０、１、２、３、４、０、１、・・・
となる。７おきの周期変動は、
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、ＰＥ８、・・・の順に、
・０、１、２、３、４、５、６、０、１、・・・
となる。
【００３４】
どの周期変動の出力を選択するかは、入力値選択信号により与えられる。該入力値選択信号は、各プロセッサエレメント３におけるマルチプレクサ部５１’に指示を与えるものである。上記の周期変動の抽出に係る命令として、次の命令「ＬＤＲＮ」（Ｌｏａｄ  Ｒｅｐｅａｔｉｎｇ  Ｎｕｍｂｅｒ）が設定されている。
【００３５】
ＬＤＲＮ        ＃３
【００３６】
上記の命令では、各プロセッサエレメント３の選択回路３５に対し、３おきの周期変動を備え１周期内では単調に０から２まで１ずつ増加する数値が、プロセッサエレメント３の有するＰＥ番号の順に従い、出力されることになる。
【００３７】
図５に示される本発明の第２の実施の形態に係る固定値選択回路を利用すれば、上記のような、選択回路３５（Ａレジスタ３８）への数値入力を、１命令サイクルで行なうことができる。ここで、上記の例に示される３、５、７という数字は、一般的に、画像処理において頻繁に使用される値であることが知られている。
【００３８】
≪第３の実施の形態≫
図６は、本発明の第３の実施の形態に係るｎおきビットパターンデータ出力回路の回路図である。上記ｎおきビットパターンデータ出力回路は、個別のビットにおいて（ＰＥ番号の順に従い）ｎおきに“１”を設定する接続線に対し、ＧＰ４からのビットマスク信号を取り入れる論理回路を挿入することにより形成される。
【００３９】
各ＰＥｉ（ｉ＝０，１，２，・・・２５５）においては、夫々のビットにおいてｎおきの“１”を設定する接続線部５０”とビットマスク信号を取り込む論理回路（ＡＮＤ回路）部５１”が結合して設置されている。そこからの出力は、第１の実施の形態に係る回路、及び第２の実施の形態に係る回路と同様に、各プロセッサエレメント３に設置されている選択回路３５（図２参照）に繋がる。その選択回路３５を介して例えばＡレジスタ３８にて上記出力が格納される。
【００４０】
各ＰＥｉの接続線部５０”は、８ビットの個別ビットを備える。例えば、ビット０は「２おき」、ビット１は「３おき」、ビット２は「５おき」、ビット３は「７おき」、ビット４は「１１おき」、ビット５は「１３おき」、ビット６は「１７おき」、及びビット７は「２３おき」の周期特性を備えている。夫々のビットにおいて各周期特性に相当するＰＥ番号であれば、該ビットが“１”となるように、各ＰＥｉの接続線部５０”が設定されている（即ち、該当するビットがＶＣＣに接続されている）（図６）。即ち、
・２おきの周期特性を有するビット０は、ＰＥ０、ＰＥ２、ＰＥ４、ＰＥ６、ＰＥ８、・・・において、
・３おきの周期特性を有するビット１は、ＰＥ０、ＰＥ３、ＰＥ６、ＰＥ９、ＰＥ１２、・・・において、
・５おきの周期特性を有するビット２は、ＰＥ０、ＰＥ５、ＰＥ１０、ＰＥ１５、ＰＥ２０、・・・において
ＶＣＣに接続されている。
【００４１】
上記のように設定される各ＰＥｉの接続線部５０”の設定内容の抽出に係る命令として、次の命令「ＬＤＲＢ」（Ｌｏａｄ  Ｒｅｐｅａｔｉｎｇ  Ｂｉｔ）が用意されている。
【００４２】
ＬＤＲＢ
【００４３】
この命令により、各ＰＥｉの接続線部５０”の設定内容が全て、例えば、選択回路３５（乃至Ａレジスタ３８）に入力される。上記の命令では、
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、ＰＥ８、ＰＥ９、ＰＥ１０、ＰＥ１１、・・・の順に、
・１１１１１１１１ｂ（２進数表記。以下同様である。）、００００００００ｂ、０００００００１ｂ、００００００１０ｂ、０００００００１ｂ、０００００１００ｂ、００００００１１ｂ、００００１０００ｂ、０００００００１ｂ、０００００１１０ｂ、０００００００１ｂ、・・・
となる。
【００４４】
但し、上述したように、上記接続線に対し、ＧＰ４からのビットマスク信号を取り入れる論理回路が挿入されているため、命令コードにおいて指定するビットが“０”に設定されることにより、選択回路３５（乃至Ａレジスタ３８）への入力データがマスクされ得る。そのマスク処理を行なうときには、命令は次のように記述される。マスクパターンは、即値で指定されてビットマスク信号として図６の回路に取り込まれ、選択回路３５（乃至Ａレジスタ３８）への入力データをマスクする。
【００４５】
ＬＤＲＢ／０        ＃０００００１００ｂ
【００４６】
上記の命令では、ビット２に“１”が設定されるＰＥに係る出力データのみ“０００００１００ｂ”の数値となる。“０００００１００ｂ”が、例えばＡレジスタ３８に設定されるのは、
・ＰＥ０、ＰＥ５、ＰＥ１０、ＰＥ１５、ＰＥ２０、．．．
である。それ以外のＰＥにおいては、“００００００００ｂ”となる。
【００４７】
第３の実施の形態に係るｎおきビットパターンデータ出力回路では、上記のような選択回路３５（Ａレジスタ３８）への数値入力を、１命令サイクルで行なうことができる。
【００４８】
≪第４の実施の形態≫
本発明の第４の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２について説明する。
【００４９】
本発明の第１の実施の形態に係る「ＬＤＰＭ」命令において、即値（ＰＥ番号マスク信号）をすべてマスクしない数値（＃１１１１１１１１ｂ）とした場合、ＰＥ番号がそのまま選択回路３５（乃至Ａレジスタ３８）に入力される。また、前に説明したように、ＧＰ４からのＰＥ番号マスク信号を取り入れる論理回路が挿入されない、ＰＥ番号を所定の汎用レジスタ等に入力する接続線を、そのまま利用することによっても、ＰＥ番号がそのまま選択回路３５（乃至Ａレジスタ３８）に入力される。
【００５０】
従って、選択回路３５には、
・ＰＥ０、ＰＥ１、ＰＥ２、・・・ＰＥ２５５の順に、
・０、１、２、．．．２５５
の値が入力される。
【００５１】
各プロセッサエレメント３において、上記の選択回路３５に入力された値を、選択回路３５に備わるコンパレータ８０（図７）にて（ＳＩＭＤ型マイクロプロセッサ２への）命令で指定された即値と比較し、その結果をＴレジスタ（演算制御レジスタ）５４の所定の位置のビットに格納する。このＴレジスタ５４への結果格納により、次命令以降の演算にて、２５６個あるプロセッサエレメント３のうち特定の１つのプロセッサエレメント３においてのみ演算を行ない、その他のプロセッサエレメント３の演算を行なわないという設定をすることができる。
【００５２】
図７は、本発明に係る選択回路３５の概略回路ブロック図を示す。図４、図５及び図６の、ＰＥ番号マスク回路、固定値選択回路及びｎおきビットパターンデータ出力回路からの出力データは、図２に示す演算アレイ８内の選択回路３５に繋がる。ＧＰ４からの制御信号である入力データ選択信号２によってマルチプレクサ７８にて選択され、３者のうちいずれか１データがＡレジスタ３８に入力される。また、選択された１データは、命令コード中の即値データＩＭＭ２とコンパレータ８０にて比較され、その結果一致した場合には “１”を出力する。一致しなかった場合“０”を出力する。
【００５３】
ここで、本発明に係るＴレジスタ５４について説明する。図２のように、各プロセッサエレメント３には、実行条件指定のための演算制御レジスタ（Ｔレジスタ）５４が装備されている。図８は、Ｔレジスタ５４の回路ブロック図の例である。図８では、Ｔレジスタ５４は８ビットのレジスタ（Ｔ０、Ｔ１、・・・Ｔ７）を備え、夫々の１ビットのレジスタは別々に制御される。そのため、１つのプロセッサエレメント３にて８通りの制御パターンを保持できる。
【００５４】
Ｔレジスタ５４における夫々のビットは、各プロセッサエレメント３の演算実行の無効／有効の制御を行ない、特定のプロセッサエレメント３だけを演算対象として選択するという制御を行なうことができる。例えば、次のような命令が想定される。
【００５５】
ＡＤＤ／Ｔ１        ＃１２
【００５６】
この命令は加算命令であり、Ａレジスタ３８の値と即値“１２”とが加算されて結果がＡレジスタ３８に格納される。この命令において、“／Ｔ１”という実行制御オプションを記述することにより、Ｔレジスタ３８のうちＴ１の（ビット）フラグの値が“１”であるプロセッサエレメント３のみ、Ａレジスタ３８へのＡＬＵ３６からのデータの格納が行なわれる。Ｔ１フラグが“０”であるプロセッサエレメント３のＡレジスタ５４へのデータの格納は行なわれない。
【００５７】
図８の例では、このＴレジスタ５４への入力へは、
・ＰＥ３内の演算ユニット６のＡＬＵ３６にて発生したオーバーフローフラグ（Ｖ）、キャリーフラグ（Ｃ）からの入力、
・全Ｔフラグへの即値ＩＭＭ２によるマスク操作の結果に対する、ＯＲ操作の結果からの入力、
・図２に示される記憶手段２からの入力、
・図７の選択回路３５でのコンパレータ８０出力からの入力
などである。
【００５８】
以上説明した本発明の第４の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２によれば、特定のＰＥ番号のプロセッサエレメント３のみ演算を行なわせるという処理を、少ない命令数で行なうことができる。従来の技術であれば、全プロセッサエレメント３のＴレジスタ５４に対し先ず“０”を設定し、更に、演算を行なうプロセッサエレメント３のＴレジスタ５４に“１”を設定することにより、上記の機能は実現されるが、本発明の第４の実施の形態に比べて命令数は必然的に増加してしまう。
【００５９】
≪第５の実施の形態≫
本発明の第５の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２について説明する。
【００６０】
第５の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２の各プロセッサエレメント３においては、第１の実施の形態に係るＰＥ番号マスク回路から選択回路３５に繋げられる（データ）値を、選択回路３５に備わるコンパレータ８０（図７）にて、命令コード中に指定された即値データと比較し、その結果をＴレジスタ５４の所定の位置のビットに格納する。このＴレジスタ５４への結果格納により、次命令以降の演算にて、「２のべき乗」おきのＰＥ番号を備えるプロセッサエレメント３のみの演算を実行させるという制御を行うことができる。
【００６１】
図４に示されるＰＥ番号マスク回路の出力は図７の選択回路３５に入力され、該選択回路３５では（予め用意されている）「ＬＤＴＭ」（Ｌｏａｄ  ｔｏ  Ｔ  ｒｅｇｉｓｔｅｒ  Ｍａｓｋｅｄ  ＰＥ  Ｎｕｍｂｅｒ）命令を実行することで、入力データ選択信号２によりそのＰＥ番号マスク回路の出力のデータが選択される。更に、上記ＬＤＴＭ命令の実行時に、即値データ（の１つ）がＩＭＭ２に入力され、ＰＥ番号マスク回路の出力データとＩＭＭ２とがコンパレータ８０にて比較される。一致するとそのプロセッサエレメント３のコンパレータ８０の出力が“１”となり、一致しなかったプロセッサエレメント３では“０”となる。次の命令は、実行される命令の例である。
【００６２】
ＬＤＴＭ／Ｔ２      ＃００００００１１ｂ、＃１
【００６３】
上記命令において、即値オペランドのうち第１オペランドがマスクパターンである。第２オペランドが比較値である。但し、マスクパターンは２進数表記、比較値は１０進表記としている。
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、・・・にマスクした結果の値は、
・０、１、２、３、０、１、２、３、・・・
のような繰り返しの値となるが、比較値と一致する値のＰＥ、即ち、
・ＰＥ１、ＰＥ５、ＰＥ９、・・・
のＴレジスタ５４のＴ２フラグに“１”が設定される。他のＰＥのＴレジスタ５４のＴ２フラグには“０”が設定される。これによって以降の命令でＴレジスタ５４のＴ２フラグを実行制御に用いれば、特定のＰＥ、即ちＰＥ１から始まり「２2」おきのＰＥ番号を備えるプロセッサエレメント３のみの演算を実行させることができる。
【００６４】
≪第６の実施の形態≫
本発明の第６の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２について説明する。
【００６５】
第６の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２の各プロセッサエレメント３においては、第２の実施の形態に係る固定値選択回路から選択回路３５に繋げられる（データ）値を、選択回路３５に備わるコンパレータ８０（図７）にて、命令コード中に指定された即値データと比較し、その結果をＴレジスタ５４の所定の位置のビットに格納する。このＴレジスタ５４への結果格納により、次命令以降の演算にて、３、５、７のような特定の数値おきのＰＥ番号を備えるプロセッサエレメント３のみの演算を実行させるという制御を行うことができる。
【００６６】
図５に示される固定値選択回路の出力は図７の選択回路に入力され、該選択回路３５では（予め用意されている）「ＬＤＴＮ」（Ｌｏａｄ  ｔｏ  Ｔ  ｒｅｇｉｓｔｅｒ  Ｐｒｅｄｅｆｉｎｅｄ  Ｎｕｍｂｅｒ）命令を実行することで、入力データ選択信号２によりその固定値選択回路の出力データが選択される。更に、上記ＬＤＴＮ実行時に、即値データ（の１つ）がＩＭＭ２に入力され、固定値選択回路の出力データとＩＭＭ２とがコンパレータ８０にて比較される。一致するとそのプロセッサエレメント３のコンパレータ８０の出力が“１”となり、一致しなかったプロセッサエレメント３では“０”となる。次の命令は、実行される命令の例である。
【００６７】
ＬＤＴＮ／Ｔ２      ＃３、＃２
【００６８】
上記命令において、即値オペランドのうち第１オペランドが選択固定値である。第２オペランドが比較値である。
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、・・・に結果の値は、
・０、１、２、０、１、２、０、１、．．．
のような繰り返しの値となるが、比較値と一致する値のＰＥ、即ち、
・ＰＥ２、ＰＥ５、ＰＥ８、・・・
のＴレジスタ５４のＴ２フラグに“１”が設定される。他のＰＥのＴレジスタ５４のＴ２フラグには“０”が設定される。これによって以降の命令でＴレジスタ５４のＴ２フラグを実行制御に用いれば、特定のＰＥ、即ちＰＥ２から始まり「３」おきのＰＥ番号を備えるプロセッサエレメント３のみの演算を実行させることができる。
【００６９】
≪第７の実施の形態≫
本発明の第７の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２について説明する。
【００７０】
第７の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２の各プロセッサエレメント３においては、第３の実施の形態に係るｎおきビットパターンデータ出力回路から選択回路３５に繋げられる（データ）値を、選択回路３５に備わるコンパレータ８０（図７）にて、命令コード中に指定された即値データと比較し、その結果をＴレジスタ５４の所定の位置のビットに格納する。このＴレジスタ５４への結果格納により、次命令以降の演算にて、２、３、５、７、１１のような特定の数値おきのＰＥ番号を備えるプロセッサエレメント３のみの演算を実行させるという制御を行うことができる。
【００７１】
図６に示されるｎおきビットパターンデータ出力回路の出力は図７の選択回路３５に出力され、該選択回路３５では（予め用意されている）「ＬＤＴＢ」（Ｌｏａｄ  ｔｏ  Ｔ  ｒｅｇｉｓｔｅｒ  Ｂｉｔ  Ｎｕｍｂｅｒ）命令を実行することで、入力データ選択信号２によりそのｎおきビットパターンデータ出力回路の出力のデータが選択される。更に、上記ＬＤＴＢ命令の実行時に、即値データ（の１つ）がＩＭＭ２に入力され、ｎおきビットパターンデータ出力回路の出力データとＩＭＭ２とがコンパレータ８０にて比較される。一致するとそのプロセッサエレメント３のコンパレータの出力が“１”となり、一致しなかったプロセッサエレメント３では“０”となる。次の命令は、実行される命令の例である。
【００７２】
ＬＤＴＢ／Ｔ２      ＃００００００１０ｂ、＃１
【００７３】
上記命令において、即値オペランドのうち第１オペランドがｎおきビット指定である。第２オペランドが比較値である。
・ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、・・・に結果の値は、
・１、０、０、１、０、０、１、０、．．．
のような繰り返しの値となるが、比較値と一致する値のＰＥ、即ち、
・ＰＥ０、ＰＥ３、ＰＥ６、・・・
のＴレジスタ５４のＴ２フラグに“１”が設定される。他のＰＥのＴレジスタ５４のＴ２フラグには“０”が設定される。これによって以降の命令でＴレジスタ５４のＴ２フラグを実行制御に用いれば、特定のＰＥ、即ちＰＥ０から始まり「３」おきのＰＥ番号を備えるプロセッサエレメント３のみの演算を実行させることができる。
【図面の簡単な説明】
【００７４】
【図１】一般的なＳＩＭＤ型マイクロプロセッサの概略の構成を示すブロック図である。
【図２】本発明に係るＳＩＭＤ型マイクロプロセッサのより詳細な構成を示すブロック図である。
【図３】レジスタファイルのレジスタと演算アレイとを結び付けるマルチプレクサの機能を示すブロック図である。
【図４】本発明の第１の実施の形態に係るＰＥ番号マスク回路の回路図である。
【図５】本発明の第２の実施の形態に係る固定値選択回路の回路図である。
【図６】本発明の第３の実施の形態に係るｎおきビットパターンデータ出力回路の回路図である。
【図７】本発明に係る選択回路の概略回路ブロック図を示す。
【図８】演算制御レジスタ（Ｔレジスタ）の回路ブロック図の例である。
【符号の説明】
【００７５】
２・・・ＳＩＭＤ型マイクロプロセッサ、３・・・プロセッサエレメント、４・・・グローバルプロセッサ、６・・・レジスタファイル、８・・・演算アレイ、３４・・・レジスタ、３５・・・演算回路、３６・・・ＡＬＵ（算術論理演算装置）、３８・・・Ａレジスタ、５０、５０’、５０”・・・接続線部、５１、５１”・・・論理回路部、５１’・・・マルチプレクサ部、５４・・・Ｔレジスタ（演算制御レジスタ）、７８・・・マルチプレクサ、８０・・・コンパレータ。
【図１】
2006338696.tif 000003
【図２】
2006338696.tif 000004
【図３】
2006338696.tif 000005
【図４】
2006338696.tif 000006
【図５】
2006338696.tif 000007
【図６】
2006338696.tif 000008
【図７】
2006338696.tif 000009
【図８】
2006338696.tif 000010