(57)【要約】【課題】  この発明は、非線形処理を効率よく実現することができる並列プロセッサを提供することを課題とする。【解決手段】プログラムを解読しプロセッサ全体を制御するグローバルプロセッサ２と、複数のデータを処理するためにレジスタファイルと演算アレイから構成されるプロセッサエレメントを複数個備えたプロセッサエレメントブロック３と、を有するＳＩＭＤ型プロセッサにおいて、各プロセッサエレメント３ａは、演算部３６と、複数のレジスタを有するレジスタファイル３１と、条件レジスタ３５ｃと、条件選択回路３５ｄと、を備え、条件が成立信号が出力されている複数のプロセッサエレメントのレジスタ３１ｃに、テーブルＲＡＭ２６からの変換後データを同時に格納させる。【選択図】  図３
2006344238.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、を有する並列プロセッサにおいて、各プロセッサエレメントは、演算部と、複数のレジスタを有するレジスタファイルと、演算結果フラグと、を備え、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからのデータを同時に格納させることを特徴とする並列プロセッサ。
【請求項２】
演算対象データと変換前データを演算部で比較し、両データが一致すると前記演算結果フラグに条件成立としてのフラグがセットされ、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの変換後データを同時に格納させることを特徴とする請求項１に記載の並列プロセッサ。
【請求項３】
演算対象データと変換前データを演算部で比較し、演算対象データが大きい場合に前記演算結果フラグに条件成立としてのフラグがセットされ、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの変換後データを同時に格納させることを特徴とする請求項１に記載の並列プロセッサ。
【請求項４】
前記テーブルメモリと前記レジスタファイルのレジスタと接続するデータ転送バスと、前記データ転送バスからレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と演算結果フラグの条件に応じてデータ転送バスからデータをレジスタに取り込むこと特徴とする請求項１ないし３のいずれかに記載の並列プロセッサ。
【請求項５】
前記変換後データは変換前データから連続した２n（ｎは整数）のデータとして２n個のテーブルバスから２n個のレジスタに同時に書き込まれることを特徴とする請求項４に記載の並列プロセッサ。
【請求項６】
前記プロセッサエレメントに内蔵されるテーブルメモリからのデータを同時に格納することが可能な複数のレジスタは各プロセッサエレメントにおける演算対象データとしても使用可能に構成されていることを特徴とする請求項１ないし５のいずれかに記載の並列プロセッサ。
【請求項７】
複数のレジスタに格納するテーブルメモリのデータはグローバルプロセッサに内蔵されるメモリに格納されており、このメモリはグローバルプロセッサ演算でのデータ保存用のメモリにも使用可能であることを特徴とする請求項１ないし６のいずれかに記載の並列プロセッサ。
【請求項８】
複数のプロセッサエレメントがアレイ状に設けられた並列プロセッサにＦＩＦＯを介して画像データが入力され、入力された画像データを並列演算処理し、演算処理された画像データがＦＩＦＯを介して並列プロセッサ外部に出力される画像処理装置であって、前記並列プロセッサの各プロセッサエレメントは、演算部と、複数のレジスタを有するレジスタファイルと、演算結果フラグと、を備え、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの非線形処理の変換後データを同時に格納し、非線形処理された画像データが外部に出力されることを特徴とする画像処理装置。
【請求項９】
演算対象データと変換前データを演算部で比較し、演算対象データが大きい場合に前記演算結果フラグに条件成立としてのフラグがセットされ、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの変換後データを同時に格納させることを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記テーブルメモリと前記レジスタファイルのレジスタと接続するデータ転送バスと、前記データ転送バスからレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と演算結果フラグの条件に応じてデータ転送バスからデータをレジスタに取り込むこと特徴とする請求項８または９に記載の画像処理装置。
【請求項１１】
前記変換後データは変換前データから連続した２n（ｎは整数）のデータとして２n個のテーブルバスから２n個のレジスタに同時に書き込まれることを特徴とする請求項１０に記載の画像処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、例えば、デジタル複写機やファクリミリ装置等の画像データのデジタル処理等に用いられる並列プロセッサに関するものであり、特に画像データの非線形変換処理に用いられるＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）型マイクロプロセッサ及びそれを用いた画像処理装置に関するものである。  
【背景技術】
【０００２】
近年、デジタル複写機やファクリミリ装置等の画像処理装置において、画素数を増加したり、或いはカラー対応にするなど画像の向上が図られている。そして、この画像の向上に伴い、処理すべきデータ数が増加している。ところで、複写機等の画像処理装置におけるデータ処理は全ての画素に対して同じ演算処理を施すことが多い。そこで、１つの命令で複数のデータに対して同時に同じ演算処理を行うＳＩＭＤ方式のプロセッサが用いられるようになっている。
【０００３】
上記したように、ＳＩＭＤ型マイクロプロセッサでは１つの命令で複数のデータに対して同時に同じ演算処理が実行可能である。ここで、通常の演算処理は複数の演算器を並べ同じ演算を同時に複数のデータに対して実行することで実現できる。しかし、画像処理においては、演算処理が式で表すことができない非線形な処理を行うことが多い。演算処理が式で表すことができない非線形な処理は演算対象のデータによって演算式が変更となるため同じ処理を同時に実行できない。したがって、データ毎の逐次処理となりＳＩＭＤ方式の効果が無くなってしまう。
【０００４】
通常のＳＩＳＤ方式のプロセッサにおいても演算データにより演算式が変更となる非線形処理はプログラムが非常に複雑になるため、演算前データに対して演算後の処理済みデータを全て準備しておきテーブル化し、演算データを元にテーブル変換を行い演算後データを得る方式が一般的である。具体的にはＲＡＭ上にテーブルを持ち演算前データにテーブルの先頭の番地を加算した値をアドレスポインタとしてＲＡＭから得られたデータを演算後のデータとしている。
【０００５】
演算データが８ビットの場合には２５６バイトの変換テーブルが必要となるが演算ビット幅の増加とともにテーブルのサイズは２のベキ乗で増加するため演算ビット幅が大きい場合は演算データを任意の区間に分けてその区間での近似式をテーブルとして持つ場合もある。
【０００６】
さて、このテーブル変換をＳＩＭＤ型マイクロプロセッサで採用する場合にはそれぞれの演算単位でテーブルが必要となる。例えば、２５６個のプロセッサエレメント（ＰＥ）を有するＳＩＭＤ型プロセッサで８ビットのテーブル変換を行う場合には２５６バイトのテーブルＲＡＭがそれぞれの演算単位つまり２５６個必要となりコスト面が増大する問題があった。そのため、ＳＩＭＤ型マイクロプロセッサのテーブル変換に対して数々の方式が考案されている。
【０００７】
特許文献１においては、各ＳＩＭＤ単位のＰＥ内蔵の出力レジスタから演算前データを順次外部に出力し、外部で逐次にテーブル変換を行い、変換後のデータをＰＥ内蔵の入力レジスタに順次入力する方式が提案されている。この方式では、変換テーブルが１個となるためコストの上昇は抑えられるが、逐次処理であるため演算処理時間は最低でもＰＥ数だけかかってしまい演算速度面で不利であった。また、この変換処理をＰＥでの通常処理と並行に実行すれば演算処理時間はトータルとして削減できるが、入力・出力のレジスタがこの変換作業専用に使用され他の用途に使用できない、変換処理後のデータが必要な場合には演算処理時間だけ待つこととなり並行処理が不可能であるといった問題があった。
【０００８】
また、特許文献２においては、各プロセッサエレメント（ＰＥ）毎に非線形変換テーブルの元データと変換対象データとの比較を行う比較器を設け、この比較器で両データを比較し、一致したＰＥには変換後のデータを格納し、この値を演算後データとする方式が提案されている。この場合には演算処理時間は演算前データの取りうる値の組み合わせ（変換テーブルのワード数）となるため、ＰＥ数よりこのワード数が少ない場合には高速化される。８ビットデータの場合ではＰＥ数によらず２５６回程度のサイクル数となる。この場合においても演算処理時間が長い問題がある。また、他の処理と並行に行った場合には、上記した特開平５−６７２０３号公報と同じ問題を持っている。
【０００９】
さらに、特許文献３においては、ＰＥ数と同数の出力ポートを持つ変換テーブル用のＲＡＭに対して、それぞれのＰＥから演算前データをアドレスポインタとして与えることで演算後データを得る方法が提案されている。この方式においては、変換速度は１サイクル程度で終了するが、出力ポートの増加はＲＡＭのコストを押し上げることとなり、特に数１０個を超えるポートを持つことは実現不可能である。したがって、ＰＥ数が多いＳＩＭＤ型プロセッサに対応できないという問題があった。
【特許文献１】特開平５−６７２０３号公報
【特許文献２】特開平９−３０５５５０号公報
【特許文献３】特許番号第２８１２２９２号
【発明の開示】
【発明が解決しようとする課題】
【００１０】
上記したように、従来技術においては、ＳＩＭＤ型マイクロプロセッサのテーブル変換に代表される非線型処理はＳＩＭＤ型の最大の特徴である並列処理が困難であるため数々の方式が考案されているが、それらは、入出力レジスタを介した方法、専用のコンパレータを使用したもの、専用テーブル用メモリを使用したものであり、速度・コストのいずれかの面で問題があった。
【００１１】
すなわち、特開平５−６７２０３号公報は、出力レジスタからデータを出力し外部テーブルメモリのアドレスとして入力、メモリから出力されたデータを変換後のデータとして入力シフトレジスタから入力する。全データの変換にはＰＥ数以上のサイクルが必要であり処理時間が長い問題がある。また、テーブルメモリは専用のものとなり、さらに入力シフトレジスタ、入力シフトレジスタはテーブル変換専用に使用されることとなる。
【００１２】
また、特開平９−３０５５５０号公報は、各ＰＥに変換前データの比較器を設け、外部から変換前データと変換後データを入力し変換前データと一致したＰＥだけに変換後のデータを格納する。変換前データのデータ数だけのサイクル数が必要であり、さらに専用の比較器が必要である。
【００１３】
さらに、特許番号第２８１２２９２号では、テーブルメモリの出力ポート数をＰＥ数だけ用意してテーブル変換を行う。変換速度は最も速いがメモリのポート数が非常に多いためコストが高くなる。ＰＥ数が数１０個までしか実現できないと思われる。
【００１４】
この発明は、上述した従来の問題点を解決するためになされたものにして、非線形処理を効率よく実現することができる並列プロセッサを提供することを課題とする。
【課題を解決するための手段】
【００１５】
この発明は、プログラムを解読しプロセッサ全体を制御するグローバルプロセッサと、データを処理するプロセッサエレメントを複数個備えて構成されるプロセッサエレメントブロックと、を有する並列プロセッサにおいて、各プロセッサエレメントは、演算部と、複数のレジスタを有するレジスタファイルと、演算結果フラグと、を備え、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからのデータを同時に格納させることを特徴とする。
【００１６】
演算対象データと変換前データを演算部で比較し、両データが一致すると前記演算結果フラグに条件成立としてのフラグがセットされ、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの変換後データを同時に格納させるように構成することができる。
【００１７】
また、演算対象データと変換前データを演算部で比較し、演算対象データが大きい場合に前記演算結果フラグに条件成立としてのフラグがセットされ、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの変換後データを同時に格納させるように構成することができる。
【００１８】
さらに、この発明は、前記テーブルメモリと前記レジスタファイルのレジスタと接続するデータ転送バスと、前記データ転送バスからレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と演算結果フラグの条件に応じてデータ転送バスからデータをレジスタに取り込むように構成することができる。
【００１９】
また、前記変換後データは変換前データから連続した２n（ｎは整数）のデータとして２n個のテーブルバスから２n個のレジスタに同時に書き込むように構成することができる。
【００２０】
また、この発明は、前記プロセッサエレメントに内蔵されるテーブルメモリからのデータを同時に格納することが可能な複数のレジスタは各プロセッサエレメントにおける演算対象データとしても使用可能に構成することができる。
【００２１】
また、この発明は、複数のレジスタに格納するテーブルメモリのデータはグローバルプロセッサに内蔵されるメモリに格納されており、このメモリはグローバルプロセッサ演算でのデータ保存用のメモリにも使用可能に構成することができる。
【００２２】
また、この発明の画像処理装置は、複数のプロセッサエレメントがアレイ状に設けられた並列プロセッサにＦＩＦＯを介して画像データが入力され、入力された画像データを並列演算処理し、演算処理された画像データがＦＩＦＯを介して並列プロセッサ外部に出力される画像処理装置であって、前記並列プロセッサの各プロセッサエレメントは、演算部と、複数のレジスタを有するレジスタファイルと、演算結果フラグと、を備え、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの非線形処理の変換後データを同時に格納し、非線形処理された画像データが外部に出力されることを特徴とする。
【００２３】
また、演算対象データと変換前データを演算部で比較し、演算対象データが大きい場合に前記演算結果フラグに条件成立としてのフラグがセットされ、演算結果フラグの内容が同じである複数のプロセッサエレメントの少なくとも１つのレジスタに、テーブルメモリからの変換後データを同時に格納させるように構成することができる。
【００２４】
また、前記テーブルメモリと前記レジスタファイルのレジスタと接続するデータ転送バスと、前記データ転送バスからレジスタへのデータ転送を制御するコントロール手段と、を備え、前記コントロール手段は前記グローバルプロセッサからの制御信号と演算結果フラグの条件に応じてデータ転送バスからデータをレジスタに取り込むように構成することができる。
【００２５】
前記変換後データは変換前データから連続した２n（ｎは整数）のデータとして２n個のテーブルバスから２n個のレジスタに同時に書き込むように構成することができる。
【発明の効果】
【００２６】
以上説明したように、この発明によれば、テーブルメモリが１つで、かつ特別な比較用の回路を必要とせずコストを最小限とできる。また、処理時間も変換後データを取り込むレジスタの数に応じて削減される。
【００２７】
また、前記プロセッサエレメントに内蔵されるテーブルメモリからのデータを同時に格納することが可能な複数のレジスタは各プロセッサエレメントにおける演算対象データとしても使用可能に構成することで、変換後データを取り込むレジスタに演算部で使用されるデータが自由に読み書きできるため、演算処理用レジスタと変換用レジスタのそれぞれの必要数を自由に選択できるようになる。
【００２８】
また、複数のレジスタに格納するテーブルメモリのデータはグローバルプロセッサに内蔵されるメモリに格納されており、このメモリはグローバルプロセッサ演算でのデータ保存用のメモリにも使用可能に構成することで、テーブルＲＡＭがデータＲＡＭとして使用できるようになるため、テーブルＲＡＭ、データＲＡＭの必要容量を自由に選択できるようになる。
【発明を実施するための最良の形態】
【００２９】
以下、この発明に係るＳＩＭＤ型プロセッサ１の実施の形態を図面を参照して説明する。
【００３０】
まず、この発明にかかるＳＩＭＤ型プロセッサの全体構成について、図１に従い説明する。
【００３１】
この発明のＳＩＭＤ型プロセッサ１は、図１に示すように、グローバルプロセッサ２、本実施形態では２５６組の後述するプロセッサエレメント３ａからなるプロセッサエレメントブロック３と、インターフェース４から構成される。インタフェース４はグローバルプロセッサ２の命令に基づき、イメージスキャナなどの外部入力部から演算対象となるデータをプロセッサ内部の入出力用のレジスタフィル３１に与えるとともに、演算処理されたデータをレジスタファイル３１からプリンタなどの外部出力部へ転送するものである。
【００３２】
この外部入出力装置は、ディジタル画像データなどの演算データを入出力するものである。外部入力装置としては、イメージスキャナや画像が格納された画像メモリがあり、外部出力装置としては画像データを印字するプリンタ、データを格納する画像メモリなどがある。
【００３３】
グローバルプロセッサ２は、いわゆるＳＩＳＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ  Ｓｉｎｇｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）タイプのプロセッサであり、プログラムＲＡＭとデータＲＡＭを内蔵し、プログラムを解読し、各種制御信号を生成する。この制御信号は内蔵する各種ブロックの制御以外にもレジスタファイル３１、演算アレイ３６に供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等を使用して各種演算処理、プログラム制御処理を行う。
【００３４】
レジスタファイル３１はＰＥ（プロセッサエレメント）命令で処理されるデータを保持している。このＰＥ命令はＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ  Ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ  Ｓｔｒｅａｍ）タイプの命令であり、レジスタファイル３１に保持されている複数のデータを同時に同じ処理を行う。このレジスタファイル３１からのデータの読み出し／書き込みの制御はグローバルプロセッサ２からの制御によって行われる。読み出されたデータは演算アレイ３６に送られ、演算アレイ３６での演算処理後にレジスタファイル３１に書き込まれる。
【００３５】
また、レジスタファイル３１はプロセッサ外部からのアクセスが可能であり、グローバルプロセッサ２の制御とは別に外部から特定のレジスタを読み出し／書き込みが行われる。
【００３６】
演算アレイ３６にてＰＥ命令の演算処理が行われる。この処理の制御はすべてグローバルプロセッサ２から行われる。
【００３７】
次に、図２を参照して、ＳＩＭＤ型プロセッサ１のレジスタファイル３１へのデータの読み出し／書き込みの一例につき説明する。
【００３８】
グロバールプロセッサ２にはこのプロセッサのプログラム格納用のプログラムＲＡＭ２１と演算データ格納用のデータＲＡＭ２４が内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ３レジスタ、レジスタ退避、復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩ、ＬＮレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）のレジスタ群２５が内蔵されている。さらに、グローバルプロセッサ２は、プログラムＲＡＭ２１に基づきグローバルプロセッサ２、プロセッサエレメントブロック３、インタフェース４を制御するシーケンスユニット２２を備える。
【００３９】
また、グローバルプロセッサ２は、これらのレジスタ群２５と図示していない命令デコーダ、算術論理演算器２３（以下、「ＡＬＵ２３」という。）、図示していないメモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を使用してＧＰ命令の実行が行われる。
【００４０】
また、ＰＥ命令実行時は命令デコーダ、図示していないレジスタファイル制御回路、ＰＥ演算制御回路を使用して、レジスタファイル３１の制御と演算アレイ３６の制御を行う。
【００４１】
また、この実施形態では、後述するように、グローバルプロセッサ２の命令に従いテーブルＲＡＭから複数のプロセッサエレメント３ａにデータが転送可能に構成されている。
【００４２】
上記したように、シーケンスユニット２２は、プロセッサエレメントブロック３を構成するレジスタファイル３１、及び演算アレイ３６を制御する。
【００４３】
この演算アレイ３６は、マルチプレクサ３２、シフト拡張回路３３、算術論理演算器３４（以下、「ＡＬＵ３４」という）、及びＡレジスタ３５ａ及びＦレジスタ３５ｂを備える。なお、この図２には記載していないが、この実施形態においては、後述するように、比較手段としての、条件レジスタ及び条件選択レジスタを備える。
【００４４】
さらに、このシーケンスユニット２２は、インタフェース４に対してデータ転送のための動作設定用データ及びコマンド等を送る。インタフェース４は、シーケンスユニット２２の動作設定用データ及びコマンドに基づき、プロセッサエレメント３ａのアドレス指定のためのアドレス制御信号、プロセッサエレメント３ａを構成するレジスタ３１ｂにデータのリード／ライトを指示するためのリード／ライト制御信号、クロック信号を与えるためのクロック制御信号を生成する。
【００４５】
ここで、リード／ライト制御信号のうちライト制御信号とは、演算処理されるデータをデータバス４１ｄより取得して、プロセッサエレメント３ａのレジスタ３１ｂに保持させるための信号をいう。一方、リード／ライト制御信号のうちリード制御信号とは、プロセッサエレメント３ａのレジスタ３１ｂが保持している演算処理されたデータを、データバス４１ｄへ与えるようレジスタ３１ｂに指示するための信号をいう。
【００４６】
インタフェース４は、グローバルプロセッサ２からのコマンドを受けて、プロセッサエレメントブロック３を構成するプロセッサエレメント３ａのアドレスを指定する信号（以下、「アドレス指定信号」という。）を作成し、アドレスバス４１ａを介してプロセッサエレメント３ａのレジスタコントローラ３１ａヘ送る。また、インタフェース４は、後述するように、プロセッサエレメント３ａを構成するレジスタ３１ｂに対して、データのリード／ライトを指示するための信号（以下、「リード／ライト指示信号」という。）を、リード／ライト信号線４１ｂを介してプロセッサエレメント３ａの後述するレジスタコントローラ３１ａヘリード／ライト信号が与えられる。
【００４７】
また、インタフェース４は、クロック信号線４１ｃを介してプロセッサエレメント３ａの後述するレジスタコントローラ３１ａへクロック信号を与える。
【００４８】
さらに、外部入出力データバスからは、上述したように、ＳＩＭＤ型プロセッサ１の外部に設けられたイメージスキャナ等で読み込んだデータを、本実施形態では８ビットのパラレルデータとして、インタフェース４に与える。この８ビットのデータは、データバス４１ｄに与えられる。この８ビットのパラレルデータについては、データに応じて適宜変更しても問題ない。このデータバス４１ｄは、レジスタ３１ｂに保持されている演算処理されたデータが、ＳＩＭＤ型プロセッサ１の外部に転送される時にも使用される。
【００４９】
また、レジスタ群２５は、プロセッサエレメントブロック３の後述するレジスタ３５に接続されており、このレジスタ３５との間でシーケンスユニット２２の制御によりデータの交換が行われる。
【００５０】
プロセッサエレメントブロック３は、図２に示すように、レジスタファイル３１、マルチプレクサ３２、シフト・拡張回路３３、算術論理演算器３４（以下、「ＡＬＵ３４」という。）、レジスタ３５ａ、３５ｂを一単位とする複数のプロセッサエレメント３ａを備える。レジスタファイル３１には、１つのプロセッサエレメント３ａ単位に８ビットのレジスタが３２本内蔵されており、本実施形態では２５６のプロセッサエレメント分の組がアレイ構成になっている。レジスタファイル３１は１つのプロセッサエレメント（ＰＥ）３ａごとにＲ０、Ｒ１、Ｒ２、．．．Ｒ３１と呼ばれているレジスタが内蔵されている。それぞれのレジスタファイル３１は演算アレイ３６に対して１つの読み出しポートと１つの書き込みポートを備えており、８ビットのリード／ライト兼用のバスで演算アレイ３６からアクセスされる。３２本のレジスタの内、２４本はプロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード／ライト制御を入力することで任意のレジスタを読み書きできる。
【００５１】
レジスタの外部からのアクセスは１つの外部ポートで各プロセッサエレメント３ａの１つのレジスタがアクセス可能であり、外部から入力されたアドレスでプロセッサエレメントの番号（０〜２５５）を指定する。したがって、レジスタアクセスの外部ポートは全部で２４組搭載されている。
【００５２】
本実施形態では、プロセッサエレメント３ａの数を２５６個として説明するが、これに限定されるものでなく適宜変更して使用してもよい。このプロセッサエレメント３ａには、グローバルプロセッサ２のシーケンスユニット２２により、インタフェース４に近い順に０から２５５までのアドレスが割り付けられる。
【００５３】
プロセッサエレメント３ａのレジスタファイル３１は、レジスタコントローラ３１ａ、２種類のレジスタ３１ｂ、３１ｃを備える。本実施形態では、図２に示すように、一単位のプロセッサエレメント３ａ毎に、レジスタコントローラ３１ａとレジスタ３１ｂとを２４組備え、さらにレジスタ３１ｃを８個備えている。図２中の１プロセッサエレメントとは１つのプロセッサエレメント３ａを表している。ここで、本実施形態では、レジスタ３１ｂ、３１ｃを８ビットのものとして扱うが、これに限定されるものでなく適宜変更して使用してもよい。
【００５４】
レジスタコントローラ３１ａは、図２に示すように、インタフェース４と、上述したアドレスバス４１ａ、リード／ライト信号線４１ｂ、クロック信号線４１ｃを介して接続されている。
【００５５】
インタフェース４は、グローバルプロセッサ２からデータ転送指示を受け取ると、アドレス指定信号をアドレスバス４１ａを介してプロセッサエレメントブロック３ヘ送る。これにより、プロセッサエレメント３ａがアドレス指定される。レジスタコントローラ３１ａは、送られてきたアドレス指定信号をデコードし、デコードしたアドレスと、自己に割り付けられたアドレスとが一致する場合には、クロック信号４１ｃを介して送られてきたクロック信号に同期して、リード／ライト信号４１ｂから送られてきたリード／ライト指示信号を得る。具体的には、レジスタコントローラ３１ａは、リード／ライト信号４１ｂを介してリード／ライト指示信号を得る。そして、このリード／ライト指示信号はレジスタ３１ｂに与えられる。
【００５６】
レジスタコントローラ３１ａからプロセッサエレメント３ａに対し、ライト指示信号が送られてきた場合には、プロセッサエレメント３ａのレジスタ３１ｂは、演算処理されるデータ（８ビット）をデータバス４１ｄより取得して保持する。また、レジスタコントローラ３１ａからプロセッサエレメント３ａに対し、リード指示信号が送られてきた場合には、プロセッサエレメント３ａのレジスタ３１ｂは、演算処理されたデータ（８ビット）をデータバス４１ｄへ送る。
【００５７】
レジスタ３１ｂは、後述するＡＬＵ３４でこれから演算される外部から入力されたデータを保持したり、或いはＡＬＵ３４で演算処理されたデータを外部へ出力するために保持するものであり、いわゆる入力レジスタとしても、或いは出力レジスタとしても機能する。また、演算処理されるデータ、或いは演算されたデータを一時的に保持するといった、後述するレジスタ３１ｃとしての機能も有する。なお、本実施形態では、レジスタ３１ｂは８ビットのデータを保持できるものとして扱うが、データに応じて適宜変更しても問題ない。上述したレジスタコントローラ３１ａからライト指示信号が与えられると、レジスタ３１ｂは演算処理されるデータをデータバス４１ｄより取得して保持する。一方、レジスタコントローラ３１ａからリード指示信号が送られてくると、レジスタ３１ｂは保持している演算処理されたデータをデータバス４１ｄへ与える。このデータはインタフェース４から外部データバスを介して外部のプリンタなどへ転送される。
【００５８】
また、レジスタ３１ｂは、本実施形態においては８ビットデータをパラレルで転送するデータバス３７を介してマルチプレクサ３２に接続されている。ＡＬＵ３４で演算処理されるデータ、或いはＡＬＵ３４で演算処理されたデータは、このデータバス３７を介して、レジスタ３１ｂとの間で転送される。この転送は、グローバルプロセッサ２のシーケンスユニット２２からの指示によって、グローバルプロセッサ２に接続されたリード信号線２６ａ、ライト信号線２６ｂを介して行われる。具体的には、グローバルプロセッサ２のシーケンスユニット２２から、リード信号線２６ａを介してリード指示信号が送られてくると、レジスタ３１ｂは保持している演算処理されるデータをデータバスへ置く。このデータはＡＬＵ３４へ送られ演算処理される。一方、グローバルプロセッサ２のシーケンスユニット２２から、ライト信号線２６ｂを介してライト指示信号が送られてくると、レジスタ３１ｂはデータバス３７を介して送られてきたＡＬＵ３４で演算処理されたデータを保持する。
【００５９】
レジスタ３１ｃは、レジスタ３１ｂより与えられた演算処理されるデータ、或いは演算されたデータがレジスタ３１ｂに与えられる前に、そのデータを一時的に保持するものである。さらに、この実施の形態においては、レジスタ３１ｃは後述するように、グローバルプロセッサ２からのデータが与えられる。
【００６０】
演算アレイ３６は、マルチプレクサ３２、シフト／拡張回路３３、１６ビットＡＬＵ３４及び１６ビットのレジスタ３５ａ、３５ｂを備えている。このレジスタは、１６ビットのＡレジスタ３５ａ、Ｆレジスタ３５ｂである。
【００６１】
プロセッサエレメント３ａの命令による演算は、基本的にレジスタファイル３１から読み出されたデータをＡＬＵ３４の片側の入力としてもう片側にはレジスタ３５のＡレジスタの内容を入力として結果をＡレジスタに格納する。したがって、Ａレジスタ３５ａとレジスタファイル３１のＲ０〜Ｒ３１レジスタとの演算が行われることとなる。レジスタファイル３１と演算アレイ３６との接続に（７ｔｏ１）のマルチプレクサ３２を置いており、プロセッサエレメント方向で左に１、２、３つ離れたデータと右に１、２、３つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル３１の８ビットのデータはシフト／拡張回路３３により任意ビットの左シフトしてＡＬＵ３４に入力される。
【００６２】
上記したように、マルチプレクサ３２は、自己のプロセッサエレメント３ａに備えられた上記データバス３７に接続されるとともに、両隣３つのプロセッサエレメント３ａに備えられたデータバス３７にも接続されている。このマルチプレクサ３２は７つのプロセッサエレメント３ａから１つを選択し、その選択したプロセッサエレメント３ａにおけるレジスタ３１ｂ、３１ｃで保持されているデータをＡＬＵ３４へ送る。或いはＡＬＵ３４で演算処理されたデータを、選択したプロセッサエレメント３ａにおけるレジスタ３１ｂ、３１ｃへ送る。これによって、隣のプロセッサエレメント３ａにおけるレジスタ３１ｂ、３１ｃで保持されているデータを利用した演算処理が可能になり、ＳＩＭＤ型プロセッサ１の演算処理能力を高めることができる。
【００６３】
シフト／拡張回路３３は、マルチプレクサ３２から送られてきたデータを所定ビットシフトしてＡＬＵ３４へ送る。或いはＡＬＵ３４から送られてきた演算処理されたデータを所定ビットシフトしてマルチプレクサ３２へ送る。
【００６４】
ＡＬＵ３４は、シフト／拡張回路３３から送られてきたデータと、レジスタ３５に保持されているデータとに基づき算術論理演算を行う。なお、本実施形態では、ＡＬＵ３４は１６ビットのデータに対応できるものとして扱うが、データに応じて適宜変更しても問題ない。演算処理されたデータは、Ａレジスタ３５ａに保持され、シフト／拡張回路３３へ転送されたり、或いはグローバルプロセッサ２の汎用レジスタ２５へ転送される。
【００６５】
グローバルプロセッサ２からインターフェース４へはＩ／Ｏ用のアドレス、データ、コントロール信号がバスを介して与えられる。
【００６６】
さらに、図示していない条件レジスタ（Ｔ）により、プロセッサエレメント（ＰＥ）３ａ毎に演算実行の有効／無効の制御をしており特定のプロセッサエレメント（ＰＥ）３ａだけを演算対象として選択できるように構成している。
【００６７】
上記したように、この実施形態においては、レジスタファイル３１には１つのＰＥ３ａ単位に８ビットのレジスタが３２本内蔵されており、２５６ＰＥ分の組みがアレイ構成になっている。レジスタはＰＥごとにＲ０、Ｒ１、Ｒ２、．．．Ｒ３１と呼ばれている。それぞれのレジスタは演算アレイ３６に対して１つの読み出ししポートと１つの書き込みポートを備えており、８ビットのリード／ライト兼用のバス３７で演算アレイからアクセスされる。３２本のレジスタの内、２４本（Ｒ０〜Ｒ２３）のレジスタ３１ｂは、プロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード／ライト制御を入力することで任意のレジスタを読み書きできる。
【００６８】
残りの８本（Ｒ２４〜Ｒ３１）のレジスタ３１ｃはＰＥ演算の一時的な演算データ保存用として使用されるが、グローバルプロセッサ２のデータＲＡＭ２４からのデータを書き込むこともできる。グローバルプロセッサ２からのライト制御と演算アレイ３６の条件レジスタ３５ｃの条件により、レジスタファイル３１に内蔵される８本のレジスタ３１ｃにグローバルプロセッサ２のデータＲＡＭ２４のデータを条件が成立している複数のＰＥ３ａに同時に書き込みが可能に構成されている。また、この実施形態では、テーブルＲＡＭは６４ビットの出力ポートを持つため１つのＰＥ３ａに対しても８本のレジスタ３１ｃに同時に６４ビットの書き込みが可能に構成しているる。
【００６９】
上述したように、演算アレイ３６は１６ビットＡＬＵ３４と１６ビットＡレジスタ３５ａ、Ｆレジスタ３５ｂを内蔵している。ＰＥ命令による演算はレジスタファイル３１から読み出されたデータもしくはグローバルプロセッサ２から与えられたデータをＡＬＵ３４の片側の入力としてもう片側にはＡレジスタ３５ａの内容を入力として結果をＡレジスタに格納する。したがって、Ａレジスタ３５ａとＲ０〜Ｒ３１レジスタ３１ｂ、３１ｃもしくはグローバルプロセッサ２から与えられたデータとの演算が行われることとなる。
【００７０】
次に、この発明の特徴であるグローバルプロセッサ２の命令に従いテーブルＲＡＭのデータを条件が成立している複数のＰＥ３ａに同時に書き込む態様につき図３を参照して説明する。
【００７１】
レジスタファイル３１の中のレジスタ３１ｃはグローバルプロセッサ２のレジスタファイル制御回路２７を介して、テーブルＲＡＭ２６のデータが入力される。テーブルＲＡＭ２６は、非線形変換処理のためのデータメモリとして用いる。このテーブルＲＡＭ２６からレジスタ３１ｃへの書き込みはレジスタファイル制御回路２７のライト制御信号により行われる。レジスタ３１ｃにはライトコントロール回路３１ｄが設けられている。このライトコントロール回路３１ｄにライト制御信号がテーブルライト信号線４１ｇを介して与えられる。ライトコントロール回路３１ｄには、演算アレイ３６から条件成立信号が与えられる。ライトコントロール回路３１ｄは、ライト制御信号はレジスタ３１ｃのライトＷ１に与えられる。
【００７２】
各レジスタ３１ｃの書き込み制御を行っているライトコントロール回路３１ｄにおいては、演算アレイ３６から与えられた条件成立信号が成立を示しているＰＥ３ａのレジスタ３１ｃにライト（Ｗ１）制御信号として与えられる。したがって、レジスタファイル制御回路２７からは全てのＰＥ３ａのレジスタ３１ｃにテーブルデータバス４１ｅを介してからテーブルＲＡＭ２６のデータを書き込むが、各ＰＥ３ａでは条件が成立しているものはデータ（Ｄ１）からデータが書き込まれ、不成立のものはデータが書き込まれないこととなる。
【００７３】
レジスタ３１ｃは演算アレイ３６ともデータバス３７を介してデータの転送を行うため、もう一方の出力ポートを持ち、命令によりグローバルプロセッサ２で作成され、リード信号線４１ｈを介して与えられたたリード（Ｒ２）制御信号によりデータ（Ｄ２）からデータの転送が行われる。
【００７４】
図３では５個のＰＥ３ａ…分の構成だけを図示しているが、図２の２５６組のＰＥ３ａの構成と合わせるためにはライトコントロール回路３１ｄとレジスタ３１ｃは２５６組み必要となる。データのビット幅もここでは８ビットとしているが扱う演算ビット幅により変化する。
【００７５】
また、テーブルＲＡＭ２６は図示しないグローバルプロセッサ２の汎用レジスタ（Ｇ０〜Ｇ３）をアドレスのポインタとしてアドレスが指定され、同様に汎用レジスタ（Ｇ０〜Ｇ３）のデータを書き込まれることで値が設定される。
【００７６】
演算アレイ３６には図２で説明したブロックが内蔵されており、ＡＬＵ３４の入力の片側はレジスタ（Ｒ０〜Ｒ３１）の内容と即値データバス４１ｆの内容が選択できるようになっている。即値データバス４１ｆはグローバルプロセッサ２からデータが転送され、命令コードに組みこまれた値（即値）もしくは汎用レジスタ（Ｇ０〜Ｇ３）の値が命令により選択されている。
【００７７】
さて、図３に示す実施の形態において非線形処理のためのテーブル変換は以下のステップにより行う。なお、演算対象データはレジスタファイル３１のレジスタ３１ｂ（図３では図示していない）のうちレジスタＲ０に格納されているものとして説明する。
（１）図示していないレジスタファイル３１のレジスタ（Ｒ０）に格納された演算（演算前）対象データを各ＰＥ３ａのデータバス３７を介してマルチプレクサ３２、シフタ３３、マルチプレクサ３９、ＡＬＵ３４の経路でＡレジスタ３５ａにロードする。
（２）グローバルプロセッサ２は即値データバス４１ｆを介して変換前データをＡＬＵ３４に入力する。ＡＬＵ３４のもう一方には（１）で格納されたＡレジスタ３５ａが入力されており、ＡＬＵ３４において一致演算処理を行う。一致結果は一致となっているものを条件成立として８ビットの条件レジスタ３５ｃの任意の１ビットに格納される。
（３）グロバールプロセッサ２は変換前データに対応した変換後データが格納されているアドレスをテーブルＲＡＭ２６に出力し、変換後データをテーブルデータバス４１ｅを介して全ＰＥ３ａ…のレジスタファイル３１のレジスタ３１ｃに書き込む。演算アレイ部では（２）で選択された条件レジスタ３５ｃの任意の１ビットを条件選択回路３５ｄで選択し、条件成立信号としてレジスタファイル３１のライトコントロール回路３１ｄに出力する。レジスタファイル３１のレジスタ３１ｃではライトコントロール回路３１ｄがライト信号と条件成立信号を受け取り、条件成立のＰＥ３ａだけテーブルデータバス４１ｅの内容（変換後データ）をレジスタ３１ｃに書き込む。
（４）グローバルプロセッサ２は次の変換前データを準備し（２）〜（３）の動作を繰り返す。変換前データの種類に応じた回数の上記処理の繰り返しでテーブル変換が終了する。この例では変換後のテーブルデータを１つだけ使用していたが実際には以下の処理を行い高速化を実現している。
（１）図示していないレジスタファイル３１のレジスタ（Ｒ０）に格納された演算（演算前）対象データを各ＰＥ３ａ…のデータバス３７を介してマルチプレクサ３２、シフタ３３、マルチプレクサ３９、ＡＬＵ３４の経路でＡレジスタ３５ａにロードする
（２）グローバルプロセッサ２は即値データバス４１ｆを介して変換前データをＡＬＵ３４に入力する。ＡＬＵ３４のもう一方には（１）で格納されたＡレジスタ３５ａのデータが入力されており、ＡＬＵ３４において大小比較演算処理を行う。演算対象データの比較結果は大となっているものを条件成立として８ビットの条件レジスタ３５ｃの任意の１ビットに格納される。
（３）グロバールプロセッサ２は変換前データに対応した変換後データが格納されているアドレスをテーブルＲＡＭ２６に出力し、変換後データをテーブルデータバス４１ｅを介して全ＰＥ３ａのレジスタファイル３１のレジスタ３１ｃに書き込む。この時、この実施の形態においては、図４に示すように、変換後データは変換前データから連続した８つの変換前データに対応したデータとして８ビットのデータが８組みのテーブルデータバス４１ｅに出力される。この実施の形態では、それぞれの組みは各８ビット（Ｒ２４〜Ｒ３１）のレジスタに対応して書き込まれる。演算アレイ３６では（２）で選択された条件レジスタ３５ｃの任意の１ビットを条件選択回路３５ｄで選択し、条件成立信号としてレジスタファイル３１の各レジスタ３１ｃに出力する。レジスタファイル３１のレジスタ３１ｃではライトコントロール回路３５ｄがライト信号と条件成立信号を受け取り、条件成立のＰＥ３ａだけテーブルデータバス４１ｅの内容をレジスタ３１ｃに書き込む、この時に書き込まれるレジスタ３１ｃは８組み（Ｒ２４〜Ｒ３１）同時となる。
（４）グローバルプロセッサ２は変換前データに８加算を行い、次の８つ先の変換前データを準備し（２）〜（３）の動作を繰り返す。
（５）Ａレジスタ３５ａの演算前データ下位３ビットを残して上位５ビットをマスクするためＡレジスタ３５ａの内容と即値７でＡＬＵ３４においてＡＮＤ演算を行いＡレジスタ３５ａに格納する。
（６）Ａレジスタ３５ａをＡＬＵ３４において１から７まで順次比較する。一致結果を条件レジスタ３５ｃのＴ１からＴ７まで順次格納する。
（７）レジスタ（Ｒ２４）の値をＡレジスタ３５ａにロードする。ついで条件レジスタ３５ｃのＴ１が成立したＰＥ３ａはレジスタ（Ｒ２５）の値をＡレジスタ３５ａにロードし、条件レジスタ３５ｃのＴ２が成立したＰＥ３ａはレジスタ（Ｒ２６）をＡレジスタ３５ａにロード、と順次行い条件レジスタ３５ｃのＴ７が成立のＰＥ３ａはレジスタ（Ｒ３１）の値をＡレジスタ３５ａにロードする。
【００７８】
以上の処理により、同時に８個の変換後データを書き込むことで、８倍の高速化が図れる。そして、８個の変換後データ中から、そのプロセッサエレメントで必要な１つのデータを選択するために、上記（５）〜（７）の動作を必要とする。この処理は、上記（２）〜（３）の繰り返しが終了した後の最後に１回だけ必要であり、オーバーヘッドとしては小さな値となる。ここではαと表すと、変換前データの種類の１／８＋αの回数でテーブル変換が終了することになり、高速化が図れる。
【００７９】
本実施形態では、変換後のデータを８組としているが実際には２、４、８から任意の組を命令により指定可能である。その場合は（４）の加算値は２、４、８となり、（５）のマスク値は１、３、７となり、（６）の比較は１、１〜３、１〜７、（７）のロードはＲ２４〜Ｒ２５、Ｒ２４〜Ｒ２７、Ｒ２４〜Ｒ３１と変更となる。
【００８０】
次に、テーブル変換に使用するレジスタ数を削減する手法につき説明する。レジスタ数を削減するためには以下のような手順で処理を行えばよい。
（１）図示していないレジスタファイル３１のレジスタ（Ｒ０）に格納された演算（演算前）対象データを各ＰＥ３ａのデータバス３７を介してマルチプレクサ３２、シフタ３３、マルチプレクサ３９、ＡＬＵ３４の経路でＡレジスタ３５ａにロードする
（２）グローバルプロセッサ２は即値データバス４１ｆを介して変換前データをＡＬＵ３４に入力する。ＡＬＵ３４のもう一方には（１）で格納されたＡレジスタ３５ａが入力されており、ＡＬＵ３４において大小比較演算処理を行う。比較結果は大となっているものを条件成立として８ビットの条件レジスタ３７の任意の１ビットに格納される。また、条件成立のＰＥ３ａではＡレジスタ３５ａから変換前データを引いた値を変換前データとの差分データとして一時的にレジスタ（Ｒ１）に格納する。
（３）グロバールプロセッサ２は変換前データに対応した変換後データが格納されているアドレスをテーブルＲＡＭ２６に出力し変換後データをテーブルデータバス４１ｅを介して全ＰＥ３ａのレジスタファイル３１のレジスタ３１ｃに書き込む。この時、図５に示すように、変換後データは変換前データに対応したデータと（４）で使用される次の区間の先頭の変換前データまでの傾きデータとして８ビットのデータが２組みテーブルデータバス４１ｅに出力される、それぞれの組みは各８ビット（Ｒ２４〜Ｒ２５）のレジスタに対応して書き込まれる。演算アレイ部３６では（２）で選択された条件レジスタ３５ｃの任意の１ビットを条件選択回路３５ｄで選択し条件成立信号としてレジスタファイル３１に出力する。レジスタファイル３１ではライトコントロール回路３１ｄがライト信号と条件成立信号を受け取り条件成立のＰＥ３ａだけテーブルデータバス４１ｅの内容をレジスタ３１ｃに書き込む、この時に書き込まれるレジスタ３１ｃは２組み（Ｒ２４〜Ｒ２５）同時となる。
（４）グローバルプロセッサ２は次の区間の先頭の変換前データを準備し（２）〜（３）の動作を繰り返す。
（５）Ａレジスタ３５ａに一時的に退避された差分データをレジスタ（Ｒ１）からロードし、傾きデータ（Ｒ２５）とＡＬＵ３４で掛け算を行いＡレジスタ３５ａに格納する。
（６）Ａレジスタ３５ａに変換後データ（Ｒ２４）を加算する。
【００８１】
上記した方式は、図６に示すように、変換前データを任意の区間に分割し、その区間内は共通の一次式で近似して処理を行うものである。すなわち、図６に示すように、変換前データと変換後データの非線形曲線の関係からそれぞれ近似する一次式（傾き）で表せる区間に分割する。図６に示す非線形処理では、４つの区間に分割する。そして、その区間内は共通の一次式を用いて処理を行う。変換前データが区間１の時は、区間１の先頭の変換後データと傾きデータを用いて変換後データを算出し、変換前データが区間２の時は、区間２の先頭の変換後データと傾きデータを用いて変換後データを算出する。以後それぞれの区間でその区間の先頭の変換後データと傾きデータを用いて、近似的に非線形処理を行ってゆく。それぞれの区間でこのような手順を用いることで使用するレジスタが２つとなりレジスタ数が削減できるようになる。また、区間を少なく設定できれば変換テーブルの削減、処理ステップ数の削減も可能となる。
【００８２】
次に、この発明の他の実施形態につき図７に従い説明する。なお、基本的な構成は図３に示す実施形態と同様の構成であり、同一部分には、同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【００８３】
図７に示す実施形態は、レジスタファイル３１のテーブル変換に用いる８本（Ｒ２４〜Ｒ３１）のレジスタファイルの構成を変更したものである。図３の基本構成のレジスタ３１ｃからライト信号（Ｗ２）を追加したレジスタ３１０ｃにその構成を変更したものである。そして、レジスタ３１０ｃのデータ（Ｄ２）には、データバス３７からデータが入出力可能に構成されている。ライト信号（Ｗ２）には、レジスタファイル制御回路２７よりライト信号線４１ｉから演算アレイ３６からのデータを書き込む場合にライト信号が与えられる。このように、演算アレイ３６からのデータをレジスタ３１０ｃ書き込めるようにしている。
【００８４】
この構成によりこのレジスタ３１０ｃでは演算結果の保持等が可能となり、テーブル変換を行わない場合には通常の演算用のレジスタとしても使用が可能となる。テーブル変換を行う場合には、上述した図４に示した処理、あるいは図５に示した処理を行うために、レジスタ３１０ｃが使用される。
【００８５】
次に、この発明のさらに異なる実施形態につき図８に従い説明する。なお、基本的な構成は図３に示す実施形態と同様の構成であり、同一部分には、同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【００８６】
この実施形態は、図３の基本構成からテーブルＲＡＭ２６の出力データをマルチプレクサ２８により選択して、グローバルプロセッサ２の演算部に出力するように構成したものである。この構成によりテーブルＲＡＭ２６のデータをグローバルプロセッサ２の演算データとして使用可能となり、テーブルＲＡＭ２６を通常のデータＲＡＭ２４と共用することが可能となる。
【００８７】
テーブルＲＡＭ２６の出力データをマルチプレクサ２８により選択している理由はテーブルＲＡＭ２６が８組みの変換後データを出力可能な場合には合計で６４ビット（８ビットの８組み）の出力ポートがＲＡＭには必要である。上述したグローバルプロセッサ２では１６ビットまでしか処理できないため、この中の１６ビット（８ビット２組み）を選択しているためである。グローバルプロセッサ２の演算データとして別途１６ビットの出力ポートをＲＡＭに追加することでも実現可能であるが、ＲＡＭが２ポート構成となりコストの増加となる問題がある。
【００８８】
なお、図８に示す実施形態では、テーブル変換に用いるレジスタファイルは図３に示すレジスタ３１ｃの構成のものを示しているが、図７に示す構成のレジスタ３１０ｃを用いることはもちろん可能である。
【００８９】
次に、この発明のさらに異なる実施形態につき図９に従い説明する。なお、基本的な構成は図３に示す実施形態と同様の構成であり、同一部分には、同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【００９０】
この実施の形態においては、レジスタファイル３１のレジスタの中で、外部からデータが入力可能なレジスタの数を変更可能に構成したものである。この実施の形態では、２組のレジスタを外部からデータを入力可能なレジスタとして用いる場合と、テーブル変換用レジスタに使用する場合とが選択できるように構成している。このため、これらレジスタ３１ｃ、３１ｃは、マルチプレクサ４２，４３により、レジスタ３１ｃに与えるデータを外部入力用からのデータバス４１ｄを用いるか、テーブルバス３１ｄを用いるかが選択される。このとき、レジスタファイル制御信号もマルチプレクサ４２，４３で選択される。
【００９１】
尚、上記した実施形態においては、兼用するレジスタの組は２組にしているが、用途に応じてその個数は変更できる。
【００９２】
このように構成することにより、ＳＩＭＤ型プロセッサの使用用途に応じて最適なレジスタファイル構成が容易に構成することができる。
【００９３】
上述した実施形態においては、レジスタファイル３１の外部入出力する方式としてアドレッシング方式を採用し、レジスタファイル３１をプロセッサ外部からアクセスし、外部からクロックとアドレス、リード／ライト制御を入力することで任意のレジスタを読み書きできるように構成して場合につき説明したが、この発明は他の方式、例えば、外部入出力にシフトレジスタ方式を用いたプロセッサにも適用できる。図１０にシフトレジスタ方式を用いた場合の基本構成を示す。
【００９４】
図１０に示すように、入力画像データを一時的に蓄積する入力シフトレジスタと、非線形処理された画像データが並列入力される外部出力シフトレジスタとを備える。入力シフトレジスタには、イメージスキャナなどから送られる外部画像データが外部データバスから入力シフトレジスタに与えられる。入力シフトレジスタには並列ｎビットデータがビット毎に順次シフトされる。この入力シフトレジスタの段数は、プロセッサエレメント３ａの組数の段数を有し、この実施形態では２５６段の段数を有する。入力シフトレジスタに蓄積されたデータはレジスタファイル３１へ移される。レジスタファイル３１への書き込み動作は入力シフトレジスタの各段において同時に行われる。このように、レジスタファイル３１にデータが格納されると、上述したこの発明による手法による非線形処理が演算アレイで行われる。
【００９５】
非線形処理が行われたレジスタファイル３１に格納されたデータは出力シフトレジスタの各段に転送される。この出力シフトレジスタのレジスタ段数はプロセッサエレメント３ａの組数分だけであり、レジスタファイル３１からデータが出力シフトレジスタの各段に同時に転送される。この出力シフトレジスタに与えられるクロックでデータがシリアルに出力される。そして、出力されたデータはバッファメモリなどに一時格納され、プリンタなどの外部出力装置に与えられる。
【００９６】
このように、上記したシフトレジスタ方式においても、非線形処理において、この発明を適用すれば、効率よく非線形処理が行える。
【００９７】
次に、この発明のＳＩＭＤ型プロセッサをディジタル複写機などの画像処理装置に用いた場合につき図１１ないし図１３を参照して説明する。
【００９８】
イメージスキャナで読み取られた画像データ（ｎビットのディジタル画像データ）が外部データバスからＦＩＦＯ７に与えられる。ＦＩＦＯ７に１走査ライン分のデータが格納されると、ＳＩＭＤ型プロセッサ１のグローバルプロセッサ２からの制御信号により、この実施の形態では２５６個の画像データがレジスタファイル３１へ与えられる。
【００９９】
上記したように、この実施形態においては、レジスタファイル３１には１つのＰＥ単位に８ビットのレジスタが３２本内蔵されており、２５６ＰＥ分の組みがアレイ構成になっている。レジスタはＰＥごとにＲ０、Ｒ１、Ｒ２、．．．Ｒ３１と呼ばれている。それぞれのレジスタは演算アレイに対して１つの読み出ししポートと１つの書き込みポートを備えており、８ビットのリード／ライト兼用のバス３７で演算アレイからアクセスされる。３２本のレジスタの内、２４本（Ｒ０〜Ｒ２３）は、プロセッサ外部からアクセス可能であり、外部からクロックとアドレス、リード／ライト制御を入力することで任意のレジスタを読み書きできる。
【０１００】
残りの８本（Ｒ２４〜Ｒ３１）のレジスタはＰＥ演算の一時的な演算データ保存用として使用されるが、グローバルプロセッサ２の命令に従いテーブルＲＡＭからのデータを書き込むこともできる。このデータの書き込みは、グローバルプロセッサ２からのライト制御と演算アレイ３６の条件レジスタ３５ｃの条件により、レジスタファイル３１に内蔵される８本のレジスタにテーブルＲＡＭのデータを条件が成立している複数のＰＥに同時に書き込みが可能に構成されている。
【０１０１】
演算アレイ３６は１６ビットＡＬＵと１６ビットＡレジスタ、Ｆレジスタを内蔵している。ＰＥ命令による演算はレジスタファイル３１から読み出されたデータもしくはグローバルプロセッサ２から与えられたデータをＡＬＵの片側の入力としてもう片側にはＡレジスタの内容を入力として結果をＡレジスタに格納する。したがって、Ａレジスタ３５ａとＲ０〜Ｒ３１レジスタもしくはグローバルプロセッサ２から与えられたデータとの演算が行われることとなる。
【０１０２】
ＦＩＦＯ７より転送され、レジスタファイル３１に格納された画像データは、前述した図３等に示す実施形態に基づき非線形処理のためのテーブル変換が行われる。すなわち、レジスタファイル３１のレジスタ（Ｒ０）に格納された演算（演算前）対象データを演算アレイ３６で一致演算、或いは大小比較により条件成立の有無を判断し、条件が成立している各ＰＥ３ａにのみ変換後データが書き込まれる。すなわち、グロバールプロセッサ２が変換前データに対応した変換後データが格納されているアドレスをテーブルＲＡＭ２６に出力して、変換後データをテーブルデータバスを介して全ＰＥ３ａのレジスタファイル３１のレジスタ３１ｃに与える。そして、ライト信号と条件成立信号を受け取り、条件成立のＰＥ３ａだけテーブルデータバスの内容をレジスタに書き込む。そして、上述した図３等に示す実施形態に基づきテーブル変換が終了する。
【０１０３】
非線形処理が行われたレジスタファイル３１に格納されたデータＦＩＦＯ８に転送される。ＦＩＦＯ８は１走査ライン分のデータを格納すると、データをプリンタなどの外部出力装置に転送する。
【０１０４】
また、画像データを予めラインメモリ９に蓄えておき、ラインメモリ９からプロセッサエレメントブロック３にデータを転送し、非線形処理を行ったデータをラインメモリ９に格納するように構成しても良い。このときのデータ転送はメモリコントローラ９１を介してＲＡＭ９２へ入出力される。
【０１０５】
図１２にＦＩＦＯ７の一例を図１３にＦＩＦＯ８の一例をそれぞれ示す。これらＦＩＦＯ７，８はメモリコントローラ７２（８２）、バッファメモリ７１（８１）を備える。外部データ入力はメモリコントローラ７２を介してバッファメモリ７１へデータが格納され、１ライン分のデータをバッファメモリ７１に格納すると、メモリコントローラ７２からプロセッサエレメントブロック３へデータを転送する。外部データ出力はプロセッサエレメントブロック３からメモリコントローラ７２を介してバッファメモリ７１へデータが格納され、１ライン分のデータをバッファメモリ７１に格納すると、メモリコントローラ７２から外部へデータを出力する。
【０１０６】
上記した画像処理装置は、イメージスキャナで取り込んだ画像データをプリンタ部へ出力する場合に付き説明したが、これに限らずデジタルビデオ、ディジタルカメラなどのディジタル画像を非線形処理する場合にもこの発明は適用できる。また、外部出力もプリンタに限らず、ディスプレイへの出力、データ転送などの方式で出力する場合でもこの発明は適用できる。
【図面の簡単な説明】
【０１０７】
【図１】この発明にかかるＳＩＭＤ型プロセッサの全体構成を示すブロック図である。
【図２】この発明が適用されるＳＩＭＤ型プロセッサの内部構成を示すブロック図である。
【図３】この発明の実施の形態にかかるＳＩＭＤ型プロセッサの内部構成を示すブロック図である。
【図４】この発明の実施の形態における変換後データの転送を示す説明図である。
【図５】この発明の他の実施の形態における変換後データの転送を示す説明図である。
【図６】非線形処理を区間に分割して処理する状態を示す図である。
【図７】この発明の他の実施の形態にかかるＳＩＭＤ型プロセッサの内部構成を示すブロック図である。
【図８】この発明の異なる実施の形態にかかるＳＩＭＤ型プロセッサの内部構成を示すブロック図である。
【図９】この発明のさらに異なる実施の形態にかかるＳＩＭＤ型プロセッサの内部構成を示すブロック図である。
【図１０】この発明が適用される他のＳＩＭＤ型プロセッサの全体構成を示すブロック図である。
【図１１】この発明にかかる画像処理装置を示すブロック図である。
【図１２】入力用ＦＩＦＯの一例を示すブロック図である。
【図１３】出力用ＦＩＦＯの一例を示すブロック図である。
【符号の説明】
【０１０８】
２  グローバルプロセッサ
３  プロセッサエレメントブロック
３ａ  プロセッサエレメント
２６  テーブルＲＡＭ
２７  レジスタファイル制御回路
３１  レジスタファイル
３１ｄ  ライトコントロール回路
３６  演算アレイ
３５ｃ  条件レジスタ
３５ｄ  条件選択回路
【図１】
2006344238.tif 000003
【図２】
2006344238.tif 000004
【図３】
2006344238.tif 000005
【図４】
2006344238.tif 000006
【図５】
2006344238.tif 000007
【図６】
2006344238.tif 000008
【図７】
2006344238.tif 000009
【図８】
2006344238.tif 000010
【図９】
2006344238.tif 000011
【図１０】
2006344238.tif 000012
【図１１】
2006344238.tif 000013
【図１２】
2006344238.tif 000014
【図１３】
2006344238.tif 000015