JP3837293B2 - 定数選択機能を有するsimd型マイクロプロセッサ - Google Patents
定数選択機能を有するsimd型マイクロプロセッサ Download PDFInfo
- Publication number
- JP3837293B2 JP3837293B2 JP2001003602A JP2001003602A JP3837293B2 JP 3837293 B2 JP3837293 B2 JP 3837293B2 JP 2001003602 A JP2001003602 A JP 2001003602A JP 2001003602 A JP2001003602 A JP 2001003602A JP 3837293 B2 JP3837293 B2 JP 3837293B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- simd type
- type microprocessor
- processor
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Image Processing (AREA)
- Facsimile Image Signal Circuits (AREA)
Description
【発明の属する技術分野】
本発明は、SIMD(Single Instruction−streamMultiple Data−stream;単一命令多データ処理)型マイクロプロセッサに関する。
【0002】
【従来の技術】
SIMD型マイクロプロセッサでは、複数のデータに対して1つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理(例えば、画像処理)に係る用途において、頻用される。
【0003】
SIMD型マイクロプロセッサにおける通常の演算処理では、複数の演算ユニット(Processor Element〔PE〕;プロセッサエレメント)を並べ同一の演算を同時に複数のデータに対して実行する。
【0004】
SIMD型マイクロプロセッサは、全てのPEが同時に動作する処理においてはその性能を十分に発揮できる。しかし、PE毎に演算パラメータが異なるような処理においては、性能を発揮できない。「PE毎に演算パラメータが異なるような処理」の例としては、ディザマトリクスを利用するディザ法による2値化処理が挙げられる。
【0005】
画像処理でよく利用されるディザ法による2値化処理では、2値化の判定基準であるしきい値が画素単位で異なる。図4は、ディザ法のディザマトリクスの例である。本マトリクスは、4×4のディザマトリクスである。このディザマトリクスを利用する2値化処理では、1つの行(ライン)に4つのしきい値が使用され、4画素を単位としてその4つの値の繰り返しとなる。具体的に言うと、多数並べて配置されたPEの端から各PE(の所定のレジスタ)に順に格納される1ラインの画素データを、図4の1つの行のしきい値と比較する(1ライン目は1行目のしきい値、2ライン目は2行目のしきい値、3ライン目は3行目のしきい値、4ライン目は4行目のしきい値、5ライン目は1行目のしきい値・・・)のであるが、1つのライン内では4画素を単位として4種の値と比較する(1画素目は1列目のしきい値、2画素目は2列目のしきい値、3画素目は3列目のしきい値、4画素目は4列目のしきい値、5画素目は1列目のしきい値・・・)。
【0006】
ディザ法による2値化処理を、SIMD型マイクロプロセッサで行なう場合には、PEの所定のレジスタに格納されるしきい値がPEにより異なることになる。しきい値が1つであれば、1回の比較命令により全PEでの処理が完了できるが、上記のようにしきい値が4つあれば、全PEでの処理を完了させるには4回の比較命令が必要となる。ディザマトリクスのサイズが大きくなれば、当然ながら、それに応じて比較命令の数も増加する。
【0007】
従来の技術において、上記の問題に対応するために、(複数の)しきい値を予め各PEのレジスタ若しくはローカルメモリに保持しておく、という方法が採られていることがある。4×4のディザマトリクスを利用する場合、1つのPEに着目すると4ラインごとに4つのしきい値が繰返し使用される。よって、これら4つのしきい値を(4つの)レジスタに保持しておき、比較命令にて利用する。その比較処理に備えて、初期化の処理では、1ライン当たり4回(以上)のデータ転送命令を行なって4画素ごとのしきい値の(PEの)レジスタへの格納を行ない、更に、その格納処理を4回(ライン数分)繰り返す。この処理の場合には、しきい値の格納のために各PEでレジスタが4つ必要となる。即ち、ハードウエア資源が相当分消費されるという問題が生じる。
【0008】
また、マイクロプロセッサの外部から画像データを入力する際に、同時に外部からしきい値を入力する、という方法が用いられることもある。この方法の場合には、レジスタへのしきい値の格納のための命令を設定する必要がないため、その命令分の処理時間は発生しない(削減される)。しかし、各PE毎にしきい値を格納するレジスタが必要となるという問題点は残る。更に、しきい値を入力するための入力ポートが余分に必要となる。
【0009】
特開平5−67203号、及び特開平6−83787号で開示されているSIMD型マイクロプロセッサは、外部からデータを入力する機能を備えるものであるが、それらの機能の利用によって上記のように画像データとしきい値(データ)とを同時に入力することも可能である。
【0010】
特開平6−176176号、及び特開平6−259581号の(SIMD型)プロセッサでは、各PEにローカルメモリのアドレスを関連付ける。ローカルメモリのアドレスは、PE毎に異なるアドレスである。そのローカルメモリに格納されるデータをPEでの処理で用いることになる。このような構成であれば、PEへしきい値をロードするためPE毎に異なる値を転送する、という処理は必要ではない。しきい値との比較処理時にPE毎に異なるローカルメモリのアドレスが示されればよいことになる。ただし、初期化の処理においてはしきい値のマトリクスの全部のロード処理が必要であり、しかもそれらのデータの全部を保持するメモリも必要となる。
【0011】
【発明が解決しようとする課題】
本発明は、ディザ法のディザマトリクスのしきい値のロード処理を、少ない(処理)ステップで実現することを目的とする。更に変換後データのロードまでの処理もより少ないステップで実現することを目的とする。
【0012】
【課題を解決するための手段】
本発明は、上記の目的を達成するためになされたものである。本発明に係る請求項1に記載のSIMD型マイクロプロセッサは、
1つのグローバルプロセッサと、
複数のプロセッサエレメントとを含むSIMD型マイクロプロセッサである。そのSIMD型マイクロプロセッサにおいて、
上記グローバルプロセッサから各々のプロセッサエレメントに対し、複数のデータバスが設置されており、
各プロセッサエレメントは、上記複数のデータバスのうちからどのデータバスを選択するのかを指定する選択信号を生成し、
上記選択信号により選択されたデータバスを介して上記グローバルプロセッサから転送される信号を、各プロセッサエレメント内の所定のレジスタに格納する。
【0013】
本発明に係る請求項2に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントには、連続する通し番号が順に付されており、
各プロセッサエレメントにおいて、2進法にて表現された自らの通し番号に対し、所定桁数の上位ビットを“0”に置き換え、その結果形成される信号を上記の選択信号とする、
請求項1に記載のSIMD型マイクロプロセッサである。
【0014】
本発明に係る請求項3に記載のSIMD型マイクロプロセッサは、
各プロセッサエレメントにおける演算結果データ、又はその演算結果から導出されるデータを、各プロセッサエレメント内の所定のレジスタに格納し、
該レジスタから引き出される信号を上記の選択信号とする、
請求項1に記載のSIMD型マイクロプロセッサである。
【0015】
本発明に係る請求項4に記載のSIMD型マイクロプロセッサは、
即値を2つ以上含む命令コードにより動作されるSIMD型マイクロプロセッサであって、
上記の複数のデータバスに対し、上記の複数の即値が伝送される、
請求項1乃至請求項3に記載のSIMD型マイクロプロセッサである。
【0016】
【発明の実施の形態】
以下、図面を参照して、本発明に係る好適な実施形態を説明する。
【0017】
図1は、本発明に係るSIMD型マイクロプロセッサ2の概略の構成を示すブロック図である。図1の構成は、後で説明する第1の実施の形態、第2の実施の形態、及び第3の実施の形態のSIMD型マイクロプロセッサ2の、基礎となる構成である。つまり、第1の実施の形態、第2の実施の形態、及び第3の実施の形態のSIMD型マイクロプロセッサ2は、図1の構成に対して、必要な構成要素が付加されて形成されている。
【0018】
図1のSIMD型マイクロプロセッサ2は、概略、グローバルプロセッサ4、レジスタファイル6、及び演算アレイ8から構成される。
【0019】
(1)グローバルプロセッサ4
このグローバルプロセッサ4そのものは、いわゆるSISD型のプロセッサであり、プログラムRAM10とデータRAM12を内蔵し(図2参照)、プログラムを解読し各種制御信号を生成する。この制御信号は内蔵する各種ブロック以外に、レジスタファイル6、演算アレイ8にも供給される。また、GP(グローバルプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理をおこなう。
【0020】
(2)レジスタファイル6
PE(プロセッサエレメント)命令で処理されるデータを保持している。PE(プロセッサエレメント)3は、公知のように、SIMD(Single Instruction−Stream,Multiple Data−Stream)型プロセッサにおいて個別の演算を実行する構成単位である。図2のレジスタファイル6及び演算アレイ8が示すように、図2のSIMD型マイクロプロセッサ2では256個のPE3を含んでいる。上記のPE命令はSIMD型の命令であり、レジスタファイル6に保持されている複数のデータに対し、同時に同じ処理を行なう。このレジスタファイル6からのデータの読み出し/書き込みの制御はグローバルプロセッサ4からの制御信号によって行なわれる。読み出されたデータは演算アレイ8に送られ、演算アレイ8での演算処理後にレジスタファイル6に書き込まれる。
【0021】
また、レジスタファイル6はプロセッサ2外部からのアクセスが可能であり、グローバルプロセッサ4の制御とは別に、外部から特定のレジスタに対し読み出し/書き込みが行なわれる。
【0022】
(3)演算アレイ
PE命令の演算処理が行なわれる。処理の制御はすべてグローバルプロセッサ4から行なわれる。
【0023】
図2は、本発明に係るSIMD型マイクロプロセッサ2の、更に詳細な構成を示すブロック図である。
【0024】
グロバールプロセッサ4には、本プロセッサ2のプログラム格納用のプログラムRAM10と、演算データ格納用のデータRAM12が内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)14、演算処理のデータ格納のための汎用レジスタであるG0、G1、G2及びG3レジスタ(16、18、20、22)、レジスタ退避・復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)24、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)26、同じくIRQ(Interrupt ReQuest;割込み要求)時とNMI(Non−Maskable Interrupt request;禁止不能割込み要求)時の分岐元アドレスを保持するLIレジスタ28及びLNレジスタ30、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)32が内蔵されている。
【0025】
これらのレジスタと、(図示していない)命令デコーダ、ALU、SCU(シーケンシャルユニット)、メモリ制御回路、割り込み制御回路、外部I/O制御回路及びGP演算制御回路とを使用して、GP命令の実行が行なわれる。
【0026】
また、PE命令実行時には、命令デコーダ、レジスタファイル制御回路56、PE演算制御回路58を使用して、レジスタファイル6の制御と演算アレイ8の制御を行なう。さらに、データRAM12から複数のPEレジスタファイル6にデータを転送できるように、設定されている。
【0027】
レジスタファイル6においては、1つのPE単位に8ビットのレジスタ34が32本内蔵されており、256個のPE分の(32本の)組が、アレイ構成になっている。レジスタ34はPE毎に、R0、R1、R2、・・・R31と呼ばれる。それぞれのレジスタ34は、演算アレイ8に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算アレイ8からアクセスされる。32本のレジスタの内、24本(R0〜R23)はプロセッサ外部からアクセス可能であり、外部からはクロック(CLK)とアドレス(Address)、リード/ライト制御(RWB)を入力することで、任意のレジスタ34に対し、読み書きできる。残りの8本(R24〜R31)のレジスタ34は、PE演算の一時的な演算データ保存用として使用される。
【0028】
演算アレイ8は、16ビットALU36と16ビットAレジスタ38、Fレジスタ40を内蔵している。PE命令による演算は、レジスタファイル6から読み出されたデータ若しくはグローバルプロセッサ4から与えられたデータをALU36の片側の入力とし、Aレジスタ38の内容をもう片側の入力として、行なわれるものである。その演算結果は、Aレジスタ38に格納される。したがって、R0〜R31レジスタ34若しくはグローバルプロセッサ4から与えられたデータと、Aレジスタ38に格納されるデータとの、演算が行なわれることになる。
【0029】
レジスタファイル6と演算アレイ8との接続部位に、7to1(7対1)のマルチプレクサ42が置かれている。図2に示すように、あるマルチプレクサ42から見て、左方向の3つのPE3に含まれるR0〜R31レジスタ34のデータと、右方向の3つのPE3に含まれるR0〜R31レジスタ34のデータと、自らが属するPE3に含まれるR0〜R31レジスタ34のデータを、演算対象として選択し得るように設定されている。また、レジスタファイル6の8ビットのデータは、シフト・拡張回路44により任意のビット分だけ、左シフトしてALU36に入力する。
【0030】
各PE3には、PE番号と呼ばれる通し番号が付されている。本SIMD型マイクロプロセッサ2では、PEの個数が256個であるので、8ビットのビット列(即ち、00000000b〜11111111bの256通り。本明細書において、上記のような末尾の“b”は2進法表記であることを表す。)が、各PE3にPE番号データとして与えられる。PE番号は、各PE3に対し、PEの位置とは無関係に与えられても構わないが、本明細書においては、端から順に付されているものとする。
【0031】
このPE番号を利用して、特定のPE3を選択しそのPE3の演算アレイ8に含まれる8ビットの条件レジスタ54(図3参照)に、所定の値を設定することができる。この条件レジスタ54により、PE3別に演算実行/非実行の制御をすることが可能である。つまり、特定のPE3だけに演算させるように選択することが可能となる。
【0032】
なお、上記のPE番号データは、各PE3にて8ビットの入力端子を備えさせその端子をVCC若しくはGNDに結ぶ組み合わせを変えることにより、作成している。
【0033】
図3のPE番号発生回路60は、それらPE番号を作出できる回路である。更に、PE番号発生回路60は、GP4からの制御により、PE番号の順序に従い、所定の繰返しパターンを形成する数(列)を作出できるように、設定されている。つまり、例えば、PE番号が、
・0、1、2、3、4、5、6、7、8、9、10・・・・
と付されているPE3において、それらPE3に備わるPE番号発生回路60が、
・0、1、2、3、0、1、2、3、0、1・・・・
という繰返しパターンを形成する数を作出し得る、ということである。繰返しパターンは、勿論、上記のものに限定されない。
【0034】
<基礎となる構成によるディザ法の2値化処理>
まず、図1及び図2のブロック図に示されるSIMD型マイクロプロセッサ2を利用するディザ法の2値化処理を、図3の本発明に係るブロック図を用いて説明する。以下の説明のディザ法では、4×4のディザマトリクスを利用する。
【0035】
夫々のPE3が、ディザマトリクスの1つの行に属する4つの値と、4個のPE3の単位で、繰り返し関連付けられることを目的として、複数(256個)配置されたPE3の端から順に、各PE3を4種類に分類していく必要がある。
【0036】
最初に、各PEでは、PE番号データをPE番号発生回路60からAレジスタ38にロードする。続いて、Aレジスタ38に格納された上記データを、プロセッサ2への命令により“4”で除算し、その剰余値を求める。この値は、PE番号データの下位2ビット以外を0に置きかえる(即ち、PE番号データと“0x3”とのAND演算を行なう)ことにより計算される。その演算結果はAレジスタ38に格納されるとする。すると、この演算結果値は、PE番号の小さいPE3から順に
・0、1、2、3、0、1、2、3、0、・・・
となり、各PE3では、Aレジスタ38の内容は、PE3の端から順に(PE番号の小さいPE3から順に)、4つの種類の値の繰り返しとなる。
【0037】
前に説明したように、GP4からの制御により、PE番号発生回路60に、PE番号の順序に従い所定の繰返しパターンを形成する数(列)を、作出させてもよい。つまり、例えば、PE番号が、
・0、1、2、3、4、5、6、7、8、9、10・・・・
と付されているPE3において、それらPE3に備わるPE番号発生回路60に、
・0、1、2、3、0、1、2、3、0、1・・・・
という繰返しパターンを形成する数を作出させて、Aレジスタ38に格納させてもよい。
【0038】
次に、プロセッサ2への命令により、全PE3のAレジスタ38において“1”と比較演算を行なう。一致すればそのPE3において、
・T1=1
とする。なおここで、8ビットの条件レジスタ54は、下位から順に、
・T0、T1、T2、T3、T4、T5、T6、T7
なるビットで構成される。
【0039】
続く命令により、“2”と比較演算し一致すればそのPE3において、
・T2=1
とし、“3”と比較演算し一致すればそのPE3において、
・T3=1
とする。
【0040】
ディザマトリクスの各値は、GP4内のプログラムRAM10もしくはデータRAM12に格納されている。まず、プロセッサ2への命令により、ディザマトリクスの1列目のしきい値を、例えば、即値データバス53を介して,全PE3のAレジスタ38にロードする。次に、プロセッサ2への命令により、ディザマトリクスの2列目のしきい値を、「T1=1」となっているPE3のAレジスタ38にロードする。さらに、ディザマトリクスの3列目のしきい値を、「T2=1」となっているPE3のAレジスタ38にロードする。さらに、ディザマトリクスの4列目のしきい値を、「T3=1」となっているPE3のAレジスタ38にロードする。これらのロード操作により、Aレジスタ38には所望のしきい値が格納されることになる。各PE3において、これらのしきい値を画像の画素データが格納されているレジスタ(例えばR0レジスタ)のデータと比較する。比較結果により(即ち、しきい値と画素データとの大小関係により)、それぞれの演算結果データを「0xff」もしくは「0x00」に設定する。ここにおいて、1ラインのディザ法の2値化処理が完了する。
【0041】
SIMD型マイクロプロセッサ2を利用する演算処理において、画像データの1ラインの画素数がプロセッサ2に備わるPE個数を超える場合がある。その場合には、1ラインをPE個数で分割し、同じ処理を分割数だけ繰り返すことになる。
【0042】
ディザ法の2値化処理では、画像の画素データとしきい値との比較処理そのものは1命令で終了するにもかかわらず、上記のようにしきい値をロードするための命令ステップが別途必要とされる。しかも、その命令ステップは、分割された処理を繰り返す度に実行されなければならない。但し、しきい値のロード操作を1ラインの処理の先頭の分割処理においてのみ行ない、その際に利用したしきい値をPEの所定のレジスタ(例えばR1)に格納し、後続の分割処理ではレジスタ(R1)に格納されたしきい値を使用すれば、命令ステップ数を削減することができる。しかし、このようにしても、しきい値を格納するために各PE3の幾つかのレジスタが占有されてしまうという問題点が残る。
【0043】
<第1の実施の形態>
図5は、本発明に係る第1の実施の形態のSIMD型マイクロプロセッサ2の構成を示す。図1及び図2のSIMD型マイクロプロセッサ2に対して、幾らかの構成要素が付加されている。
【0044】
グローバルプロセッサ(GP)4から、4本のパラメータバス(第1のパラメータバス62−0、第2のパラメータバス62−1、第3のパラメータバス62−2、第4のパラメータバス62−3)を介して、4組の8ビット・データが各PE3に供給されるように構成されている。各PE3においては、それら4組の8ビット・データを受信するために4つのバッファ回路(66−0、66−1、66−2、66−3)が設定されている。それらバッファ回路は上記の4本のパラメータバスを、各PE3の内部バス70に接続する。
【0045】
更に、4組のリード(第1のリード64−0、第2のリード64−1、第3のリード64−2、第4のリード64−3)が各PE3の4つのバッファ回路(66−0、66−1、66−2、66−3)に向けて引かれている。これらリード(64−0、64−1、64−2、64−3)は、後で説明するように、上記の8ビット・データが各PE3の内部バス70に出力されるタイミングを制御する1ビット信号を供給する。
【0046】
上記の4本のパラメータバスには、GP4内のデータRAM12のデータが転送される。本実施の形態では、ディザマトリクスのしきい値データがそのように転送される。
【0047】
また、各PE3において、4組のパラメータバス(62−0、62−1、62−2、62−3)、即ち4つのバッファ回路(66−0、66−1、66−2、66−3)の、いずれかを選択するための2ビットの選択信号が、PE番号発生回路60より4つのバッファ回路(66−0、66−1、66−2、66−3)に入力される。各バッファ回路(符号66により総称する。)は、この選択信号をデコードすることにより、自身に対する選択か否かを判断する。
【0048】
なお、この選択信号を、PE番号発生回路66でデコードして作成(例えば、下位2ビットをデコードして4ビットの選択信号を作成)し、バッファ回路66ではデコード処理しない、というような構成であっても、上記の機能は実現可能である(但し、選択信号のビット数が増加する)。
【0049】
図5のSIMD型マイクロプロセッサ2においては、4本のパラメータバス(符号62により総称する。)が備わるが、勿論それより多くてもよく、例えば、8本のパラメータバス62が備わってもよい。ディザ法に関して言えば、パラメータバス62の本数が多いと、より大きなディザマトリクスに対応することが可能になる。パラメータバス62が8本である場合には、各PE3にはバッファ回路66も8つ設定されなければならない。またその場合、例えば、各PE3のPE番号発生回路66は、PE番号の下位3ビットを選択信号として出力する。各バッファ回路66においては、3ビットの選択信号をデコードすることにより、自身に対する選択か否か判断することになる。
【0050】
リード(符号64で総称する。)に関しては、4組の動作は等価であるため、1組(1本)によっても構成され得る。また、上記で示したように、PE番号発生回路60は、GP4からの制御により、PE番号の順序に従い、所定の繰返しパターンを形成する数(列)を作出し得る。
【0051】
図6は、4つのバッファ回路66の構成の例であり、(1)は、第1のパラメータバス62−0及び第1のリード64−0に対応する、第1のバッファ回路66−0である。符号「68」で示されるバスは、選択信号バス(68)であり、2ビットで構成されている。下位ビットが“CT0”に入力され、上位ビットが“CT1”に入力される。図の下方にはリード(第1のリード64−0)が示されている。図6(1)の回路構成からすると、選択信号として“00b”が入力され、且つ、第1のリード64−0に“1b”の信号が入力されるときに、第1のパラメータバス62−0を通過する信号(データ)が内部バス70に出力される。
【0052】
同様に図6(2)は、第2のパラメータバス62−1及び第2のリード64−1に対応する、第2のバッファ回路66−1である。この回路構成では、選択信号として“01b”が入力され、且つ、第2のリード64−1に“1b”の信号が入力されるときに、第2のパラメータバス62−1を通過する信号(データ)が内部バス70に出力される。
【0053】
また図6(3)は、第3のパラメータバス62−2及び第3のリード64−2に対応する、第3のバッファ回路66−2である。この回路構成では、選択信号として“10b”が入力され、且つ、第3のリード64−2に“1b”の信号が入力されるときに、第3のパラメータバス62−2を通過する信号(データ)が内部バス70に出力される。
【0054】
更に図6(4)は、第4のパラメータバス62−3及び第4のリード64−3に対応する、第4のバッファ回路66−3である。この回路構成では、選択信号として“11b”が入力され、且つ、第4のリード64−3に“1b”の信号が入力されるときに、第4のパラメータバス62−3を通過する信号(データ)が内部バス70に出力される。
【0055】
第1の実施の形態のSIMD型マイクロプロセッサ2を利用して、ディザ法の2値化処理を行なう手順を説明する。
【0056】
各PE3のPE番号発生回路60は、プロセッサ2に対する命令により、PE番号の順序に眺めると所定の繰返しパターンを形成する数(列)を作出し、その値を選択信号としてバッファ回路66に与える。
【0057】
PE番号発生回路60が作出する数は、例えば、(2進法で表現した)PE番号の下位2ビットである。つまり、PE番号が、
・0、1、2、3、4、5、6、7、8、9、10・・・・
と付されているPE3において、それらPE3に備わるPE番号発生回路60に、
・0、1、2、3、0、1、2、3、0、1・・・・
という繰返しパターンを形成する数を作出させ、選択信号としてバッファ回路66に与える。
【0058】
また、同じ命令により、データRAM12上にある4つの「しきい値」を同時に上記4組のパラメータバス62を介して各PE3に転送する。各PE3では、PE番号発生回路60から与えられた選択信号をバッファ回路66でデコードする。これにより、4組のパラメータバス62のデータのいずれかが選択される。選択されたパラメータバス62に係るデータ(即ち、「しきい値」)は、PE内部バス70に出力される。
【0059】
PE内部バス70に出力されたデータはマルチプレクサ42、シフタ44を介してALU36に入力され、Aレジスタ38に格納される。
【0060】
ここで、Aレジスタ38には4組のしきい値から、選択されるべきしきい値が選択され、しかも1つの命令で格納されることになる。この後の処理は、上記と同様である。
【0061】
以上の処理により、これまではしきい値の種類分掛かっていたしきい値のロード処理が、1回のステップ(処理)で実現できるようになる。よって、処理時間が減少される。
【0062】
<第2の実施の形態>
図7は、本発明に係る第2の実施の形態のSIMD型マイクロプロセッサ2の構成を示す。第1の実施の形態のSIMD型マイクロプロセッサ2(図5)の構成と、概略同様である。
【0063】
第1の実施の形態のSIMD型マイクロプロセッサ2においては、4つのバッファ回路66に対する選択信号は、PE番号発生回路60から出力されたものが利用されている。一方、第2の実施の形態のSIMD型マイクロプロセッサ2においては、条件レジスタ54の2つのビット、例えば、
・(T1、T2)
が、選択信号を与える。選択信号を与える(発生させる)供給源は、各PE3毎に任意の値が格納され得るレジスタであればよく、条件レジスタ54に限定されるものではない。例えば、Aレジスタ38やFレジスタ40であってもよい。
【0064】
第2の実施の形態のSIMD型マイクロプロセッサ2を利用して、ディザ法の2値化処理を行なう手順を説明する。
【0065】
各PE3にて、PE番号発生回路60でPE番号を作成し、Aレジスタ38にロードする。次に、Aレジスタ38にロードされたデータと、“0x3”とにおいて、AND処理を行なう。つまり、Aレジスタ38にロードされたデータにおいて下位2ビット以外を“0b”に置き換える。その後、このデータを任意のPEレジスタ(例えばR2レジスタ)に転送する。
【0066】
R2レジスタに転送されたデータを、1ビット左(上位)シフトをして、条件レジスタ54へロードする。以上により、各PE3において、条件レジスタ54の最下位ビットを除く下位2ビット(T1、T2)に、4つの種類の値が(PE3の端から順に繰り返されて)設定される。
【0067】
次に、プロセッサ2への命令により、4つの「しきい値」を同時に上記4組のパラメータバス62を介して各PE3に転送する。各PE3では、条件レジスタ54から与えられた選択信号をバッファ回路66でデコードする。これにより、4組のパラメータバス62のデータのいずれかが選択される。選択されたパラメータバス62に係るデータ(即ち、「しきい値」)は、PE内部バス70に出力される。
【0068】
PE内部バス70に出力されたデータはマルチプレクサ42、シフタ44を介してALU36に入力され、Aレジスタ38に格納される。
【0069】
ここで、Aレジスタ38には4組のしきい値から、選択されるべきしきい値が選択され、格納されることになる。この後の処理は、上記と同様である。
【0070】
以上の第2の実施の形態の処理手順の例では、第1の実施の形態に関する上記記述における処理手順の例と、略同様のものを示しているが、第2の実施の形態のSIMD型マイクロプロセッサ2を利用すれば、各PE3を種類分けするための繰り返しパターンの生成を、より自由に行なうことができる。第1の実施の形態のSIMD型マイクロプロセッサ2の構成では、PE番号発生回路60で形成される繰り返しパターンのバリエーションがあまり多くないものと想定される。即ち、PE番号発生回路60は前に説明したような簡単な回路構成であるため、生成可能な繰り返しパターンは、
・0、1、0、1、0、1、0、1、0、1、0、1・・・
・0、1、2、3、0、1、2、3、0、1、2、3・・・
・0、1、2、3、4、5、6、7、0、1、2、3、4、5、6、7・・・
などのような、2のベキ乗を繰り返すものに限られてしまう。一方、第2の実施の形態に係るSIMD型マイクロプロセッサ2の構成では、3×3のディザマトリクスや6×6のディザマトリクスを利用するディザ法による2値化処理にも、対応可能である。更に、
・0、1、2、3、3、2、1、0、0、1、2、3、3、2、1・・・
というようなパターンも、生成可能である。
【0071】
<第3の実施の形態>
<基礎となる構成によるディザ法の2値化処理>において説明したように、各PE3においてしきい値をロードした後に、画像データとそのしきい値を比較し、しきい値以上のPE3では演算結果データ(画像データ)を“0xff”に、しきい値未満のPE3では“0x00”に、変換する。
【0072】
より詳しく述べる。例えば、まず、プロセッサ2への命令により、画像データをしきい値と大小比較し、画像データがしきい値以上であるPE3では、(条件レジスタ54のT1ビットにおいて)「T1=1」と設定し、画像データがしきい値未満であるPE3では、「T1=0」と設定する。次に、プロセッサ2への命令により、「T1=1」であるPE3ではデータ“0xff”をロードし、さらにプロセッサ2への命令により、「T1=0」であるPE3ではデータ“0x00”をロードする。
【0073】
上記のように、データ“0xff”をロードし続いてデータ“0x00”をロードするには、2ステップの命令が必要である。本発明に係る第3の実施の形態のSIMD型マイクロプロセッサ2は、同処理を1ステップの命令で実施することを実現するものである。
【0074】
ここで、第3の実施の形態に係るSIMD型マイクロプロセッサ2の構成は、上記第2の実施の形態に係るSIMD型マイクロプロセッサ2の構成と、略同様である。第3の実施の形態に係るSIMD型マイクロプロセッサ2は、図8にてマッピングが示されているロード命令コード84により、動作させることができるよう構成されている。
【0075】
図8のロード命令コード(例)84は、(例えば)Aレジスタ38にロードするロード値(即値)を、2つ備えている。従来技術における通常のロード命令コードでは、即値は1つだけである。例えば、条件レジスタ54の所定のビットに格納される値が所定の条件を満足するようなPE3に限り、即値がAレジスタ38にロードされる、というように、1つだけの即値が必要とされる。
【0076】
本実施の形態に係るSIMD型マイクロプロセッサ2においては、図8のロード命令コード84により2つの即値データが、図7の第1のパラメータバス64−0と第2のパラメータバス64−1とのそれぞれに出力される。即ち、「即値0」80(図8)は第1のパラメータバス64−0に、「即値1」82(図8)は第2のパラメータバス64−1に、出力される。パラメータバス64(64−0、64−1)への出力データの選択は、レジスタファイル制御回路56内のマルチプレクサ(図示せず。)により行なわれる。そこでは、ロードに係る命令の種類により、データRAM12に格納される値、若しくは上記のような即値が選択されることになる。
【0077】
各PE3では、画像データとしきい値との大小比較の結果が、上記のように条件レジスタ54の「T1」にて格納されている。「T1」に格納されるデータは、選択信号としてバッファ回路66に与えられる。この選択信号により、第1のパラメータバス64−0又は第2のパラメータバス64−1のどちらかが、PE3毎に選択される。選択されたパラメータバス64に係るデータが、PE内部バス70に出力される。PE内部バス70に出力されたデータは、マルチプレクサ42、シフタ44を介してALU36に入力され、Aレジスタ38に格納される。
【0078】
結局、「T1=0」の場合には第1のパラメータバス64−0が選択され、「T1=1」の場合には第2のパラメータバス64−1が選択される。従って、第1のパラメータバス64−0に出力されるデータ(即値0)としてデータ“0x00”を指定し、第2のパラメータバス64−1に出力されるデータ(即値1)としてデータ“0xff”を指定すれば、1ステップの命令だけで2値化処理が可能となる。
【0079】
図8に示すロード命令コードでは、即値(即値0、即値1)として、“0x00” “0xff”以外の値を記述することも、勿論可能である。
【0080】
【発明の効果】
本発明に係るSIMD型マイクロプロセッサ2を利用することにより、以下のような効果を得ることができる。
【0081】
第1の実施の形態に係るSIMD型マイクロプロセッサ2を利用することにより、従来ではしきい値の種類分かかっていた、ディザ法のディザマトリクスのしきい値のロード処理が、1回のステップ(処理)で実現できるようになり、処理時間が短縮される。
【0082】
第2の実施の形態に係るSIMD型マイクロプロセッサ2を利用することにより、第1の実施の形態と同様、従来ではしきい値の種類分かかっていた上記しきい値のロード処理が1回のステップ(処理)で実現できるようになり、処理時間が短縮される。更に、上記しきい値の繰り返しパターンがより複雑なものであっても、対応できる。
【0083】
第3の実施の形態に係るSIMD型マイクロプロセッサ2を利用することにより、(1つの命令内に記述される)2つの即値データにおいて各PEがいずれかを選択しロードまでを行なうという処理を、1ステップにより実現できる。
【図面の簡単な説明】
【図1】 本発明に係るSIMD型マイクロプロセッサの概略の構成を示すブロック図である。
【図2】 本発明に係るSIMD型マイクロプロセッサの更に詳細な構成を示すブロック図である。
【図3】 本発明に係るSIMD型マイクロプロセッサの基礎となる構成を示すブロック図である。
【図4】 ディザ法のディザマトリクスの例である。
【図5】 本発明に係る第1の実施の形態のSIMD型マイクロプロセッサの詳細な構成を示すブロック図である。
【図6】 バッファ回路の構成の例である。
【図7】 本発明に係る第2の実施形態のSIMD型マイクロプロセッサの詳細な構成を示すブロック図である。
【図8】 本発明の第3の実施の形態に係るロード命令コードのマッピング図である。
【符号の説明】
2・・・SIMD型マイクロプロセッサ、3・・・プロセッサエレメント、4グローバルプロセッサ、6・・・レジスタファイル、8・・・演算アレイ、36・・・16ビットALU、38・・・Aレジスタ、50・・・ディザマトリクス、53・・・即値データバス、54・・・条件レジスタ、56・・・レジスタファイル制御回路、58・・・PE演算部制御回路、60・・・PE番号発生回路、62−0・・・第1のパラメータバス、62−1・・・第2のパラメータバス、62−2・・・第3のパラメータバス、62−3・・・第4のパラメータバス、64−0・・・第1のリード、64−1・・・第2のリード、64−2・・・第3のリード、64−3・・・第4のリード、66−0・・・第1のバッファ回路、66−1・・・第2のバッファ回路、66−2・・・第3のバッファ回路、66−3・・・第4のバッファ回路、68・・・選択信号バス、70・・・内部バス。
Claims (4)
- 1つのグローバルプロセッサと、
複数のプロセッサエレメントとを含むSIMD型マイクロプロセッサにおいて、
上記グローバルプロセッサから各々のプロセッサエレメントに対し、複数のデータバスが設置されており、
各プロセッサエレメントは、上記複数のデータバスのうちからどのデータバスを選択するのかを指定する選択信号を生成し、
上記選択信号により選択されたデータバスを介して上記グローバルプロセッサから転送される信号を、各プロセッサエレメント内の所定のレジスタに格納する、
SIMD型マイクロプロセッサ。 - 各プロセッサエレメントには、連続する通し番号が順に付されており、
各プロセッサエレメントにおいて、2進法にて表現された自らの通し番号に対し、所定桁数の上位ビットを“0”に置き換え、その結果形成される信号を上記の選択信号とする、
請求項1に記載のSIMD型マイクロプロセッサ。 - 各プロセッサエレメントにおける演算結果データ、又はその演算結果から導出されるデータを、各プロセッサエレメント内の所定のレジスタに格納し、
該レジスタから引き出される信号を上記の選択信号とする、
請求項1に記載のSIMD型マイクロプロセッサ。 - 即値を2つ以上含む命令コードにより動作されるSIMD型マイクロプロセッサであって、
上記の複数のデータバスに対し、上記の複数の即値が伝送される、
請求項1乃至請求項3に記載のSIMD型マイクロプロセッサ。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001003602A JP3837293B2 (ja) | 2001-01-11 | 2001-01-11 | 定数選択機能を有するsimd型マイクロプロセッサ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001003602A JP3837293B2 (ja) | 2001-01-11 | 2001-01-11 | 定数選択機能を有するsimd型マイクロプロセッサ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002207707A JP2002207707A (ja) | 2002-07-26 |
JP3837293B2 true JP3837293B2 (ja) | 2006-10-25 |
Family
ID=18871922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001003602A Expired - Fee Related JP3837293B2 (ja) | 2001-01-11 | 2001-01-11 | 定数選択機能を有するsimd型マイクロプロセッサ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3837293B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4516495B2 (ja) * | 2005-07-25 | 2010-08-04 | 株式会社リコー | Simd型マイクロプロセッサにおけるデータ処理方法 |
JP4989899B2 (ja) * | 2006-01-27 | 2012-08-01 | ルネサスエレクトロニクス株式会社 | 半導体演算処理装置 |
JP2013061851A (ja) * | 2011-09-14 | 2013-04-04 | Ricoh Co Ltd | メモリコントローラ及びsimd型プロセッサ |
-
2001
- 2001-01-11 JP JP2001003602A patent/JP3837293B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2002207707A (ja) | 2002-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7350054B2 (en) | Processor having array of processing elements whose individual operations and mutual connections are variable | |
EP0539595A1 (en) | Data processor and data processing method | |
JP2008071130A (ja) | Simd型マイクロプロセッサ | |
JP3955741B2 (ja) | ソート機能を有するsimd型マイクロプロセッサ | |
JP3971535B2 (ja) | Simd型プロセッサ | |
US7512290B2 (en) | Image processing apparatus with SIMD-type microprocessor to perform labeling | |
US20030033503A1 (en) | Single instruction having opcode and stack control field | |
JP3837293B2 (ja) | 定数選択機能を有するsimd型マイクロプロセッサ | |
JP4482356B2 (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
US20070220074A1 (en) | Sharing of a logic operator having a work register | |
JP4442905B2 (ja) | 画像データの処理方法 | |
US8024550B2 (en) | SIMD processor with each processing element receiving buffered control signal from clocked register positioned in the middle of the group | |
JP3971543B2 (ja) | Simd型プロセッサ | |
JP4516495B2 (ja) | Simd型マイクロプロセッサにおけるデータ処理方法 | |
US20100031002A1 (en) | Simd microprocessor and operation method | |
JP3742745B2 (ja) | 演算処理装置 | |
JP4442907B2 (ja) | Simd型プロセッサ | |
JP3969580B2 (ja) | データ処理装置、画像処理装置、画像形成装置、プログラム及び記憶媒体 | |
JP2003216950A (ja) | パターンマッチングなどを行なうためのsimd型マイクロプロセッサ | |
JP4294190B2 (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP2515724B2 (ja) | 画像処理装置 | |
JP4346039B2 (ja) | データ処理装置 | |
JP4413905B2 (ja) | Simd型プロセッサ | |
JP2004192405A (ja) | Simd型プロセッサ | |
JP4646853B2 (ja) | 制御情報供給装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20041110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060720 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20060725 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060731 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090804 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100804 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110804 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120804 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130804 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |