JP4294190B2 - 並列プロセッサ及びそれを用いた画像処理装置 - Google Patents
並列プロセッサ及びそれを用いた画像処理装置 Download PDFInfo
- Publication number
- JP4294190B2 JP4294190B2 JP2000020130A JP2000020130A JP4294190B2 JP 4294190 B2 JP4294190 B2 JP 4294190B2 JP 2000020130 A JP2000020130 A JP 2000020130A JP 2000020130 A JP2000020130 A JP 2000020130A JP 4294190 B2 JP4294190 B2 JP 4294190B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- processor
- conversion
- stored
- 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)
Description
【産業上の利用分野】
この発明は、例えば、デジタル複写機やファクリミリ装置等の画像データのデジタル処理等に用いられる並列プロセッサに関するものであり、特に画像データの非線形変換処理に用いられるSIMD(Single Instruction Stream Multiple Data Stream)型マイクロプロセッサ及びそれを用いた画像処理装置に関するものである。
【0002】
【従来の技術】
近年、デジタル複写機やファクリミリ装置等の画像処理装置において、画素数を増加したり、或いはカラー対応にするなど画像の向上が図られている。そして、この画像の向上に伴い、処理すべきデータ数が増加している。ところで、複写機等の画像処理装置におけるデータ処理は全ての画素に対して同じ演算処理を施すことが多い。そこで、1つの命令で複数のデータに対して同時に同じ演算処理を行うSIMD方式のプロセッサが用いられるようになっている。
【0003】
上記したように、SIMD型マイクロプロセッサでは1つの命令で複数のデータに対して同時に同じ演算処理が実行可能である。ここで、通常の演算処理は複数の演算器を並べ同じ演算を同時に複数のデータに対して実行することで実現できる。しかし、画像処理においては、演算処理が式で表すことができない非線形な処理を行うことが多い。演算処理が式で表すことができない非線形な処理は演算対象のデータによって演算式が変更となるため同じ処理を同時に実行できない。したがって、データ毎の逐次処理となりSIMD方式の効果が無くなってしまう。
【0004】
通常のSISD方式のプロセッサにおいても演算データにより演算式が変更となる非線形処理はプログラムが非常に複雑になるため、演算前データに対して演算後の処理済みデータを全て準備しておきテーブル化し、演算データを元にテーブル変換を行い演算後データを得る方式が一般的である。具体的にはRAM上にテーブルを持ち演算前データにテーブルの先頭の番地を加算した値をアドレスポインタとしてRAMから得られたデータを演算後のデータとしている。
【0005】
演算データが8ビットの場合には256バイトの変換テーブルが必要となるが演算ビット幅の増加とともにテーブルのサイズは2のベキ乗で増加するため演算ビット幅が大きい場合は演算データを任意の区間に分けてその区間での近似式をテーブルとして持つ場合もある。
【0006】
【発明が解決しようとする課題】
さて、このテーブル変換をSIMD型マイクロプロセッサで採用する場合にはそれぞれの演算単位でテーブルが必要となる。例えば、256個のプロセッサエレメント(PE)を有するSIMD型プロセッサで8ビットのテーブル変換を行う場合には256バイトのテーブルRAMがそれぞれの演算単位つまり256個必要となりコスト面が増大する問題があった。そのため、SIMD型マイクロプロセッサのテーブル変換に対して数々の方式が考案されている。
【0007】
特開平5−67203号公報においては、各SIMD単位のPE内蔵の出力レジスタから演算前データを順次外部に出力し、外部で逐次にテーブル変換を行い、変換後のデータをPE内蔵の入力レジスタに順次入力する方式が提案されている。この方式では、変換テーブルが1個となるためコストの上昇は抑えられるが、逐次処理であるため演算処理時間は最低でもPE数だけかかってしまい演算速度面で不利であった。また、この変換処理をPEでの通常処理と並行に実行すれば演算処理時間はトータルとして削減できるが、入力・出力のレジスタがこの変換作業専用に使用され他の用途に使用できない、変換処理後のデータが必要な場合には演算処理時間だけ待つこととなり並行処理が不可能であるといった問題があった。
【0008】
また、特開平9−305550号公報においては、各プロセッサエレメント(PE)毎に非線形変換テーブルの元データと変換対象データとの比較を行う比較器を設け、この比較器で両データを比較し、一致したPEには変換後のデータを格納し、この値を演算後データとする方式が提案されている。この場合には演算処理時間は演算前データの取りうる値の組み合わせ(変換テーブルのワード数)となるため、PE数よりこのワード数が少ない場合には高速化される。8ビットデータの場合ではPE数によらず256回程度のサイクル数となる。この場合においても演算処理時間が長い問題がある。また、他の処理と並行に行った場合には、上記した特開平5−67203号公報と同じ問題を持っている。
【0009】
さらに、特許番号第2812292号においては、PE数と同数の出力ポートを持つ変換テーブル用のRAMに対して、それぞれのPEから演算前データをアドレスポインタとして与えることで演算後データを得る方法が提案されている。この方式においては、変換速度は1サイクル程度で終了するが、出力ポートの増加はRAMのコストを押し上げることとなり、特に数10個を超えるポートを持つことは実現不可能である。したがって、PE数が多いSIMD型プロセッサに対応できないという問題があった。
【0010】
上記したように、従来技術においては、SIMD型マイクロプロセッサのテーブル変換に代表される非線型処理はSIMD型の最大の特徴である並列処理が困難であるため数々の方式が考案されているが、それらは、入出力レジスタを介した方法、専用のコンパレータを使用したもの、専用テーブル用メモリを使用したものであり、速度・コストのいずれかの面で問題があった。
【0011】
すなわち、特開平5−67203号公報は、出力レジスタからデータを出力し外部テーブルメモリのアドレスとして入力、メモリから出力されたデータを変換後のデータとして入力シフトレジスタから入力する。全データの変換にはPE数以上のサイクルが必要であり処理時間が長い問題がある。また、テーブルメモリは専用のものとなり、さらに入力シフトレジスタ、入力シフトレジスタはテーブル変換専用に使用されることとなる。
【0012】
また、特開平9−305550号公報は、各PEに変換前データの比較器を設け、外部から変換前データと変換後データを入力し変換前データと一致したPEだけに変換後のデータを格納する。変換前データのデータ数だけのサイクル数が必要であり、さらに専用の比較器が必要である。
【0013】
さらに、特許番号第2812292号では、テーブルメモリの出力ポート数をPE数だけ用意してテーブル変換を行う。変換速度は最も速いがメモリのポート数が非常に多いためコストが高くなる。PE数が数10個までしか実現できないと思われる。
【0014】
この発明は、上述した従来の問題点を解決するためになされたものにして、非線形処理を効率よく実現することができる並列プロセッサを提供することを課題とする。
【0015】
【課題を解決するための手段】
この発明の並列プロセッサは、プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、複数の第1のレジスタと複数の第2のレジスタを有する前記プロセッサエレメント内に設けられたレジスタファイルと、外部とのインタフェースと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、両データが一致した場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返すことを特徴とする。
【0016】
また、この発明の並列プロセッサは、プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、複数の第1のレジスタと複数の第2のレジスタを有する前記プロセッサエレメント内に設けられたレジスタファイルと、外部とのインタフェースと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、前記第3のレジスタに格納されたデータが大きい場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返すことを特徴とする。
【0017】
また、前記プロセッサエレメントは、前記テーブルデータ転送バスから前記第2のレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と前記条件レジスタに格納された演算結果フラグの条件に応じて前記テーブルデータ転送バスからのデータを前記第2のレジスタに取り込むことように構成できる。
【0018】
また、前記変換後データは変換前データから連続した8個のデータとして8個のテーブルデータ転送バスから8個の第2のレジスタに同時に書き込まれるように構成できる。
【0019】
また、前記プロセッサエレメントに内蔵される前記テーブルメモリからのデータを同時に格納することが可能な前記第2のレジスタは各プロセッサエレメントにおける変換前データを格納するものとしても使用可能に構成することができる。
【0020】
また、複数の前記第2のレジスタに格納する前記テーブルメモリのデータはグローバルプロセッサに内蔵されるメモリに格納されており、このメモリはグローバルプロセッサ演算でのデータ保存用のメモリにも使用可能に構成できる。
【0021】
この発明の画像処理装置は、プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、を備えた並列プロセッサにFIFOを介して画像データが入力され、入力された画像データを並列演算処理し、演算処理された画像データがFIFOを介して並列プロセッサ外部に出力される画像処理装置であって、前記並列プロセッサの各プロセッサエレメントは、複数の第1のレジスタと複数の第2レジスタを有するレジスタファイルと、前記FIFOと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記レジスタファイルの第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、両データが一致した場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記レジスタファイルの前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返し、非線形処理された画像データが前記FIFOを介して外部に出力されることを特徴とする。
【0022】
この発明の画像処理装置は、プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、を備えた並列プロセッサにFIFOを介して画像データが入力され、入力された画像データを並列演算処理し、演算処理された画像データがFIFOを介して並列プロセッサ外部に出力される画像処理装置であって、前記並列プロセッサの各プロセッサエレメントは、複数の第1のレジスタと複数の第2のレジスタを有するレジスタファイルと、前記FIFOと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、前記第3のレジスタに格納されたデータが大きい場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返し、非線形処理された画像データが前記FIFOを介して外部に出力される。
【0023】
また、前記プロセッサエレメントは、前記テーブルデータ転送バスから前記第2のレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と前記条件レジスタに格納された演算結果フラグの条件に応じて前記テーブルデータ転送バスからのデータを前記第2のレジスタに取り込むように構成できる。
【0024】
また、前記変換後データは変換前データから連続した8個のデータとして8個の前記テーブルデータ転送バスから8個の前記第2のレジスタに同時に書き込まれるように構成できる。
【0025】
【発明の実施の形態】
以下、この発明に係るSIMD型プロセッサ1の実施の形態を図面を参照して説明する。
【0026】
まず、この発明にかかるSIMD型プロセッサの全体構成について、図1に従い説明する。
【0027】
この発明のSIMD型プロセッサ1は、図1に示すように、グローバルプロセッサ2、本実施形態では256組の後述するプロセッサエレメント3aからなるプロセッサエレメントブロック3と、インタフェース4から構成される。インタフェース4はグローバルプロセッサ2の命令に基づき、イメージスキャナなどの外部入力部から演算対象となるデータをプロセッサ内部の入出力用のレジスタフィル31に与えるとともに、演算処理されたデータをレジスタファイル31からプリンタなどの外部出力部へ転送するものである。
【0028】
この外部入出力装置は、ディジタル画像データなどの演算データを入出力するものである。外部入力装置としては、イメージスキャナや画像が格納された画像メモリがあり、外部出力装置としては画像データを印字するプリンタ、データを格納する画像メモリなどがある。
【0029】
グローバルプロセッサ2は、いわゆるSISD(Single Instruction Stream Single Data Stream)タイプのプロセッサであり、プログラムRAMとデータRAMを内蔵し、プログラムを解読し、各種制御信号を生成する。この制御信号は内蔵する各種ブロックの制御以外にもレジスタファイル31、演算アレイ36に供給される。また、GP(グローバルプロセッサ)命令実行時は内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理を行う。
【0030】
レジスタファイル31はPE(プロセッサエレメント)命令で処理されるデータを保持している。このPE命令はSIMD(Single Instruction Stream Multiple Data Stream)タイプの命令であり、レジスタファイル31に保持されている複数のデータを同時に同じ処理を行う。このレジスタファイル31からのデータの読み出し/書き込みの制御はグローバルプロセッサ2からの制御によって行われる。読み出されたデータは演算アレイ36に送られ、演算アレイ36での演算処理後にレジスタファイル31に書き込まれる。
【0031】
また、レジスタファイル31はプロセッサ外部からのアクセスが可能であり、グローバルプロセッサ2の制御とは別に外部から特定のレジスタを読み出し/書き込みが行われる。
【0032】
演算アレイ36にてPE命令の演算処理が行われる。この処理の制御はすべてグローバルプロセッサ2から行われる。
【0033】
次に、図2を参照して、SIMD型プロセッサ1のレジスタファイル31へのデータの読み出し/書き込みの一例につき説明する。
【0034】
グローバルプロセッサ2にはこのプロセッサのプログラム格納用のプログラムRAM21と演算データ格納用のデータRAM24が内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)のレジスタ群25が内蔵されている。さらに、グローバルプロセッサ2は、プログラムRAM21に基づきグローバルプロセッサ2、プロセッサエレメントブロック3、インタフェース4を制御するシーケンスユニット22を備える。
【0035】
また、グローバルプロセッサ2は、これらのレジスタ群25と図示していない命令デコーダ、算術論理演算器23(以下、「ALU23」という。)、図示していないメモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を使用してGP命令の実行が行われる。
【0036】
また、PE命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、PE演算制御回路を使用して、レジスタファイル31の制御と演算アレイ36の制御を行う。
【0037】
また、この実施形態では、後述するように、グローバルプロセッサ2の命令に従いテーブルRAMから複数のプロセッサエレメント3aにデータが転送可能に構成されている。
【0038】
上記したように、シーケンスユニット22は、プロセッサエレメントブロック3を構成するレジスタファイル31、及び演算アレイ36を制御する。
【0039】
この演算アレイ36は、マルチプレクサ32、シフト拡張回路33、算術論理演算器34(以下、「ALU34」という)、及びAレジスタ35a及びFレジスタ35bを備える。なお、この図2には記載していないが、この実施形態においては、後述するように、比較手段としての、条件レジスタ及び条件選択レジスタを備える。
【0040】
さらに、このシーケンスユニット22は、インタフェース4に対してデータ転送のための動作設定用データ及びコマンド等を送る。インタフェース4は、シーケンスユニット22の動作設定用データ及びコマンドに基づき、プロセッサエレメント3aのアドレス指定のためのアドレス制御信号、プロセッサエレメント3aを構成するレジスタ31bにデータのリード/ライトを指示するためのリード/ライト制御信号、クロック信号を与えるためのクロック制御信号を生成する。
【0041】
ここで、リード/ライト制御信号のうちライト制御信号とは、演算処理されるデータをデータバス41dより取得して、プロセッサエレメント3aのレジスタ31bに保持させるための信号をいう。一方、リード/ライト制御信号のうちリード制御信号とは、プロセッサエレメント3aのレジスタ31bが保持している演算処理されたデータを、データバス41dへ与えるようレジスタ31bに指示するための信号をいう。
【0042】
インタフェース4は、グローバルプロセッサ2からのコマンドを受けて、プロセッサエレメントブロック3を構成するプロセッサエレメント3aのアドレスを指定する信号(以下、「アドレス指定信号」という。)を作成し、アドレスバス41aを介してプロセッサエレメント3aのレジスタコントローラ31aに送る。また、インタフェース4は、後述するように、プロセッサエレメント3aを構成するレジスタ31bに対して、データのリード/ライトを指示するための信号(以下、「リード/ライト指示信号」という。)を、リード/ライト信号線41bを介してプロセッサエレメント3aの後述するレジスタコントローラ31aヘリード/ライト信号が与えられる。
【0043】
また、インタフェース4は、クロック信号線41cを介してプロセッサエレメント3aの後述するレジスタコントローラ31aへクロック信号を与える。
【0044】
さらに、外部入出力データバスからは、上述したように、SIMD型プロセッサ1の外部に設けられたイメージスキャナ等で読み込んだデータを、本実施形態では8ビットのパラレルデータとして、インタフェース4に与える。この8ビットのデータは、データバス41dに与えられる。この8ビットのパラレルデータについては、データに応じて適宜変更しても問題ない。このデータバス41dは、レジスタ31bに保持されている演算処理されたデータが、SIMD型プロセッサ1の外部に転送される時にも使用される。
【0045】
また、レジスタ群25は、プロセッサエレメントブロック3の後述するレジスタ35に接続されており、このレジスタ35との間でシーケンスユニット22の制御によりデータの交換が行われる。
【0046】
プロセッサエレメントブロック3は、図2に示すように、レジスタファイル31、マルチプレクサ32、シフト・拡張回路33、算術論理演算器34(以下、「ALU34」という。)、レジスタ35a、35bを一単位とする複数のプロセッサエレメント3aを備える。レジスタファイル31には、1つのプロセッサエレメント3a単位に8ビットのレジスタが32本内蔵されており、本実施形態では256のプロセッサエレメント分の組がアレイ構成になっている。レジスタファイル31は1つのプロセッサエレメント(PE)3aごとにR0、R1、R2、...R31と呼ばれているレジスタが内蔵されている。それぞれのレジスタファイル31は演算アレイ36に対して1つの読み出しポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバスで演算アレイ36からアクセスされる。32本のレジスタの内、24本はプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできる。
【0047】
レジスタの外部からのアクセスは1つの外部ポートで各プロセッサエレメント3aの1つのレジスタがアクセス可能であり、外部から入力されたアドレスでプロセッサエレメントの番号(0〜255)を指定する。したがって、レジスタアクセスの外部ポートは全部で24組搭載されている。
【0048】
本実施形態では、プロセッサエレメント3aの数を256個として説明するが、これに限定されるものでなく適宜変更して使用してもよい。このプロセッサエレメント3aには、グローバルプロセッサ2のシーケンスユニット22により、インタフェース4に近い順に0から255までのアドレスが割り付けられる。
【0049】
プロセッサエレメント3aのレジスタファイル31は、レジスタコントローラ31a、2種類のレジスタ31b、31cを備える。本実施形態では、図2に示すように、一単位のプロセッサエレメント3a毎に、レジスタコントローラ31aとレジスタ31bとを24組備え、さらにレジスタ31cを8個備えている。図2中の1プロセッサエレメントとは1つのプロセッサエレメント3aを表している。ここで、本実施形態では、レジスタ31b、31cを8ビットのものとして扱うが、これに限定されるものでなく適宜変更して使用してもよい。
【0050】
レジスタコントローラ31aは、図2に示すように、インタフェース4と、上述したアドレスバス41a、リード/ライト信号線41b、クロック信号線41cを介して接続されている。
【0051】
インタフェース4は、グローバルプロセッサ2からデータ転送指示を受け取ると、アドレス指定信号をアドレスバス41aを介してプロセッサエレメントブロック3に送る。これにより、プロセッサエレメント3aがアドレス指定される。レジスタコントローラ31aは、送られてきたアドレス指定信号をデコードし、デコードしたアドレスと、自己に割り付けられたアドレスとが一致する場合には、クロック信号41cを介して送られてきたクロック信号に同期して、リード/ライト信号41bから送られてきたリード/ライト指示信号を得る。具体的には、レジスタコントローラ31aは、リード/ライト信号41bを介してリード/ライト指示信号を得る。そして、このリード/ライト指示信号はレジスタ31bに与えられる。
【0052】
レジスタコントローラ31aからプロセッサエレメント3aに対し、ライト指示信号が送られてきた場合には、プロセッサエレメント3aのレジスタ31bは、演算処理されるデータ(8ビット)をデータバス41dより取得して保持する。また、レジスタコントローラ31aからプロセッサエレメント3aに対し、リード指示信号が送られてきた場合には、プロセッサエレメント3aのレジスタ31bは、演算処理されたデータ(8ビット)をデータバス41dへ送る。
【0053】
レジスタ31bは、後述するALU34でこれから演算される外部から入力されたデータを保持したり、或いはALU34で演算処理されたデータを外部へ出力するために保持するものであり、いわゆる入力レジスタとしても、或いは出力レジスタとしても機能する。また、演算処理されるデータ、或いは演算されたデータを一時的に保持するといった、後述するレジスタ31cとしての機能も有する。なお、本実施形態では、レジスタ31bは8ビットのデータを保持できるものとして扱うが、データに応じて適宜変更しても問題ない。上述したレジスタコントローラ31aからライト指示信号が与えられると、レジスタ31bは演算処理されるデータをデータバス41dより取得して保持する。一方、レジスタコントローラ31aからリード指示信号が送られてくると、レジスタ31bは保持している演算処理されたデータをデータバス41dへ与える。このデータはインタフェース4から外部データバスを介して外部のプリンタなどへ転送される。
【0054】
また、レジスタ31bは、本実施形態においては8ビットデータをパラレルで転送するデータバス37を介してマルチプレクサ32に接続されている。ALU34で演算処理されるデータ、或いはALU34で演算処理されたデータは、このデータバス37を介して、レジスタ31bとの間で転送される。この転送は、グローバルプロセッサ2のシーケンスユニット22からの指示によって、グローバルプロセッサ2に接続されたリード信号線26a、ライト信号線26bを介して行われる。具体的には、グローバルプロセッサ2のシーケンスユニット22から、リード信号線26aを介してリード指示信号が送られてくると、レジスタ31bは保持している演算処理されるデータをデータバスへ置く。このデータはALU34へ送られ演算処理される。一方、グローバルプロセッサ2のシーケンスユニット22から、ライト信号線26bを介してライト指示信号が送られてくると、レジスタ31bはデータバス37を介して送られてきたALU34で演算処理されたデータを保持する。
【0055】
レジスタ31cは、レジスタ31bより与えられた演算処理されるデータ、或いは演算されたデータがレジスタ31bに与えられる前に、そのデータを一時的に保持するものである。さらに、この実施の形態においては、レジスタ31cは後述するように、グローバルプロセッサ2からのデータが与えられる。
【0056】
演算アレイ36は、マルチプレクサ32、シフト/拡張回路33、16ビットALU34及び16ビットのレジスタ35a、35bを備えている。このレジスタは、16ビットのAレジスタ35a、Fレジスタ35bである。
【0057】
プロセッサエレメント3aの命令による演算は、基本的にレジスタファイル31から読み出されたデータをALU34の片側の入力としてもう片側にはレジスタ35のAレジスタの内容を入力として結果をAレジスタに格納する。したがって、Aレジスタ35aとレジスタファイル31のR0〜R31レジスタとの演算が行われることとなる。レジスタファイル31と演算アレイ36との接続に(7to1)のマルチプレクサ32を置いており、プロセッサエレメント方向で左に1、2、3つ離れたデータと右に1、2、3つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル31の8ビットのデータはシフト/拡張回路33により任意ビットを左シフトしてALU34に入力される。
【0058】
上記したように、マルチプレクサ32は、自己のプロセッサエレメント3aに備えられた上記データバス37に接続されるとともに、両隣3つのプロセッサエレメント3aに備えられたデータバス37にも接続されている。このマルチプレクサ32は7つのプロセッサエレメント3aから1つを選択し、その選択したプロセッサエレメント3aにおけるレジスタ31b、31cで保持されているデータをALU34へ送る。或いはALU34で演算処理されたデータを、選択したプロセッサエレメント3aにおけるレジスタ31b、31cへ送る。これによって、隣のプロセッサエレメント3aにおけるレジスタ31b、31cで保持されているデータを利用した演算処理が可能になり、SIMD型プロセッサ1の演算処理能力を高めることができる。
【0059】
シフト/拡張回路33は、マルチプレクサ32から送られてきたデータを所定ビットシフトしてALU34へ送る。或いはALU34から送られてきた演算処理されたデータを所定ビットシフトしてマルチプレクサ32へ送る。
【0060】
ALU34は、シフト/拡張回路33から送られてきたデータと、レジスタ35に保持されているデータとに基づき算術論理演算を行う。なお、本実施形態では、ALU34は16ビットのデータに対応できるものとして扱うが、データに応じて適宜変更しても問題ない。演算処理されたデータは、Aレジスタ35aに保持され、シフト/拡張回路33へ転送されたり、或いはグローバルプロセッサ2の汎用レジスタ25へ転送される。
【0061】
グローバルプロセッサ2からインターフェース4へはI/O用のアドレス、データ、コントロール信号がバスを介して与えられる。
【0062】
さらに、図示していない条件レジスタ(T)により、プロセッサエレメント(PE)3a毎に演算実行の有効/無効の制御をしており特定のプロセッサエレメント(PE)3aだけを演算対象として選択できるように構成している。
【0063】
上記したように、この実施形態においては、レジスタファイル31には1つのPE3a単位に8ビットのレジスタが32本内蔵されており、256PE分の組みがアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...R31と呼ばれている。それぞれのレジスタは演算アレイ36に対して1つの読み出ししポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバス37で演算アレイからアクセスされる。32本のレジスタの内、24本(R0〜R23)のレジスタ31bは、プロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできる。
【0064】
残りの8本(R24〜R31)のレジスタ31cはPE演算の一時的な演算データ保存用として使用されるが、グローバルプロセッサ2のデータRAM24からのデータを書き込むこともできる。グローバルプロセッサ2からのライト制御と演算アレイ36の条件レジスタ35cの条件により、レジスタファイル31に内蔵される8本のレジスタ31cにグローバルプロセッサ2のデータRAM24のデータを条件が成立している複数のPE3aに同時に書き込みが可能に構成されている。また、この実施形態では、テーブルRAMは64ビットの出力ポートを持つため1つのPE3aに対しても8本のレジスタ31cに同時に64ビットの書き込みが可能に構成している。
【0065】
上述したように、演算アレイ36は16ビットALU34と16ビットAレジスタ35a、Fレジスタ35bを内蔵している。PE命令による演算はレジスタファイル31から読み出されたデータもしくはグローバルプロセッサ2から与えられたデータをALU34の片側の入力としてもう片側にはAレジスタ35aの内容を入力として結果をAレジスタに格納する。したがって、Aレジスタ35aとR0〜R31レジスタ31b、31cもしくはグローバルプロセッサ2から与えられたデータとの演算が行われることとなる。
【0066】
次に、この発明の特徴であるグローバルプロセッサ2の命令に従いテーブルRAMのデータを条件が成立している複数のPE3aに同時に書き込む態様につき図3を参照して説明する。
【0067】
レジスタファイル31の中のレジスタ31cはグローバルプロセッサ2のレジスタファイル制御回路27を介して、テーブルRAM26のデータが入力される。テーブルRAM26は、非線形変換処理のためのデータメモリとして用いる。このテーブルRAM26からレジスタ31cへの書き込みはレジスタファイル制御回路27のライト制御信号により行われる。レジスタ31cにはライトコントロール回路31dが設けられている。このライトコントロール回路31dにライト制御信号がテーブルライト信号線41gを介して与えられる。ライトコントロール回路31dには、演算アレイ36から条件成立信号が与えられる。ライトコントロール回路31dは、ライト制御信号はレジスタ31cのライトW1に与えられる。
【0068】
各レジスタ31cの書き込み制御を行っているライトコントロール回路31dにおいては、演算アレイ36から与えられた条件成立信号が成立を示しているPE3aのレジスタ31cにライト(W1)制御信号として与えられる。したがって、レジスタファイル制御回路27からは全てのPE3aのレジスタ31cにテーブルデータバス41eを介してからテーブルRAM26のデータを書き込むが、各PE3aでは条件が成立しているものはデータ(D1)からデータが書き込まれ、不成立のものはデータが書き込まれないこととなる。
【0069】
レジスタ31cは演算アレイ36ともデータバス37を介してデータの転送を行うため、もう一方の出力ポートを持ち、命令によりグローバルプロセッサ2で作成され、リード信号線41hを介して与えられたたリード(R2)制御信号によりデータ(D2)からデータの転送が行われる。
【0070】
図3では5個のPE3a…分の構成だけを図示しているが、図2の256組のPE3aの構成と合わせるためにはライトコントロール回路31dとレジスタ31cは256組み必要となる。データのビット幅もここでは8ビットとしているが扱う演算ビット幅により変化する。
【0071】
また、テーブルRAM26は図示しないグローバルプロセッサ2の汎用レジスタ(G0〜G3)をアドレスのポインタとしてアドレスが指定され、同様に汎用レジスタ(G0〜G3)のデータを書き込まれることで値が設定される。
【0072】
演算アレイ36には図2で説明したブロックが内蔵されており、ALU34の入力の片側はレジスタ(R0〜R31)の内容と即値データバス41fの内容が選択できるようになっている。即値データバス41fはグローバルプロセッサ2からデータが転送され、命令コードに組みこまれた値(即値)もしくは汎用レジスタ(G0〜G3)の値が命令により選択されている。
【0073】
さて、図3に示す実施の形態において非線形処理のためのテーブル変換は以下のステップにより行う。なお、演算対象データはレジスタファイル31のレジスタ31b(図3では図示していない)のうちレジスタR0に格納されているものとして説明する。
【0074】
(1)図示していないレジスタファイル31のレジスタ(R0)に格納された演算(演算前)対象データを各PE3aのデータバス37を介してマルチプレクサ32、シフタ33、マルチプレクサ39、ALU34の経路でAレジスタ35aにロードする。
【0075】
(2)グローバルプロセッサ2は即値データバス41fを介して変換前データをALU34に入力する。ALU34のもう一方には(1)で格納されたAレジスタ35aが入力されており、ALU34において一致演算処理を行う。一致結果は一致となっているものを条件成立として8ビットの条件レジスタ35cの任意の1ビットに格納される。
【0076】
(3)グローバルプロセッサ2は変換前データに対応した変換後データが格納されているアドレスをテーブルRAM26に出力し、変換後データをテーブルデータバス41eを介して全PE3a…のレジスタファイル31のレジスタ31cに書き込む。演算アレイ部では(2)で選択された条件レジスタ35cの任意の1ビットを条件選択回路35dで選択し、条件成立信号としてレジスタファイル31のライトコントロール回路31dに出力する。レジスタファイル31のレジスタ31cではライトコントロール回路31dがライト信号と条件成立信号を受け取り、条件成立のPE3aだけテーブルデータバス41eの内容(変換後データ)をレジスタ31cに書き込む。
【0077】
(4)グローバルプロセッサ2は次の変換前データを準備し(2)〜(3)の動作を繰り返す。変換前データの種類に応じた回数の上記処理の繰り返しでテーブル変換が終了する。この例では変換後のテーブルデータを1つだけ使用していたが実際には以下の処理を行い高速化を実現している。
【0078】
(1)図示していないレジスタファイル31のレジスタ(R0)に格納された演算(演算前)対象データを各PE3a…のデータバス37を介してマルチプレクサ32、シフタ33、マルチプレクサ39、ALU34の経路でAレジスタ35aにロードする
【0079】
(2)グローバルプロセッサ2は即値データバス41fを介して変換前データをALU34に入力する。ALU34のもう一方には(1)で格納されたAレジスタ35aのデータが入力されており、ALU34において大小比較演算処理を行う。演算対象データの比較結果は大となっているものを条件成立として8ビットの条件レジスタ35cの任意の1ビットに格納される。
【0080】
(3)グローバルプロセッサ2は変換前データに対応した変換後データが格納されているアドレスをテーブルRAM26に出力し、変換後データをテーブルデータバス41eを介して全PE3aのレジスタファイル31のレジスタ31cに書き込む。この時、この実施の形態においては、図4に示すように、変換後データは変換前データから連続した8つの変換前データに対応したデータとして8ビットのデータが8組みのテーブルデータバス41eに出力される。この実施の形態では、それぞれの組みは各8ビット(R24〜R31)のレジスタに対応して書き込まれる。演算アレイ36では(2)で選択された条件レジスタ35cの任意の1ビットを条件選択回路35dで選択し、条件成立信号としてレジスタファイル31の各レジスタ31cに出力する。レジスタファイル31のレジスタ31cではライトコントロール回路35dがライト信号と条件成立信号を受け取り、条件成立のPE3aだけテーブルデータバス41eの内容をレジスタ31cに書き込む、この時に書き込まれるレジスタ31cは8組み(R24〜R31)同時となる。
【0081】
(4)グローバルプロセッサ2は変換前データに8加算を行い、次の8つ先の変換前データを準備し(2)〜(3)の動作を繰り返す。
【0082】
(5)Aレジスタ35aの演算前データ下位3ビットを残して上位5ビットをマスクするためAレジスタ35aの内容と即値7でALU34においてAND演算を行いAレジスタ35aに格納する。
【0083】
(6)Aレジスタ35aをALU34において1から7まで順次比較する。一致結果を条件レジスタ35cのT1からT7まで順次格納する。
【0084】
(7)レジスタ(R24)の値をAレジスタ35aにロードする。ついで条件レジスタ35cのT1が成立したPE3aはレジスタ(R25)の値をAレジスタ35aにロードし、条件レジスタ35cのT2が成立したPE3aはレジスタ(R26)をAレジスタ35aにロード、と順次行い条件レジスタ35cのT7が成立のPE3aはレジスタ(R31)の値をAレジスタ35aにロードする。
【0085】
以上の処理により、同時に8個の変換後データを書き込むことで、8倍の高速化が図れる。そして、8個の変換後データ中から、そのプロセッサエレメントで必要な1つのデータを選択するために、上記(5)〜(7)の動作を必要とする。この処理は、上記(2)〜(3)の繰り返しが終了した後の最後に1回だけ必要であり、オーバーヘッドとしては小さな値となる。ここではαと表すと、変換前データの種類の1/8+αの回数でテーブル変換が終了することになり、高速化が図れる。
【0086】
本実施形態では、変換後のデータを8組としているが実際には2、4、8から任意の組を命令により指定可能である。その場合は(4)の加算値は2、4、8となり、(5)のマスク値は1、3、7となり、(6)の比較は1、1〜3、1〜7、(7)のロードはR24〜R25、R24〜R27、R24〜R31と変更となる。
【0087】
次に、テーブル変換に使用するレジスタ数を削減する手法につき説明する。レジスタ数を削減するためには以下のような手順で処理を行えばよい。
【0088】
(1)図示していないレジスタファイル31のレジスタ(R0)に格納された演算(演算前)対象データを各PE3aのデータバス37を介してマルチプレクサ32、シフタ33、マルチプレクサ39、ALU34の経路でAレジスタ35aにロードする
【0089】
(2)グローバルプロセッサ2は即値データバス41fを介して変換前データをALU34に入力する。ALU34のもう一方には(1)で格納されたAレジスタ35aが入力されており、ALU34において大小比較演算処理を行う。比較結果は大となっているものを条件成立として8ビットの条件レジスタ37の任意の1ビットに格納される。また、条件成立のPE3aではAレジスタ35aから変換前データを引いた値を変換前データとの差分データとして一時的にレジスタ(R1)に格納する。
【0090】
(3)グローバルプロセッサ2は変換前データに対応した変換後データが格納されているアドレスをテーブルRAM26に出力し変換後データをテーブルデータバス41eを介して全PE3aのレジスタファイル31のレジスタ31cに書き込む。この時、図5に示すように、変換後データは変換前データに対応したデータと(4)で使用される次の区間の先頭の変換前データまでの傾きデータとして8ビットのデータが2組みテーブルデータバス41eに出力される、それぞれの組みは各8ビット(R24〜R25)のレジスタに対応して書き込まれる。演算アレイ部36では(2)で選択された条件レジスタ35cの任意の1ビットを条件選択回路35dで選択し条件成立信号としてレジスタファイル31に出力する。レジスタファイル31ではライトコントロール回路31dがライト信号と条件成立信号を受け取り条件成立のPE3aだけテーブルデータバス41eの内容をレジスタ31cに書き込む、この時に書き込まれるレジスタ31cは2組み(R24〜R25)同時となる。
【0091】
(4)グローバルプロセッサ2は次の区間の先頭の変換前データを準備し(2)〜(3)の動作を繰り返す。
【0092】
(5)Aレジスタ35aに一時的に退避された差分データをレジスタ(R1)からロードし、傾きデータ(R25)とALU34で掛け算を行いAレジスタ35aに格納する。
【0093】
(6)Aレジスタ35aに変換後データ(R24)を加算する。
【0094】
上記した方式は、図6に示すように、変換前データを任意の区間に分割し、その区間内は共通の一次式で近似して処理を行うものである。すなわち、図6に示すように、変換前データと変換後データの非線形曲線の関係からそれぞれ近似する一次式(傾き)で表せる区間に分割する。図6に示す非線形処理では、4つの区間に分割する。そして、その区間内は共通の一次式を用いて処理を行う。変換前データが区間1の時は、区間1の先頭の変換後データと傾きデータを用いて変換後データを算出し、変換前データが区間2の時は、区間2の先頭の変換後データと傾きデータを用いて変換後データを算出する。以後それぞれの区間でその区間の先頭の変換後データと傾きデータを用いて、近似的に非線形処理を行ってゆく。それぞれの区間でこのような手順を用いることで使用するレジスタが2つとなりレジスタ数が削減できるようになる。また、区間を少なく設定できれば変換テーブルの削減、処理ステップ数の削減も可能となる。
【0095】
次に、この発明の他の実施形態につき図7に従い説明する。なお、基本的な構成は図3に示す実施形態と同様の構成であり、同一部分には、同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【0096】
図7に示す実施形態は、レジスタファイル31のテーブル変換に用いる8本(R24〜R31)のレジスタファイルの構成を変更したものである。図3の基本構成のレジスタ31cからライト信号(W2)を追加したレジスタ310cにその構成を変更したものである。そして、レジスタ310cのデータ(D2)には、データバス37からデータが入出力可能に構成されている。ライト信号(W2)には、レジスタファイル制御回路27よりライト信号線41iから演算アレイ36からのデータを書き込む場合にライト信号が与えられる。このように、演算アレイ36からのデータをレジスタ310c書き込めるようにしている。
【0097】
この構成によりこのレジスタ310cでは演算結果の保持等が可能となり、テーブル変換を行わない場合には通常の演算用のレジスタとしても使用が可能となる。テーブル変換を行う場合には、上述した図4に示した処理、あるいは図5に示した処理を行うために、レジスタ310cが使用される。
【0098】
次に、この発明のさらに異なる実施形態につき図8に従い説明する。なお、基本的な構成は図3に示す実施形態と同様の構成であり、同一部分には、同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【0099】
この実施形態は、図3の基本構成からテーブルRAM26の出力データをマルチプレクサ28により選択して、グローバルプロセッサ2の演算部に出力するように構成したものである。この構成によりテーブルRAM26のデータをグローバルプロセッサ2の演算データとして使用可能となり、テーブルRAM26を通常のデータRAM24と共用することが可能となる。
【0100】
テーブルRAM26の出力データをマルチプレクサ28により選択している理由はテーブルRAM26が8組みの変換後データを出力可能な場合には合計で64ビット(8ビットの8組み)の出力ポートがRAMには必要である。上述したグローバルプロセッサ2では16ビットまでしか処理できないため、この中の16ビット(8ビット2組み)を選択しているためである。グローバルプロセッサ2の演算データとして別途16ビットの出力ポートをRAMに追加することでも実現可能であるが、RAMが2ポート構成となりコストの増加となる問題がある。
【0101】
なお、図8に示す実施形態では、テーブル変換に用いるレジスタファイルは図3に示すレジスタ31cの構成のものを示しているが、図7に示す構成のレジスタ310cを用いることはもちろん可能である。
【0102】
次に、この発明のさらに異なる実施形態につき図9に従い説明する。なお、基本的な構成は図3に示す実施形態と同様の構成であり、同一部分には、同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【0103】
この実施の形態においては、レジスタファイル31のレジスタの中で、外部からデータが入力可能なレジスタの数を変更可能に構成したものである。この実施の形態では、2組のレジスタを外部からデータを入力可能なレジスタとして用いる場合と、テーブル変換用レジスタに使用する場合とが選択できるように構成している。このため、これらレジスタ31c、31cは、マルチプレクサ42,43により、レジスタ31cに与えるデータを外部入力用からのデータバス41dを用いるか、テーブルバス31dを用いるかが選択される。このとき、レジスタファイル制御信号もマルチプレクサ42,43で選択される。
【0104】
尚、上記した実施形態においては、兼用するレジスタの組は2組にしているが、用途に応じてその個数は変更できる。
【0105】
このように構成することにより、SIMD型プロセッサの使用用途に応じて最適なレジスタファイル構成が容易に構成することができる。
【0106】
上述した実施形態においては、レジスタファイル31の外部入出力する方式としてアドレッシング方式を採用し、レジスタファイル31をプロセッサ外部からアクセスし、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできるように構成して場合につき説明したが、この発明は他の方式、例えば、外部入出力にシフトレジスタ方式を用いたプロセッサにも適用できる。図10にシフトレジスタ方式を用いた場合の基本構成を示す。
【0107】
図10に示すように、入力画像データを一時的に蓄積する入力シフトレジスタと、非線形処理された画像データが並列入力される外部出力シフトレジスタとを備える。入力シフトレジスタには、イメージスキャナなどから送られる外部画像データが外部データバスから入力シフトレジスタに与えられる。入力シフトレジスタには並列nビットデータがビット毎に順次シフトされる。この入力シフトレジスタの段数は、プロセッサエレメント3aの組数の段数を有し、この実施形態では256段の段数を有する。入力シフトレジスタに蓄積されたデータはレジスタファイル31へ移される。レジスタファイル31への書き込み動作は入力シフトレジスタの各段において同時に行われる。このように、レジスタファイル31にデータが格納されると、上述したこの発明による手法による非線形処理が演算アレイで行われる。
【0108】
非線形処理が行われたレジスタファイル31に格納されたデータは出力シフトレジスタの各段に転送される。この出力シフトレジスタのレジスタ段数はプロセッサエレメント3aの組数分だけであり、レジスタファイル31からデータが出力シフトレジスタの各段に同時に転送される。この出力シフトレジスタに与えられるクロックでデータがシリアルに出力される。そして、出力されたデータはバッファメモリなどに一時格納され、プリンタなどの外部出力装置に与えられる。
【0109】
このように、上記したシフトレジスタ方式においても、非線形処理において、この発明を適用すれば、効率よく非線形処理が行える。
【0110】
次に、この発明のSIMD型プロセッサをディジタル複写機などの画像処理装置に用いた場合につき図11ないし図13を参照して説明する。
【0111】
イメージスキャナで読み取られた画像データ(nビットのディジタル画像データ)が外部データバスからFIFO7に与えられる。FIFO7に1走査ライン分のデータが格納されると、SIMD型プロセッサ1のグローバルプロセッサ2からの制御信号により、この実施の形態では256個の画像データがレジスタファイル31へ与えられる。
【0112】
上記したように、この実施形態においては、レジスタファイル31には1つのPE単位に8ビットのレジスタが32本内蔵されており、256PE分の組みがアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...R31と呼ばれている。それぞれのレジスタは演算アレイに対して1つの読み出ししポートと1つの書き込みポートを備えており、8ビットのリード/ライト兼用のバス37で演算アレイからアクセスされる。32本のレジスタの内、24本(R0〜R23)は、プロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード/ライト制御を入力することで任意のレジスタを読み書きできる。
【0113】
残りの8本(R24〜R31)のレジスタはPE演算の一時的な演算データ保存用として使用されるが、グローバルプロセッサ2の命令に従いテーブルRAMからのデータを書き込むこともできる。このデータの書き込みは、グローバルプロセッサ2からのライト制御と演算アレイ36の条件レジスタ35cの条件により、レジスタファイル31に内蔵される8本のレジスタにテーブルRAMのデータを条件が成立している複数のPEに同時に書き込みが可能に構成されている。
【0114】
演算アレイ36は16ビットALUと16ビットAレジスタ、Fレジスタを内蔵している。PE命令による演算はレジスタファイル31から読み出されたデータもしくはグローバルプロセッサ2から与えられたデータをALUの片側の入力としてもう片側にはAレジスタの内容を入力として結果をAレジスタに格納する。したがって、Aレジスタ35aとR0〜R31レジスタもしくはグローバルプロセッサ2から与えられたデータとの演算が行われることとなる。
【0115】
FIFO7より転送され、レジスタファイル31に格納された画像データは、前述した図3等に示す実施形態に基づき非線形処理のためのテーブル変換が行われる。すなわち、レジスタファイル31のレジスタ(R0)に格納された演算(演算前)対象データを演算アレイ36で一致演算、或いは大小比較により条件成立の有無を判断し、条件が成立している各PE3aにのみ変換後データが書き込まれる。すなわち、グローバルプロセッサ2が変換前データに対応した変換後データが格納されているアドレスをテーブルRAM26に出力して、変換後データをテーブルデータバスを介して全PE3aのレジスタファイル31のレジスタ31cに与える。そして、ライト信号と条件成立信号を受け取り、条件成立のPE3aだけテーブルデータバスの内容をレジスタに書き込む。そして、上述した図3等に示す実施形態に基づきテーブル変換が終了する。
【0116】
非線形処理が行われたレジスタファイル31に格納されたデータFIFO8に転送される。FIFO8は1走査ライン分のデータを格納すると、データをプリンタなどの外部出力装置に転送する。
【0117】
また、画像データを予めラインメモリ9に蓄えておき、ラインメモリ9からプロセッサエレメントブロック3にデータを転送し、非線形処理を行ったデータをラインメモリ9に格納するように構成しても良い。このときのデータ転送はメモリコントローラ91を介してRAM92へ入出力される。
【0118】
図12にFIFO7の一例を図13にFIFO8の一例をそれぞれ示す。これらFIFO7,8はメモリコントローラ72(82)、バッファメモリ71(81)を備える。外部データ入力はメモリコントローラ72を介してバッファメモリ71へデータが格納され、1ライン分のデータをバッファメモリ71に格納すると、メモリコントローラ72からプロセッサエレメントブロック3へデータを転送する。外部データ出力はプロセッサエレメントブロック3からメモリコントローラ72を介してバッファメモリ71へデータが格納され、1ライン分のデータをバッファメモリ71に格納すると、メモリコントローラ72から外部へデータを出力する。
【0119】
上記した画像処理装置は、イメージスキャナで取り込んだ画像データをプリンタ部へ出力する場合に付き説明したが、これに限らずデジタルビデオ、ディジタルカメラなどのディジタル画像を非線形処理する場合にもこの発明は適用できる。また、外部出力もプリンタに限らず、ディスプレイへの出力、データ転送などの方式で出力する場合でもこの発明は適用できる。
【0120】
【発明の効果】
以上説明したように、この発明によれば、テーブルメモリが1つで、かつ特別な比較用の回路を必要とせずコストを最小限とできる。また、処理時間も変換後データを取り込むレジスタの数に応じて削減される。
【0121】
また、前記プロセッサエレメントに内蔵されるテーブルメモリからのデータを同時に格納することが可能な複数のレジスタは各プロセッサエレメントにおける演算対象データとしても使用可能に構成することで、変換後データを取り込むレジスタに演算部で使用されるデータが自由に読み書きできるため、演算処理用レジスタと変換用レジスタのそれぞれの必要数を自由に選択できるようになる。
【0122】
また、複数のレジスタに格納するテーブルメモリのデータはグローバルプロセッサに内蔵されるメモリに格納されており、このメモリはグローバルプロセッサ演算でのデータ保存用のメモリにも使用可能に構成することで、テーブルRAMがデータRAMとして使用できるようになるため、テーブルRAM、データRAMの必要容量を自由に選択できるようになる。
【図面の簡単な説明】
【図1】 この発明にかかるSIMD型プロセッサの全体構成を示すブロック図である。
【図2】 この発明が適用されるSIMD型プロセッサの内部構成を示すブロック図である。
【図3】 この発明の実施の形態にかかるSIMD型プロセッサの内部構成を示すブロック図である。
【図4】 この発明の実施の形態における変換後データの転送を示す説明図である。
【図5】 この発明の他の実施の形態における変換後データの転送を示す説明図である。
【図6】 非線形処理を区間に分割して処理する状態を示す図である。
【図7】 この発明の他の実施の形態にかかるSIMD型プロセッサの内部構成を示すブロック図である。
【図8】 この発明の異なる実施の形態にかかるSIMD型プロセッサの内部構成を示すブロック図である。
【図9】 この発明のさらに異なる実施の形態にかかるSIMD型プロセッサの内部構成を示すブロック図である。
【図10】 この発明が適用される他のSIMD型プロセッサの全体構成を示すブロック図である。
【図11】 この発明にかかる画像処理装置を示すブロック図である。
【図12】 入力用FIFOの一例を示すブロック図である。
【図13】 出力用FIFOの一例を示すブロック図である。
【符号の説明】
2 グローバルプロセッサ
3 プロセッサエレメントブロック
3a プロセッサエレメント
26 テーブルRAM
27 レジスタファイル制御回路
31 レジスタファイル
31d ライトコントロール回路
36 演算アレイ
35c 条件レジスタ
35d 条件選択回路
Claims (10)
- プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、複数の第1のレジスタと複数の第2のレジスタを有する前記プロセッサエレメント内に設けられたレジスタファイルと、外部とのインタフェースと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、両データが一致した場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返すことを特徴とする並列プロセッサ。
- プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、複数の第1のレジスタと複数の第2のレジスタを有する前記プロセッサエレメント内に設けられたレジスタファイルと、外部とのインタフェースと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、前記第3のレジスタに格納されたデータが大きい場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返すことを特徴とする並列プロセッサ。
- 前記プロセッサエレメントは、前記テーブルデータ転送バスから前記第2のレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と前記条件レジスタに格納された演算結果フラグの条件に応じて前記テーブルデータ転送バスからのデータを前記第2のレジスタに取り込むことを特徴とする請求項1又は2に記載の並列プロセッサ。
- 前記変換後データは変換前データから連続した8個のデータとして8個のテーブルデータ転送バスから8個の第2のレジスタに同時に書き込まれることを特徴とする請求項2に記載の並列プロセッサ。
- 前記プロセッサエレメントに内蔵される前記テーブルメモリからのデータを同時に格納することが可能な前記第2のレジスタは各プロセッサエレメントにおける変換前データを格納するものとしても使用可能に構成されていることを特徴とする請求項1ないし4のいずれかに記載の並列プロセッサ。
- 複数の前記第2のレジスタに格納する前記テーブルメモリのデータはグローバルプロセッサに内蔵されるメモリに格納されており、このメモリはグローバルプロセッサ演算でのデータ保存用のメモリにも使用可能であることを特徴とする請求項1ないし5のいずれかに記載の並列プロセッサ。
- プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、を備えた並列プロセッサにFIFOを介して画像データが入力され、入力された画像データを並列演算処理し、演算処理された画像データがFIFOを介して並列プロセッサ外部に出力される画像処理装置であって、前記並列プロセッサの各プロセッサエレメントは、複数の第1のレジスタと複数の第2レジスタを有するレジスタファイルと、前記FIFOと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記レジスタファイルの第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、両データが一致した場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記レジスタファイルの前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返し、非線形処理された画像データが前記FIFOを介して外部に出力されることを特徴とする画像処理装置。
- プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、非線形処理の変換後データが格納された非線形処理テーブルメモリと、を備えた並列プロセッサにFIFOを介して画像データが入力され、入力された画像データを並列演算処理し、演算処理された画像データがFIFOを介して並列プロセッサ外部に出力される画像処理装置であって、前記並列プロセッサの各プロセッサエレメントは、複数の第1のレジスタと複数の第2のレジスタを有するレジスタファイルと、前記FIFOと前記第1のレジスタとを接続するデータバスと、前記テーブルメモリと前記第2のレジスタと接続するテーブルデータ転送バスと、前記プロセッサエレメント内に設けられ、ALUと演算対象データが格納される第3のレジスタと演算結果フラグが格納される条件レジスタとを有する演算部と、を備え、前記第1のレジスタに格納された変換前データと前記グローバルプロセッサから与えられる変換前データが前記演算部に与えられ、前記第1のレジスタから与えられた変換前データが前記第3のレジスタに格納され、前記第3のレジスタに格納されたデータと前記グローバルプロセッサから与えられるデータとを前記ALUで比較演算し、前記第3のレジスタに格納されたデータが大きい場合には前記条件レジスタの所定のビットに演算結果フラグとしてのフラグがセットされ、前記グローバルプロセッサは、変換前データに対応した変換後データが格納されている前記テーブルメモリのアドレスを出力し、前記テーブルメモリから非線形処理の変換後データが前記テーブルデータ転送バスへ出力され、前記複数のプロセッサエレメントの中で、前記条件レジスタにフラグがセットされているすべてのプロセッサエレメントの対応する前記第2のレジスタに非線形処理テーブルメモリから与えられる変換後データを同時に格納させるとともに、前記動作をテーブル変換が終了するまで繰り返し、非線形処理された画像データが前記FIFOを介して外部に出力されることを特徴とする画像処理装置。
- 前記プロセッサエレメントは、前記テーブルデータ転送バスから前記第2のレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と前記条件レジスタに格納された演算結果フラグの条件に応じて前記テーブルデータ転送バスからのデータを前記第2のレジスタに取り込むことを特徴とする請求項7又は8に記載の画像処理装置。
- 前記変換後データは変換前データから連続した8個のデータとして8個の前記テーブルデータ転送バスから8個の前記第2のレジスタに同時に書き込まれることを特徴とする請求項8に記載の画像処理装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000020130A JP4294190B2 (ja) | 2000-01-28 | 2000-01-28 | 並列プロセッサ及びそれを用いた画像処理装置 |
US09/761,122 US7191310B2 (en) | 2000-01-19 | 2001-01-16 | Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers |
US11/591,754 US20070083732A1 (en) | 2000-01-19 | 2006-11-01 | Parallel processor and image processing apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000020130A JP4294190B2 (ja) | 2000-01-28 | 2000-01-28 | 並列プロセッサ及びそれを用いた画像処理装置 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006216443A Division JP4442905B2 (ja) | 2006-08-09 | 2006-08-09 | 画像データの処理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001209617A JP2001209617A (ja) | 2001-08-03 |
JP4294190B2 true JP4294190B2 (ja) | 2009-07-08 |
Family
ID=18546747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000020130A Expired - Fee Related JP4294190B2 (ja) | 2000-01-19 | 2000-01-28 | 並列プロセッサ及びそれを用いた画像処理装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4294190B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2018156119A (ja) * | 2015-07-13 | 2018-10-04 | 井上 克己 | Simd型並列演算装置、simd型並列演算半導体チップ、simd型並列演算方法、simd型並列演算装置や半導体チップを含んだ装置。 |
-
2000
- 2000-01-28 JP JP2000020130A patent/JP4294190B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001209617A (ja) | 2001-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7191310B2 (en) | Parallel processor and image processing apparatus adapted for nonlinear processing through selection via processor element numbers | |
EP1028382B1 (en) | Microcomputer | |
JP2002522821A (ja) | データプロセッサとデータ処理方法 | |
JP3971535B2 (ja) | Simd型プロセッサ | |
US6229543B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
JP4442905B2 (ja) | 画像データの処理方法 | |
JP4294190B2 (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP4451433B2 (ja) | 並列プロセッサ | |
JP3971559B2 (ja) | 並列プロセッサ及びそれを用いた画像処理装置 | |
JP3821198B2 (ja) | 信号処理装置 | |
JP4408113B2 (ja) | 信号処理方法 | |
US4812974A (en) | Data processing apparatus for processing list vector instructions | |
US6727903B1 (en) | Microprocessor, and graphics processing apparatus and method using the same | |
JP3971543B2 (ja) | Simd型プロセッサ | |
JP4482356B2 (ja) | Simdプロセッサを用いた画像処理方法及び画像処理装置 | |
JP4413905B2 (ja) | Simd型プロセッサ | |
JPH06309349A (ja) | プログラム制御のプロセッサ | |
JP2001216275A (ja) | 画像処理装置および画像処理方法 | |
JP3837293B2 (ja) | 定数選択機能を有するsimd型マイクロプロセッサ | |
JP4442907B2 (ja) | Simd型プロセッサ | |
JP3834869B2 (ja) | 並列処理プロセッサ | |
EP1120958A2 (en) | Polynomial based multi-level screening | |
JPH05173778A (ja) | データ処理装置 | |
JP2828611B2 (ja) | コンピュータシステム及び命令実行方法 | |
JP3547316B2 (ja) | プロセッサ |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040517 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050317 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050510 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051108 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060110 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20060613 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061012 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090126 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090312 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090408 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120417 Year of fee payment: 3 |
|
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: 20130417 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140417 Year of fee payment: 5 |
|
LAPS | Cancellation because of no payment of annual fees |