(57)【特許請求の範囲】
【請求項１】
ＳＩＭＤ（Single Instruction Multiple Data）型のマイクロプロセッサと、上記ＳＩＭＤ型のマイクロプロセッサとの間でデータ転送を行うデータ転送装置とを備えたプロセッサシステムのためのＳＩＭＤ型のマイクロプロセッサであって、
上記データ転送装置に接続された第１の記憶手段と、上記第１の記憶手段に接続された第２の記憶手段とをそれぞれ備えた複数のプロセッサエレメントと、
上記各プロセッサエレメントの第１の記憶手段と上記各プロセッサエレメントの第２の記憶手段との間で並列にデータ転送を行うための所定の第１の制御信号を出力する制御手段と、
上記データ転送装置により出力された所定の第２の制御信号であって、上記第１の記憶手段と上記第２の記憶手段との間でデータ転送を行うための第２の制御信号と、上記制御手段からの上記第１の制御信号とのうちの一方を、上記データ転送装置からの切換信号に従って選択して、当該選択した制御信号を上記第１及び第２の記憶手段に出力する切換手段とを備えたことを特徴とするＳＩＭＤ型のマイクロプロセッサ。
【請求項２】
上記制御手段は、上記データ転送装置が上記第２の制御信号を出力するときに出力するストール制御信号に応答して、上記第１の制御信号を出力することを停止することを特徴とする請求項１記載のＳＩＭＤ型のマイクロプロセッサ。
【請求項３】
上記制御手段は、上記データ転送装置が上記第２の制御信号を出力するときに出力するストール制御信号及び上記第１の制御信号を出力することを示す所定の信号に応答して、上記第１の制御信号を出力することを停止することを特徴とする請求項１記載のＳＩＭＤ型のマイクロプロセッサ。
【請求項４】
請求項１乃至３のうちのいずれか１つに記載のＳＩＭＤ型のマイクロプロセッサと、
上記第２の制御信号及び上記切換信号を出力するデータ転送装置とを備えたことを特徴とするプロセッサシステム。
【請求項５】
請求項２または請求項３のうちのいずれか１つに記載のＳＩＭＤ型のマイクロプロセッサと、
上記第２の制御信号及び上記切換信号を出力するデータ転送装置とを備えたプロセッサシステムであって、
上記データ転送装置は、上記ストール制御信号を出力することを特徴とするプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＳＩＭＤ（Single Instruction stream, Multiple Data stream）型プロセッサなどのマイクロプロセッサ及び当該マイクロプロセッサを備えたプロセッサシステムに関する。
【背景技術】
【０００２】
近年、デジタルコピア、デジタル複写機又はファクリミリ装置等の画像処理装置において、画素数を増加させたり、あるいはカラー対応の構成にしたりするなどの画質の向上が要求されている。そして、画質の向上に伴い、処理すべきデータ数が増加しており、画像処理のためのＩＰＵ（Image Processing Unit：イメージプロセッシングユニット）の処理性能の向上が必須になってきている。一方、画像処理装置におけるデータ処理では、全ての画素データに対して同一の演算処理を行うことが多い。そこで、１つの命令で複数のデータに対して同時に同一の演算処理を行うＳＩＭＤ（Single Instruction stream Multiple Data stream）型プロセッサがＩＰＵとして用いられるようになっている。
【０００３】
図４は、従来技術に係るプロセッサシステムの構成を示すブロック図であり、図５は、図４のＳＩＭＤ型プロセッサ１Ｐの構成を示すブロック図である。図４において、従来技術に係るプロセッサシステムは、ＳＩＭＤ型プロセッサ１Ｐと、データ転送装置３Ｐとを備えて構成される。また、ＳＩＭＤ型プロセッサ１Ｐは、グローバルプロセッサ１００と、プロセッサエレメントグループ１０４と、外部インタフェース４Ｐとを備えて構成される。さらに、プロセッサエレメントグループ１０４は、ＲＡＭ（Random Access Memory）１０１と、レジスタファイル１０２と、演算アレイ１０３とを備えて構成される。ここで、図５に示すように、プロセッサエレメントグループ１０４は、並列処理を行う例えば２５６個のプロセッサエレメントＰＥ０〜ＰＥ２５５（図５参照。）を含み、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）は、ＲＡＭ１０１のＰＥ−ＲＡＭ５と、レジスタファイル１０２のレジスタＲ０〜Ｒ３１と、演算アレイ１０３の演算回路１０とを備えて構成される。
【０００４】
図４において、グローバルプロセッサ１００は、いわゆるＳＩＳＤ（Single Instruction Stream, Single Data Stream）タイプのプロセッサであり、ＳＩＭＤ型プロセッサ１Ｐの全体の動作、ならびにプロセッサエレメントグループ１０４及び外部インタフェース４Ｐの各動作を制御するとともに、データ転送装置３Ｐに対して動作設定用データ及びデータ転送のためのコマンドなどを送信する。グローバルプロセッサ１００は、プログラムＲＡＭ１１１及びデータＲＡＭ１１２（図５参照。）を内蔵し、プログラムＲＡＭ１１１から読み出したプログラムを解読し、各種制御信号を生成する。この制御信号はグローバルプロセッサが内蔵する各種ブロックの制御に用いられるとともに、レジスタファイル１０２及び演算アレイ１０３にも供給される。また、グローバルプロセッサ１００内の各ブロックを制御するためのＧＰ（グローバルプロセッサ）命令の実行時は、グローバルプロセッサ１００内の汎用レジスタ及び算術論理演算回路（以下、ＡＬＵ（Arithmetic Logic Unit）という。）などを用いて、各種演算処理及びプログラム制御処理を行う。
【０００５】
また、図４において、レジスタファイル１０２は、プロセッサエレメントグループ１０４を制御するためのＰＥ（プロセッサエレメント）命令で処理されるデータを保持している。ＰＥ命令はＳＩＭＤタイプの命令であり、当該命令を実行すると、各プロセッサエレメントＰＥ０〜ＰＥ２５５は、レジスタファイル１０２に保持されている複数のデータに対して、同時に同一の処理を行う。このレジスタファイル１０２からのデータの読み出し及びレジスタファイル１０２へのデータの書き込みの制御は、グローバルプロセッサ１００からの制御によっておこなわれる。グローバルプロセッサ１００からのＰＥ命令に応答してレジスタファイル１０２から読み出されたデータは、演算アレイ１０３に送られ、演算アレイ１０３での所定の演算処理後にレジスタファイル１０２に書き戻される。演算処理途中のデータは、ＳＩＭＤ型プロセッサ１Ｐが内蔵しているＲＡＭ１０１に記憶しておくことが可能である。また、レジスタファイル１０２は、ＳＩＭＤ型プロセッサ１Ｐの外部のデータ転送装置３Ｐからのアクセスが可能であり、グローバルプロセッサ１００の読み出し及び書き込み制御とは別に、記憶装置などの外部装置から、データ転送装置３Ｐを介してレジスタファイル１０２の特定のレジスタに対して、読み出し及び書き込みの制御を行うことが可能である。
【０００６】
さらに、図４において、ＲＡＭ１０１は、演算処理途中のデータなどを格納するためのワークメモリであり、レジスタファイル１０２との間で、全プロセッサＰＥ０〜ＰＥ２５５同時のデータ転送（読み出し及び書き込み）が可能である。なお、ＲＡＭ１０１の処理対象のアドレスの指定ならびに読み出し及び書き込みの制御はすべてグローバルプロセッサ１００からおこなわれる。
【０００７】
またさらに、演算アレイ１０３は、ＰＥ命令の実行時に、当該ＰＥ命令に含まれる所定の演算処理を実行する。演算アレイ１０３が実行する処理の制御は、すべてグローバルプロセッサ１００から行われる。
【０００８】
次に、図５を参照して、ＳＩＭＤ型プロセッサ１Ｐの構成を詳細に説明する。図５において、グローバルプロセッサ１００は、当該プロセッサによって実行されるプログラムのデータを格納するプログラムＲＡＭ１１１と、演算データを格納するデータＲＡＭ１１２と、演算処理用のデータを格納する汎用レジスタＧ０〜Ｇ３と、レジスタ退避及び復帰時に退避先データＲＡＭのアドレスを保持するスタックポインタＳＰと、プログラムのアドレスを保持するプログラムカウンタＰＣと、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタＬＳと、割り込み処理時（ＩＲＱ（Interrupt ReQuest）時及びＮＭＩ（Non-Maskable Interrupt）時）に分岐元アドレスを保持するＬＩレジスタ及びＬＮレジスタと、プロセッサの状態を示すデータを保持するプロセッサステータスレジスタＰと、命令デコーダ１１３とを備えて構成される。グローバルプロセッサ１００は、ＧＰ命令を実行するときは、内蔵するレジスタＧ０〜Ｇ３，ＬＳ，ＬＩ，ＬＮ，Ｐと、命令デコーダ１１３と、ＡＬＵ（図示せず。）と、メモリ制御回路（図示せず。）と、割り込み制御回路（図示せず。）と、外部入出力制御回路（図示せず。）と、ＧＰ演算制御回路（図示せず。）とを用いて、各種演算処理、プログラム制御処理を実行する。また、ＰＥ命令を実行するときは、命令デコーダ１１３と、ＰＥ−ＲＡＭ制御回路（図示せず。）と、レジスタファイル制御回路（図示せず。）と、ＰＥ演算制御回路（図示せず。）とを用いて、ＲＡＭ１０１、レジスタファイル１０２の各レジスタ及び演算回路１０の各動作を制御する。
【０００９】
また、図５において、プロセッサエレメントグループ１０４は、２５６個のプロセッサエレメントＰＥ０〜ＰＥ２５５を備えて構成される。さらに、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）は、３２個の８ビットのレジスタＲ０〜Ｒ３１と、演算回路１０とを備えて構成される。レジスタＲ０〜Ｒ３１はそれぞれ、対応する演算回路１０に接続された読み出しポートと書き出しポートとを備え、８ビットのリード／ライト兼用のバスを介して、対応する演算回路１０からアクセスされる。また、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）において、３２個のレジスタＲ０〜Ｒ３１のうち、２４個のレジスタＲ０〜Ｒ２３はそれぞれ外部インタフェース４Ｐに接続されている。残りのレジスタＲ２４〜Ｒ３１は、ＰＥ命令実行時の演算回路１０による演算処理の一時的な演算データを記憶する記憶領域として用いられる。
【００１０】
さらに、図５の各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）において、各演算回路１０は、グローバルプロセッサ１００からのＰＥ命令に従って、マルチプレクサ１１と、シフタ１２と、マルチプレクサ１３と、ＡＬＵ１４と、Ａレジスタ１５と、Ｆレジスタ１６とを用いて、レジスタＲ０〜Ｒ３１に記憶されたデータに対して所定の演算処理を行う。具体的には、演算回路１０において、マルチプレクサ１１は、グローバルプロセッサ１００からのＰＥ命令に従って、当該マルチプレクサ１１を含むプロセッサエレメントと、プロセッサエレメントの配列方向の右側の３個のプロセッサエレメントと、左側の３個のプロセッサエレメントとのうちの１つのプロセッサエレメントからのデータを演算対象のデータとして選択する。また、シフタ１２はシフト及び拡張回路であって、マルチプレクサ１１によって選択された８ビットのデータを所定のビット数だけ左方向にシフトしてＡＬＵ１４に出力する。さらに、マルチプレクサ１３は、グローバルプロセッサ１００からのＰＥ命令に従って、Ａレジスタ１５から入力されたデータ又はグローバルプロセッサ１００から入力されたデータをＡＬＵ１４に出力する。ＡＬＵ１４は、マルチプレクサ１３から入力されたデータ及びシフタ１２から入力されたデータに対して所定の演算を行い、演算結果のデータをＡレジスタ１５及びシフタ１２に出力する。従って、シフタ１２により選択されたレジスタに格納されたデータと、Ａレジスタ１５に格納されたデータ又はグローバルプロセッサ１００からのデータとに対して演算処理が行われることになる。なお、各演算回路１０は、演算実行の有効及び無効を制御するためのデータを格納する８ビットの条件レジスタ（Ｔレジスタ）を備えており、所定のプロセッサエレメントだけを演算対象として選択できる。
【００１１】
図５において、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）には固有のアドレスｎが割り当てられている。データ転送装置３ＰはレジスタＲ０〜Ｒ２３に対応して設けられるが、図５において、レジスタＲ０に対応して設けられたデータ転送装置３Ｐのみを示す。データ転送装置３Ｐは、外部インタフェース４Ｐを介して全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に接続され、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）のアドレスを指定して、記憶装置などの外部装置と、指定されたプロセッサエレメントＰＥｎのレジスタＲ０との間でデータ転送を行う。
【００１２】
具体的には、データ転送装置３Ｐは、グローバルプロセッサ１００からの動作設定用データ及びデータ転送のためのコマンドに基づいて、データの読み出し又は書き込みを指示するためのリード／ライト制御信号と、読み出し元又は書き込み先のプロセッサエレメントの固有アドレスを示すアドレス信号と、クロックとを発生して、外部インタフェース４Ｐを介して各プロセッサエレメントＰＥ０〜ＰＥ２５５のレジスタＲ０に出力する。これにより、データ転送装置３ＰからプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０へのデータ転送及びプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０からデータ転送装置３Ｐへのデータ転送が実行される。
【００１３】
また、図５において、ＲＡＭ１０１は、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）に対応して設けられた２５５個のＰＥ−ＲＡＭ５を備える。グローバルプロセッサ１００によって指定された各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）の所定のレジスタと、グローバルプロセッサ１００によって指定されたＰＥ−ＲＡＭ５の所定のアドレスの記憶領域との間で、データの読み出し及び書き込みを実行できる。
【００１４】
以上説明したように構成されたＳＩＭＤ型プロセッサ１Ｐでは、１つの命令で複数のデータに対して同時に同一の演算処理を実行可能である。このため、ＳＩＭＤ型プロセッサ１Ｐは、演算は同一であるが演算対象のデータ量が非常に多い画像処理などの処理に適しており、例えば画像処理のために多く用いられている。図５を参照して、ＳＩＭＤ型プロセッサ１Ｐを使用した場合の代表的な画像処理の流れを以下に説明する。
【００１５】
画像入力処理．
（処理１）ＳＩＭＤ型プロセッサ１Ｐの外部のデータ転送装置３Ｐが、グローバルプロセッサ１００からの制御の下で、レジスタファイル１０２に対して、１ライン分の入力画像データを転送する。例えば、図５において、レジスタファイル１０２の各レジスタＲ０に対して、ＰＥ０からＰＥ２５５まで順にデータを転送していく。この処理はＳＩＭＤ型プロセッサ１Ｐにおけるプログラム処理のバックグラウンドで行うことができる。
（処理２）全てのプロセッサエレメントＰＥ０〜ＰＥ２５５のレジスタＲ０にデータが格納されると、データ転送装置３Ｐはグローバルプロセッサ１００に割込信号を出力する。これに応答して、グローバルプロセッサ１００は、プロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０からＰＥ−ＲＡＭ５の所定のアドレス（例えば、アドレス０ｈである。）への転送命令（ストア）を実行し、入力画像データをＰＥ−ＲＡＭ５に格納する。これにより、１ライン分の入力画像データは、各プロセッサエレメントＰＥ０〜ＰＥ２５５のレジスタＲ０を経由して各プロセッサエレメントＰＥ０〜ＰＥ２５５のＰＥ−ＲＡＭ５のアドレス０ｈに格納される。
（処理３）グローバルプロセッサ１００が、上述した処理１と処理２とを、ＰＥ−ＲＡＭ５の転送先のアドレスをインクリメントしながら入力画像データの主走査方向の画素数分（すなわち、ライン長分）だけ繰り返す。
【００１６】
画像処理．
（処理４）グローバルプロセッサ１００が、ＰＥ−ＲＡＭ５の所定のアドレスからレジスタファイル１０２への転送命令（ロード）を実行し、ＰＥ−ＲＡＭ５に退避した入力画像データをレジスタファイル１０２に復帰させる。これにより、例えば、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）のＰＥ−ＲＡＭ５のアドレス０ｈに格納された１ライン分のデータは、例えば各ＰＥｎ（ｎ＝０，１，…，２５５）のレジスタＲ０に転送される。
（処理５）グローバルプロセッサ１００がＰＥ命令を実行することにより、レジスタファイル１０２に復帰した画像データに対して、各演算回路１０が所定のＳＩＭＤ演算（並列演算）を行い、演算結果をレジスタファイル１０２に書き戻す。
【００１７】
画像出力処理．
（処理６）グローバルプロセッサ１００が、転送命令（ストア）を実行することにより、レジスタファイル１０２に格納されたＳＩＭＤ演算結果のデータを、ＰＥ−ＲＡＭ５に再度退避する。あるいは、画像処理が終了していれば、データ転送装置３Ｐが、グローバルプロセッサ１００からの制御の下で、レジスタファイル１０２からの読み出しを行って、プロセッサエレメントＰＥ０からＰＥ２５５までのレジスタファイル１０２のデータを、ＳＩＭＤ型プロセッサ１Ｐの外部の記憶装置などに出力していく。この処理はＳＩＭＤ型プロセッサ１Ｐにおけるプログラム処理のバックグラウンドで行うことができる。
（処理７）グローバルプロセッサ１００が、上述した処理６を、画像データの主走査方向の画素数分（すなわち、ライン長分）だけ繰り返す。
【００１８】
以上説明したように、ＳＩＭＤ型プロセッサ１Ｐでは、画像処理の際の演算処理はＰＥ命令によるＳＩＭＤ演算（並列演算）で行い、画像データのＲＡＭ１０１への退避及びＲＡＭ１０１からの復帰の際の各ＰＥ−ＲＡＭ５への入力アドレスは全プロセッサエレメントＰＥ０〜ＰＥ２５で５共通にして行い、並列度の高い処理を行っている。ＳＩＭＤ型プロセッサ１Ｐの外部のデータ転送装置３Ｐから行う画像データの入出力処理は、例えばＰＥ０からＰＥ２５５まで順に行っていく逐次処理であるが、ＳＩＭＤ型プロセッサ１Ｐのプログラム処理のバックグラウンドで行うことができるので、画像処理全体の並列度を低下させることなく実行できる。
【００１９】
一方、演算処理が式で表すことができない非線形な処理については、演算対象のデータによって演算式が異なるため、ＳＩＭＤ型プロセッサ１Ｐの並列処理を生かすことができず、期待した性能を得られないことがある。回転処理はそのような処理の一つである。回転処理とは、デジタルコピア等において原稿がコンタクトガラスに対して歪んで置かれた場合に、水平面に対して歪んでいる角度分だけスキャン画像を回転することで適正な画像を得るという処理である。
【００２０】
回転処理を行う場合に、各ＰＥ−ＲＡＭ５への画像データの退避又は復帰を行う際に、回転角に対応するずれ量の分だけ斜め方向（主走査方向に斜交する方向）に画像データを書き込み又は読み出しを行って実現することがある。このような処理を行おうとすると、各ＰＥ−ＲＡＭ５への入力アドレスをプロセッサエレメントＰＥｎ（ｎ＝１，２，…，２５５）ごとに変化させる必要がある。このため、従来技術に係るＳＩＭＤ型プロセッサ１Ｐでは、アドレスを変化させる回数だけ、アドレスを変更しながらＰＥ−ＲＡＭ５へのアクセス命令を発行しなければならず、処理性能が低下してしまう。ＰＥ−ＲＡＭ５へのアクセス命令はプロセッサのプログラムにより行うため、バックグラウンドで行うこともできない。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
特許文献１には、回転処理において、回転前の元データに対して、回転角度に応じて副走査方向のずれ量を算出して回転後のデータをサンプリングしていき、バイリニアあるいはバイキュービックで補間演算することで回転処理を実現する画像処理方法が記載されている。しかしながら、特許文献１記載の回転方法をＳＩＭＤ型プロセッサ１Ｐで行うためには、各ＰＥ−ＲＡＭ５に格納されているデータへのアクセス先のアドレスをプロセッサエレメントＰＥ０，ＰＥ１，…，ＰＥ２５５の順にインクリメントさせながら、各ＰＥ−ＲＡＭ５からデータを逐次的に読み出していくしかなく、サイクル数が膨大にかかるという問題があった。
【００２２】
また、特許文献２記載のプロセッサアレイ及び特許文献３記載の画像処理装置のように、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）毎に個別のＳＲＡＭを備えた構成であれば、各プロセッサエレメントＰＥｎで副走査方向のずれ量を計算した値をＳＲＡＭのアドレスとしてデータを参照することで、回転処理を行うことが可能である。しかしながら、各プロセッサエレメントＰＥｎに内蔵しているＳＲＡＭにアドレスデコーダをそれぞれ設ける必要があり、プロセッサエレメントＰＥｎの総数が比較的多いＳＩＭＤ型プロセッサではコストが増大してしまうという問題があった。
【００２３】
本発明の目的は以上の問題点を解決し、回転処理及びルックアップテーブルを参照する処理などの処理を、従来技術に比較して回路規模を大幅に増加させることなく高速に実行できるマイクロプロセッサ及びプロセッサシステムを提供することにある。
【課題を解決するための手段】
【００２４】
本発明に係るＳＩＭＤ型のマイクロプロセッサは、ＳＩＭＤ型のマイクロプロセッサと、上記ＳＩＭＤ型のマイクロプロセッサとの間でデータ転送を行うデータ転送装置とを備えたプロセッサシステムのためのＳＩＭＤ型のマイクロプロセッサであって、上記データ転送装置に接続された第１の記憶手段と、上記第１の記憶手段に接続された第２の記憶手段とをそれぞれ備えた複数のプロセッサエレメントと、上記各プロセッサエレメントの第１の記憶手段と上記各プロセッサエレメントの第２の記憶手段との間で並列にデータ転送を行うための所定の第１の制御信号を出力する制御手段と、上記データ転送装置により出力された所定の第２の制御信号であって、上記第１の記憶手段と上記第２の記憶手段との間でデータ転送を行うための第２の制御信号と、上記制御手段からの上記第１の制御信号とのうちの一方を、上記データ転送装置からの切換信号に従って選択して、当該選択した制御信号を上記第１及び第２の記憶手段に出力する切換手段とを備えたことを特徴とする。
【発明の効果】
【００２５】
本発明に係るプロセッサ及びプロセッサシステムによれば、データ転送装置により出力された所定の第２の制御信号であって、第１の記憶手段と第２の記憶手段との間でデータ転送を行うための第２の制御信号と、制御手段からの第１の制御信号とのうちの一方を、データ転送装置からの切換信号に従って選択して、当該選択した制御信号を第１及び第２の記憶手段に出力する切換手段を備えたので、回転処理及びルックアップテーブルを参照する処理などの処理を、従来技術に比較して回路規模を大幅に増加させることなく高速に実行できる。
【図面の簡単な説明】
【００２６】
【図１】本発明の第１の実施形態に係るプロセッサシステムの構成を示すブロック図である。
【図２】本発明の第２の実施形態に係るプロセッサシステムの構成を示すブロック図である。
【図３】本発明の第３の実施形態に係るプロセッサシステムの構成を示すブロック図である。
【図４】従来技術に係るプロセッサシステムの構成を示すブロック図である。
【図５】図４のＳＩＭＤ型プロセッサ１Ｐの構成を示すブロック図である。
【発明を実施するための形態】
【００２７】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【００２８】
第１の実施形態．
図１は、本発明の第１の実施形態に係るプロセッサシステムの構成を示すブロック図である。図１において、図５に記載の構成要素と同様の構成要素には同一の符号を付している。本実施形態に係るプロセッサシステムは、マイクロプロセッサであるＳＩＭＤ型プロセッサ１と、データ転送装置３とを備えて構成される。また、ＳＩＭＤ型プロセッサ１は、グローバルプロセッサ１００と、プロセッサエレメントＰＥ０〜ＰＥ２５５と、マルチプレクサ２４を備えた外部インタフェース４と、マルチプレクサ２１，２２，２３とを備えて構成される。ここで、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）は、図５の各プロセッサエレメントＰＥｎと同様に構成されるが、図１において、レジスタＲ０及びＰＥ−ＲＡＭ５のみを示す。また、各プロセッサエレメントＰＥｎ（ｎ＝０，１，…，２５５）には固有のアドレスｎが割り当てられている。図１のプロセッサシステムは、例えば、デジタル複写機などの画像処理装置に用いられる。
【００２９】
詳細後述するように、本実施形態に係るＳＩＭＤ型プロセッサ１は、
（ａ）データ転送装置３に接続されたレジスタＲ０と、レジスタＲ０に接続されたＰＥ−ＲＡＭ５とをそれぞれ備えた複数のプロセッサエレメントＰＥ０〜ＰＥ２５５と、
（ｂ）各プロセッサエレメントＰＥ０〜ＰＥ２５５のレジスタＲ０と各プロセッサエレメントＰＥ０〜ＰＥ２５５のＰＥ−ＲＡＭ５との間で並列にデータ転送を行うための信号Ｓ１０１，Ｓ１０２，Ｓ１０３，Ｓ１０４を出力するグローバルプロセッサ１００と、
（ｃ）データ転送装置３により出力された信号Ｓ３１，Ｓ３２，Ｓ３３，Ｓ３４であって、レジスタＲ０とＰＥ−ＲＡＭ５との間でデータ転送を行うための信号Ｓ３１，Ｓ３２，Ｓ３３，Ｓ３４と、グローバルプロセッサ１０からの信号Ｓ１０１，Ｓ１０２，Ｓ１０３，Ｓ１０４とのうちの一方を、データ転送装置３からの切換信号Ｓ３に従って選択して、当該選択した信号をレジスタＲ０及びＰＥ−ＲＡＭ５に出力するマルチプレクサ２１〜２４とを備えたことを特徴とする。
【００３０】
図１において、データ転送装置３は、外部インタフェース４を介して、ＳＩＭＤ型プロセッサ１のプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０と接続されていて、グローバルプロセッサ１００からの動作設定用データ及びデータ転送のためのコマンドに基づいて、各レジスタＲ０に対してデータの読み出し又は書き込みを指示するためのリード／ライト制御信号Ｓ３４と、読み出し元又は書き込み先のプロセッサエレメントの固有アドレスを示すアドレス信号ＳＡと、クロックＣＫとを発生する。そして、アドレス信号ＳＡ及びクロックＣＫを外部インタフェース４を介してプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する一方、リード／ライト制御信号Ｓ３４をマルチプレクサ２４に出力する。また、データ転送装置３は、各ＰＥ−ＲＡＭ５の読み出し元又は書き込み先のアドレスを示すアドレス信号Ｓ３１と、各ＰＥ−ＲＡＭ５に対してデータの読み出し又は書き込みを指示するためのリード／ライト制御信号Ｓ３２と、ＲＡＭ１０１を使用可能にするためのチップイネーブル信号Ｓ３３とを発生し、マルチプレクサ２１，２２，２３にそれぞれ出力する。さらに、データ転送装置３は、マルチプレクサ２１〜２４を制御する切換信号Ｓ３を発生してマルチプレクサ２１〜２４に出力する。
【００３１】
グローバルプロセッサ１００は、各レジスタＲ０に対してデータの読み出し又は書き込みを指示するためのリード／ライト制御信号Ｓ１０４を発生してマルチプレクサ２４に出力する。また、グローバルプロセッサ１００は、各ＰＥ−ＲＡＭ５の読み出し元又は書き込み先のアドレスを示すアドレス信号Ｓ１０１と、各ＰＥ−ＲＡＭ５に対してデータの読み出し又は書き込みを指示するためのリード／ライト制御信号Ｓ１０２と、ＲＡＭ１０１を使用可能にするためのチップイネーブル信号Ｓ１０３とを発生し、マルチプレクサ２１，２２，２３にそれぞれ出力する。
【００３２】
マルチプレクサ２１は、切換信号Ｓ３に従って、アドレス信号Ｓ３１又はＳ１０１を選択してアドレス信号Ｓ２１としてＲＡＭ１０１に出力する。マルチプレクサ２２は、切換信号Ｓ３に従って、リード／ライト制御信号Ｓ３２又はＳ１０２を選択してリード／ライト制御信号Ｓ２２としてＲＡＭ１０１に出力する。マルチプレクサ２３は、切換信号Ｓ３に従って、チップイネーブル信号Ｓ３３又はＳ１０３を選択してチップイネーブル信号Ｓ２３としてＲＡＭ１０１に出力する。マルチプレクサ２４は、切換信号Ｓ３に従って、リード／ライト制御信号Ｓ３４又はＳ１０４を選択してリード／ライト制御信号Ｓ２４として各レジスタＲ０に出力する。
【００３３】
図５の従来技術に係るプロセッサシステムでは、グローバルプロセッサ１００のみがアドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３をＲＡＭ１０１に出力できた。このため、ＲＡＭ１０１に対するリード／ライト制御は、プロセッサが実行するプログラム中に記述した各ＰＥ−ＲＡＭ５へのアクセス命令によってしか行うことができなかった。これに対して、本実施形態によれば、切換信号Ｓ３に従って、グローバルプロセッサ１００からのアドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３、又はデータ転送装置３からのアドレス信号Ｓ３１、リード／ライト制御信号Ｓ３２及びチップイネーブル信号Ｓ３３がアドレス信号Ｓ２１、リード／ライト制御信号Ｓ２２及びチップイネーブル信号Ｓ２３としてＲＡＭ１０１に出力される。以下、本実施形態に係るプロセッサシステムの動作例を説明する。
【００３４】
第１の動作例．
（１）データ転送装置３は、データ転送装置３からの信号Ｓ３１〜Ｓ３４を選択するための切換信号Ｓ３をマルチプレクサ２１〜２４に出力する。
（２）データ転送装置３は、各ＰＥ−ＲＡＭ５のアドレス０ｈを示すアドレス信号Ｓ３１と、データ読み出しを指示するリード／ライト制御信号Ｓ３２と、ＲＡＭ１０１を使用可能にするためのチップイネーブル信号Ｓ３３とを発生して、マルチプレクサ２１，２２，２３にそれぞれ出力する。そして、マルチプレクサ２１，２２，２３は、データ転送装置３からのアドレス信号Ｓ３１、リード／ライト制御信号Ｓ３２及びチップイネーブル信号Ｓ３３を、それぞれアドレス信号Ｓ２１、リード／ライト制御信号Ｓ２２及びチップイネーブル信号Ｓ２３として、ＲＡＭ１０１に出力する。
（３）データ転送装置３は、データ書き込みを指示するリード／ライト制御信号Ｓ３４を発生してマルチプレクサ２４に出力する。マルチプレクサ２４は、リード／ライト制御信号Ｓ３４をリード／ライト制御信号Ｓ２４として全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。これにより、全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に、対応するＰＥ−ＲＡＭ５のアドレス０ｈからのリードデータが格納される。
【００３５】
（４）データ転送装置３は、データ読み出しを指示するリード／ライト制御信号Ｓ３４を発生してマルチプレクサ２４に出力するとともに、プロセッサエレメントＰＥ０のアドレスを示すアドレス信号ＳＡを、外部インタフェース４を介してプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。マルチプレクサ２４は、リード／ライト制御信号Ｓ３４をリード／ライト制御信号Ｓ２４として全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。これにより、プロセッサエレメントＰＥ０のＰＥ−ＲＡＭ５のアドレス０ｈのデータは、プロセッサエレメントＰＥ０のレジスタＲ０に格納された後に、外部インタフェース４を介してデータ転送装置３にデータＤとして出力される。
【００３６】
（５）データ転送装置３は、各ＰＥ−ＲＡＭ５のアドレス１ｈを示すアドレス信号Ｓ３１と、データ読み出しを指示するリード／ライト制御信号Ｓ３２と、ＲＡＭ１０１を使用可能にするためのチップイネーブル信号Ｓ３３とを発生して、マルチプレクサ２１，２２，２３にそれぞれ出力する。そして、マルチプレクサ２１，２２，２３は、データ転送装置３からのアドレス信号Ｓ３１、リード／ライト制御信号Ｓ３２及びチップイネーブル信号Ｓ３３を、それぞれアドレス信号Ｓ２１、リード／ライト制御信号Ｓ２２及びチップイネーブル信号Ｓ２３として、ＲＡＭ１０１に出力する。
（６）データ転送装置３は、データ書き込みを指示するリード／ライト制御信号Ｓ３４を発生してマルチプレクサ２４に出力する。マルチプレクサ２４は、リード／ライト制御信号Ｓ３４をリード／ライト制御信号Ｓ２４として全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。これにより、全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に、対応するＰＥ−ＲＡＭ５のアドレス１ｈからのリードデータが格納される。
【００３７】
（７）データ転送装置３は、データ読み出しを指示するリード／ライト制御信号Ｓ３４を発生してマルチプレクサ２４に出力するとともに、プロセッサエレメントＰＥ１のアドレスを示すアドレス信号ＳＡを、外部インタフェース４を介してプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。マルチプレクサ２４は、リード／ライト制御信号Ｓ３４をリード／ライト制御信号Ｓ２４として全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。これにより、プロセッサエレメントＰＥ１のＰＥ−ＲＡＭ５のアドレス１ｈのデータは、プロセッサエレメントＰＥ１のレジスタＲ０に格納された後に、外部インタフェース４を介してデータ転送装置３にデータＤとして出力される。
【００３８】
（８）以下、上述した（２）〜（４）の処理を、アドレス信号Ｓ３１に含まれるＰＥ−ＲＡＭ５の処理対象のアドレスと、アドレス信号Ｓ３４に含まれる処理対象のプロセッサエレメントのアドレスとを１ずつインクリメントしながら繰り返して実行する。
【００３９】
第１の動作例によれば、グローバルプロセッサ１００からＲＡＭ１０２に対する読み出し制御を行うことなく、データ転送装置３からのＲＡＭ１０２に対する読み出し制御により、プロセッサエレメントＰＥ０のＰＥ−ＲＡＭ５のアドレス０ｈ、プロセッサエレメントＰＥ１のＰＥ−ＲＡＭ５のアドレス１ｈ、プロセッサエレメントＰＥ２のＰＥ−ＲＡＭ５のアドレス２ｈ、…の順に、ＲＡＭ１０１のデータを順次読み出してデータ転送装置３に出力できる。
【００４０】
従来技術に係るプロセッサシステム（図５参照。）によれば、データ転送装置３ＰはレジスタＲ０からデータを読み出すたびに、割込信号をグローバルプロセッサ１００に出力し、グローバルプロセッサ１００は、割込信号に応答して割込処理を実行して、ＲＡＭ１０１からレジスタＲ０へのデータ読み出しを行う必要があった。このため、割込処理時に発生するデータの退避及び復帰などのためにプログラムの実行にサイクル損失が生じていた。本動作例によれば、データ転送装置３がＲＡＭ１０１からのデータ読み出しを実行できるので、従来技術に比較して回路規模を大幅に増加させることなく高速に回転処理を実行できる。
【００４１】
第２の動作例．
始めに、上述した（１）の処理を実行する。次に、上述した（２）〜（４）の処理を、アドレス信号Ｓ３１に含まれるＰＥ−ＲＡＭ５の処理対象のアドレスを１００ｈに設定し、アドレス信号Ｓ３４に含まれる処理対象のプロセッサエレメントのアドレスを０から１５まで１ずつインクリメントしながら繰り返して実行する。次に、上述した（２）〜（４）の処理を、アドレス信号Ｓ３１に含まれるＰＥ−ＲＡＭ５の処理対象のアドレスを２００ｈに設定し、アドレス信号Ｓ３４に含まれる処理対象のプロセッサエレメントのアドレスを１６から３１まで１ずつインクリメントしながら繰り返して実行する。これにより、プロセッサエレメントＰＥ０〜ＰＥ１５の各ＰＥ−ＲＡＭ５のアドレス１００ｈに格納されている１６個のデータと、プロセッサエレメントＰＥ１６〜ＰＥ４１の各ＰＥ−ＲＡＭ５のアドレス２００ｈに格納されている１６個のデータとを、順次読み出してデータ転送装置３に出力できる。
【００４２】
第２の動作例によれば、プロセッサエレメントＰＥ０〜ＰＥ３１を２つのグループにグループ化して、グループ毎にＰＥ−ＲＡＭ５の異なるアドレスからデータを読み出すことができる。従って、従来技術に比較して回路規模を大幅に増加させることなく高速に回転処理を実行できる。
【００４３】
第３の動作例．
まず始めに、データ転送装置３は、データ転送装置３からの信号Ｓ３１〜Ｓ３４を選択するための切換信号Ｓ３をマルチプレクサ２１〜２４に出力する。次に、データ転送装置３は、データ書き込みを指示するリード／ライト制御信号Ｓ３４を発生してマルチプレクサ２４に出力する。マルチプレクサ２４は、リード／ライト制御信号Ｓ３４をリード／ライト制御信号Ｓ２４として全てのプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０に出力する。そして、データ転送装置３は、アドレス信号ＳＡに含まれるアドレスを０から２５５まで１ずつインクリメントしながら、プロセッサエレメントＰＥ０のレジスタＲ０からプロセッサエレメントＰＥ２５５のレジスタＲ０まで、データＤを書き込む。
【００４４】
次に、データ転送装置３は、各ＰＥ−ＲＡＭ５のアドレス１００ｈを示すアドレス信号Ｓ３１と、データ書き込みを指示するリード／ライト制御信号Ｓ３２と、ＲＡＭ１０１を使用可能にするためのチップイネーブル信号Ｓ３３とを発生して、マルチプレクサ２１，２２，２３にそれぞれ出力する。そして、マルチプレクサ２１，２２，２３は、データ転送装置３からのアドレス信号Ｓ３１、リード／ライト制御信号Ｓ３２及びチップイネーブル信号Ｓ３３を、それぞれアドレス信号Ｓ２１、リード／ライト制御信号Ｓ２２及びチップイネーブル信号Ｓ２３として、ＲＡＭ１０１に出力する。これにより、プロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０のデータは、各ＰＥ−ＲＡＭ５のアドレス１００ｈに書き込まれる。第３の動作例では、プロセッサエレメントＰＥ０〜ＰＥ２５５の各ＰＥ−ＲＡＭ５のアクセス対象のアドレスは同一である。
【００４５】
従来技術に係るプロセッサシステム（図５参照。）では、グローバルプロセッサ１００のみがアドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３をＲＡＭ１０１に出力できた。このため、ＲＡＭ１０１に対するリード／ライト制御は、プロセッサが実行するプログラム中に記述した各ＰＥ−ＲＡＭ５へのアクセス命令によってしか行うことができなかった。このため、データ転送装置３Ｐは、全てのプロセッサエレメントＰＥ０〜ＰＥ２５５のレジスタＲ０へのデータ転送が終了した後、割込信号をグローバルプロセッサ１００に出力してデータ転送の終了を通知した。これに応答して、グローバルプロセッサ１００は、割込処理を実行してプロセッサエレメントＰＥ０〜ＰＥ２５５の各レジスタＲ０から各ＰＥ−ＲＡＭ５へのライト転送命令を発行した。このため、割込処理時に発生するデータの退避及び復帰などのためにプログラムの実行にサイクル損失が生じていた。これに対して、本動作例によれば、ユーザが書いたプログラムに従って、データ転送装置３の処理をスタートさせるだけで、ＳＩＭＤ型プロセッサ１におけるプログラムの処理と、データ転送装置３によるＲＡＭ１０１へのデータアクセスの処理とを並行して行うことができるので、ＳＩＭＤ型プロセッサ１におけるプログラム処理を中断させることなく、ＲＡＭ１０１の内容を書き換えることができる。
【００４６】
以上説明したように、本実施形態によれば、プロセッサエレメントＰＥ０〜ＰＥ２５５毎に、独立したアドレスデコーダを備えたＲＡＭを設けることなく、マルチプレクサ２１〜２４を追加するだけで、回転処理及びルックアップテーブルを参照する処理などの
プロセッサエレメントＰＥ０〜ＰＥ２５５毎にＰＥ−ＲＡＭ５の異なるアドレスのデータを参照する処理を、従来技術に比較して高速に実行できる。また、ＰＥ−ＲＡＭ５へのアクセスを、すべてＳＩＭＤ型プロセッサ１の外部の、例えばデータ転送装置３などにより、ＳＩＭＤ型プロセッサ１のプログラム処理のバックグラウンドで行うことができるので、ＳＩＭＤ型プロセッサ１全体の処理を高速化できる。一般に、ＳＩＭＤ型プロセッサ１を用いて画像処理を行う場合、ＲＡＭ１０１に画像データを格納することが多いので、特に第１〜第３の動作例の処理を効率的に行うことは、近年の画像処理における画像データの大容量化及び動画処理に対応することを含む処理の高速化に大きく寄与する。
【００４７】
第２の実施形態．
図２は、本発明の第２の実施形態に係るプロセッサシステムの構成を示すブロック図である。本実施形態に係るプロセッサシステムは、ＳＩＭＤ型プロセッサ１Ａと、データ転送装置３Ａとを備えて構成される。ＳＩＭＤ型プロセッサ１Ａは、図１のＳＩＭＤ型プロセッサ１に比較して、グローバルプロセッサ１００に代えてグローバルプロセッサ１００Ａを備えた点のみが異なる。以下、第１の実施形態に係るプロセッサシステムとの相違点のみを説明する。
【００４８】
図２において、データ転送装置３Ａは、マルチプレクサ２１，２２，２３を介してアドレス信号Ｓ２１、リード／ライト制御信号Ｓ２２及びチップイネーブル信号Ｓ２３をそれぞれＲＡＭ１０１に出力してＲＡＭ１０１にアクセスする前に、プログラムの実行を中断させるためのストール制御信号Ｓ３５をアクティブにして、グローバルプロセッサ１００Ａに出力する。これに応答して、グローバルプロセッサ１００Ａは、プログラムの実行を中断するストール状態に移行する。ストール状態では、グローバルプロセッサ１００Ａは、アドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３を出力することを停止する。また、データ転送装置３Ａは、ＲＡＭ１０１と各レジスタＲ０との間のデータ転送が終了すると、ストール制御信号Ｓ３５をディスエーブルする。これに応答して、グローバルプロセッサ１００Ａは、ストール状態からプログラム実行状態に復帰し、プログラムの実行を再開する。
【００４９】
本実施形態によれば、ストール状態では、グローバルプロセッサ１００Ａからのアドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３がアクティブになることがないので、データ転送装置３Ａからのアドレス信号Ｓ２１、リード／ライト制御信号Ｓ２２及びチップイネーブル信号Ｓ２３と、グローバルプロセッサ１００Ａからのアドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３との競合を確実に防止でき、これにより、ＳＩＭＤ型プロセッサ１Ａの誤動作を防止できる。
【００５０】
第３の実施形態．
図３は、本発明の第３の実施形態に係るプロセッサシステムの構成を示すブロック図である。本実施形態に係るプロセッサシステムは、ＳＩＭＤ型プロセッサ１Ｂと、データ転送装置３Ａとを備えて構成される。ＳＩＭＤ型プロセッサ１Ｂは、図２のＳＩＭＤ型プロセッサ１Ａに比較して、グローバルプロセッサ１００Ａに代えてグローバルプロセッサ１００Ｂを備えた点のみが異なる。以下、第２の実施形態に係るプロセッサシステムとの相違点のみを説明する。
【００５１】
図３において、グローバルプロセッサ１００Ｂは、プログラムの実行中にＲＡＭ１０１へのアクセス命令を発行したとき（アドレス信号Ｓ１０１、リード／ライト制御信号Ｓ１０２及びチップイネーブル信号Ｓ１０３を出力するときである。）にアクティブになるデコード信号を発生する。さらに、グローバルプロセッサ１００Ｂは、例えばゲート回路を用いて、データ転送装置３Ａからのストール制御信号Ｓ３５及び上述したデコード信号がともにアクティブであるときに、プログラムの実行を中断するストール状態に移行するように制御する。本実施形態によれば、第２の実施形態に比較して、プログラム実行の停止期間を最小限してＳＩＭＤ型プロセッサ１Ｂの実行効率の低下をできるだけ抑えることができる。
【００５２】
上述した各実施形態に係るＳＩＭＤ型プロセッサ１，１Ａ及び１Ｂは、プロセッサを使用するデジタル機器に用いることができ、特に、複写機などの画像処理を行うデジタル機器に有用である。
【００５３】
なお、上記各実施形態において、データ転送装置３及び３Ａは、データ転送のための外部インタフェースを備えたＣＰＵ（Central Processing Unit）であってもよい。
【符号の説明】
【００５４】
１，１Ａ，１Ｂ…ＳＩＭＤ型プロセッサ、
３，３Ａ…データ転送装置、
４…外部インタフェース、
５…ＰＥ−ＲＡＭ、
２１〜２４…マルチプレクサ、
１００，１００Ａ，１００Ｂ…グローバルプロセッサ、
ＰＥ０〜ＰＥ２５５…プロセッサエレメント、
Ｒ０〜Ｒ３１…レジスタ。
【先行技術文献】
【特許文献】
【００５５】
【特許文献１】特許第４５０４８６１号公報
【特許文献２】特開平０３−２１１６８８号公報
【特許文献３】特開２００５−２６９５０２号公報
【図１】
0005888028.tif 000002
【図２】
0005888028.tif 000003
【図３】
0005888028.tif 000004
【図４】
0005888028.tif 000005
【図５】
0005888028.tif 000006