(57)【要約】【課題】この発明は、ＳＩＭＤ型プロセッサにおいて、簡単な構成でかつ高速にパターンマッチングを行うことができる装置を提供することを目的とする。【解決手段】この発明のＳＩＭＤ型プロセッサは、複数のデータを処理するための複数のプロセッサエレメント（ＰＥ）を備え、各ＰＥ３ａは各々がＡＬＵ３４と比較器３５ｄと、ＡＬＵ３４に接続されるＡレジスタ３５ａと、比較器３５ｃに接続されるＦレジスタ３５ｂを有し、前記ＡＬＵ３４並びに比較器３５ｃにおいては、Ａレジスタ３５ａの値、Ｆレジスタ３５ｂの値と単一の即値との比較が行われ、各々の比較結果を演算器３５ｄで論理演算し、その結果を各ＰＥ３ａの演算の実行、非実行を制御する条件レジスタ３５ｅに格納する。【選択図】  図３
2004192405.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントは各々が複数の比較手段と、各比較手段にそれぞれ接続される複数の演算レジスタを有し、前記比較手段においては、前記演算レジスタの値と単一の即値との比較が行われ、各々の比較結果の論理演算結果を各プロセッサエレメントの演算の実行、非実行を制御する条件レジスタに格納することを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
前記各プロセッサエレメントが持つ演算レジスタに入力されるデータが、前記演算レジスタとは別のレジスタにも同時に入力され、前記演算レジスタに格納される値をビットスワップした値が別のレジスタに入力されていることを特徴とする請求項１に記載のＳＩＭＤ型プロセッサ。
【請求項３】
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントは各々が複数の比較手段と、各比較手段にそれぞれ接続される複数の演算レジスタを有し、前記比較手段において前記レジスタの値と複数の即値データもしくはオペランド指示されたソースレジスタとの比較が行われ、各々の比較結果の論理演算結果を各プロセッサエレメントの演算の実行、非実行を制御する条件レジスタに格納し、オペランド指示されたソースレジスタは、主記憶あるいはデータメモリなどの記憶装置よりデータを入力するように構成され、比較を行うごとにソースレジスタの値が更新されることを特徴とするＳＩＭＤ型プロセッサ。
【請求項４】
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントが持つ複数の汎用レジスタの値を読み出すためのバスがダイナミックオアで構成され、ダイナミックオアのディスチャージ信号として、汎用レジスタを選択する信号とレジスタによって異なる比較データとの論理積が用いられることを特徴とするＳＩＭＤ型プロセッサ。
【請求項５】
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントが内臓しているＡＬＵにおいて演算レジスタの値と当該レジスタのビット幅よりも少ないビット幅の即値もしくはオペランド指示されたソースレジスタとの比較が行われ、前記ＡＬＵでは双方のデータの比較が下位側と上位側とで独立して行われ、双方の比較結果の論理演算結果を各プロセッサエレメントの演算の実行、非実行を制御する条件レジスタに格納するとともに、オペランド指示されたソースレジスタは、主記憶あるいはデータメモリなどの記憶装置よりデータを入力するように構成され、比較を行うごとにソースレジスタの値が更新されることを特徴とするＳＩＭＤ型プロセッサ。
【請求項６】
前記レジスタの下位側に入力されるデータが前記レジスタの上位側にも入力され、下位側に格納される値をビットスワップした値が、上位側に格納されることを特徴とする請求項５に記載のＳＩＭＤ型プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）方式の並列プロセッサに関する。
【０００２】
【従来の技術】
ＳＩＭＤ型プロセッサでは、複数のデータに対して１つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理、例えばデジタルコピアなどにおける画像処理に係る用途において、頻繁に用いられている。
【０００３】
ＳＩＭＤ型プロセッサにおける通常の画像処理では、複数の演算ユニット（プロセッサエレメント：Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ（以下、単にＰＥという。））を主走査方向に並べ、同一の演算を同時に複数のデータに対して実行することによって高速な演算処理が可能となっている。
【０００４】
ところで、画像処理においては、画像情報の中からある特徴量を検出する処理というものが頻繁にあらわれる。例えばエッジ検出や孤立点検出などは、画像処理において重要な処理である。これらの画像処理にはパターンマッチングという手法が取られることが多い。パターンマッチングとは、注目画素の周辺、例えば、３×３の画素のデータが、定められたパターンと一致した場合に画像処理上の特徴点を検出するという手法である。
【０００５】
通常のＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）では定められたパターンとの比較をパターン数分だけパイプライン処理することによって簡単なハードウェア構成でパターンマッチングを実現していることが多い。
【０００６】
しかしながら、ＳＩＭＤ型プロセッサも含めて、プロセッサを用いて、パターンマッチングをする場合には、対象画素と隣接する画素のデータを参照しながら、定められたパターンと一致するかどうかを比較する作業が必要となるため、プログラムで実行するためにはかなりのサイクル数がかかるという難点がある。
【０００７】
これを回避するため、通常は、パターンマッチングを行う場合には、画素データは２値化あるいは３値化されていることが多いことから、パターンマッチングを行う前に隣接しているＰＥの画素データをビットパックしてから比較を行うという手法が取られてきた。
【０００８】
ビットパック後のデータを用いてパターンマッチングを高速化するには、テーブル参照用のメモリを用いてテーブル変換を行う方法が考えられる。
【０００９】
隣接している複数のＰＥのデータを１ビットずつ、ずらして入力し、一度にビットパックすることが可能な構成、並びにＰＥ数のポートを持つメモリまたは全てのＰＥにそれぞれメモリを持つ構成とし、テーブル参照を行うことを可能したものについて開示したものがある（例えば、特許文献１、特許文献２参照）。
【００１０】
この構成では、ビットパックが１命令で実行可能であるため、ビットパックが何回も必要な処理では非常に有利である。ただし、パターンマッチングにおいては、ビットパックは、最初の１回のみの作業であり、以降は定められたパターン数だけ比較処理が行われるため、パターン数が多いと効果があまりない。また、ＰＥ数のポートを持つメモリまたは全てのＰＥにそれぞれメモリを持つ構成にし、テーブル参照を行うことを可能とすることで、処理時間は高速にできる。しかしながら、ＰＥ数のポートを持つメモリ、各ＰＥにメモリを持つ構成のいずれもコストが高くなるという難点がある。
【００１１】
各ＰＥの出力シフトレジスタからデータを出力し、外部のテーブルメモリのアドレスとして入力し、メモリから出力されたデータを入力シフトレジスタから入力する構成のプロセッサがある（例えば、特許文献３参照）。全データの処理にはＰＥ数以上のサイクルが必要となるが、ＳＩＭＤ型プロセッサ外部の転送装置が転送を行っている間にプロセッサ自体は別の処理を行えること、構成が簡単であるという利点を持つ。
【００１２】
また、テーブル変換をパターンマッチングに利用する場合には、パターンマッチングに用いられる画素の数がそのままテーブルのアドレスとなるため、画素数の多いパターンマッチングになると必要なメモリ容量が膨大になってしまうということを考慮する必要がある。
【００１３】
それ以外にパターンマッチング自体を高速化する手法としては、ＳＩＭＤ型プロセッサの外部にパターンマッチング専用のハードウェアを設けるという方法があるが、パターン数、パターンマッチングを行う画素数などの自由度が少なくなる欠点がある。
【００１４】
【特許文献１】
特許第２８１２２９２号公報
【特許文献２】
特表平１１−５０５６４０号公報
【特許文献３】
特開平５−６７２０３号公報
【００１５】
【発明が解決しようとする課題】
この発明は、上述した従来の問題点に鑑みなされたものにして、ＳＩＭＤ型プロセッサにおいて、簡単な構成でかつ高速にパターンマッチングを行うことができる装置を提供することを目的とする。
【００１６】
【課題を解決するための手段】
この発明の請求項１に記載のＳＩＭＤ型プロセッサは、複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントは各々が複数の比較手段と、各比較手段にそれぞれ接続される複数の演算レジスタを有し、前記比較手段においては、前記演算レジスタの値と単一の即値との比較が行われ、各々の比較結果の論理演算結果を各プロセッサエレメントの演算の実行、非実行を制御する条件レジスタに格納することを特徴とする。
【００１７】
上記の構成によれば、画像処理においてパターンマッチングが左右対称など対称性を持っているため、画素データを左右反転したデータと元の画素とを一度に単一の比較データと比較することによってパターンマッチングにかかるサイクル数を短縮することができる。
【００１８】
この発明の請求項２に記載のＳＩＭＤ型プロセッサは、上記特徴に加え更に、前記各プロセッサエレメントが持つ演算レジスタに入力されるデータが、前記演算レジスタとは別のレジスタにも同時に入力され、前記演算レジスタに格納される値をビットスワップした値が別のレジスタに入力されていることを特徴とする。
【００１９】
上記の構成によれば、左右反転したデータなど元の画素データを変換した画素データを元画素が格納されるレジスタとは別のレジスタに同時に格納することによって、パターンマッチングを行う前に必要な処理のサイクル数を短縮することができる。
【００２０】
この発明の請求項３に記載のＳＩＭＤ型プロセッサは、複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントは各々が複数の比較手段と、各比較手段にそれぞれ接続される複数の演算レジスタを有し、前記比較手段において前記レジスタの値と複数の即値データもしくはオペランド指示されたソースレジスタとの比較が行われ、各々の比較結果の論理演算結果を各プロセッサエレメントの演算の実行、非実行を制御する条件レジスタに格納し、オペランド指示されたソースレジスタは、主記憶あるいはデータメモリなどの記憶装置よりデータを入力するように構成され、比較を行うごとにソースレジスタの値が更新されることを特徴とする。
【００２１】
上記の構成によれば、複数のレジスタに格納されている画素データに対して、各々別の比較データを供給することによってパターンマッチングを行う画素数が大きくとも短サイクルでパターンマッチングを行うことが可能である。
【００２２】
この発明の請求項４に記載のＳＩＭＤ型プロセッサは、複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントが持つ複数の汎用レジスタの値を読み出すためのバスがダイナミックオア（ＯＲ）で構成され、ダイナミックオアのディスチャージ信号として、汎用レジスタを選択する信号とレジスタによって異なる比較データとの論理積が用いられることを特徴とする。
【００２３】
上記の構成によれば、複数の汎用レジスタよりデータを読み出すダイナミックＯＲ回路のディスチャージ信号として、レジスタの選択信号と比較データを用いることによって、少ない回路追加で、短サイクルでパターンマッチングを行うことが可能である。
【００２４】
この発明の請求項５に記載のＳＩＭＤ型プロセッサは、複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメントが内臓しているＡＬＵにおいて演算レジスタの値と当該レジスタのビット幅よりも少ないビット幅の即値もしくはオペランド指示されたソースレジスタとの比較が行われ、前記ＡＬＵでは双方のデータの比較が下位側と上位側とで独立して行われ、双方の比較結果の論理演算結果を各プロセッサエレメントの演算の実行、非実行を制御する条件レジスタに格納するとともに、オペランド指示されたソースレジスタは、主記憶あるいはデータメモリなどの記憶装置よりデータを入力するように構成され、比較を行うごとにソースレジスタの値が更新されることを特徴とする。
【００２５】
上記の構成によれば、画像処理においてパターンマッチングが左右対称など対称性を持っているため、画素データを左右反転したデータと元の画素とを一度に単一の比較データと比較することによってパターンマッチングにかかるサイクル数を短縮することができる。
【００２６】
この発明の請求項６に記載のＳＩＭＤ型プロセッサは、上記請求項５の特徴に加え更に、前記レジスタの下位側に入力されるデータが前記レジスタの上位側にも入力され、下位側に格納される値をビットスワップした値が、上位側に格納されることを特徴とする。
【００２７】
上記の構成によれば、左右反転したデータなど元の画素データを変換した画素データを元画素が格納されるレジスタとは別のレジスタに同時に格納することによって、パターンマッチングを行う前に必要な処理のサイクル数を短縮することができる。
【００２８】
【発明の実施の形態】
以下、この発明に係るＳＩＭＤ型プロセッサの実施の形態につき図面に従い説明する。図１は、この発明が適用されるＳＩＭＤ型プロセッサの全体構成を示すブロック図である。
【００２９】
この発明のＳＩＭＤ型プロセッサ１は、図１に示すように、グローバルプロセッサ２と、レジスタファイル３１と演算アレイ３６からなるプロセッサエレメントブロック３と、で構成される。
【００３０】
グローバルプロセッサ２は、いわゆるＳＩＳＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ、  Ｓｉｎｇｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）型のプロセッサであり、プログラムＲＡＭとデータＲＡＭを内蔵し、プログラムを解読し、各種制御信号を生成する。この制御信号は内蔵する各種ブロックの制御以外にもレジスタファイル３１、演算アレイ３６に供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等を使用して各種演算処理、プログラム制御処理を行う。
【００３１】
レジスタファイル３１は、ＰＥ（プロセッサエレメント）命令で処理されるデータを保持している。ＰＥ命令は、ＳＩＭＤ型の命令であり、レジスタファイル３１に保持されている複数のデータを同時に同じ処理を行う。このレジスタファイル３１からのデータの読み出し／書き込みの制御はグローバルプロセッサ２からの制御によって行われる。読み出されたデータは演算アレイ３６に送られ、演算アレイ３６での演算処理後にレジスタファイル３１に書き込まれる。
【００３２】
また、この実施形態においては、レジスタファイル３１はプロセッサ外部からのアクセスが可能であり、グローバルプロセッサ２の制御とは別に外部から特定のレジスタの読み出し／書き込みが行われる。
【００３３】
演算アレイ３６は、ＰＥ命令の演算処理が行われる。処理の制御はすべてグローバルプロセッサ２から行われる。
【００３４】
図２は図１に示したＳＩＭＤ型プロセッサの詳細な構成を示すブロック図である。
【００３５】
グローバルプロセッサ２には本プロセッサのプログラム格納用のプログラムＲＡＭと演算データ格納用のデータＲＡＭが内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ３レジスタ、レジスタ退避、復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩ、ＬＮレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）が内蔵されている。
【００３６】
これらのレジスタと図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を使用してＧＰ命令の実行が行われる。
【００３７】
また、ＰＥ命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、ＰＥ演算制御回路を使用して、レジスタファイルの制御と演算アレイの制御をおこなう。
【００３８】
この実施形態では、レジスタファイル３１には１つのＰＥ単位（３ａ）に８ビットのレジスタが３２本内蔵されており、２５６ＰＥ分の組みがアレイ構成になってレジスタファイル３１を構成している。レジスタはＰＥごとにＲ０、Ｒ１、Ｒ２、．．．Ｒ３１と呼ばれている。それぞれのレジスタは演算アレイ３６に対して１つの読み出しポートと１つの書き込みポートを備えており、８ビットのリード／ライト兼用のバス３８で演算アレイ３６からアクセスされる。３２本のレジスタの内、２４本（Ｒ０〜Ｒ２３）はプロセッサ外部からアクセス可能であり、外部からクロック（ＣＬＫ）とアドレス（Ａｄｄｒｅｓｓ）、リード／ライト制御（ＲＷＢ）を入力することで任意のレジスタを読み書きできるように構成される。
【００３９】
レジスタの外部からのアクセスは１つの外部ポートで各ＰＥの１つのレジスタがアクセス可能であり、外部から入力されたアドレスでＰＥの番号（０〜２５５）を指定する。従って、レジスタアクセスの外部ポートは全部で２４組搭載されている。また、外部からのアクセスは偶数のＰＥと奇数のＰＥの１組で１６ビットデータとなっており、１回のアクセスで２つのレジスタが同時にアクセス可能に構成している。
【００４０】
残りの８本（Ｒ２４〜Ｒ３１）のレジスタはＰＥ演算の一時的な演算データ保存用として使用される。
【００４１】
演算アレイ３６は、１６ビットＡＬＵ３４と１６ビットＡレジスタ３５ａ、Ｆレジスタ３５ｂを内蔵している。ＰＥ命令による演算はレジスタファイル３１から読み出されたデータもしくはグローバルプロセッサ２から与えられたデータをＡＬＵ３４の片側の入力としてもう片側にはＡレジスタ３５ａの内容を入力として結果をＡレジスタ３５ａに格納する。したがって、Ａレジスタ３５ａとＲ０〜Ｒ３１レジスタもしくはグローバルプロセッサ２から与えられたデータとの演算が行われることとなる。
【００４２】
また、この例では、レジスタファイル３１と演算部３６との接続に７ｔｏ１のマルチプレクサ３２を置いており、ＰＥ方向で左に１、２、３つ離れたデータと右に１、２、３つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル３１の８ビットのデータはシフト及び拡張回路３３により任意ビットの左シフトしてＡＬＵ３４に入力する。さらに、図示していない８ビットの条件レジスタ（Ｔ）により、ＰＥ３ａごとに演算実行の無効／有効の制御をしており、特定のＰＥ３ａだけを演算対象として選択できる。
【００４３】
次に、この発明の第１の実施形態につき図３に従い説明する。図３は、この発明の第１の実施形態の要部構成を示すブロック図である。
【００４４】
上記したように、レジスタファイル３１には１つのＰＥ単位（３ａ）に８ビットのレジスタが３２本内蔵されており、２５６ＰＥ分の組みがアレイ構成になっている。３２本のレジスタの内、２４本のレジスタ３１ｂ（Ｒ０〜Ｒ２３）はプロセッサ外部からアクセス可能であり、外部インターフェース４を介して与えられるクロック（ＣＬＫ）とアドレス（Ａｄｄｒｅｓｓ）リード／ライト制御（ＲＷＢ）が、各ＰＥ３ａ毎に設けられたアドレスデコード／リードライト制御回路３９に与えられ、任意のレジスタを読み書きでする。
【００４５】
レジスタの外部からのアクセスは１つの外部ポートで各ＰＥの１つのレジスタがアクセス可能であり、外部から入力されたアドレスでＰＥの番号（０〜２５５）を指定する。従って、レジスタアクセスの外部ポートは全部で２４組搭載されている。また、外部からのアクセスは偶数のＰＥと奇数のＰＥの１組で１６ビットデータとなっており、１回のアクセスで２つのレジスタが同時にアクセス可能に構成している。
【００４６】
残りの８本（Ｒ２４〜Ｒ３１）のレジスタ３１ｃはＰＥ演算の一時的な演算データ保存用として使用される。
【００４７】
図３に示す構成においては、各ＰＥ３ａは、複数の比較手段、即ちＡＬＵ３４とは別に比較器３５ｃを有する。更に、各ＰＥ３ａのＡレジスタ３５ａとは別のレジスタを有し、この実施形態では、Ｆレジスタ３５ｂに格納されている値と即値１データバス４０より供給された値とを比較器３５ｃで比較する。尚、この実施形態ではＦレジスタ３５ｂは１つであるが複数のレジスタであってもよい。
【００４８】
その比較器３５ｃの出力結果をＡＬＵ３４より出力された各種フラグ（Ｃ、Ｖ、Ｚ、Ｎ）の論理演算を行うブロック（演算器３５ｄ）に対して出力する構成をとる。論理演算ブロック（演算器３５ｄ）では、各種フラグ及び比較器の出力結果との論理演算を行い、演算結果を条件レジスタ（Ｔ）３５ｅに出力するようになっている。即値１はマルチプレクサ３５ｆを介して、ＡＬＵ３４の１方の入力に接続されており、即値１とＡレジスタ３５ａの演算、即ち比較をＡＬＵ３４で行うことが可能になっている。上記した、Ａレジスタ３５ａとＦレジスタ３５ｂと即値１とを比較するＡＬＵ３４と比較器３５ｃの一例を図４に示す。即値１にパターンマッチングのデータが与えられる。
【００４９】
バス１、２は、プリチャージするためのＰＭＯＳ（１０、２０）を備えており、プリチャージ期間においてＰＣＫが”Ｌ”となるように制御される。ＰＭＯＳ（１１、２１）及びインバータ（１４、２４）はバスリピータであり、リード用バスの電位を”Ｈ”に保持するために備えられている。本実施形態において、ＡＬＵ３４に組み込まれている比較回路部分は、Ａレジスタ３５ａからのビット（例えば、ビット０）がバス１に対して接続されているディスチャージ用の直列に接続された上側のＮＭＯＳ（ビット０では１２、１２’、…）のゲート入力に負論理で接続されている。下側のＮＭＯＳ（ビット０では１３、１３’、…）のゲート入力は、即値１からのデータの負論理とＰＣＫ信号の負論理とのアンドの出力が接続されている。そして、これらの比較結果が、論理演算回路３５ｄに与えられる。
【００５０】
一方、比較器３５ｃは、Ｆレジスタ３５ｂからのビット（例えば、ビット０）がバス２に対して接続されているディスチャージ用の直列に接続された上側のＮＭＯＳ（ビット０では２２、２２’、…）のゲート入力に負論理で接続されている。下側のＮＭＯＳ（ビット０では２３、２３’、…）のゲート入力は、即値１からのデータの負論理とＰＣＫ信号の負論理とのアンドの出力が接続されている。そして、これらの比較結果が、論理演算回路３５ｄに与えられる。論理演算回路３５ｄにて、両比較結果のオア（ＯＲ）またはアンド（ＡＮＤ）が取られ、その結果が条件レジスタ３５ｅに出力される。
【００５１】
かかる構成によれば、ＰＥ３ａの所定のレジスタに副走査方向にビットパックされたデータを格納した後、Ａレジスタ３５ａには主走査方向に左からビットパックしたデータを、Ｆレジスタ３５ｂには右側からビットパックしたデータを格納することで、パターンマッチングを短いサイクルで行うことができる。
【００５２】
以下、上記構成を用いて、図５にある３×３の画素パターンでのパターンマッチングを行う方法につき図５に従い説明する。
【００５３】
図５の２０個のパターン（１〜２０）のいずれかに一致すれば真を返す場合につき説明する。図５において、黒丸はデータ”１”を意味し、空欄はデータが何でもよいことを意味している。
【００５４】
パターンマッチングを行う画素データは２値データであり、データは副走査方向にビットパックされ、各ＰＥ３ａのレジスタ（ここでは説明のため、Ｒ０としておく）に、一番上のラインがビット０に、２番目のラインがビット１に、１番下のラインがビット２に格納されているものとする。図６（ａ）（ｂ）に示すように、各ＰＥの８ビットのＲ０レジスタに、一番上のラインがビット０に、２番目のラインがビット１に、１番下のラインがビット２に格納される。
【００５５】
従来のプロセッサであれば、以下のように処理を行うことでパターンマッチングを行う。
(1)自身のＰＥのＲ０のデータを左３ビットシフトした値をＡレジスタにロード、
(2)１つ上のＰＥのＲ０のデータをＡレジスタに挿入、
(3)１つ下のＰＥのＲ０のデータを左６ビットシフトした値をＡレジスタに挿入、
(4)Ａレジスタの値をパターン１とビットマスク付きで比較、結果をＴ１に格納、
(5)Ａレジスタの値をパターン２とビットマスク付きで比較、結果とＴ１のＯＲをＴ１に格納、
(6)Ａレジスタの値をパターン３とビットマスク付きで比較、結果とＴ１のＯＲをＴ１に格納、
(7)Ａレジスタの値をパターン４とビットマスク付きで比較、結果とＴ１のＯＲをＴ１に格納、
（途中、記述を省略する）
(22)Ａレジスタの値をパターン１９とビットマスク付きで比較、結果とＴ１のＯＲをＴ１に格納、
(23)Ａレジスタの値をパターン２０とビットマスク付きで比較、結果とＴ１のＯＲをＴ１に格納
【００５６】
上記のように、従来のプロセッサであれば、パターンマッチングに２３サイクルが必要である。
【００５７】
この発明の第１の実施形態の構成によれば、Ａレジスタ３５ａとＦレジスタ３５ｂに、例えば、図６（ｃ）（ｄ）に示すように、左右反転した画素データをビットパックして格納する。即ち、自身のＰＥ（ｎ）のＲ０レジスタのデータ（ｄ、ｅ、ｆ）を左３ビットシフトした値をＡレジスタ３５ａ、Ｆレジスタ３５ｂにロードする。続いて、１つ上のＰＥ（ｎ＋１）のＲ０レジスタのデータ（ｇ、ｈ、ｉ）をＡレジスタ３５ａに挿入する。次に、１つ下のＰＥ（ｎ−１）のＲ０レジスタのデータ（ａ、ｂ、ｃ）を左６ビットシフトした値をＡレジスタ３５ａに挿入する。更に、１つ上のＰＥ（ｎ＋１）のＲ０レジスタのデータ（ｇ、ｈ、ｉ）を左６ビットシフトした値をＦレジスタ３５ｂに挿入する。最後に、１つ下のＰＥ（ｎ−１）のＲ０レジスタのデータ（ａ、ｂ、ｃ）をＦレジスタ３５ｂに挿入する。このように、Ａレジスタ３５ａとＦレジスタ３５ｂに、左右反転した画素データをビットパックして格納すると、左右対称なパターンについては、左右対象のパターンの内どちらか一方の比較を行えばよく、２つのパターンの比較を行う必要がないので以下のように少ないサイクル数で処理を行うことができる。
【００５８】
図５のパターンの場合では、４と１は左右対称、７と５は左右対称、８と３は左右対称、９と２と左右対称、１３と１０は左右対称、１６と１４は左右対称、１７と１２は左右対称、１８と１１は左右対称、２０と１９は左右対称であるため比較の必要がない。このため、この発明の第１の実施形態においては、次のような処理になる。
【００５９】
(1)自身のＰＥのＲ０のデータを左３ビットシフトした値をＡ、Ｆレジスタにロード、
(2)１つ上のＰＥのＲ０のデータをＡレジスタに挿入、
(3)１つ下のＰＥのＲ０のデータを左６ビットシフトした値をＡレジスタに挿入、
(4)１つ上のＰＥのＲ０のデータを左６ビットシフトした値をＦレジスタに挿入、
(5)１つ下のＰＥのＲ０のデータをＦレジスタに挿入、
(6)Ａ、Ｆレジスタの値をパターン１とビットマスク付きで比較、比較結果のＯＲをＴ１に格納、
(7)Ａ、Ｆレジスタの値をパターン２とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納、
(8)Ａ、Ｆレジスタの値をパターン３とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納、
(9)Ａ、Ｆレジスタの値をパターン５とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納、
(10)Ａ、Ｆレジスタの値をパターン６とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納、
(11)Ａ、Ｆレジスタの値をパターン１０とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納、
(12)Ａ、Ｆレジスタの値をパターン１１とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納、
（途中、記述を省略する）
(15)Ａ、Ｆレジスタの値をパターン１５とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納
(16)Ａ、Ｆレジスタの値をパターン１９とビットマスク付きで比較、比較結果及びＴ１のＯＲをＴ１に格納
【００６０】
このように、この第１の実施形態では、パターンマッチングを１６サイクルで行える。
【００６１】
以上はパターンマッチングを行う画素数が少ない場合の例につき説明した。次に、図７に示す５×５の画素パターンでのパターンマッチングを行う方法につき説明する。
【００６２】
図７の６つのパターンのいづれかに一致すれば真を返す場合につき説明する。図７において、黒丸はデータ”１”を意味し、空欄はデータが何でもよいことを意味している。
【００６３】
パターンマッチングを行う画素データは２値データであり、データは副走査方向にビットパックされ、各ＰＥ３ａのレジスタ（ここでは説明のため、Ｒ０としておく）に、一番上のラインがビット０に、２番目のラインがビット１に、１番下のラインがビット４に格納されているものとする（図８（ａ）（ｂ）参照）。
【００６４】
従来のプロセッサでは１つのレジスタのビット幅よりも大きい画素サイズでのパターンマッチングを行う場合には、以下のように行う。処理サイクルを短縮するため従来のプロセッサが汎用レジスタ方式であるとする。尚、Ａ、Ｆは汎用レジスタである。
【００６５】
(1)自身のＰＥのＲ０のデータをＡレジスタにロード、
(2)１つ上のＰＥのＲ０のデータを左５ビットシフトした値をＡレジスタに挿入、
(3)２つ上のＰＥのＲ０のデータを左１０ビットシフトした値をＡレジスタに挿入、
(4)１つ下のＰＥのＲ０のデータを左５ビットシフトした値をＦレジスタにロード、
(5)２つ下のＰＥのＲ０のデータを左１０ビットシフトした値をＦレジスタに挿入、
(6)Ａの値とパターン１の左３列とをビットマスク付きで比較、結果をＴ１に格納、
(7)Ｆの値とパターン１の右２列とをビットマスク付きで比較、結果とＴ１のＡＮＤをＴ１に格納、
(8)Ａの値とパターン２の左３列とをビットマスク付きで比較、結果をＴ２に格納、
(9)Ａの値とパターン３の左３列とをビットマスク付きで比較、結果をＴ３に格納、
(10)Ｆの値とパターン３の右２列とをビットマスク付きで比較、結果とＴ３のＡＮＤをＴ３に格納、
（途中、記述を省略する）
(15)Ａの値とパターン６の左３列とをビットマスク付きで比較、結果をＴ６に格納、
(16)Ｆの値とパターン６の右２列とをビットマスク付きで比較、結果とＴ６のＡＮＤをＴ６に格納、
(17)Ｔ１〜Ｔ６の値のＯＲをＴ７に格納
【００６６】
上記のように、従来のプロセッサでは、１７サイクルが必要である。途中パターン２については処理を簡略化している。
【００６７】
この発明の実施形態では、Ａレジスタ３５ａとＦレジスタ３５ｂに、例えば、図８（ｃ）（ｄ）に示すように、画素データをビットパックして格納する。このように格納すると、図７のパターン１、２のようにパターン自体が左右対称な場合には、左側の画素と右側の画素とを同時に比較できるので処理を高速化できる。以下に処理の例を示す。
【００６８】
(1)自身のＰＥのＲ０のデータをＡ、Ｆレジスタにロード、
(2)１つ上のＰＥのＲ０のデータを左５ビットシフトした値をＡレジスタに挿入、
(3)２つ上のＰＥのＲ０のデータを左１０ビットシフトした値をＡレジスタに挿入、
(4)１つ下のＰＥのＲ０のデータを左５ビットシフトした値をＦレジスタに挿入、
(5)２つ下のＰＥのＲ０のデータを左１０ビットシフトした値をＦレジスタに挿入、
(6)Ａ、Ｆの値とパターン１をビットマスク付きで比較、ＡＮＤ結果をＴ１に格納（左右対称なので同時比較）、
(7)Ａ、Ｆの値とパターン２をビットマスク付きで比較、ＡＮＤ結果をＴ２に格納（左右対称なので同時比較）、
(8)Ａ、Ｆの値とパターン３の左３列とをビットマスク付きで比較、ＡＮＤ結果をＴ３に格納、
(9)Ａ、Ｆの値とパターン３の右３列とをビットマスク付きで比較、ＡＮＤ結果とＴ３のＡＮＤをＴ３に格納、
（途中、記述を省略する）
(14)Ａ、Ｆの値とパターン６の左３列とをビットマスク付きで比較、ＡＮＤ結果をＴ６に格納、
(15)Ａ、Ｆの値とパターン６の右３列とをビットマスク付きで比較、ＡＮＤ結果とＴ６のＡＮＤをＴ６に格納、
(16)Ｔ１〜Ｔ６の値のＯＲをＴ７に格納、
【００６９】
この発明の実施形態の場合、上記した通り１６サイクルとなる。比較パターンに左右対称など、対称性を持ったパターンが多い場合に処理サイクルの削減効果が大きくなる。
【００７０】
次に、この発明の第２の実施形態につき図９に従い説明する。図９は、この発明の第２の実施形態の要部構成を示すブロック図である。
【００７１】
この第２の実施形態は、各ＰＥ３ａが持つ演算レジスタに入力されるデータが、演算レジスタとは別のレジスタにも同時に入力され、演算レジスタに格納される値をビットスワップした値が別のレジスタに入力されるように構成している。
【００７２】
ＰＥ３ａの８ビットの汎用レジスタより出力されたデータはＰＥ方向にマルチプレクサ３２でマルチプレクスされた後、バレルシフタ３３によってビットシフトされ１６ビットのデータバスに出力される。バレルシフタ３３は１６ビットのバスの上位バイト側、下位バイト側で同一のデータを出力するように構成する。ＡＬＵ及びＡ、Ｆレジスタ及び比較器はこの第２の実施形態では４ビットずつのグループに分かれている。即ち、ＡＬＵ３４ａ〜３４ｄ、Ａレジスタ３５ａ１〜３５ａ４、Ｆレジスタ３５ｂ１〜３５ｂ４及び比較器３５ｃ１〜３５ｃ４に分かれている。そして、ＡＬＵ間はキャリー信号及びゼロ検出結果が伝播されるように構成される。Ａレジスタ３５ａ１〜３５ａ４、Ｆレジスタ３５ｂ１〜３５ｂ４の書きこみを制御する信号は、グローバルプロセッサ２より出力されるが、４ビットずつ個別に制御が可能なように制御線がＡ１＿ＷＲ〜Ａ４＿ＷＲ、  Ｆ１＿ＷＲ〜Ｆ４＿ＷＲの４本分かれた構成となっている。
【００７３】
かかる構成によれば、汎用レジスタよりＡレジスタ３５ａ１〜３５ａ４、Ｆレジスタ３５ｂ１〜３５ｂ４にデータを転送する場合に、Ａレジスタ３５ａ１〜３５ａ４、Ｆレジスタ３５ｂ１〜３５ｂ４とで左右反転などのビットスワップしたデータを同時に格納することが可能となる。
【００７４】
図５の３×３のパターンマッチングを行う場合につき説明する。
【００７５】
(1)自身のＰＥのＲ０のデータを左３ビットした値をＡ、Ｆレジスタにロード、
(2)１つ上のＰＥのＲ０のデータをＡレジスタに挿入、
(3)１つ下のＰＥのＲ０のデータを左６ビットシフトした値をＡレジスタに挿入、
(4)１つ上のＰＥのＲ０のデータを左６ビットシフトした値をＦレジスタに挿入、
(5)１つ下のＰＥのＲ０のデータをＦレジスタに挿入
【００７６】
上記のように５サイクルかけて格納していた処理が以下のように３サイクルで済むことになる。
【００７７】
(1')自身のＰＥのＲ０のデータを左４ビットシフトした値をＡ、Ｆレジスタの上下バイトにロード、
(2')１つ上のＰＥのＲ０のデータをＡ、Ｆの上下バイトに挿入、
( 3')１つ下のＰＥのＲ０のデータをＡレジスタの上位バイトに挿入、Ｆレジスタの下位バイトに挿入
【００７８】
図１０に各サイクル(1')(2')(3')毎の処理につき図示する。尚、各ＰＥ３ａのＲ０レジスタには、図６（ａ）（ｂ）に示すように、各ＰＥの８ビットのＲ０レジスタに、一番上のラインがビット０に、２番目のラインがビット１に、１番下のラインがビット２に格納される。まず、サイクル(1')において、バレルシフタ３３によって、自身のＰＥ（ｎ）のＲ０レジスタのデータ（ｄ、ｅ、ｆ）を左４ビットシフトするとともに１６ビットのデータバスに出力し、その左４ビットシフトした値をＡレジスタ、Ｆレジスタの上下バイトにロードする。このとき、制御線Ａ２＿ＷＲ、  Ｆ２＿ＷＲがイネーブル他の制御線はディスイネーブルにしている。続いて、サイクル(2')において、バレルシフタ３３によって、１つ上のＰＥ（ｎ＋１）のＲ０レジスタのデータ（ｇ、ｈ、ｉ）を１６ビットのデータバスに出力し、その値をＡレジスタ、Ｆレジスタの上下バイトにロードする。このとき、制御線Ａ１＿ＷＲ、Ａ３＿ＷＲ、Ｆ１＿ＷＲ、Ｆ３＿ＷＲ、がイネーブル他の制御線はディスイネーブルにしている。次に、サイクル(3')において、バレルシフタ３３によって、１つ下のＰＥ（ｎ−１）のＲ０レジスタのデータ（ａ、ｂ、ｃ）を１６ビットのデータバスに出力し、その値をＡレジスタ上位バイト、Ｆレジスタの下位バイトにロードする。このとき、制御線Ａ３＿ＷＲ、Ｆ１＿ＷＲがイネーブル他の制御線はディスイネーブルにしている。
【００７９】
このようにして、Ａレジスタ、Ｆレジスタに左右反転などのビットスワップしたデータを同時に格納される。
【００８０】
この発明の第３の実施形態につき図１１に従い説明する。図１１は、この発明の第３の実施形態の要部構成を示すブロック図である。尚、図３と同一部分には同一符号を付し説明の重複を避けるためにここではその説明を割愛する。
【００８１】
この第３の実施形態は、２つの別の比較データが即値１データバス４０ａ、即値データバス４０ｂからＡＬＵ３４及びＦレジスタ用の比較器３５ｃに入力されるように構成されている。図示はしていないが、グローバルプロセッサ２内にパターンマッチング専用の複数のレジスタを有し、比較データとして即値だけではなくこのレジスタの値がＰＥ３ａに対して出力することも可能となっている。このレジスタの値は主記憶あるいはデータメモリなどの記憶装置からデータをロードすることが可能なように構成し、比較を実行するサイクルの終わりに次のサイクルで比較すべきパターンデータをこのレジスタにロードするように制御するとよい。
【００８２】
かかる構成によれば、図５の３×３のパターンマッチングの例のように画素数が少ない比較の場合には、Ａレジスタ３５ａ、Ｆレジスタ３５ｂに同一の画素データをビットパックして格納しておき（図６でＡレジスタに格納されている値と全く同一の値をＦレジスタに格納する）、２つの即値データとしてパターン１、２、パターン３、４、パターン５、６、…、パターン１９、２０を同時に入力するように制御すると、パターンマッチングのサイクル数が半分で済む。
【００８３】
また、図７の５×５のパターンマッチングの例のように画素数が多い比較の場合に、図８の（ｃ）（ｄ）に示すように、Ａレジスタ３５ａに左側半分の画素を、Ｆレジスタ３５ｂに右側半分の画素を格納しておき、即値データとしてパターンの左側半分の値をＡＬＵ３４に、右側半分の値をＦレジスタ用の比較器３５ｃに出力するようにすることで、１サイクルで比較を行うことが可能となり、処理サイクルの短縮が出来る。
【００８４】
図７ではパターンの数が６つと少なかったため、従来のプロセッサでも有限個の条件レジスタ内のフラグビットで処理を行うことが可能だったが、パターン数が条件レジスタのビット幅を超えるような場合には、条件フラグの退避が必要となるため処理サイクルが増大してしまうのだが、この実施形態の構成によれば１サイクルで比較が行えるため条件フラグは１つでよいためリソース面、処理サイクルの両面から有利となっている。
【００８５】
この発明の第４の実施形態につき図１２に従い説明する。図１２は、この発明の第４の実施形態の要部構成を示すブロック図である。尚、図３と同一部分には同一符号を付し説明の重複を避けるためにここではその説明を割愛する。
【００８６】
各ＰＥ３ａが持つ３２個の汎用レジスタ３１ｂは、Ｗｉｒｅｄ−ＯＲされて一つのリード用バス３８ｂにデータを出力する構成となっている。即ち、各ＰＥ３ａが持つ複数の汎用レジスタ３１ｂの値を読み出すためのバス３８ｂがダイナミックＯＲで構成されている。そして、汎用レジスタ３８ｂを選択する信号とレジスタ３８ｂによって異なる比較データとの論理積を用いパターンマッチングを行う。
【００８７】
このため、各汎用レジスタ（ここではＲ２４〜Ｒ３１の８個とした）には、グローバルプロセッサ２よりパターンマッチング用の複数の比較データがそれぞれ入力されている。
【００８８】
図１３には、この発明の第４の実施形態のさらに詳細な構成例を示している。リード用バス３８ｂは１ビットごとにバスをプリチャージするためのＰＭＯＳ（１０、２０、…、８０）を備えており、プリチャージ期間においてＰＣＫが”Ｌ”となるように制御される。ＰＭＯＳ（１１、２１、．．、８１）及びインバータ（１４、２４、…、８４）はバスリピータであり、リード用バス３８ｂの電位を”Ｈ”に保持するために備えられている。各レジスタ３１ｂの同一ビット（例えば、ビット０）は同一のリード用バス３８ｂに対して接続されているディスチャージ用の直列に接続された上側のＮＭＯＳ（ビット０では１２、１２’、…、１２”）のゲート入力に負論理で接続されている。下側のＮＭＯＳ（ビット０では１３、１３’、…、１３”）のゲート入力は、Ｒ０レジスタ〜Ｒ２３レジスタでは、それぞれのレジスタの出力イネーブル信号（Ｒ０ＯＥ、…Ｒ２３ＯＥ）に接続されており、Ｒ２４〜Ｒ３１ではそれぞれのレジスタの負論理の出力イネーブル信号（Ｒ２４ＯＥＢ＃、…、Ｒ３１ＯＥＢ＃）と負論理の比較データとのＮＯＲの出力が接続されている。
【００８９】
かかる構成によれば、パターンマッチングを行わないときには、比較データ０〜比較データ７には全ビット”０”が出力されるように制御すれば、出力イネーブル信号で選択された１つのレジスタのデータがリード用のバスに出力される。また、パターンマッチングを行う場合には、パターンデータを比較データに出力し、ＡＬＵ３４において、各ビットのビットマスク付き比較を行うことによってパターンマッチングを行うことが可能となる。
【００９０】
次に、図７の５×５のパターンマッチングの場合にどのように処理を行うかを説明する。画素データはＲ０レジスタに図８の（ｂ）に示す図のように格納されているものとする。
【００９１】
(1)Ａレジスタに２つ下のＰＥのＲ０のデータをロードし、Ｒ２４にライトバック、
(2)Ａレジスタに１つ下のＰＥのＲ０のデータをロードし、Ｒ２５にライトバック、
(3)Ａレジスタに自身のＲ０のデータをロードし、Ｒ２６にライトバック、
(4)Ａレジスタに１つ上のＰＥのＲ０のデータをロードし、Ｒ２７にライトバック、
(5)Ａレジスタに２つ上のＰＥのＲ０のデータをロードし、Ｒ２８にライトバック、
(6)パターン１との比較を行い、結果をＴ１に格納、
(7)パターン２との比較を行い、結果とＴ１のＯＲをＴ１に格納、
（途中の処理を省略）
(11)パターン６との比較を行い、結果とＴ１のＯＲをＴ１に格納
【００９２】
上記のように１１サイクルでパターンマッチングの実行が可能となる。
【００９３】
図１４乃至図１９に上記サイクル６からサイクル１１におけるそれぞれのパターンとの比較においてどのように処理を行っているかを図示している。
【００９４】
Ｒ２４レジスタ〜Ｒ２８レジスタのイネーブル信号は毎サイクルアクティブになるようにし、ＡＬＵ３４では汎用レジスタ３１ｂのリード専用バス３８ｂを介して出力されたデータと即値１データとのビットマスク付き比較が行われる。即値１データは下位５ビットが”１”でそれ以外は”０”に設定される。
【００９５】
この発明の第５の実施形態につき図２０に従い説明する。図２０は、この発明の第５の実施形態の要部構成を示すブロック図である。尚、図３と同一部分には同一符号を付し説明の重複を避けるためにここではその説明を割愛する。
【００９６】
この第５の実施形態においては、ＡＬＵ及びＡレジスタは１６ビットから３２ビットに増やしている。Ａレジスタは上位側１６ビットと下位側１６ビットとが同一の１６ビットのデータバスで接続されており、上位側１６ビットのデータをテンポラリレジスタ的に使用することも可能となっている。
【００９７】
３２ビットのＡＬＵ３４、３４は下位側と上位側とに分割されており、下位側のキャリー（Ｃ（Ｌｏｗ側）と図中に示している）が上位側に伝播するように構成する。マスク付き比較結果は下位側のゼロ検出結果（Ｚ（Ｌｏｗ側）と図中に示している）、上位側のゼロ検出結果（Ｚ（Ｈｉｇｈ側）と図中に示している）と独立してフラグ演算器３５ｄに入力されている。ＡＬＵ３４の上位側からはキャリー（Ｃ（Ｈｉｇｈ側）と図示）、オーバフロー（Ｖと図示）、ネガティブ（Ｎと図示）がフラグ演算器３５ｄに入力されており、ゼロ検出結果と合わせて演算が行われる。
【００９８】
図示はしていないが、グローバルプロセッサ２内にパターンマッチング専用の１６ビットのレジスタを有し、比較データとして即値だけではなく、このレジスタの値がＰＥ３ａに対して出力することも可能となっている。このレジスタの値は主記憶あるいはデータメモリなどの記憶装置からデータをロードすることが可能なように構成し、比較を実行するサイクルの終わりに次のサイクルで比較すべきパターンデータをこのレジスタにロードするように制御するとよい。
【００９９】
かかる構成によれば、第１の実施形態と同様の効果を有すことは自明である。また、第１の実施形態と違ってパターンマッチング専用の比較器を設けるのではなく、ＡＬＵの精度を倍にするという手段を取っているため、倍精度の演算サイクルを短くするという効果も同時に有する。
【０１００】
この発明の第６の実施形態につき図２１に従い説明する。図２１は、この発明の第６の実施形態の要部構成を示すブロック図である。尚、図３と同一部分には同一符号を付し説明の重複を避けるためにここではその説明を割愛する。
【０１０１】
この第６の実施形態では、ＰＥ３ａの汎用レジスタ３１ｂより出力されたデータはＰＥ３ａ方向にマルチプレクサ３２でマルチプレクスされた後、バレルシフタ３３によってビットシフトされ１６ビットのデータバスに出力される。バレルシフタ３３は１６ビットのバスの上位８ビット側、下位８ビット側で同一のデータを出力するように構成する。ＡＬＵ３４−１〜３４−８及びＡレジスタ３５ａ−１から３５ａ−８は、４ビットずつのグループに分かれており、ＡＬＵ３４−１〜３４−８間はキャリー信号及びゼロ検出結果が伝播されるように構成される。Ａレジスタ３５ａ−１から３５ａ−８の書きこみを制御する信号はグローバルプロセッサより出力されるが、４ビットずつ個別に制御が可能なように制御線がＡＬ１＿ＷＲ〜ＡＬ４＿ＷＲ、  ＡＨ１＿ＷＲ〜ＡＨ４＿ＷＲの８本分かれた構成となっている。
【０１０２】
かかる構成によれば汎用レジスタよりＡレジスタにデータを転送する場合に、Ａレジスタの上位１６ビット側と下位１６ビット側とで左右反転などのビットスワップしたデータを同時に格納することが可能となる。
【０１０３】
上記した第２の実施形態において、ＡレジスタがＡレジスタの下位側、ＦレジスタがＡレジスタの上位側に代わっているだけで処理は同一であるのでここでは説明を割愛する。
【０１０４】
【発明の効果】
以上説明したように、この発明の請求項１の構成によれば、パターンマッチングを行う画素数が少ない場合には、複数のレジスタに画素データを左右反転して格納することによって、左右対称なパターンをマージして比較することが可能なため処理サイクルを短縮できる。パターンマッチングを行う画素数が多い場合には、画素データの左半分、右半分を複数のレジスタに左右対称になるように配置することによって、パターン自体が左右対称な場合に一度に比較を行うことが可能であるため処理サイクルを短縮できる。
【０１０５】
また、この発明の請求項２の構成によれば、複数のレジスタに例えば左右反転した画素データを転送するサイクル数を少なくできる。
【０１０６】
また、この発明の請求項３の構成によれば、パターンマッチングを行う画素数が少ない場合には、複数のレジスタに同一の画素データを格納しておき、複数のパターンを一度に比較することによって処理サイクルを短縮できる。画素数が大きい場合には、複数のレジスタに画素データを分割して格納しておき、一度に全画素分のパターン比較が可能であるため処理サイクルを短縮できる。また１サイクルで比較が完了することで、比較結果を保持しておく条件レジスタの数が１つで済むため、パターン数が多くても条件レジスタの値の退避に伴うサイクル数の増加がない。
【０１０７】
また、この発明の請求項４の構成によれば、少ない回路追加によって、上記の効果を得ることが可能となる。
【０１０８】
また、この発明の請求項５の構成によれば、パターンマッチングを行う画素数が少ない場合には、レジスタの上位側、下位側に画素データを左右反転して格納することによって、左右対称なパターンをマージして比較することが可能なため処理サイクルを短縮できる。パターンマッチングを行う画素数が多い場合には、画素データの左半分、右半分をレジスタの上位側、下位側に左右対称になるように配置することによって、パターン自体が左右対称な場合に一度に比較を行うことが可能であるため処理サイクルを短縮できる。また、ＡＬＵのビット幅が倍になっているのでパターンマッチング以外に倍精度での演算を行う際の処理サイクルを短くできる。
【０１０９】
更に、この発明の請求項６の構成によれば、レジスタの上位側、下位側に例えば左右反転した画素データを転送するサイクル数を少なくできる。
【図面の簡単な説明】
【図１】この発明が適用されるＳＩＭＤ型プロセッサの全体構成を示すブロック図である。
【図２】図１に示したＳＩＭＤ型プロセッサの詳細な構成を示すブロック図である。
【図３】この発明の第１の実施形態の要部構成を示すブロック図である。
【図４】この発明の第１の実施形態の比較手段の具体例を示すブロック図である。
【図５】３×３の画素パターンを示す模式図である。
【図６】この発明の第１の実施形態において、図５に示す画素パターンのパターンマッチングを行う方法を説明するための模式図である。
【図７】５×５の画素パターンを示す模式図である。
【図８】この発明の第１の実施形態において、図７に示す画素パターンのパターンマッチングを行う方法を説明するための模式図である。
【図９】この発明の第２の実施形態の要部構成を示すブロック図である。
【図１０】この発明の第２の実施形態において、図５に示す画素パターンのパターンマッチングを行う方法を説明するための模式図である。
【図１１】この発明の第３の実施形態の要部構成を示すブロック図である。
【図１２】この発明の第４の実施形態の要部構成を示すブロック図である。
【図１３】この発明の第４の実施形態のさらに詳細な構成例を示すブロック図である。
【図１４】この発明の第４の実施形態におけるサイクル６におけるそれぞれのパターンとの比較の処理を示す模式図である。
【図１５】この発明の第４の実施形態におけるサイクル７におけるそれぞれのパターンとの比較の処理を示す模式図である。
【図１６】この発明の第４の実施形態におけるサイクル８におけるそれぞれのパターンとの比較の処理を示す模式図である。
【図１７】この発明の第４の実施形態におけるサイクル９におけるそれぞれのパターンとの比較の処理を示す模式図である。
【図１８】この発明の第４の実施形態におけるサイクル１０におけるそれぞれのパターンとの比較の処理を示す模式図である。
【図１９】この発明の第４の実施形態におけるサイクル１１におけるそれぞれのパターンとの比較の処理を示す模式図である。
【図２０】この発明の第５の実施形態の要部構成を示すブロック図である。
【図２１】この発明の第６の実施形態の要部構成を示すブロック図である。
【符号の説明】
２  グローバルプロセッサ
３  プロセッサエレメントブロック
３ａ  プロセッサエレメント
３１  レジスタファイル
３１ｂ  汎用レジスタ
３２  マルチプレクサ
３４  ＡＬＵ
３５ａ  Ａレジスタ
３５ｂ  Ｆレジスタ
３５ｃ  比較器
３５ｄ  演算器
３５ｅ  条件レジスタ（Ｔ）
３６  演算アレイ                                 
【図１】
2004192405.tif 000003
【図２】
2004192405.tif 000004
【図３】
2004192405.tif 000005
【図４】
2004192405.tif 000006
【図５】
2004192405.tif 000007
【図６】
2004192405.tif 000008
【図７】
2004192405.tif 000009
【図８】
2004192405.tif 000010
【図９】
2004192405.tif 000011
【図１０】
2004192405.tif 000012
【図１１】
2004192405.tif 000013
【図１２】
2004192405.tif 000014
【図１３】
2004192405.tif 000015
【図１４】
2004192405.tif 000016
【図１５】
2004192405.tif 000017
【図１６】
2004192405.tif 000018
【図１７】
2004192405.tif 000019
【図１８】
2004192405.tif 000020
【図１９】
2004192405.tif 000021
【図２０】
2004192405.tif 000022
【図２１】
2004192405.tif 000023