(57)【要約】【課題】全ＰＥに格納されているデータの中から、ある閾値以上のデータであるというような特定の条件を満たしているデータのみを、ＰＥ番号の小さい方から順に収集するＳＩＭＤ型マイクロプロセッサを提供する。【解決手段】各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、上記条件レジスタの値は、各プロセッサエレメントに備わる第１の信号線を介して出力され、個々のプロセッサエレメントから出力された上記第１の信号線は、プライオリティ・エンコーダに入力され、上記プライオリティ・エンコーダは、上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とするＳＩＭＤ型マイクロプロセッサを提供する。【選択図】図３
2008071037.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
上記条件レジスタの値は、各プロセッサエレメントに備わる第１の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第１の信号線は、プライオリティ・エンコーダに入力され、
上記プライオリティ・エンコーダは、上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
プロセッサエレメントは、複数のグループに分けられており、
上記条件レジスタの値は、各プロセッサエレメントに備わる第１の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第１の信号線は、各グループに搭載される第１のプライオリティ・エンコーダに入力され、
上記第１のプライオリティ・エンコーダは、上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの下位ビットとして検出し、
更に、各グループにおける第１の信号線の論理和は、各グループに備わる第２の信号線を介して出力され、
個々のグループから出力された上記第２の信号線は、第２のプライオリティ・エンコーダに入力され、
上記第２のプライオリティ・エンコーダは、上記第２の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの上位ビットとして検出することを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項３】
上記プライオリティ・エンコーダが上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときには、
上記第１の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項１に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項４】
上記第１のプライオリティ・エンコーダが上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときであり、且つ、上記第２のプライオリティ・エンコーダが上記第２の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないとき、
上記第１の信号線及び上記第２の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項２に記載のＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、条件付き命令に対応した、１つの演算命令により複数の画像データ等を並列処理するＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ）型マイクロプロセッサに関する。
【背景技術】
【０００２】
画像処理を実行するマイクロプロセッサでは、ＳＩＭＤ型を採用することが多い。なぜならば、一つの命令で複数のデータに対して、同時に同一の演算処理が実行可能であるＳＩＭＤ型マイクロプロセッサの特徴が画像処理に適しているからである。ＳＩＭＤ型マイクロプロセッサは、プロセッサエレメント（以下、ＰＥという。）と呼ばれる単位において演算部とレジスタを備えており、更にそのようなＰＥを複数個有する。これら複数個のＰＥが同時に演算処理を行うことで、一つの命令で複数のデータに対して同時に同一の演算処理を実行する。ＳＩＭＤ型マイクロプロセッサでは、処理速度の向上、及び、命令供給装置や命令制御装置の共有化が可能となる。
【０００３】
ところで、ＳＩＭＤ型マイクロプロセッサは、全てのＰＥが同時動作をすることにおいては、その性能をよく発揮できる。しかし、ＰＥによって処理内容を変える必要があるような処理、若しくは演算結果によって処理内容を変えるような処理においては、性能を十分に発揮できない。
【０００４】
ＰＥ毎に処理を変える方法は、各ＰＥにフラグビットを持たせそのフラグの値によって処理を実行するかどうか決定するように構成すれば、実現可能である。
【０００５】
例えば、特許文献１、特許文献２、特許文献３、及び特許文献４に開示されているように、各ＰＥでの演算結果から、或いは全体制御回路から、各ＰＥのフラグビットを変更することで、ＰＥ毎に演算の実行、非実行を設定することが可能となる。ただし、ＰＥでの演算結果によって全体の制御を変更することは不可能である。特許文献５には、各ＰＥの持つフラグビットのＯＲ結果をグローバルプロセッサに転送することで全体の制御を変更することが可能となるということにつき開示されている。
【０００６】
また、画像処理においては、全ＰＥに格納されているデータの中で、特定の条件に合致したデータを主走査方向の（例えば）左側の画素データから順に収集する処理が必要になることがある。例えば、パターンマッチングを行い、パターンとマッチしたＰＥのアドレスを収集するなどといった処理である。
【０００７】
従来のＳＩＭＤ型マイクロプロセッサにおいては、特定の条件に合致しているデータを収集するには、全ＰＥからデータを収集するためのバスを設け、ＰＥのアドレス（ＰＥ番号）の小さい方から順番にデータ収集した上で、そのデータが条件に合致するかどうかの判定を行い、合致したものだけを例えばデータメモリに格納するといった処理が必要になる。このようにすることには膨大なサイクル数がかかる。
【０００８】
特許文献１、特許文献２、特許文献３、又は特許文献４に示されるプロセッサの構成を採用し、各ＰＥにおいて各々のデータが条件に合致するかどうかの判定を行い、その結果を各ＰＥのフラグビットに格納するようにし、そしてデータとフラグビットを収集するようにすれば、サイクル数を削減することは可能である。
【０００９】
また、パターンマッチングした結果のデータの全てではなく、データの分類だけを目的にするような場合には、特許文献５に示されるプロセッサの構成を採用して、各ＰＥが持つフラグビットに比較結果を格納するようにし、更に全てのＰＥのフラグビットのＯＲ（論理和）演算結果をグローバルプロセッサに転送することで、複数ある所望のパターンとの一致に係る演算を全ＰＥで行い、フラグビットに比較結果を残すようにすれば、目的は一応達せられる。しかし、この場合には、データをＰＥのアドレスの小さい方から順に収集することができない。
【００１０】
特許文献６には、ＰＥを２進木状に配置することでデータ収集を行うことのできる構成を有するＳＩＭＤ型マイクロプロセッサが開示されている。この構成において、データのみではなく各ＰＥのアドレス値もあわせて転送するようにすれば、条件に合致しているデータを収集することが可能である。しかし、ＰＥ数が多くなると配線数が増大してしまい、動作速度、コストの面で不利である。
【００１１】
特許文献７及び特許文献８には、演算アレイの外部に別途、全ＰＥのレジスタのデータを対象にした演算を実行できる演算器を装備することによって、データを逐次に処理することができるプロセッサにつき開示されている。ここでの追加ハードウェアは規模としては大きくはないが、ハードウェアとして実装するための汎用性に乏しいこと、収集する対象データが少ない場合にも全ＰＥのデータに逐次にアクセスしないと処理が終了しないこと、という欠点を持つ。
【特許文献１】特開平５−１８９５８５号公報
【特許文献２】特開平６−１７６１７６号公報
【特許文献３】特開平９−１９８２３１号公報
【特許文献４】特開平１１−５３１８９号公報
【特許文献５】特開平１０−２８９３０５号公報
【特許文献６】特公平８−０１４８１６号公報
【特許文献７】特開平８−３０５７７号公報
【特許文献８】特開平８−２３５１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【００１２】
本発明は、全ＰＥに格納されているデータの中から、ある閾値以上のデータであるというような特定の条件を満たしているデータのみを、ＰＥ番号の小さい方から順に収集するＳＩＭＤ型マイクロプロセッサを提供することを目的とする。
【課題を解決するための手段】
【００１３】
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項１に記載のＳＩＭＤ型マイクロプロセッサは、
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型マイクロプロセッサである。そのようなＳＩＭＤ型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
上記条件レジスタの値は、各プロセッサエレメントに備わる第１の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第１の信号線は、プライオリティ・エンコーダに入力され、
上記プライオリティ・エンコーダは、上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出することを特徴とする。
【００１４】
本発明に係る請求項２に記載のＳＩＭＤ型マイクロプロセッサは、
複数のデータを処理するための複数のプロセッサエレメントを有するＳＩＭＤ型マイクロプロセッサである。そのようなＳＩＭＤ型マイクロプロセッサにおいて、
各プロセッサエレメントは、演算の条件フラグを格納するための条件レジスタを内蔵し、
プロセッサエレメントは、複数のグループに分けられており、
上記条件レジスタの値は、各プロセッサエレメントに備わる第１の信号線を介して出力され、
個々のプロセッサエレメントから出力された上記第１の信号線は、各グループに搭載される第１のプライオリティ・エンコーダに入力され、
上記第１のプライオリティ・エンコーダは、上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの下位ビットとして検出し、
更に、各グループにおける第１の信号線の論理和は、各グループに備わる第２の信号線を介して出力され、
個々のグループから出力された上記第２の信号線は、第２のプライオリティ・エンコーダに入力され、
上記第２のプライオリティ・エンコーダは、上記第２の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを、検出アドレスの上位ビットとして検出することを特徴とする。
【００１５】
本発明に係る請求項３に記載のＳＩＭＤ型マイクロプロセッサは、
上記プライオリティ・エンコーダが上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときには、
上記第１の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項１に記載のＳＩＭＤ型マイクロプロセッサである。
【００１６】
本発明に係る請求項４に記載のＳＩＭＤ型マイクロプロセッサは、
上記第１のプライオリティ・エンコーダが上記第１の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないときであり、且つ、上記第２のプライオリティ・エンコーダが上記第２の信号線でアクティブであるもののうちプロセッサエレメントのアドレスが最小であるもの若しくは最大であるものを検出する工程でないとき、
上記第１の信号線及び上記第２の信号線が、各プロセッサエレメントの内蔵するレジスタのデータを収集するバスとなることを特徴とする請求項２に記載のＳＩＭＤ型マイクロプロセッサである。
【発明の効果】
【００１７】
本発明を利用することにより、ＳＩＭＤ型マイクロプロセッサにおいて、各ＰＥに対してＰＥ番号の少ない方から順に特定の条件を満たすデータを収集することを短いサイクルで実施することが可能になる。また、このような機能をより小さい回路規模で且つ高速に実現することも可能である。更に、信号線の構成を工夫することにより回路規模をより削減できる。
【発明を実施するための最良の形態】
【００１８】
以下、図面を参照して本発明に係る好適な実施形態を説明する。
【００１９】
図１は、本発明に係るＳＩＭＤ型マイクロプロセッサ２の概略の構成を示すブロック図である。
（１）グローバルプロセッサ４
グローバルプロセッサ４は、いわゆるＳＩＳＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ，  Ｓｉｎｇｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）タイプのプロセッサであり、プログラムＲＡＭとデータＲＡＭを内蔵し、プログラムを解読し各種制御信号を生成する。この制御信号は、内蔵する各種ブロックの制御以外にも、（後述する）レジスタファイル１４、演算アレイ１６、及びメモリコントローラ１０に供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は、内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等を使用して各種演算処理、プログラム制御処理を行う。
【００２０】
（２）レジスタファイル１４
ＰＥ（プロセッサエレメント）命令で処理されるデータを保持するファイルである。つまり、各ＰＥ（図２参照）のレジスタ部分の集合体である。ＰＥ命令は、ＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ，  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）タイプの命令であり、レジスタファイルに保持されている複数のデータに対して、同時に同じ処理を行う命令である。このレジスタファイル１４からのデータの読み出し／書き込みの制御は、グローバルプロセッサ４からの制御によって行われる。読み出されたデータは、（後述する）演算アレイ１６に送られ、演算アレイ１６での演算処理後にレジスタファイル１４に書き込まれる。
【００２１】
また、レジスタファイル１４は、外部インタフェース８を介してプロセッサ２外部のメモリコントローラ１０からのアクセスが可能であり、グローバルプロセッサ４の制御とは別に外部から特定のレジスタに対する読み出し／書き込みが行われる。
【００２２】
（３）演算アレイ１６
ＰＥ命令の演算処理が行われる部位である。つまり、各ＰＥ（図２参照）の（ＡＬＵを含む）演算部の集合体である。処理の制御はすべてグローバルプロセッサから行われる。
【００２３】
（４）メモリコントローラ１０
外部ポート１８にクロックとアドレス、リード／ライト制御信号を出力し、シングルポートメモリ１２にクロックとアドレス、リード／ライト制御信号を出力することで、任意のＰＥのレジスタとシングルポートメモリとの間で、データ転送が行われる。処理の制御はすべてグローバルプロセッサから行われる。
【００２４】
図２は、本発明に係るＳＩＭＤ型マイクロプロセッサ２のより詳細な構成を示すブロック図である。
【００２５】
グローバルプロセッサ４には、当該プロセッサのプログラム格納用のプログラムＲＡＭ２０と演算データ格納用のデータＲＡＭ２２が内蔵されている。更に、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）２４、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ３レジスタ（２６、２８、３０、３２）、レジスタ退避、復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）３４、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）３６、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩレジスタ３８、ＬＮレジスタ４０、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）４２が内蔵されている。
【００２６】
これらのレジスタと、図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部インタフェース制御回路、及びＧＰ演算制御回路を使用してＧＰ命令の実行が行われる。また、ＰＥ命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、ＰＥ演算制御回路を使用して、レジスタファイル１４の制御と演算アレイ１６の制御をおこなう。
【００２７】
レジスタファイルには１つのＰＥ単位に８ビットのレジスタ５０が３２本内蔵されており、２５６ＰＥ分の組がアレイ構成になっている（一つのＰＥは、符号４４で示される点線の枠内に相当する部位であり、レジスタ４６と演算部４８とからなる。）。レジスタ５０は、ＰＥ毎にＲ０、Ｒ１、Ｒ２、．．．Ｒ３１と呼ばれるものが備わる。夫々のレジスタ５０は、演算部４８に対して１つの読み出しポートと１つの書き込みポートを備えており、８ビットのリード／ライト兼用のバスで演算部４８からアクセスされる。３２本のレジスタ５０の内、２４本（Ｒ０〜Ｒ２３）は外部インタフェース８を介してプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード／ライト制御信号が入力されて任意のレジスタ５０が読み書きされ得る。
【００２８】
レジスタ５０の外部からのアクセスでは、１つの外部ポートで各ＰＥの１つのレジスタ５０がアクセス可能であり、外部から入力されたアドレスでＰＥの番号（０〜２５５）が指定される（ＰＥには、図面の右側から順に０〜２５５の番号がＰＥ番号として付されている。ＰＥ番号はＰＥアドレスともいう。）。したがって、レジスタアクセスのための外部ポートは、全部で２４組搭載されている。また、外部からのアクセスは、隣接する偶数のＰＥと奇数のＰＥの組の１６ビット単位で行われ、１回のアクセスで２つのレジスタが同時にアクセスされる。
【００２９】
演算部４８は、１６ビットＡＬＵ５２、Ａレジスタ５４、及びＦレジスタ５６を内蔵している。ＰＥ命令による演算では、レジスタ５０から読み出されたデータ、若しくはグローバルプロセッサ４から与えられたデータをＡＬＵ５２の片側の入力とし、もう片側にはＡレジスタ５４の内容を入力として、結果をＡレジスタ５４に格納する。したがって、Ａレジスタ５４と、Ｒ０〜Ｒ３１レジスタもしくはグローバルプロセッサ４から与えられたデータとの演算が行われることになる。なお、図２に示すＳＩＭＤ型マイクロプロセッサ２では、１６ビットＡＬＵ５２、Ａレジスタ５４、及びＦレジスタ５６につき、上位の１６ビットのためのものと下位の１６ビットのためのものとが備えられている。
【００３０】
更に、レジスタ５０と演算部４８との接続部分に、７対１のマルチプレクサ５８が設けられており、ＰＥ並列方向で前方（番号の小さい方）に１、２、３つ離れたレジスタ５０のデータと、後方（番号の大きい方）に１、２、３つ離れたレジスタ５０のデータと、中央の（即ち、同一ＰＥの）レジスタ５０のデータを演算対象として選択できるように設定されている。また、レジスタ５０の８ビットのデータは、シフト拡張回路６０により任意ビット分左シフトされてＡＬＵ５２に入力することもある。
【００３１】
更に、図２では示していない８ビットの条件レジスタ（Ｔレジスタ）（図３〜６参照）により、ＰＥ毎の演算実行の無効／有効の制御がなされている。これにより、特定のＰＥ４４だけを演算対象として選択できる。
【００３２】
［第１の実施形態］
図３は、本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２のブロック図である。
【００３３】
各ＰＥ４４のＡレジスタ５４は、３ステートバッファ６２を介してデータ収集バス６４に接続されており、特定のＰＥ４４のＡレジスタ５４の値をデータ収集バス６４を介してグローバルプロセッサ４に転送することが可能になっている。
【００３４】
また、各ＰＥ４４が内蔵している８ビットの条件レジスタ（Ｔレジスタ）６６の中から１ビットを選択された値は、各ＰＥ４４に１本ずつ専用に設けられた第１の信号線６８を介してグローバルプロセッサ４内のプライオリティ・エンコーダ７０に入力されている。
【００３５】
図４は、条件レジスタ（Ｔレジスタ）６６の内部の構成を示すブロック図である。Ｔレジスタ６６のＴ１〜Ｔ７には、ＤＩＮ（データイン）とＣＬＲ（クリア）とにより“０”又は“０”が設定される。Ｔ０は恒常的に“１”のみを出力するように設定されている。
【００３６】
プライオリティ・エンコーダ７０は、２５６本の第１の信号線６８の内で、アクティブなものでＰＥ番号の最も小さいものを出力し、その値をグローバルプロセッサ４内の第１の汎用レジスタ７２に格納するように構成されている。
【００３７】
グローバルプロセッサ４は、第１の汎用レジスタ７２に格納されているデータをＰＥ指定バス７４に出力することが可能である。更に、各ＰＥ４４が内蔵している比較器７６にて、各ＰＥ４４のＰＥ番号とＰＥ指定バス７４のデータとを比較して、合致しているＰＥ４４において条件レジスタ（Ｔレジスタ）６６の任意のビットに１を格納したり（若しくはリセットしたり）、命令の実行の有無を制御したりすることが可能になっている。
【００３８】
ＡＬＵ５２からは、Ｃ（キャリー）、Ｖ（オーバフロー）、Ｎ（ネガティブフラグ）、及びＺ（ゼロフラグ）といった演算フラグが出力される。これらＣ、Ｖ、Ｎ及びＺの演算フラグは、ＣＣＴ（コンディション・コード・テーブル）ブロック７８を介して、条件レジスタ（Ｔレジスタ）６６の任意のビット（図４参照）に値を設定することができるように構成されている。ここで、ＣＣＴブロック７８は、ＣＭＰ（比較）命令にて、設定された条件とＡＬＵ５２から出力されるＣ、Ｖ、Ｎ、Ｚの演算フラグとの論理演算を行い、条件が合致したら“１”（真）を、合致しなかったら“０”（偽）を出力するブロックである。
【００３９】
上記のようなＰＥの演算部４８の構成によれば、以下のような手順に従って、特定の条件に合致したＰＥのデータを収集することが可能となる。
【００４０】
（ステップ１−（１））；各ＰＥ４４にて、所望の条件を設定したＣＭＰ（比較）命令をＣＣＴブロック７８を介して実行し、条件レジスタ（Ｔレジスタ）６６の中の任意の１ビットに真（１）又は偽（０）を格納する。
【００４１】
（ステップ２−（１））；条件レジスタ（Ｔレジスタ）６６の中の上記任意の１ビットの値をプライオリティ・エンコーダ７０に出力し、当該ビットが真であるＰＥの中で最もＰＥ番号の小さいもののＰＥ番号値を、グローバルプロセッサ４内の第１の汎用レジスタ７２に取り込む命令を実行する。
【００４２】
（ステップ２−（２））；第１の汎用レジスタ７２に格納された値を、ＰＥ指定バス７４に出力し、比較器７６の比較演算で自身のＰＥ番号と合致したＰＥ４４の、Ａレジスタ５４のデータをデータ収集バス６４を介して第２の汎用レジスタ８０に取り込む命令を実行する。
【００４３】
（ステップ２−（３））；第２の汎用レジスタ８０のデータを、（例えば）データメモリなどに格納する。
【００４４】
（ステップ２−（４））；第１の汎用レジスタ７２に格納された値を、ＰＥ指定バス７４に出力し、比較器７６の比較演算で自身のＰＥ番号と合致したＰＥ４４だけが、条件レジスタ（Ｔレジスタ）６６の中の上記任意の１ビットの値をリセットする命令を実行する。
【００４５】
（ステップ３−（１））；上記ステップ２−（１）と同じ処理を実行する。即ち、上記ステップ２−（１）において次に条件に合致しているＰＥ番号値が第１の汎用レジスタ７２に取り込まれる。
【００４６】
（ステップ３−（２））；上記ステップ２−（２）と同じ処理を実行する。即ち、次に条件に合致しているＰＥ番号値を持つＰＥのＡレジスタ５４のデータが、第２の汎用レジスタ８０に取り込まれる。
【００４７】
（ステップ３−（３））；上記ステップ２−（３）と同じ処理を実行する。
【００４８】
（ステップ３−（４））；上記ステップ２−（４）と同じ処理を実行する。即ち、上記ステップ３−（１）から上記ステップ３−（３）で対象になっていたＰＥの条件レジスタ（Ｔレジスタ）６６の中の上記任意の１ビットの値をリセットする。
【００４９】
更に、次のＰＥへと処理を移行する。
【００５０】
以降、上記処理の繰り返しで、条件に合致している全ＰＥのデータを収集することが可能になる。
【００５１】
［第２の実施形態］
図５は、本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２のブロック図である。第２の実施形態に係るＳＩＭＤ型マイクロプロセッサは、第１の実施形態に係るＳＩＭＤ型マイクロプロセッサと略同様のものである。従って、同一部位には同一符号を付して説明を省略する。
【００５２】
上述の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２では、ＰＥ数と同じビット幅のプライオリティ・エンコーダ７０が必要となる。そうすると、全体の回路規模が大きくなり、動作速度がそれ程上がらないことも想定され得る。
【００５３】
第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２では、全ＰＥにつき１６個のＰＥで１つのグループとして１６個のグループが構成されている。各ＰＥ４４が内蔵している８ビットの条件レジスタ（Ｔレジスタ）６６の中から１ビットを選択された値は、各ＰＥ４４に１本ずつ専用に設けられた第１の信号線６８を介して、ＰＥ１６個のグループに１つ搭載される第１のプライオリティ・エンコーダ８２に入力される。第１のプライオリティ・エンコーダ８２は、１６本の第１の信号線６８の内で、アクティブなものでＰＥ番号の最も小さいものを出力し、その値を１６ＰＥデータ管理ブロック８８内の第３の汎用レジスタ８４に格納するように構成されている。なお、１６ＰＥデータ管理ブロック８８は、ＰＥの１６個のグループに１つ備わる。
【００５４】
更に、上記１６本の第１の信号線６８は、１６ＰＥデータ管理ブロック８８内の論理和（ＯＲ）回路８６に入力する。上記１６本の第１の信号線６８の論理和（ＯＲ）の結果データが、各１６ＰＥデータ管理ブロック８８専用の第２の信号線９４を介して、グローバルプロセッサ４内の第２のプライオリティ・エンコーダ９０に入力される。第２のプライオリティ・エンコーダ９０は、１６本の第２の信号線９４の内で、アクティブなもので（１６ＰＥデータ管理）ブロック番号の最も小さいものを出力し、その値をグローバルプロセッサ４内の第１の汎用レジスタ９２に格納するように構成されている。なお、ＰＥの１６個のグループにも、ＰＥ番号と同様に図５の右側から順に、１６ＰＥデータ管理ブロック番号が付されている。
【００５５】
グローバルプロセッサ４に搭載される第２のプライオリティ・エンコーダ９０と、各１６ＰＥデータ管理ブロック８８に１つずつ搭載される第１のプライオリティ・エンコーダ８２は、何れも第１の実施形態に係るＳＩＭＤ型マイクロプロセッサ２におけるプライオリティ・エンコーダ７０と同一構成である。即ち、１６個の信号線の内で、アクティブなものでＰＥ番号又は（１６ＰＥデータ管理）ブロック番号の最も小さいものを出力するように構成されている。
【００５６】
上記ステップ２−（１）や上記ステップ３−（１）にて条件に合致したＰＥのＰＥ番号値は、上位４ビットについてはグローバルプロセッサ４の第１の汎用レジスタ９２に格納されており、下位４ビットについては各１６データ管理ブロック８８の第３の汎用レジスタ８４に格納されている。従って、上記ステップ２−（２）や上記ステップ３−（２）では、ＰＥ指定のためのＰＥ番号値として、第１の汎用レジスタ９２の格納値と第３の汎用レジスタ８４の格納値とを合わせて使うことになる。
【００５７】
このような第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２によれば、第１の実施形態に係るＳＩＭＤ型マイクロプロセッサと同様の手順に基づいて、所望の条件に合致している全てのＰＥのデータを収集することが可能である。
【００５８】
［第３の実施形態］
図６は、本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２のブロック図である。第３の実施形態に係るＳＩＭＤ型マイクロプロセッサは、第２の実施形態に係るＳＩＭＤ型マイクロプロセッサと略同様のものである。従って、同一部位には同一符号を付して説明を省略する。
【００５９】
本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２では、データ収集バスとプライオリティ・エンコーダへの信号線とを、同一のものにしている。
【００６０】
各ＰＥ４４のＡレジスタ５４に格納される値は、個々のビット毎に、１６個の３ステートバッファ９６を介して１６本の第１の信号線に、Ｗｉｒｅｄ−ＯＲの形で出力される。また、条件レジスタ（Ｔレジスタ）６６に格納される値も、３ステートバッファ９４を介して１本の（当該ＰＥのための）第１の信号線に出力される。第１の信号線は、ＰＥの１６個のグループ毎に１つ備えられる１６ＰＥデータ管理ブロック８８’に入力される。
【００６１】
各ＰＥ４４においては、上記手順のステップ２−（１）及びステップ３−（１）では、条件レジスタ（Ｔレジスタ）６６のデータを出力するように、グローバルプロセッサ４からの制御線で３ステートバッファ９４が制御される。更に、上記手順のステップ２−（２）及びステップ３−（２）では、Ａレジスタ５４のデータを出力するように、グローバルプロセッサからの制御線で３ステートバッファ９６が制御される。
【００６２】
これらの制御について詳しく図示していないが、グローバルプロセッサ４からの制御線と条件レジスタ（Ｔレジスタ）の値との論理積（ＡＮＤ）信号が、３ステートバッファ９４の出力イネーブル信号となる、というような制御となる。
【００６３】
１６ＰＥデータ管理ブロック８８’は、上記手順のステップ２−（１）及びステップ３−（１）においては、第２の実施形態に係るＳＩＭＤ型マイクロプロセッサ２の１６ＰＥデータ管理ブロック８８と同じ動作を行い同じ機能を果たす。
【００６４】
一方で、１６ＰＥデータ管理ブロック８８’は、上記手順のステップ２−（２）及びステップ３−（２）においては、Ａレジスタ５４からのデータを第１の信号線を介して受け取り、更に、第２の信号線を介してグローバルプロセッサ４内の第２の汎用レジスタ８０’へとデータ転送を行うように構成される。なお、図６では図示の都合により、図５に示す１６ＰＥデータ管理ブロック８８の第１のプライオリティ・エンコーダ８２、第３のレジスタ８４、論理和（ＯＲ）回路８６をまとめて、１６ＰＥデータ管理ブロック８８’として示している。
【００６５】
このような第３の実施形態に係るＳＩＭＤ型マイクロプロセッサ２によれば、第２の実施形態に係るＳＩＭＤ型マイクロプロセッサと同じ性能を保持しつつ、信号線の本数を削減でき回路規模を削減することが可能となる。
【図面の簡単な説明】
【００６６】
【図１】本発明に係るＳＩＭＤ型マイクロプロセッサの概略の構成を示すブロック図である。
【図２】本発明に係るＳＩＭＤ型マイクロプロセッサのより詳細な構成を示すブロック図である。
【図３】本発明の第１の実施形態に係るＳＩＭＤ型マイクロプロセッサのブロック図である。
【図４】条件レジスタ（Ｔレジスタ）の内部の構成を示すブロック図である。
【図５】本発明の第２の実施形態に係るＳＩＭＤ型マイクロプロセッサのブロック図である。
【図６】本発明の第３の実施形態に係るＳＩＭＤ型マイクロプロセッサのブロック図である。
【符号の説明】
【００６７】
２・・・ＳＩＭＤ型マイクロプロセッサ、４・・・グローバルプロセッサ、５２・・・ＡＬＵ、５４・・・Ａレジスタ、６６・・・条件レジスタ（Ｔレジスタ）。
【図１】
2008071037.tif 000003
【図２】
2008071037.tif 000004
【図３】
2008071037.tif 000005
【図４】
2008071037.tif 000006
【図５】
2008071037.tif 000007
【図６】
2008071037.tif 000008