(57)【特許請求の範囲】
【請求項１】
複数の画素データに対して演算処理をそれぞれ実行する第１の演算手段、第２の演算手段及び第３の演算手段を備え、
前記第１の演算手段は、複数の画素データの各々に対して、テキスト画像を構成する画素に対する演算を行う手段である前記第２の演算手段による演算処理の対象である画素データか又はテキスト画像以外の画像を構成する画素に対する演算を行う手段である前記第３の演算手段による演算処理の対象である画素データかを判定する第１の演算処理を実行し、その演算結果である画素データのうち前記第２の演算手段による演算処理の対象である画素データと、その画素データが演算処理の対象であることを示す有効情報とを対応付けて、前記第１の演算手段と電気的に接続された前記第２の演算手段に供給する一方、前記第１の演算処理による演算結果である画素データのうち前記第３の演算手段による演算処理の対象である画素データと、その画素データが演算処理の対象であることを示す有効情報とを対応付けて、前記第１の演算手段と電気的に接続された前記第３の演算手段に供給し、
前記第２の演算手段は、前記第１の演算手段から供給され、前記有効情報と対応付けられたデータに対して、第２の演算処理を実行してその演算結果を出力し、
前記第３の演算手段は、前記第１の演算手段から供給され、前記有効情報と対応付けられたデータに対して、第３の演算処理を実行してその演算結果を出力する
ことを特徴とする演算装置。
【請求項２】
複数の画素データに対して演算処理を実行する第４の演算手段を備え、
前記第２の演算手段は、第２の演算処理による演算結果と、前記第１の演算手段から供給された前記有効情報とを対応付けて前記第４の演算手段に出力し、
前記第３の演算手段は、第３の演算処理による演算結果と、前記第１の演算手段から供給された前記有効情報とを対応付けて前記第４の演算手段に出力し、
前記第４の演算手段は、第２の演算処理による演算結果のうち前記有効情報と対応付けられた演算結果と、第３の演算処理による演算結果のうち前記有効情報と対応付けられた演算結果とに対して第４の演算処理を実行して出力する
ことを特徴とする請求項１記載の演算装置。
【請求項３】
前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段のそれぞれを互いに接続し、又は、その接続を切断する結線手段と、
前記第１の演算処理、前記第２の演算処理及び前記第３の演算処理の組み合わせに応じて、前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段のそれぞれに対する接続とその接続の切断を前記結線手段に指示する結線制御手段と
を備えることを特徴とする請求項１記載の演算装置。
【請求項４】
前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段はいずれも、供給されるクロック周波数に基づいて演算処理を実行し、
前記第２の演算手段及び前記第３の演算手段に対してクロック周波数を供給するクロック供給手段であって、前記第２の演算手段又は前記第３の演算手段のうち、負荷が大きい演算処理を実行する一方の演算手段に対しては、負荷が小さい処理を実行する他方の演算手段に供給するクロック周波数よりも大きいクロック周波数を供給するクロック供給手段
を備えることを特徴とする請求項１記載の演算装置。
【請求項５】
前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段は、複数のデータに対して同一の演算処理を実行するマイクロプロセッサに含まれるプロセッサエレメント群が、複数のプロセッサエレメント毎に分離されたクラスタの各々であることを特徴とする
請求項１記載の演算装置。
【請求項６】
請求項１〜５のいずれか１項に記載の演算装置を備え、
前記演算装置によって、画像を表す画像データに対する演算処理を実行させ、その演算結果を出力させる画像処理装置。
【請求項７】
請求項１〜５のいずれか１項に記載の演算装置を備え、
前記演算装置によって、データに対する演算処理を実行させ、その演算結果を出力させるデータ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、命令に従って演算を実行する演算装置、及びその演算装置を有する画像処理装置及びデータ処理装置に関する。
【背景技術】
【０００２】
複写機やファクシミリ装置或いはスキャナ装置などといった画像処理装置においては、画像に含まれる全ての画素に対して共通の演算処理が実行されることが多い。そこで、この種の画像処理装置には、複数のデータに対し、１つの命令に従った同一の演算処理を実行する単一命令・多データ型（ＳＩＭＤ：Ｓｉｎｇｌｅ Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ Ｍｕｌｔｉｐｌｅ Ｄａｔａ−ｓｔｒｅａｍ）のマイクロプロセッサが実装されている。例えば特許文献１には、ＳＩＭＤ型マイクロプロセッサにおける、命令の生成とその命令の分岐に関する技術が開示されている。
【特許文献１】特開平８−２３５１４９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ＳＩＭＤ型マイクロプロセッサは、上記のように同一の演算処理を複数のデータに対して実行するのには非常に適している一方、複数の命令に従ってそれぞれ異なる処理を複数のデータに行うのには適していない。後者の処理は、例えば原稿画像に含まれるテキスト画像に対してはエッジ強調処理を行う一方、その同じ原稿画像に含まれるイメージ画像に対しては階調を強調する処理を行うような場合である。このような処理をＳＩＭＤ型マイクロプロセッサで行う場合、まず第１のＳＩＭＤ型マイクロプロセッサが原稿画像の全ての画素に対してエッジ強調処理を行い、その次に、第２のＳＩＭＤ型マイクロプロセッサが原稿画像の全ての画素に対して階調強調処理を行う。そして最後に、第３のＳＩＭＤ型マイクロプロセッサが、第１のＳＩＭＤ型マイクロプロセッサ及び第２のＳＩＭＤ型マイクロプロセッサによって処理された画素群から、第１のＳＩＭＤ型マイクロプロセッサにより「テキスト画像」に対して「エッジ強調処理」がなされた画素を抽出する一方、第２のＳＩＭＤ型マイクロプロセッサにより「イメージ画像」に対して「階調強調処理」がなされた画素を抽出し、これらを結合させて１つの画像データを生成し、出力する。
【０００４】
即ち、ＳＩＭＤ型のマイクロプロセッサは、複数の命令が与えられた場合、各々の命令に従った処理を１つずつ順番に実行していくことしかできないので、上記の例で言えば「イメージ画像」に対する「エッジ強調処理」や、「テキスト画像」に対する「階調強調処理」などのように、本来は不要な処理まで一通り実行しなければならない。よって、処理時間が増大するという問題がある。
【０００５】
そこで、本発明の目的は、単一命令・多データ型のマイクロプロセッサを用いた場合であっても、複数の演算処理を従来よりも早く実行することが可能な仕組みを提供することにある。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、本発明は、複数の画素データに対して演算処理をそれぞれ実行する第１の演算手段、第２の演算手段及び第３の演算手段を備え、前記第１の演算手段は、複数の画素データの各々に対して、テキスト画像を構成する画素に対する演算を行う手段である前記第２の演算手段による演算処理の対象である画素データか又はテキスト画像以外の画像を構成する画素に対する演算を行う手段である前記第３の演算手段による演算処理の対象である画素データかを判定する第１の演算処理を実行し、その演算結果である画素データのうち前記第２の演算手段による演算処理の対象である画素データと、その画素データが演算処理の対象であることを示す有効情報とを対応付けて、前記第１の演算手段と電気的に接続された前記第２の演算手段に供給する一方、前記第１の演算処理による演算結果である画素データのうち前記第３の演算手段による演算処理の対象である画素データと、その画素データが演算処理の対象であることを示す有効情報とを対応付けて、前記第１の演算手段と電気的に接続された前記第３の演算手段に供給し、前記第２の演算手段は、前記第１の演算手段から供給され、前記有効情報と対応付けられたデータに対して、第２の演算処理を実行してその演算結果を出力し、前記第３の演算手段は、前記第１の演算手段から供給され、前記有効情報と対応付けられたデータに対して、第３の演算処理を実行してその演算結果を出力することを特徴とする演算装置を提供する。
【０００７】
本発明は、さらに、複数のデータに対して同一の演算処理を実行する第４の演算手段を備え、前記第２の演算手段は、第２の演算処理による演算結果と、前記第１の演算手段から供給された前記有効情報とを対応付けて前記第４の演算手段に出力し、前記第３の演算手段は、第３の演算処理による演算結果と、前記第１の演算手段から供給された前記有効情報とを対応付けて前記第４の演算手段に出力し、前記第４の演算手段は、第２の演算処理による演算結果のうち前記有効情報と対応付けられた演算結果と、第３の演算処理による演算結果のうち前記有効情報と対応付けられた演算結果とに対して第４の演算処理を実行して出力するようにしてもよい。
【０００８】
本発明の好ましい態様においては、前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段のそれぞれを互いに接続し、又は、その接続を切断する結線手段と、前記第１の演算処理、前記第２の演算処理及び前記第３の演算処理の組み合わせに応じて、前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段のそれぞれに対する接続とその接続の切断を前記結線手段に指示する結線制御手段とを備える。
【０００９】
また、本発明の別の好ましい態様においては、前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段はいずれも、供給されるクロック周波数に基づいて演算処理を実行し、前記第２の演算手段及び前記第３の演算手段に対してクロック周波数を供給するクロック供給手段であって、前記第２の演算手段又は前記第３の演算手段のうち、負荷が大きい演算処理を実行する一方の演算手段に対しては、負荷が小さい処理を実行する他方の演算手段に供給するクロック周波数よりも大きいクロック周波数を供給するクロック供給手段を備える。
【００１０】
また、本発明の別の好ましい態様においては、前記第１の演算手段、前記第２の演算手段及び前記第３の演算手段は、複数のデータに対して同一の演算処理を実行するマイクロプロセッサに含まれるプロセッサエレメント群が、複数のプロセッサエレメント毎に分離されたクラスタの各々である。
【００１１】
本発明に係る演算装置は、前記演算装置によって、画像を表す画像データに対する演算処理を実行させ、その演算結果を出力させる画像処理装置や、前記演算装置によって、データに対する演算処理を実行させ、その演算結果を出力させるデータ処理装置に実装される。
【発明の効果】
【００１２】
本発明によれば、本発明の構成を備えていない場合と比較すると、単一命令・多データ型のマイクロプロセッサを用いた場合であっても複数の演算処理を早く実行することが可能となる。
【発明を実施するための最良の形態】
【００１３】
次に、本発明を実施するための最良の形態について説明する。以下の実施形態に係るＳＩＭＤ型のマイクロプロセッサは、好適には、複写機、ファクシミリ装置、スキャナ装置、これら装置のうち少なくともいずれか２つを含む複合機、又は、パーソナルコンピュータなど、画像処理を実行してその結果を出力する画像処理装置に内蔵されるものである。
【００１４】
（１）第１実施形態
図１は、第１実施形態に係る演算装置とその周辺装置の構成を示す図である。この演算装置は、ＳＩＭＤ型のマイクロプロセッサ１０と、結線制御装置１８とを備えている。マイクロプロセッサ１０は、プロセッサエレメントと呼ばれる多数の演算器（図では１つのプロセッサエレメントのみに符号ＰＥを付している）が直列に接続された構成となっている。マイクロプロセッサ１０に含まれるプロセッサエレメント群は、幾つかのプロセッサエレメントの集合体に分離されている。以下では、これらの集合体の各々を「クラスタ」と呼び、これらの各クラスタがそれぞれに与えられた命令に従って演算を行う。即ち、各クラスタがそれぞれ、単一命令・多データ型の演算手段として機能するわけである。図１では、マイクロプロセッサ１０に含まれるプロセッサエレメント群が、４つのクラスタ１１−１〜１１−４に分離されている例を示している。
【００１５】
プロセッサエレメントは、入力レジスタ１２と、ＡＬＵ（Arithmetic and Logic Unit）などの演算部１３と、出力レジスタ１４とを備えている。例えばスキャナ装置やデータ入出力インタフェースなどの入力手段によって、画像データが入力されると、この画像データは、まずバッファメモリなどの記憶手段に書き込まれる。次に、この記憶手段から入力器１５によって画像データが読み出される。この入力器１５は、読み出した画像データをクラスタ１１−１〜１１−４に供給するとともに、画像処理装置の図示せぬ主制御部や外部のコンピュータ装置から供給される命令を解釈し、各クラスタ１１−１〜１１−４によって実行が可能な命令列に変換してこれらの各クラスタに与える、命令デコーダとしての機能も備えている。
【００１６】
クラスタ１１−１〜１１−４に供給された画像データは、入力レジスタ１２に順次書き込まれていく。入力レジスタ１２は、入力される画像データを保持し、これらを演算部１３に順次供給する。演算部１３は、入力レジスタ１２から供給される画像データに対して、入力器１５から供給される命令列に従って演算処理を実行する。その演算結果は出力レジスタ１４に書き込まれ、この出力レジスタ１４から、記憶装置などの出力先装置１６に順次出力される。
【００１７】
各々のクラスタ１１−１〜１１−４の間は結線手段によって電気的に接続される。本実施形態では結線手段としてクロスバースイッチ１７を用いている。このクロスバースイッチ１７は、複数の接点を備えており、各接点がクラスタ１１−１〜１１−４の入力レジスタの入力端及び出力レジスタの出力端に接続されている、クロスバースイッチ１７は、電磁石等の駆動手段を用いて、複数の接点間に設けられているスイッチをオンオフすることで、これら接点間の接続状態を切り替える。即ち、クロスバースイッチ１７は、各々のクラスタ１１−１〜１１−４を互いに接続し又はその接続を切断する。
【００１８】
結線制御装置１８は、クロスバースイッチ１７に対し、接続又は切断を指示するスイッチング命令を与えて、クロスバースイッチ１７における接点間の接続状態を切り替えさせる。より具体的には、結線制御装置１８は、複数の命令の組み合わせと、クラスタ１１−１〜１１−４のうち接続すべきクラスタの組み合わせとが対応付けられたテーブルを記憶している。そして、結線制御装置１８は、入力器１５から複数の命令が通知されると、上記テーブルを参照し、それらの命令の組み合わせに対応付けられたクラスタ間を接続するようクロスバースイッチ１７に命令する。入力器１５から通知される複数の命令の組み合わせは、画像処理の内容を表したものである。よって、結線制御装置１８の上記スイッチング制御により、クラスタ１１−１〜１１−４間の接続状態が画像処理の内容に応じて変化することになる。
【００１９】
ここで、図２は、本実施形態で行う画像処理の内容を示した図である。
図２に示すように、まず、スキャナ装置によって読み取られた原稿画像データに対して、テキスト／イメージ分離（Ｔ／Ｉ分離）が行われ、原稿画像に含まれるテキスト画像とイメージ画像とが分離される。この第１の演算処理を、以下では処理Ａという。この処理Ａにおいては、上記のＴ／Ｉ分離の他ほか、Ｈ（ハイ）レベル又はＬ（ロー）レベルのいずれかの値をとるＶａｌｉｄ信号が生成される。このＶａｌｉｄ信号は、後述する処理Ｂと処理Ｃにおいて、演算処理の対象であることを示す有効情報としての役割を果たす。
【００２０】
処理Ａの後には、第２の演算処理として処理Ｂが実行されると共に、第３の演算処理として処理Ｃが実行される。処理Ｂは、Ｔ／Ｉ分離を経て抽出されたテキスト画像に対してエッジ強調処理を行うものである。一方、処理Ｃは、Ｔ／Ｉ分離を経て抽出されたイメージ画像に対して階調性を向上させる処理を行うものである。処理Ｂの対象であるテキスト画像と、処理Ｃの対象であるイメージ画像とは、上述したＶａｌｉｄ信号のレベル値によって区別される。この後、第４の演算処理として処理Ｄが行われる。処理Ｄでは、処理Ｂを経たテキスト画像と、処理Ｃを経たイメージ画像とに対して、例えばＬａｂ形式の色空間からＹＭＣＫ形式の色空間への変換がなされる。
【００２１】
次に、図３は、図２に示した画像処理を行う場合のクラスタ１１−１〜１１−４間の接続状態と、これらクラスタ１１−１〜１１−４間のデータの流れを示した図である。
結線制御装置１８は、図２に示すような画像処理の内容を表す複数の命令が、入力器１５によって通知されてくると、クラスタ１１−１〜１１−４が図３に示すような接続状態となるように、クロスバースイッチ１７に命令する。即ち、クラスタ１１−１の出力端と、クラスタ１１−２の入力端及びクラスタ１１−３の入力端とが接続され、クラスタ１１−２の出力端及びクラスタ１１−３の出力端と、クラスタ１１−４の入力端とが接続された状態となるよう、クロスバースイッチ１７に命令する。これらの各クラスタ間においてクロスバースイッチ１７によって形成された経路には、画像に含まれる各画素を表す画素データと、上述したＶａｌｉｄ信号とが伝送される。このようにして各クラスタが接続されたマイクロプロセッサ１０においては、上述した処理Ａがクラスタ１１−１によって実行され、処理Ｂがクラスタ１１−２によって実行され、処理Ｃがクラスタ１１−３によって実行され、処理Ｄがクラスタ１１−４によって実行される。
【００２２】
ここで、図４は、Ｖａｌｉｄ信号の例を示す図である。
クラスタ１１−１は前述したように、各画素データによって表される画素に対して、テキスト画像を構成する画素か又はイメージ画像を構成する画素かを判定することでＴ／Ｉ分離を行い、その判定結果に応じて、クラスタ１１−２に対するＶａｌｉｄ信号と、クラスタ１１−３に対するＶａｌｉｄ信号とを生成する。クラスタ１１−２はテキスト画像に対して処理Ｂを実行するので、このクラスタ１１−２に対するＶａｌｉｄ信号は、テキスト画像を構成する画素（以下、テキスト画素という）に対してＨレベルで、テキスト画像以外の画像（ここではイメージ画像）を構成する画素に対してＬレベルの値をとる。一方、クラスタ１１−３はイメージ画像に対して処理Ｃを実行するので、このクラスタ１１−３に対するＶａｌｉｄ信号は、イメージ画像を構成する画素（以下、イメージ画素という）に対してＨレベルで、イメージ画像以外の画像（ここではテキスト画像）を構成する画素に対してＬレベルの値をとる。そして、Ｖａｌｉｄ信号と画素データとが互いに対応付けられた（同期された）状態で、クラスタ１１−１からクラスタ１１−２に供給されるとともに、クラスタ１１−１からクラスタ１１−３に供給される。
【００２３】
クラスタ１１−２は、クラスタ１１−１から、テキスト画素を表す画素データ（図４中の「Ｔ」）と、イメージ画素を表す画素データ（図４中の「Ｉ」）のいずれかを順次受け取ると共に、図４上段に示すようなＶａｌｉｄ信号を受け取る。ＨレベルのＶａｌｉｄ信号に対応する（同期する）画素データは、テキスト画素であるので、クラスタ１１−２は、この画素データに対してエッジ強調処理（処理Ｂ）を実行する。一方、ＬレベルのＶａｌｉｄ信号に対応する（同期する）画素データは、イメージ画素であるので、クラスタ１１−２は、この画素データに対してはエッジ強調処理（処理Ｂ）を実行しない。図４の例で言えば、最初に受け取った画素データｐ１は、ＨレベルのＶａｌｉｄ信号に対応しているので、クラスタ１１−２は、この画素データｐ１に対してエッジ強調処理を実行する。同様に、２番目、３番目の画素データｐ２，ｐ３もＨレベルのＶａｌｉｄ信号に対応しているので、クラスタ１１−２は、これらの画素データｐ２，ｐ３に対してエッジ強調処理を実行する。そして、４番目に受け取った画素データｐ４は、ＬレベルのＶａｌｉｄ信号に対応しているので、クラスタ１１−２は、この画素データｐ４に対してはエッジ強調処理を実行しない。そして、クラスタ１１−２は、このような処理を経た画素データ（エッジ強調処理が施されたテキスト画素及びエッジ強調処理が施されていないイメージ画素）を、上記のＶａｌｉｄ信号と対応付けて（同期させて）クラスタ１１−４に供給する。
【００２４】
一方、クラスタ１１−３は、クラスタ１１−１から、テキスト画素を表す画素データとイメージ画素を表す画素データのいずれかを順次受け取ると共に、図４下段に示すようなＶａｌｉｄ信号を受け取る。ＨレベルのＶａｌｉｄ信号に対応する（同期する）画素データは、イメージ画素であるので、クラスタ１１−３は、この画素データに対して階調強調処理を実行する。一方、ＬレベルのＶａｌｉｄ信号に対応する（同期する）画素データは、テキスト画素であるので、クラスタ１１−３は、この画素データに対しては階調強調処理を実行しない。図４の例で言えば、最初に受け取った画素データｐ１は、ＬレベルのＶａｌｉｄ信号に対応しているので、クラスタ１１−３は、この画素データｐ１に対して階調強調処理を実行しない。同様に−３番目、３番目の画素データｐ２，ｐ３もＬレベルのＶａｌｉｄ信号に対応しているので、クラスタ１１−３は、これらの画素データｐ２，ｐ３に対して階調強調処理を実行しない。そして、４番目に受け取った画素データｐ４は、ＨレベルのＶａｌｉｄ信号に対応しているので、クラスタ１１−３は、この画素データｐ４に対して階調強調処理を実行する。クラスタ１１−３は、このような処理を経た画素データ（階調強調処理が施されたイメージ画素及び階調強調処理が施されていないテキスト画素）を、上記のＶａｌｉｄ信号と対応付けて（同期させて）クラスタ１１−４に供給する。
【００２５】
このように、クラスタ１１−２からクラスタ１１−４に供給される画素データのうち、ＨレベルのＶａｌｉｄ信号に対応付けられている画素データはテキスト画素を表している。また、クラスタ１１−３からクラスタ１１−４に供給される画素データのうち、ＨレベルのＶａｌｉｄ信号に対応付けられている画素データはイメージ画素を表している。よって、クラスタ１１−４は、クラスタ１１−２及びクラスタ１１−３から供給される画素データのうち、ＨレベルのＶａｌｉｄ信号に対応付けられている画素データのみを抽出し、抽出した画素データに対して色空間の変換処理を施す。これにより、処理Ｂを経たテキスト画像と、処理Ｃを経たイメージ画像とに対して、例えばＬａｂ形式の色空間からＹＭＣＫ形式の色空間への変換処理（処理Ｄ）がなされるのである。
【００２６】
ここで、図５を用いて、マイクロプロセッサを用いた処理に要する時間について考察する。
図５（ａ）は、本実施形態に係る構成を備えていない従来のＳＩＭＤ型マイクロプロセッサを用いて、２種類の画像データ（画像データ１，２）に対して処理Ａ，Ｂ，Ｃ，Ｄを実行する場合のタイミングチャートを示している。一方、図５（ｂ）は、本実施形態に係るマイクロプロセッサ１０を用いて、２種類の画像データ（画像データ１，２）に対して処理Ａ，Ｂ，Ｃ，Ｄを実行する場合のタイミングチャートを示している。なお、図５において横軸は時間である。また、同図においては、画像データ１に対して処理Ａを実行するのに要する時間をＡ−１と表現し、画像データ２に対して処理Ａを実行するのに要する時間をＡ−２と表現する。同様に、画像データ１に対して処理Ｂを実行するのに要する時間をＢ−１と表現し、画像データ２に対して処理Ｂを実行するのに要する時間をＢ−２と表現し、画像データ１に対して処理Ｃを実行するのに要する時間をＣ−１と表現し、画像データ２に対して処理Ｃを実行するのに要する時間をＣ−２と表現し、画像データ１に対して処理Ｄを実行するのに要する時間をＤ−１と表現し、画像データ２に対して処理Ｄを実行するのに要する時間をＤ−２と表現している。
【００２７】
以下では、説明を簡単にするため、処理Ａ，Ｂ，Ｃ，Ｄにはそれぞれ同じ時間ｔ1を要するものと仮定する。
図５（ａ）に示した例では、画像データ１について処理Ａ、Ｂ，Ｃ，Ｄを１つずつ順番に行うので、画像データ１に対する処理Ａ，Ｂ，Ｃ，Ｄが全て終了するまでには時間４ｔ1を要する。さらに画像データ２についての処理時間まで考慮すると、全体の処理が全て終了するまでには時間６ｔ1を要する。これに対し、図５（ｂ）に示した例では、画像データ１について処理Ａを行った後に、処理Ｂと処理Ｃとを同時に、つまり並列に実行することができるので、画像データ１に対する処理Ａ，Ｂ，Ｃ，Ｄが全て終了するまでには時間３ｔ1を要するだけで済む。さらに画像データ２についての処理時間を考慮すると、処理時間の短縮効果はより顕著となり、全体の処理が終了するのに時間４ｔ1しか要しない。
なお、この第１実施形態では、図２に示したような処理Ａ，Ｂ，Ｃ，Ｄを想定していたが、マイクロプロセッサ１０によって実行される処理は上記処理だけに限定されるわけではない。画像処理の内容が図２に示したものとは異なる場合には、結線制御装置１８が、その処理に適した経路となるようにクロスバースイッチ１７のスイッチングを制御し、各クラスタが命令に従って処理を実行すればよい。
【００２８】
（２）第２実施形態
上述した第１実施形態では、処理Ａ，Ｂ，Ｃ，Ｄにはそれぞれ同じ時間ｔ1を要すること、つまり、各クラスタに対する処理の負荷が全て同じであることを前提にしていた。以下に述べる第２実施形態は、各クラスタに対する処理の負荷が同じでない場合の実施の形態である。
【００２９】
以下では、処理Ｘ，Ｙを従来のＳＩＭＤ型マイクロプロセッサによって実行した場合と、第１実施形態のように各クラスタに分離されたＳＩＭＤ型マイクロプロセッサによって実行した場合とを想定し、各々の場合の処理効率を比較する。前者のＳＩＭＤ型マイクロプロセッサは１０個のプロセッサエレメントで構成されているものと仮定し、後者のＳＩＭＤ型マイクロプロセッサでは、上記の１０個のプロセッサエレメントからなるマイクロプロセッサが、５個ずつのプロセッサエレメントを含むクラスタに分離されているものとする。なお、ここでは「処理効率」として、プロセッサエレメント数（同時に処理可能なピクセル数）で処理の負荷（サイクル）を除した値を用いる。
【００３０】
まず、処理Ｘと処理Ｙの負荷がそれぞれ「１００サイクル」で同じであると仮定した場合について考察する。
図６（ａ）に示すように、従来のＳＩＭＤ型マイクロプロセッサ１００によって実行した場合には、処理Ｘ、Ｙを順番に実行するため、処理効率は（１００サイクル+１００サイクル）／１０ピクセル＝２０サイクル／ピクセルとなる。これに対し、各クラスタに分離されたＳＩＭＤ型マイクロプロセッサ１００’によって実行した場合には、第１実施形態における処理Ｂと処理Ｃのように、処理Ｘと処理Ｙを同時に（並列に）実行することができる。図６（ｂ）に示すように、処理効率は１００サイクル／５ピクセル＝２０サイクル／ピクセルとなる。
よって、前者のＳＩＭＤ型マイクロプロセッサと、後者のＳＩＭＤ型マイクロプロセッサの処理効率は同じである。なお、処理Ｘ，Ｙの総処理時間は第１実施形態で説明したように後者が短くなる。
【００３１】
次に、処理Ｘと処理Ｙの負荷が同じではない場合について考察する。ここでは、処理Ｘを「１００サイクル」とし、処理Ｙを「２００サイクル」とする。
従来のＳＩＭＤ型マイクロプロセッサ１００によって実行した場合には、処理Ｘ、Ｙを順番に実行するため、図７（ａ）に示すように、処理効率は（１００サイクル+２００サイクル）／１０ピクセル＝３０サイクル／ピクセルとなる。これに対し、各クラスタに分離されたＳＩＭＤ型マイクロプロセッサ１００’によって実行した場合には、処理Ｘ、Ｙを同時に（並列に）実行することができるが、処理Ｙの負荷が大きいため、処理効率の計算には大きい方の負荷が用いられる。よって、図７（ｂ）に示すように、処理効率は２００サイクル／５ピクセル＝４０サイクル／ピクセルとなる。よって、前者のＳＩＭＤ型マイクロプロセッサより、後者のＳＩＭＤ型マイクロプロセッサの処理効率の方が低下するという結果になる。
【００３２】
この問題を改善するため、第２実施形態では、図８に示すような構成とした。
ＳＩＭＤ型マイクロプロセッサ１００’においてはクラスタ単位でプロセッサエレメントが分離されているから、それぞれのクラスタは他のクラスタとは異なるクロック周波数に従って処理を実行することができる。そこで、２００サイクルの処理Ｙを実行するクラスタ１０１−２’に与えるクロック周波数を、１００サイクルの処理Ｘを実行するクラスタ１０１−１’に与えるクロック周波数の２倍として、処理Ｙを実質的に１００サイクルの処理とする。
【００３３】
具体的な構成としては、クロック回路１０１が、クラスタ１０１−１’にクロック周波数Ｃを供給し、クロック回路１０２が、クラスタ１０１−２’にクロック周波数２×Ｃを供給する。このようにすれば、処理効率は、１００サイクル／５ピクセル＝２０サイクル／ピクセルとなり、従来のＳＩＭＤ型マイクロプロセッサ１００と同等の処理効率となる。このように、負荷が大きい処理を実行するクラスタに対し、負荷が小さい処理を実行するクラスタに供給するクロック周波数よりも大きいクロック周波数を与えることで、前者の処理の実質的な負荷を小さくする。これにより、負荷が異なる処理を複数のクラスタで並列に実行する場合であっても、処理効率を良好なレベルに維持することができる。
【００３４】
（３）変形例
上述した実施形態では、クロスバースイッチ１７を用いてクラスタ間の接続状態を画像処理の内容に応じて動的に変化させていたが、これは必ずしも必要ではない。なぜなら、第１及び第２実施形態では、Ｖａｌｉｄ信号のＨレベル／Ｌレベルで処理対象となる画素データを指定することができるので、各クラスタの全てが相互に接続されていたとしても、処理を実行させたい画素データに対してのみＨレベルのＶａｌｉｄ信号に対応付けて供給するようにすれば、その画素データを受け取ったクラスタにおいては、ＨレベルのＶａｌｉｄ信号に対応付けられた画素データに対してのみ処理が実行されるからである。要するに、Ｖａｌｉｄ信号は各クラスタ間を論理的に結線する役割を持っているから、クロスバースイッチ１７のような物理的な結線手段に頼らなくてもよい。物理的な結線手段は、データの送信側と受信側とを一対一で直結させることができるため、データの衝突や混線などの問題が起こりにくく、伝送速度を上げやすいという利点があるにすぎない。
【００３５】
また、プロセッサエレメントＰＥの入力レジスタ１２や出力レジスタ１４は、ＦＩＦＯ(First In First Out)型のバッファであってもよい。
また、上述した実施形態に係るマイクロプロセッサは、画像処理装置のほか、例えばパーソナルコンピュータやサーバ装置など、データ処理を行うデータ処理装置に実装されても良い。
【図面の簡単な説明】
【００３６】
【図１】第１実施形態に係るＳＩＭＤ型のマイクロプロセッサ１０とその周辺装置の構成を示す図である。
【図２】同実施形態で行う画像処理の処理の流れを示した図である。
【図３】図２に示した画像処理を行う場合のクラスタ間の接続状態と、これらクラスタ間のデータの流れを示した図である。
【図４】Ｖａｌｉｄ信号の例を示す図である。
【図５】マイクロプロセッサを用いて、２種類の画像データに対して処理Ａ，Ｂ，Ｃ，Ｄを実行する場合のタイミングチャートである。
【図６】（ａ）は従来のＳＩＭＤ型マイクロプロセッサによって実行した場合の処理効率を説明する図であり、（ｂ）はクラスタに分離されたＳＩＭＤ型マイクロプロセッサによって実行した場合の処理効率を説明する図である。
【図７】（ａ）は従来のＳＩＭＤ型マイクロプロセッサによって実行した場合の処理効率を説明する図であり、（ｂ）はクラスタに分離されたＳＩＭＤ型マイクロプロセッサによって実行した場合の処理効率を説明する図である。
【図８】第２実施形態において、クラスタに分離されたＳＩＭＤ型マイクロプロセッサによって実行した場合の処理効率を改善する仕組みを説明する図である。
【符号の説明】
【００３７】
ＰＥ・・・プロセッサエレメント、１０・・・マイクロプロセッサ、１１−１〜１１−４・・・クラスタ、１２・・・入力レジスタ、１３・・・演算部、１４・・・出力レジスタ、１５・・・入力器、１６・・・出力先装置、１７・・・クロスバースイッチ、１８・・・結線制御装置。
【図１】
0004697055.tif 000002
【図２】
0004697055.tif 000003
【図３】
0004697055.tif 000004
【図４】
0004697055.tif 000005
【図５】
0004697055.tif 000006
【図６】
0004697055.tif 000007
【図７】
0004697055.tif 000008
【図８】
0004697055.tif 000009