(57)【特許請求の範囲】
【請求項１】
１つのグローバルプロセッサと、
複数のプロセッサエレメントとを含むＳＩＭＤ型マイクロプロセッサにおいて、
上記グローバルプロセッサから各々のプロセッサエレメントに対し、複数のデータバスが設置されており、
各プロセッサエレメントは、上記複数のデータバスのうちからどのデータバスを選択するのかを指定する選択信号を生成し、
上記選択信号により選択されたデータバスを介して上記グローバルプロセッサから転送される信号を、各プロセッサエレメント内の所定のレジスタに格納する、
ＳＩＭＤ型マイクロプロセッサ。
【請求項２】
各プロセッサエレメントには、連続する通し番号が順に付されており、
各プロセッサエレメントにおいて、２進法にて表現された自らの通し番号に対し、所定桁数の上位ビットを“０”に置き換え、その結果形成される信号を上記の選択信号とする、
請求項１に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項３】
各プロセッサエレメントにおける演算結果データ、又はその演算結果から導出されるデータを、各プロセッサエレメント内の所定のレジスタに格納し、
該レジスタから引き出される信号を上記の選択信号とする、
請求項１に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項４】
即値を２つ以上含む命令コードにより動作されるＳＩＭＤ型マイクロプロセッサであって、
上記の複数のデータバスに対し、上記の複数の即値が伝送される、
請求項１乃至請求項３に記載のＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍＭｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ；単一命令多データ処理）型マイクロプロセッサに関する。
【０００２】
【従来の技術】
ＳＩＭＤ型マイクロプロセッサでは、複数のデータに対して１つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理（例えば、画像処理）に係る用途において、頻用される。
【０００３】
ＳＩＭＤ型マイクロプロセッサにおける通常の演算処理では、複数の演算ユニット（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ〔ＰＥ〕；プロセッサエレメント）を並べ同一の演算を同時に複数のデータに対して実行する。
【０００４】
ＳＩＭＤ型マイクロプロセッサは、全てのＰＥが同時に動作する処理においてはその性能を十分に発揮できる。しかし、ＰＥ毎に演算パラメータが異なるような処理においては、性能を発揮できない。「ＰＥ毎に演算パラメータが異なるような処理」の例としては、ディザマトリクスを利用するディザ法による２値化処理が挙げられる。
【０００５】
画像処理でよく利用されるディザ法による２値化処理では、２値化の判定基準であるしきい値が画素単位で異なる。図４は、ディザ法のディザマトリクスの例である。本マトリクスは、４×４のディザマトリクスである。このディザマトリクスを利用する２値化処理では、１つの行（ライン）に４つのしきい値が使用され、４画素を単位としてその４つの値の繰り返しとなる。具体的に言うと、多数並べて配置されたＰＥの端から各ＰＥ（の所定のレジスタ）に順に格納される１ラインの画素データを、図４の１つの行のしきい値と比較する（１ライン目は１行目のしきい値、２ライン目は２行目のしきい値、３ライン目は３行目のしきい値、４ライン目は４行目のしきい値、５ライン目は１行目のしきい値・・・）のであるが、１つのライン内では４画素を単位として４種の値と比較する（１画素目は１列目のしきい値、２画素目は２列目のしきい値、３画素目は３列目のしきい値、４画素目は４列目のしきい値、５画素目は１列目のしきい値・・・）。
【０００６】
ディザ法による２値化処理を、ＳＩＭＤ型マイクロプロセッサで行なう場合には、ＰＥの所定のレジスタに格納されるしきい値がＰＥにより異なることになる。しきい値が１つであれば、１回の比較命令により全ＰＥでの処理が完了できるが、上記のようにしきい値が４つあれば、全ＰＥでの処理を完了させるには４回の比較命令が必要となる。ディザマトリクスのサイズが大きくなれば、当然ながら、それに応じて比較命令の数も増加する。
【０００７】
従来の技術において、上記の問題に対応するために、（複数の）しきい値を予め各ＰＥのレジスタ若しくはローカルメモリに保持しておく、という方法が採られていることがある。４×４のディザマトリクスを利用する場合、１つのＰＥに着目すると４ラインごとに４つのしきい値が繰返し使用される。よって、これら４つのしきい値を（４つの）レジスタに保持しておき、比較命令にて利用する。その比較処理に備えて、初期化の処理では、１ライン当たり４回（以上）のデータ転送命令を行なって４画素ごとのしきい値の（ＰＥの）レジスタへの格納を行ない、更に、その格納処理を４回（ライン数分）繰り返す。この処理の場合には、しきい値の格納のために各ＰＥでレジスタが４つ必要となる。即ち、ハードウエア資源が相当分消費されるという問題が生じる。
【０００８】
また、マイクロプロセッサの外部から画像データを入力する際に、同時に外部からしきい値を入力する、という方法が用いられることもある。この方法の場合には、レジスタへのしきい値の格納のための命令を設定する必要がないため、その命令分の処理時間は発生しない（削減される）。しかし、各ＰＥ毎にしきい値を格納するレジスタが必要となるという問題点は残る。更に、しきい値を入力するための入力ポートが余分に必要となる。
【０００９】
特開平５−６７２０３号、及び特開平６−８３７８７号で開示されているＳＩＭＤ型マイクロプロセッサは、外部からデータを入力する機能を備えるものであるが、それらの機能の利用によって上記のように画像データとしきい値（データ）とを同時に入力することも可能である。
【００１０】
特開平６−１７６１７６号、及び特開平６−２５９５８１号の（ＳＩＭＤ型）プロセッサでは、各ＰＥにローカルメモリのアドレスを関連付ける。ローカルメモリのアドレスは、ＰＥ毎に異なるアドレスである。そのローカルメモリに格納されるデータをＰＥでの処理で用いることになる。このような構成であれば、ＰＥへしきい値をロードするためＰＥ毎に異なる値を転送する、という処理は必要ではない。しきい値との比較処理時にＰＥ毎に異なるローカルメモリのアドレスが示されればよいことになる。ただし、初期化の処理においてはしきい値のマトリクスの全部のロード処理が必要であり、しかもそれらのデータの全部を保持するメモリも必要となる。
【００１１】
【発明が解決しようとする課題】
本発明は、ディザ法のディザマトリクスのしきい値のロード処理を、少ない（処理）ステップで実現することを目的とする。更に変換後データのロードまでの処理もより少ないステップで実現することを目的とする。
【００１２】
【課題を解決するための手段】
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項１に記載のＳＩＭＤ型マイクロプロセッサは、
１つのグローバルプロセッサと、
複数のプロセッサエレメントとを含むＳＩＭＤ型マイクロプロセッサである。そのＳＩＭＤ型マイクロプロセッサにおいて、
上記グローバルプロセッサから各々のプロセッサエレメントに対し、複数のデータバスが設置されており、
各プロセッサエレメントは、上記複数のデータバスのうちからどのデータバスを選択するのかを指定する選択信号を生成し、
上記選択信号により選択されたデータバスを介して上記グローバルプロセッサから転送される信号を、各プロセッサエレメント内の所定のレジスタに格納する。
【００１３】
本発明に係る請求項２に記載のＳＩＭＤ型マイクロプロセッサは、
各プロセッサエレメントには、連続する通し番号が順に付されており、
各プロセッサエレメントにおいて、２進法にて表現された自らの通し番号に対し、所定桁数の上位ビットを“０”に置き換え、その結果形成される信号を上記の選択信号とする、
請求項１に記載のＳＩＭＤ型マイクロプロセッサである。
【００１４】
本発明に係る請求項３に記載のＳＩＭＤ型マイクロプロセッサは、
各プロセッサエレメントにおける演算結果データ、又はその演算結果から導出されるデータを、各プロセッサエレメント内の所定のレジスタに格納し、
該レジスタから引き出される信号を上記の選択信号とする、
請求項１に記載のＳＩＭＤ型マイクロプロセッサである。
【００１５】
本発明に係る請求項４に記載のＳＩＭＤ型マイクロプロセッサは、
即値を２つ以上含む命令コードにより動作されるＳＩＭＤ型マイクロプロセッサであって、
上記の複数のデータバスに対し、上記の複数の即値が伝送される、
請求項１乃至請求項３に記載のＳＩＭＤ型マイクロプロセッサである。
【００１６】
【発明の実施の形態】
以下、図面を参照して、本発明に係る好適な実施形態を説明する。
【００１７】
図１は、本発明に係るＳＩＭＤ型マイクロプロセッサ２の概略の構成を示すブロック図である。図１の構成は、後で説明する第１の実施の形態、第２の実施の形態、及び第３の実施の形態のＳＩＭＤ型マイクロプロセッサ２の、基礎となる構成である。つまり、第１の実施の形態、第２の実施の形態、及び第３の実施の形態のＳＩＭＤ型マイクロプロセッサ２は、図１の構成に対して、必要な構成要素が付加されて形成されている。
【００１８】
図１のＳＩＭＤ型マイクロプロセッサ２は、概略、グローバルプロセッサ４、レジスタファイル６、及び演算アレイ８から構成される。
【００１９】
（１）グローバルプロセッサ４
このグローバルプロセッサ４そのものは、いわゆるＳＩＳＤ型のプロセッサであり、プログラムＲＡＭ１０とデータＲＡＭ１２を内蔵し（図２参照）、プログラムを解読し各種制御信号を生成する。この制御信号は内蔵する各種ブロック以外に、レジスタファイル６、演算アレイ８にも供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等を使用して各種演算処理、プログラム制御処理をおこなう。
【００２０】
（２）レジスタファイル６
ＰＥ（プロセッサエレメント）命令で処理されるデータを保持している。ＰＥ（プロセッサエレメント）３は、公知のように、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−Ｓｔｒｅａｍ，Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−Ｓｔｒｅａｍ）型プロセッサにおいて個別の演算を実行する構成単位である。図２のレジスタファイル６及び演算アレイ８が示すように、図２のＳＩＭＤ型マイクロプロセッサ２では２５６個のＰＥ３を含んでいる。上記のＰＥ命令はＳＩＭＤ型の命令であり、レジスタファイル６に保持されている複数のデータに対し、同時に同じ処理を行なう。このレジスタファイル６からのデータの読み出し／書き込みの制御はグローバルプロセッサ４からの制御信号によって行なわれる。読み出されたデータは演算アレイ８に送られ、演算アレイ８での演算処理後にレジスタファイル６に書き込まれる。
【００２１】
また、レジスタファイル６はプロセッサ２外部からのアクセスが可能であり、グローバルプロセッサ４の制御とは別に、外部から特定のレジスタに対し読み出し／書き込みが行なわれる。
【００２２】
（３）演算アレイ
ＰＥ命令の演算処理が行なわれる。処理の制御はすべてグローバルプロセッサ４から行なわれる。
【００２３】
図２は、本発明に係るＳＩＭＤ型マイクロプロセッサ２の、更に詳細な構成を示すブロック図である。
【００２４】
グロバールプロセッサ４には、本プロセッサ２のプログラム格納用のプログラムＲＡＭ１０と、演算データ格納用のデータＲＡＭ１２が内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）１４、演算処理のデータ格納のための汎用レジスタであるＧ０、Ｇ１、Ｇ２及びＧ３レジスタ（１６、１８、２０、２２）、レジスタ退避・復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）２４、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）２６、同じくＩＲＱ（Ｉｎｔｅｒｒｕｐｔ  ＲｅＱｕｅｓｔ；割込み要求）時とＮＭＩ（Ｎｏｎ−Ｍａｓｋａｂｌｅ  Ｉｎｔｅｒｒｕｐｔ  ｒｅｑｕｅｓｔ；禁止不能割込み要求）時の分岐元アドレスを保持するＬＩレジスタ２８及びＬＮレジスタ３０、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）３２が内蔵されている。
【００２５】
これらのレジスタと、（図示していない）命令デコーダ、ＡＬＵ、ＳＣＵ（シーケンシャルユニット）、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路及びＧＰ演算制御回路とを使用して、ＧＰ命令の実行が行なわれる。
【００２６】
また、ＰＥ命令実行時には、命令デコーダ、レジスタファイル制御回路５６、ＰＥ演算制御回路５８を使用して、レジスタファイル６の制御と演算アレイ８の制御を行なう。さらに、データＲＡＭ１２から複数のＰＥレジスタファイル６にデータを転送できるように、設定されている。
【００２７】
レジスタファイル６においては、１つのＰＥ単位に８ビットのレジスタ３４が３２本内蔵されており、２５６個のＰＥ分の（３２本の）組が、アレイ構成になっている。レジスタ３４はＰＥ毎に、Ｒ０、Ｒ１、Ｒ２、・・・Ｒ３１と呼ばれる。それぞれのレジスタ３４は、演算アレイ８に対して１つの読み出しポートと１つの書き込みポートを備えており、８ビットのリード／ライト兼用のバスで演算アレイ８からアクセスされる。３２本のレジスタの内、２４本（Ｒ０〜Ｒ２３）はプロセッサ外部からアクセス可能であり、外部からはクロック（ＣＬＫ）とアドレス（Ａｄｄｒｅｓｓ）、リード／ライト制御（ＲＷＢ）を入力することで、任意のレジスタ３４に対し、読み書きできる。残りの８本（Ｒ２４〜Ｒ３１）のレジスタ３４は、ＰＥ演算の一時的な演算データ保存用として使用される。
【００２８】
演算アレイ８は、１６ビットＡＬＵ３６と１６ビットＡレジスタ３８、Ｆレジスタ４０を内蔵している。ＰＥ命令による演算は、レジスタファイル６から読み出されたデータ若しくはグローバルプロセッサ４から与えられたデータをＡＬＵ３６の片側の入力とし、Ａレジスタ３８の内容をもう片側の入力として、行なわれるものである。その演算結果は、Ａレジスタ３８に格納される。したがって、Ｒ０〜Ｒ３１レジスタ３４若しくはグローバルプロセッサ４から与えられたデータと、Ａレジスタ３８に格納されるデータとの、演算が行なわれることになる。
【００２９】
レジスタファイル６と演算アレイ８との接続部位に、７ｔｏ１（７対１）のマルチプレクサ４２が置かれている。図２に示すように、あるマルチプレクサ４２から見て、左方向の３つのＰＥ３に含まれるＲ０〜Ｒ３１レジスタ３４のデータと、右方向の３つのＰＥ３に含まれるＲ０〜Ｒ３１レジスタ３４のデータと、自らが属するＰＥ３に含まれるＲ０〜Ｒ３１レジスタ３４のデータを、演算対象として選択し得るように設定されている。また、レジスタファイル６の８ビットのデータは、シフト・拡張回路４４により任意のビット分だけ、左シフトしてＡＬＵ３６に入力する。
【００３０】
各ＰＥ３には、ＰＥ番号と呼ばれる通し番号が付されている。本ＳＩＭＤ型マイクロプロセッサ２では、ＰＥの個数が２５６個であるので、８ビットのビット列（即ち、００００００００ｂ〜１１１１１１１１ｂの２５６通り。本明細書において、上記のような末尾の“ｂ”は２進法表記であることを表す。）が、各ＰＥ３にＰＥ番号データとして与えられる。ＰＥ番号は、各ＰＥ３に対し、ＰＥの位置とは無関係に与えられても構わないが、本明細書においては、端から順に付されているものとする。
【００３１】
このＰＥ番号を利用して、特定のＰＥ３を選択しそのＰＥ３の演算アレイ８に含まれる８ビットの条件レジスタ５４（図３参照）に、所定の値を設定することができる。この条件レジスタ５４により、ＰＥ３別に演算実行／非実行の制御をすることが可能である。つまり、特定のＰＥ３だけに演算させるように選択することが可能となる。
【００３２】
なお、上記のＰＥ番号データは、各ＰＥ３にて８ビットの入力端子を備えさせその端子をＶＣＣ若しくはＧＮＤに結ぶ組み合わせを変えることにより、作成している。
【００３３】
図３のＰＥ番号発生回路６０は、それらＰＥ番号を作出できる回路である。更に、ＰＥ番号発生回路６０は、ＧＰ４からの制御により、ＰＥ番号の順序に従い、所定の繰返しパターンを形成する数（列）を作出できるように、設定されている。つまり、例えば、ＰＥ番号が、
・０、１、２、３、４、５、６、７、８、９、１０・・・・
と付されているＰＥ３において、それらＰＥ３に備わるＰＥ番号発生回路６０が、
・０、１、２、３、０、１、２、３、０、１・・・・
という繰返しパターンを形成する数を作出し得る、ということである。繰返しパターンは、勿論、上記のものに限定されない。
【００３４】
＜基礎となる構成によるディザ法の２値化処理＞
まず、図１及び図２のブロック図に示されるＳＩＭＤ型マイクロプロセッサ２を利用するディザ法の２値化処理を、図３の本発明に係るブロック図を用いて説明する。以下の説明のディザ法では、４×４のディザマトリクスを利用する。
【００３５】
夫々のＰＥ３が、ディザマトリクスの１つの行に属する４つの値と、４個のＰＥ３の単位で、繰り返し関連付けられることを目的として、複数（２５６個）配置されたＰＥ３の端から順に、各ＰＥ３を４種類に分類していく必要がある。
【００３６】
最初に、各ＰＥでは、ＰＥ番号データをＰＥ番号発生回路６０からＡレジスタ３８にロードする。続いて、Ａレジスタ３８に格納された上記データを、プロセッサ２への命令により“４”で除算し、その剰余値を求める。この値は、ＰＥ番号データの下位２ビット以外を０に置きかえる（即ち、ＰＥ番号データと“０ｘ３”とのＡＮＤ演算を行なう）ことにより計算される。その演算結果はＡレジスタ３８に格納されるとする。すると、この演算結果値は、ＰＥ番号の小さいＰＥ３から順に
・０、１、２、３、０、１、２、３、０、・・・
となり、各ＰＥ３では、Ａレジスタ３８の内容は、ＰＥ３の端から順に（ＰＥ番号の小さいＰＥ３から順に）、４つの種類の値の繰り返しとなる。
【００３７】
前に説明したように、ＧＰ４からの制御により、ＰＥ番号発生回路６０に、ＰＥ番号の順序に従い所定の繰返しパターンを形成する数（列）を、作出させてもよい。つまり、例えば、ＰＥ番号が、
・０、１、２、３、４、５、６、７、８、９、１０・・・・
と付されているＰＥ３において、それらＰＥ３に備わるＰＥ番号発生回路６０に、
・０、１、２、３、０、１、２、３、０、１・・・・
という繰返しパターンを形成する数を作出させて、Ａレジスタ３８に格納させてもよい。
【００３８】
次に、プロセッサ２への命令により、全ＰＥ３のＡレジスタ３８において“１”と比較演算を行なう。一致すればそのＰＥ３において、
・Ｔ１＝１
とする。なおここで、８ビットの条件レジスタ５４は、下位から順に、
・Ｔ０、Ｔ１、Ｔ２、Ｔ３、Ｔ４、Ｔ５、Ｔ６、Ｔ７
なるビットで構成される。
【００３９】
続く命令により、“２”と比較演算し一致すればそのＰＥ３において、
・Ｔ２＝１
とし、“３”と比較演算し一致すればそのＰＥ３において、
・Ｔ３＝１
とする。
【００４０】
ディザマトリクスの各値は、ＧＰ４内のプログラムＲＡＭ１０もしくはデータＲＡＭ１２に格納されている。まず、プロセッサ２への命令により、ディザマトリクスの１列目のしきい値を、例えば、即値データバス５３を介して，全ＰＥ３のＡレジスタ３８にロードする。次に、プロセッサ２への命令により、ディザマトリクスの２列目のしきい値を、「Ｔ１＝１」となっているＰＥ３のＡレジスタ３８にロードする。さらに、ディザマトリクスの３列目のしきい値を、「Ｔ２＝１」となっているＰＥ３のＡレジスタ３８にロードする。さらに、ディザマトリクスの４列目のしきい値を、「Ｔ３＝１」となっているＰＥ３のＡレジスタ３８にロードする。これらのロード操作により、Ａレジスタ３８には所望のしきい値が格納されることになる。各ＰＥ３において、これらのしきい値を画像の画素データが格納されているレジスタ（例えばＲ０レジスタ）のデータと比較する。比較結果により（即ち、しきい値と画素データとの大小関係により）、それぞれの演算結果データを「０ｘｆｆ」もしくは「０ｘ００」に設定する。ここにおいて、１ラインのディザ法の２値化処理が完了する。
【００４１】
ＳＩＭＤ型マイクロプロセッサ２を利用する演算処理において、画像データの１ラインの画素数がプロセッサ２に備わるＰＥ個数を超える場合がある。その場合には、１ラインをＰＥ個数で分割し、同じ処理を分割数だけ繰り返すことになる。
【００４２】
ディザ法の２値化処理では、画像の画素データとしきい値との比較処理そのものは１命令で終了するにもかかわらず、上記のようにしきい値をロードするための命令ステップが別途必要とされる。しかも、その命令ステップは、分割された処理を繰り返す度に実行されなければならない。但し、しきい値のロード操作を１ラインの処理の先頭の分割処理においてのみ行ない、その際に利用したしきい値をＰＥの所定のレジスタ（例えばＲ１）に格納し、後続の分割処理ではレジスタ（Ｒ１）に格納されたしきい値を使用すれば、命令ステップ数を削減することができる。しかし、このようにしても、しきい値を格納するために各ＰＥ３の幾つかのレジスタが占有されてしまうという問題点が残る。
【００４３】
＜第１の実施の形態＞
図５は、本発明に係る第１の実施の形態のＳＩＭＤ型マイクロプロセッサ２の構成を示す。図１及び図２のＳＩＭＤ型マイクロプロセッサ２に対して、幾らかの構成要素が付加されている。
【００４４】
グローバルプロセッサ（ＧＰ）４から、４本のパラメータバス（第１のパラメータバス６２−０、第２のパラメータバス６２−１、第３のパラメータバス６２−２、第４のパラメータバス６２−３）を介して、４組の８ビット・データが各ＰＥ３に供給されるように構成されている。各ＰＥ３においては、それら４組の８ビット・データを受信するために４つのバッファ回路（６６−０、６６−１、６６−２、６６−３）が設定されている。それらバッファ回路は上記の４本のパラメータバスを、各ＰＥ３の内部バス７０に接続する。
【００４５】
更に、４組のリード（第１のリード６４−０、第２のリード６４−１、第３のリード６４−２、第４のリード６４−３）が各ＰＥ３の４つのバッファ回路（６６−０、６６−１、６６−２、６６−３）に向けて引かれている。これらリード（６４−０、６４−１、６４−２、６４−３）は、後で説明するように、上記の８ビット・データが各ＰＥ３の内部バス７０に出力されるタイミングを制御する１ビット信号を供給する。
【００４６】
上記の４本のパラメータバスには、ＧＰ４内のデータＲＡＭ１２のデータが転送される。本実施の形態では、ディザマトリクスのしきい値データがそのように転送される。
【００４７】
また、各ＰＥ３において、４組のパラメータバス（６２−０、６２−１、６２−２、６２−３）、即ち４つのバッファ回路（６６−０、６６−１、６６−２、６６−３）の、いずれかを選択するための２ビットの選択信号が、ＰＥ番号発生回路６０より４つのバッファ回路（６６−０、６６−１、６６−２、６６−３）に入力される。各バッファ回路（符号６６により総称する。）は、この選択信号をデコードすることにより、自身に対する選択か否かを判断する。
【００４８】
なお、この選択信号を、ＰＥ番号発生回路６６でデコードして作成（例えば、下位２ビットをデコードして４ビットの選択信号を作成）し、バッファ回路６６ではデコード処理しない、というような構成であっても、上記の機能は実現可能である（但し、選択信号のビット数が増加する）。
【００４９】
図５のＳＩＭＤ型マイクロプロセッサ２においては、４本のパラメータバス（符号６２により総称する。）が備わるが、勿論それより多くてもよく、例えば、８本のパラメータバス６２が備わってもよい。ディザ法に関して言えば、パラメータバス６２の本数が多いと、より大きなディザマトリクスに対応することが可能になる。パラメータバス６２が８本である場合には、各ＰＥ３にはバッファ回路６６も８つ設定されなければならない。またその場合、例えば、各ＰＥ３のＰＥ番号発生回路６６は、ＰＥ番号の下位３ビットを選択信号として出力する。各バッファ回路６６においては、３ビットの選択信号をデコードすることにより、自身に対する選択か否か判断することになる。
【００５０】
リード（符号６４で総称する。）に関しては、４組の動作は等価であるため、１組（１本）によっても構成され得る。また、上記で示したように、ＰＥ番号発生回路６０は、ＧＰ４からの制御により、ＰＥ番号の順序に従い、所定の繰返しパターンを形成する数（列）を作出し得る。
【００５１】
図６は、４つのバッファ回路６６の構成の例であり、（１）は、第１のパラメータバス６２−０及び第１のリード６４−０に対応する、第１のバッファ回路６６−０である。符号「６８」で示されるバスは、選択信号バス（６８）であり、２ビットで構成されている。下位ビットが“ＣＴ０”に入力され、上位ビットが“ＣＴ１”に入力される。図の下方にはリード（第１のリード６４−０）が示されている。図６（１）の回路構成からすると、選択信号として“００ｂ”が入力され、且つ、第１のリード６４−０に“１ｂ”の信号が入力されるときに、第１のパラメータバス６２−０を通過する信号（データ）が内部バス７０に出力される。
【００５２】
同様に図６（２）は、第２のパラメータバス６２−１及び第２のリード６４−１に対応する、第２のバッファ回路６６−１である。この回路構成では、選択信号として“０１ｂ”が入力され、且つ、第２のリード６４−１に“１ｂ”の信号が入力されるときに、第２のパラメータバス６２−１を通過する信号（データ）が内部バス７０に出力される。
【００５３】
また図６（３）は、第３のパラメータバス６２−２及び第３のリード６４−２に対応する、第３のバッファ回路６６−２である。この回路構成では、選択信号として“１０ｂ”が入力され、且つ、第３のリード６４−２に“１ｂ”の信号が入力されるときに、第３のパラメータバス６２−２を通過する信号（データ）が内部バス７０に出力される。
【００５４】
更に図６（４）は、第４のパラメータバス６２−３及び第４のリード６４−３に対応する、第４のバッファ回路６６−３である。この回路構成では、選択信号として“１１ｂ”が入力され、且つ、第４のリード６４−３に“１ｂ”の信号が入力されるときに、第４のパラメータバス６２−３を通過する信号（データ）が内部バス７０に出力される。
【００５５】
第１の実施の形態のＳＩＭＤ型マイクロプロセッサ２を利用して、ディザ法の２値化処理を行なう手順を説明する。
【００５６】
各ＰＥ３のＰＥ番号発生回路６０は、プロセッサ２に対する命令により、ＰＥ番号の順序に眺めると所定の繰返しパターンを形成する数（列）を作出し、その値を選択信号としてバッファ回路６６に与える。
【００５７】
ＰＥ番号発生回路６０が作出する数は、例えば、（２進法で表現した）ＰＥ番号の下位２ビットである。つまり、ＰＥ番号が、
・０、１、２、３、４、５、６、７、８、９、１０・・・・
と付されているＰＥ３において、それらＰＥ３に備わるＰＥ番号発生回路６０に、
・０、１、２、３、０、１、２、３、０、１・・・・
という繰返しパターンを形成する数を作出させ、選択信号としてバッファ回路６６に与える。
【００５８】
また、同じ命令により、データＲＡＭ１２上にある４つの「しきい値」を同時に上記４組のパラメータバス６２を介して各ＰＥ３に転送する。各ＰＥ３では、ＰＥ番号発生回路６０から与えられた選択信号をバッファ回路６６でデコードする。これにより、４組のパラメータバス６２のデータのいずれかが選択される。選択されたパラメータバス６２に係るデータ（即ち、「しきい値」）は、ＰＥ内部バス７０に出力される。
【００５９】
ＰＥ内部バス７０に出力されたデータはマルチプレクサ４２、シフタ４４を介してＡＬＵ３６に入力され、Ａレジスタ３８に格納される。
【００６０】
ここで、Ａレジスタ３８には４組のしきい値から、選択されるべきしきい値が選択され、しかも１つの命令で格納されることになる。この後の処理は、上記と同様である。
【００６１】
以上の処理により、これまではしきい値の種類分掛かっていたしきい値のロード処理が、１回のステップ（処理）で実現できるようになる。よって、処理時間が減少される。
【００６２】
＜第２の実施の形態＞
図７は、本発明に係る第２の実施の形態のＳＩＭＤ型マイクロプロセッサ２の構成を示す。第１の実施の形態のＳＩＭＤ型マイクロプロセッサ２（図５）の構成と、概略同様である。
【００６３】
第１の実施の形態のＳＩＭＤ型マイクロプロセッサ２においては、４つのバッファ回路６６に対する選択信号は、ＰＥ番号発生回路６０から出力されたものが利用されている。一方、第２の実施の形態のＳＩＭＤ型マイクロプロセッサ２においては、条件レジスタ５４の２つのビット、例えば、
・（Ｔ１、Ｔ２）
が、選択信号を与える。選択信号を与える（発生させる）供給源は、各ＰＥ３毎に任意の値が格納され得るレジスタであればよく、条件レジスタ５４に限定されるものではない。例えば、Ａレジスタ３８やＦレジスタ４０であってもよい。
【００６４】
第２の実施の形態のＳＩＭＤ型マイクロプロセッサ２を利用して、ディザ法の２値化処理を行なう手順を説明する。
【００６５】
各ＰＥ３にて、ＰＥ番号発生回路６０でＰＥ番号を作成し、Ａレジスタ３８にロードする。次に、Ａレジスタ３８にロードされたデータと、“０ｘ３”とにおいて、ＡＮＤ処理を行なう。つまり、Ａレジスタ３８にロードされたデータにおいて下位２ビット以外を“０ｂ”に置き換える。その後、このデータを任意のＰＥレジスタ（例えばＲ２レジスタ）に転送する。
【００６６】
Ｒ２レジスタに転送されたデータを、１ビット左（上位）シフトをして、条件レジスタ５４へロードする。以上により、各ＰＥ３において、条件レジスタ５４の最下位ビットを除く下位２ビット（Ｔ１、Ｔ２）に、４つの種類の値が（ＰＥ３の端から順に繰り返されて）設定される。
【００６７】
次に、プロセッサ２への命令により、４つの「しきい値」を同時に上記４組のパラメータバス６２を介して各ＰＥ３に転送する。各ＰＥ３では、条件レジスタ５４から与えられた選択信号をバッファ回路６６でデコードする。これにより、４組のパラメータバス６２のデータのいずれかが選択される。選択されたパラメータバス６２に係るデータ（即ち、「しきい値」）は、ＰＥ内部バス７０に出力される。
【００６８】
ＰＥ内部バス７０に出力されたデータはマルチプレクサ４２、シフタ４４を介してＡＬＵ３６に入力され、Ａレジスタ３８に格納される。
【００６９】
ここで、Ａレジスタ３８には４組のしきい値から、選択されるべきしきい値が選択され、格納されることになる。この後の処理は、上記と同様である。
【００７０】
以上の第２の実施の形態の処理手順の例では、第１の実施の形態に関する上記記述における処理手順の例と、略同様のものを示しているが、第２の実施の形態のＳＩＭＤ型マイクロプロセッサ２を利用すれば、各ＰＥ３を種類分けするための繰り返しパターンの生成を、より自由に行なうことができる。第１の実施の形態のＳＩＭＤ型マイクロプロセッサ２の構成では、ＰＥ番号発生回路６０で形成される繰り返しパターンのバリエーションがあまり多くないものと想定される。即ち、ＰＥ番号発生回路６０は前に説明したような簡単な回路構成であるため、生成可能な繰り返しパターンは、
・０、１、０、１、０、１、０、１、０、１、０、１・・・
・０、１、２、３、０、１、２、３、０、１、２、３・・・
・０、１、２、３、４、５、６、７、０、１、２、３、４、５、６、７・・・
などのような、２のベキ乗を繰り返すものに限られてしまう。一方、第２の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２の構成では、３×３のディザマトリクスや６×６のディザマトリクスを利用するディザ法による２値化処理にも、対応可能である。更に、
・０、１、２、３、３、２、１、０、０、１、２、３、３、２、１・・・
というようなパターンも、生成可能である。
【００７１】
＜第３の実施の形態＞
＜基礎となる構成によるディザ法の２値化処理＞において説明したように、各ＰＥ３においてしきい値をロードした後に、画像データとそのしきい値を比較し、しきい値以上のＰＥ３では演算結果データ（画像データ）を“０ｘｆｆ”に、しきい値未満のＰＥ３では“０ｘ００”に、変換する。
【００７２】
より詳しく述べる。例えば、まず、プロセッサ２への命令により、画像データをしきい値と大小比較し、画像データがしきい値以上であるＰＥ３では、（条件レジスタ５４のＴ１ビットにおいて）「Ｔ１＝１」と設定し、画像データがしきい値未満であるＰＥ３では、「Ｔ１＝０」と設定する。次に、プロセッサ２への命令により、「Ｔ１＝１」であるＰＥ３ではデータ“０ｘｆｆ”をロードし、さらにプロセッサ２への命令により、「Ｔ１＝０」であるＰＥ３ではデータ“０ｘ００”をロードする。
【００７３】
上記のように、データ“０ｘｆｆ”をロードし続いてデータ“０ｘ００”をロードするには、２ステップの命令が必要である。本発明に係る第３の実施の形態のＳＩＭＤ型マイクロプロセッサ２は、同処理を１ステップの命令で実施することを実現するものである。
【００７４】
ここで、第３の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２の構成は、上記第２の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２の構成と、略同様である。第３の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２は、図８にてマッピングが示されているロード命令コード８４により、動作させることができるよう構成されている。
【００７５】
図８のロード命令コード（例）８４は、（例えば）Ａレジスタ３８にロードするロード値（即値）を、２つ備えている。従来技術における通常のロード命令コードでは、即値は１つだけである。例えば、条件レジスタ５４の所定のビットに格納される値が所定の条件を満足するようなＰＥ３に限り、即値がＡレジスタ３８にロードされる、というように、１つだけの即値が必要とされる。
【００７６】
本実施の形態に係るＳＩＭＤ型マイクロプロセッサ２においては、図８のロード命令コード８４により２つの即値データが、図７の第１のパラメータバス６４−０と第２のパラメータバス６４−１とのそれぞれに出力される。即ち、「即値０」８０（図８）は第１のパラメータバス６４−０に、「即値１」８２（図８）は第２のパラメータバス６４−１に、出力される。パラメータバス６４（６４−０、６４−１）への出力データの選択は、レジスタファイル制御回路５６内のマルチプレクサ（図示せず。）により行なわれる。そこでは、ロードに係る命令の種類により、データＲＡＭ１２に格納される値、若しくは上記のような即値が選択されることになる。
【００７７】
各ＰＥ３では、画像データとしきい値との大小比較の結果が、上記のように条件レジスタ５４の「Ｔ１」にて格納されている。「Ｔ１」に格納されるデータは、選択信号としてバッファ回路６６に与えられる。この選択信号により、第１のパラメータバス６４−０又は第２のパラメータバス６４−１のどちらかが、ＰＥ３毎に選択される。選択されたパラメータバス６４に係るデータが、ＰＥ内部バス７０に出力される。ＰＥ内部バス７０に出力されたデータは、マルチプレクサ４２、シフタ４４を介してＡＬＵ３６に入力され、Ａレジスタ３８に格納される。
【００７８】
結局、「Ｔ１＝０」の場合には第１のパラメータバス６４−０が選択され、「Ｔ１＝１」の場合には第２のパラメータバス６４−１が選択される。従って、第１のパラメータバス６４−０に出力されるデータ（即値０）としてデータ“０ｘ００”を指定し、第２のパラメータバス６４−１に出力されるデータ（即値１）としてデータ“０ｘｆｆ”を指定すれば、１ステップの命令だけで２値化処理が可能となる。
【００７９】
図８に示すロード命令コードでは、即値（即値０、即値１）として、“０ｘ００” “０ｘｆｆ”以外の値を記述することも、勿論可能である。
【００８０】
【発明の効果】
本発明に係るＳＩＭＤ型マイクロプロセッサ２を利用することにより、以下のような効果を得ることができる。
【００８１】
第１の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２を利用することにより、従来ではしきい値の種類分かかっていた、ディザ法のディザマトリクスのしきい値のロード処理が、１回のステップ（処理）で実現できるようになり、処理時間が短縮される。
【００８２】
第２の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２を利用することにより、第１の実施の形態と同様、従来ではしきい値の種類分かかっていた上記しきい値のロード処理が１回のステップ（処理）で実現できるようになり、処理時間が短縮される。更に、上記しきい値の繰り返しパターンがより複雑なものであっても、対応できる。
【００８３】
第３の実施の形態に係るＳＩＭＤ型マイクロプロセッサ２を利用することにより、（１つの命令内に記述される）２つの即値データにおいて各ＰＥがいずれかを選択しロードまでを行なうという処理を、１ステップにより実現できる。
【図面の簡単な説明】
【図１】  本発明に係るＳＩＭＤ型マイクロプロセッサの概略の構成を示すブロック図である。
【図２】  本発明に係るＳＩＭＤ型マイクロプロセッサの更に詳細な構成を示すブロック図である。
【図３】  本発明に係るＳＩＭＤ型マイクロプロセッサの基礎となる構成を示すブロック図である。
【図４】  ディザ法のディザマトリクスの例である。
【図５】  本発明に係る第１の実施の形態のＳＩＭＤ型マイクロプロセッサの詳細な構成を示すブロック図である。
【図６】  バッファ回路の構成の例である。
【図７】  本発明に係る第２の実施形態のＳＩＭＤ型マイクロプロセッサの詳細な構成を示すブロック図である。
【図８】  本発明の第３の実施の形態に係るロード命令コードのマッピング図である。
【符号の説明】
２・・・ＳＩＭＤ型マイクロプロセッサ、３・・・プロセッサエレメント、４グローバルプロセッサ、６・・・レジスタファイル、８・・・演算アレイ、３６・・・１６ビットＡＬＵ、３８・・・Ａレジスタ、５０・・・ディザマトリクス、５３・・・即値データバス、５４・・・条件レジスタ、５６・・・レジスタファイル制御回路、５８・・・ＰＥ演算部制御回路、６０・・・ＰＥ番号発生回路、６２−０・・・第１のパラメータバス、６２−１・・・第２のパラメータバス、６２−２・・・第３のパラメータバス、６２−３・・・第４のパラメータバス、６４−０・・・第１のリード、６４−１・・・第２のリード、６４−２・・・第３のリード、６４−３・・・第４のリード、６６−０・・・第１のバッファ回路、６６−１・・・第２のバッファ回路、６６−２・・・第３のバッファ回路、６６−３・・・第４のバッファ回路、６８・・・選択信号バス、７０・・・内部バス。
【図１】
0003837293.tif 000002
【図２】
0003837293.tif 000003
【図３】
0003837293.tif 000004
【図４】
0003837293.tif 000005
【図５】
0003837293.tif 000006
【図６】
0003837293.tif 000007
【図７】
0003837293.tif 000008
【図８】
0003837293.tif 000009