(57)【特許請求の範囲】
【請求項１】
グローバルプロセッサと、複数のプロセッサエレメントと、外部メモリデータ転送装置から前記プロセッサエレメントのレジスタにデータ書き込む、あるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備え、各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能なＳＩＭＤ型プロセッサにおいて、
前記グローバルプロセッサ内にプロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な１つ以上の情報格納手段をさらに備え、
前記外部ポートを介して前記グローバルプロセッサと前記外部メモリデータ転送装置との間でデータの授受を行い、
前記情報格納手段に前記外部ポートから入力されるデータは、前記グローバルプロセッサから読み出しのみ実施でき、前記情報格納手段に前記グローバルプロセッサから入力されるデータは前記外部ポートからのみ読み出しができることを特徴とするＳＩＭＤ型プロセッサ。
【請求項２】
前記情報格納手段が書き込み内容で内容が反転するトグル機能を持つことを特徴とする請求項１に記載のＳＩＭＤ型プロセッサ。
【請求項３】
前記情報格納手段に対し、前記外部ポートから入力されるデータによって、前記グローバルプロセッサに割込みを発生させる機能を有することを特徴とする請求項１に記載のＳＩＭＤ型プロセッサ。
【請求項４】
前記グローバルプロセッサからアクセス可能なデータを記憶する記憶装置を備え、前記外部ポートを通じてプロセッサ外部から前記記憶装置にアクセスする経路を備えたことを特徴とする請求項１に記載のＳＩＭＤ型プロセッサ。
【請求項５】
前記記憶装置にアクセスする権限が設定されており、その権限の獲得がないと前記外部ポートを通じて外部から前記記憶装置にアクセスできない仕組みを備えたことを特徴とする請求項４に記載のＳＩＭＤ型プロセッサ。
【請求項６】
前記外部ポートを通じて外部から前記記憶装置にアクセスするのを、前記グローバルプロセッサから命令実行によって禁止または許可の設定ができるレジスタまたはフラグを備えたことを特徴とする請求項５に記載のＳＩＭＤ型プロセッサ。
【請求項７】
前記外部ポートを通じて外部からの前記記憶装置へのアクセス要求が、同時に複数発生したとき、アクセス権を付与する優先権判定を行う回路を備えたことを特徴とする請求項５に記載のＳＩＭＤ型プロセッサ。
【請求項８】
前記グローバルプロセッサによって内容の設定が可能なレジスタの内容によって優先権設定が変更可能な優先権判定回路を備えたことを特徴とする請求項７に記載のＳＩＭＤ型プロセッサ。
【請求項９】
前記外部ポートを通じて外部から前記記憶装置にアクセスするときに指定するアドレスを、プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能なレジスタから指定することを特徴とする請求項４に記載のＳＩＭＤ型プロセッサ。
【請求項１０】
アクセスする前記記憶装置上のアドレスを保持しているレジスタが、前記記憶装置のアクセスのたびに特定値だけ加算されることを特徴とする請求項９に記載のＳＩＭＤ型プロセッサ。
【請求項１１】
グローバルプロセッサと、複数のプロセッサエレメントと、接続され前記プロセッサエレメントのレジスタにデータ書き込むあるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備えたＳＩＭＤ型プロセッサと、画像のデータを記憶するための外部メモリと、前記外部ポートと接続され前記外部メモリにアクセス可能な外部メモリデータ転送装置と、を備え、前記各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能な画像処理プロセッサにおいて、
プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な１つ以上の情報格納手段と、前記情報格納手段に外部ポート作動中を示すフラグレジスタを設けて、当該フラグレジスタの内容を前記グローバルプロセッサの命令動作制御部へ与える信号経路をさらに備え、
前記外部メモリデータ転送装置の動作指示が前記外部ポートを介して前記ＳＩＭＤ型プロセッサから与えられるとともに、前記外部メモリデータ転送装置の動作状態を前記外部ポートを介して前記ＳＩＭＤ型プロセッサへ伝達し、
前記グローバルロプロセッサの前記命令動作制御部は、命令動作完了に前記フラグレジスタの内容に応じて命令を与えることを特徴とする画像処理プロセッサ。
【請求項１２】
前記グローバルプロセッサが特定のレジスタの操作する場合を検出する検出装置を備え、前記グローバルプロセッサの前記命令動作制御部は、前記検出装置の結果と前記フラグレジスタの内容を条件として完了命令を与えることを特徴する請求項１１に記載の画像処理プロセッサ。
【請求項１３】
前記グローバルプロセッサからアクセス可能なレジスタを備え、レジスタの内容により、命令の完了を条件付きあるいは条件なしとすることが可能にすることを特徴とする請求項１１又は１２に記載の画像処理プロセッサ。
【請求項１４】
前記外部メモリデータ転送装置の動作指示と同時に前記フラグレジスタを動作状態を示す状態にする命令を与えること特徴とする請求項１１又は１２に記載の画像処理プロセッサ。
【請求項１５】
前記フラグレジスタを前記グローバルプロセッサからリード可能に構成したことを特徴とする請求項１１又は１２に記載の画像処理プロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、１つの演算命令により複数の画像データ等を並列処理するＳＩＭＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ  Ｍｕｌｔｉｐｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）型プロセッサ及びＳＩＭＤ型プロセッサを用いる画像処理プロセッサに関するものである。
【背景技術】
【０００２】
ＳＩＭＤ型プロセッサでは、複数のデータに対して１つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理、例えば、デジタルコピアなどにおける画像処理に係る用途において、頻用されている。
【０００３】
ＳＩＭＤ型プロセッサにおける通常の画像処理では、複数の演算ユニット（Ｐｒｏｃｅｓｓｏｒ  Ｅｌｅｍｅｎｔ  ［ＰＥ］；プロセッサエレメント）を主走査（水平走査）方向に並べ、同一の演算を同時に複数のデータに対して実行することによって高速な演算処理が可能となっている。
【０００４】
通常、ＳＩＭＤ型プロセッサを用いて画像処理を行う場合、水平走査方向にＰＥを展開する。プロセッサに装備しているＰＥが、水平走査方向の画素数より少ない場合、水平走査方向の画素をＰＥ数単位で分割し、画像処理を複数回反復実施することで、全画素の画像処理を行う。
【０００５】
ここで、演算処理は複数の演算器を並べることで実現できるが、演算の対象となるデータは演算速度に見合う速度でメモリ等にアクセスする必要があり、この速度に間に合わない場合は、データのアクセス速度でプロセッサの性能が決定してしまう。
【０００６】
通常タイプ（ＳＩＳＤ：Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ，  Ｓｉｎｇｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）のプロセッサでは、演算データはプロセッサのプログラムによりメモリから逐次アクセスするが、この場合にデータのアクセス速度はメモリのビット幅と転送時間で決定する。ＳＩＭＤタイプにおいてもこの方法を用いると演算は並列処理に対してデータのアクセスは逐次処理となり、ＳＩＳＤタイプ程度に処理能力は低下してしまう。このためＳＩＭＤタイプのプロセッサでは演算対象データのアクセスはプロセッサの命令ではおこなわず、外部のメモリデータ転送装置からプロセッサ内部の入出力用のレジスタに直接アクセスする方法が採られる。
【０００７】
一般的にプロセッサと外部メモリデータ転送装置での処理フローは、次の通りである。（１）外部メモリデータ転送装置が演算対象データを入力用レジスタに転送。
（２）プロセッサは外部から演算データを転送済みである入力用のレジスタから演算対象データを演算用のレジスタに転送し演算を開始。
（３）プロセッサが所定の演算を実行する。この間に外部メモリデータ転送装置が次の演算対象データを入力用レジスタに転送。また、演算処理済みデータ（結果データ）が出力用レジスタにある場合は外部メモリデータ転送装置が結果データを出力用レジスタからメモリへ転送。
（４）プロセッサは演算を終了し結果データを出力用レジスタに転送。
【０００８】
上記のように、プロセッサの演算実行時に同時に外部のメモリデータ転送装置が演算対象データを転送することで高速化を実現している。
【０００９】
図１２に従来のバス方式による演算データの転送を行うＳＩＭＤ型プロセッサの概略図を示す。
【００１０】
ＳＩＭＤ型プロセッサ１００は、グロバールプロセッサ（ＧＰ）１と、レジスタファイル２と演算アレイ３とからなるプロセッサエレメントブロックで構成される。グローバルプロセッサ（ＧＰ）１は、いわゆるＳＩＳＤ（Ｓｉｎｇｌｅ  Ｉｎｓｔｒｕｃｔｉｏｎ−ｓｔｒｅａｍ，  Ｓｉｎｇｌｅ  Ｄａｔａ−ｓｔｒｅａｍ）タイプのプロセッサであり、内蔵するプログラムＲＡＭとデータＲＡＭにアクセスし、プログラムを解読し各種制御信号を生成する。この制御信号は内蔵する各種ブロックの制御以外にもレジスタファイル２、演算アレイ３に供給される。また、ＧＰ（グローバルプロセッサ）命令実行時は、内蔵する汎用レジスタ、ＡＬＵ（算術論理演算器）等を使用して各種演算処理、プログラム制御処理を行う。
【００１１】
レジスタファイル２は、ＰＥ（プロセッサエレメント）命令で処理されるデータを保持している。ＰＥ命令はＳＩＭＤタイプの命令であり、レジスタファイル２に保持されている複数のデータを同時に同じ処理を行う。
【００１２】
このレジスタファイル２からのデータの読み出し／書き込みの制御は、グローバルプロセッサ（ＧＰ）１からの制御によって行われる。読み出されたデータは、演算アレイ３に送られ、演算アレイ３での演算処理後にレジスタファイル２に書き込まれる。また、レジスタファイル２はプロセッサ外部からのアクセスが可能であり、グローバルプロセッサ（ＧＰ）１の制御とは別に外部から特定のレジスタを読み出し／書き込みが行われる。
【００１３】
演算アレイ３は、ＰＥ命令の演算処理が行われる。処理の制御はすべてグローバルプロセッサ（ＧＰ）１から行われる。
【００１４】
外部メモリ５は、処理する元の画像データを記憶、処理後の画像データを記憶する記憶装置であり、外部メモリデータ転送装置６は外部メモリ５から処理する元の画像データを読み出し、ＰＥのレジスタファイル２に書き込む、あるいはレジスタファイル２から処理後の画像データを読み出し、外部メモリ５に書き込む装置である。
【００１５】
外部入出力ポート４は、外部メモリデータ転送装置６がＰＥのレジスタファイル２に書き込む、あるいはレジスタファイル２から処理後の画像データを読み出しを行うためのプロセッサ１００側のポートである。
【００１６】
外部メモリデータ転送装置６及びグローバルプロセッサ（ＧＰ）１はシステムバス７と接続されている。システムバス７は、一般的なマイコンシステムのシステムバスであり、外部メモリデータ転送装置６の各種設定は、マイコン周辺機器としてシステムバス７を介して行われる。また図示していないが、外部メモリデータ転送装置６からプロセッサ１００へ割込み要求（ＩＲＱ）を通知する機能がある場合は伝達経路が存在するものとする。
【００１７】
図１３は従来のバス方式による演算データの転送を行うＳＩＭＤ型プロセッサの詳細な構成例である。
【００１８】
グロバールプロセッサ１には、本プロセッサのプログラム格納用のプログラムＲＡＭと演算データ格納用のデータＲＡＭが内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ（ＰＣ）、演算処理のデータ格納のための汎用レジスタであるＧ０〜Ｇ３レジスタ、レジスタ退避、復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ（ＳＰ）、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ（ＬＳ）、同じくＩＲＱ時とＮＭＩ時の分岐元アドレスを保持するＬＩ、
ＬＮレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ（Ｐ）が内蔵されている。これらのレジスタと図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を使用してＧＰ命令の実行が行われる。
【００１９】
ＰＥ命令実行時は、命令デコーダ、レジスタファイル制御回路１０、ＰＥ演算制御回路１１を使用して、レジスタファイル２の制御と演算アレイ３の制御を行う。
【００２０】
レジスタファイル２には各ＰＥに８ビットのレジスタ２０が複数本内蔵されており、ＰＥ数分の組みがアレイ構成になっている。レジスタはＰＥごとにＲ０、Ｒ１、Ｒ２、．．．と呼ばれている。それぞれのレジスタは演算アレイ３に対してポートを備えており、８ビットのリード／ライト兼用のバス（以下、レジスタバスという。）２１で演算アレイ３からアクセスされる。図示しているレジスタは、紙面の関係で各ＰＥで３本としている。
【００２１】
演算アレイ３は、１６ビットＡＬＵと１６ビットＡレジスタ３２、Ｆレジスタ３３、条件レジスタ３４、ＰＥ番号レジスタ３５、マルチプレクサ３６を内蔵している。ＰＥ命令による演算は、基本的にレジスタファイル２から読み出されたデータをＡＬＵ３１の片側の入力としてもう片側にはＡレジスタ３２の内容を入力として結果をＡレジスタ３２に格納する。したがって、Ａレジスタ３２とＲ０〜Ｒ３１レジスタ２０との演算が行われることとなる。
【００２２】
レジスタファイル２と演算部３との接続に、５ｔｏ１のマルチプレクサ４０を置いており、ＰＥ方向で左に１、２つ離れたデータと右に１、２つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル２の８ビットのデータはシフト＆拡張回路４１により、任意ビットを左シフトしてＡＬＵ３１に入力する。
【００２３】
ＰＥｎは、レジスタファイル２と演算アレイ３の対応する任意の１組であって、図７では、ＰＥｎを中心に前後２つのＰＥを示しており、ＰＥ全体の一部を示している。
【００２４】
レジスタファイル２に示される最上段のレジスタ２０は、図示されていない外部メモリデータ転送装置によって、内容の読み出し／書き込みが可能なレジスタである。プロセッサ外の外部メモリデータ転送装置からデータバスとコントロール信号を用いて、任意のレジスタ２０の読み出し／書き込みが可能である。
【００２５】
外部メモリデータ転送装置から任意のレジスタにアクセスするためには、メモリにアクセスするのと同じようにアドレスによる。外部メモリデータ転送装置からアクセス可能なレジスタは、それぞれ固有の番地を割り振られており、外部メモリデータ転送装置はアクセスするレジスタ固有の番地をアドレスとしてコントロール信号に含めて出力する。このバスに接続されたレジスタにおいては、外部メモリデータ転送装置がアクセスするレジスタの番地と自身の番地を比較し、一致しているとアクセスに対応する。
【００２６】
上記した入出力用レジスタへのアクセスとして、外部インターフェースから、アドレスを入力してアクセスするＰＥを指定する方法が提案されている（例えば、特許文献１参照）。
【特許文献１】特開２００１−８４２２９号公報
【発明の開示】
【発明が解決しようとする課題】
【００２７】
従来の入出力用レジスタへのアクセスにおいては、外部メモリデータ転送装置の転送内容の設定や転送開始時期の通知などはプロセッサ側からシステムバスを介して接続してい
る。したがって、外部メモリデータ転送装置とプロセッサ間は、ＳＩＭＤ演算対象データを転送するバスとシステムバスの二重で接続する必要がある。
【００２８】
また、外部メモリデータ転送装置からプロセッサに向かって、例えば、データ転送の終了を通知する場合には、外部メモリデータ転送装置からプロセッサに対して、割込み要求（ＩＲＱ）を発生させることが一般的である。このため、割込み要求の信号線においても外部メモリデータ転送装置とプロセッサが接続される必要がある。さらに、外部メモリデータ転送装置の設定で使うシステムバスがプロセッサの動作速度に対し相対的に低速の場合には、設定に費やす時間が多くなり、プロセッサの演算処理全体のスループットが低下するという問題点があった。
【００２９】
この発明は、上記した問題点に鑑みなされたものにして、プロセッサと外部メモリデータ転送装置の接続における自由度を向上させたＳＩＭＤ型プロセッサ、及びＳＩＭＤ型プロセッサを用いる画像処理プロセッサを提供することを課題とする。
【課題を解決するための手段】
【００３０】
請求項１に記載の発明は、グローバルプロセッサと、複数のプロセッサエレメントと、外部メモリデータ転送装置から前記プロセッサエレメントのレジスタにデータ書き込む、あるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備え、各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能なＳＩＭＤ型プロセッサにおいて、前記グローバルプロセッサ内にプロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な１つ以上の情報格納手段をさらに備え、前記外部ポートを介して前記グローバルプロセッサと前記外部メモリデータ転送装置との間でデータの授受を行い、前記情報格納手段に前記外部ポートから入力されるデータは、前記グローバルプロセッサから読み出しのみ実施でき、前記情報格納手段に前記グローバルプロセッサから入力されるデータは前記外部ポートからのみ読み出しができることを特徴とする。
【００３３】
請求項２に記載の発明は、請求項１の構成に加え、前記情報格納手段が書き込み内容で内容が反転するトグル機能を持つことを特徴とする。
【００３４】
請求項３に記載の発明は、請求項１の構成に加え、前記情報格納手段に対し、前記外部ポートから入力されるデータによって、前記グローバルプロセッサに割込みを発生させる機能を有することを特徴とする。
【００３５】
請求項４に記載の発明は、請求項１の構成に加え、前記グローバルプロセッサからアクセス可能なデータを記憶する記憶装置を備え、前記外部ポートを通じてプロセッサ外部から前記記憶装置にアクセスする経路を備えたことを特徴とする。
【００３６】
請求項５に記載の発明は、請求項４の構成に加え、前記記憶装置にアクセスする権限が設定されており、その権限の獲得がないと前記外部ポートを通じて外部から前記記憶装置にアクセスできない仕組みを備えたことを特徴とする。
【００３７】
請求項６に記載の発明は、請求項５の構成に加え、前記外部ポートを通じて外部から前記記憶装置にアクセスするのを、前記グローバルプロセッサから命令実行によって禁止または許可の設定ができるレジスタまたはフラグを備えたことを特徴とする。
【００３８】
請求項７に記載の発明は、請求項５の構成に加え、前記外部ポートを通じて外部からの前記記憶装置へのアクセス要求が、同時に複数発生したとき、アクセス権を付与する優先権判定を行う回路を備えたことを特徴とする。
【００３９】
請求項８に記載の発明は、請求項７の構成に加え、前記グローバルプロセッサによって内容の設定が可能なレジスタの内容によって優先権設定が変更可能な優先権判定回路を備えたことを特徴とする。
【００４０】
請求項９に記載の発明は、請求項４の構成に加え、前記外部ポートを通じて外部から前記記憶装置にアクセスするときに指定するアドレスを、プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能なレジスタから指定することを特徴とする。
【００４１】
請求項１０に記載の発明は、請求項９の構成に加え、アクセスする前記記憶装置上のアドレスを保持しているレジスタが、前記記憶装置のアクセスのたびに特定値だけ加算されることを特徴とする。
【００４２】
請求項１１に記載の発明は、グローバルプロセッサと、複数のプロセッサエレメントと、接続され前記プロセッサエレメントのレジスタにデータ書き込むあるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備えたＳＩＭＤ型プロセッサと、画像のデータを記憶するための外部メモリと、前記外部ポートと接続され前記外部メモリにアクセス可能な外部メモリデータ転送装置と、を備え、前記各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能な画像処理プロセッサにおいて、プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な１つ以上の情報格納手段と、前記情報格納手段に外部ポート作動中を示すフラグレジスタを設けて、当該フラグレジスタの内容を前記グローバルプロセッサの命令動作制御部へ与える信号経路をさらに備え、前記外部メモリデータ転送装置の動作指示が前記外部ポートを介して前記ＳＩＭＤ型プロセッサから与えられるとともに、前記外部メモリデータ転送装置の動作状態を前記外部ポートを介して前記ＳＩＭＤ型プロセッサへ伝達し、前記グローバルロプロセッサの前記命令動作制御部は、命令動作完了に前記フラグレジスタの内容に応じて命令を与えることを特徴とする。
【００４４】
請求項１２に記載の発明は、請求項１１の構成に加え、前記グローバルプロセッサが特定のレジスタの操作する場合を検出する検出装置を備え、前記グローバルプロセッサの前記命令動作制御部は、前記検出装置の結果と前記フラグレジスタの内容を条件として完了命令を与えることを特徴する。
【００４５】
請求項１３に記載の発明は、請求項１１又は１２の構成に加え、前記グローバルプロセッサからアクセス可能なレジスタを備え、レジスタの内容により、命令の完了を条件付きあるいは条件なしとすることが可能にすることを特徴とする。
【００４６】
請求項１４に記載の発明は、請求項１１又は１２の構成に加え、前記外部メモリデータ転送装置の動作指示と同時に前記フラグレジスタを動作状態を示す状態にする命令を与えること特徴とする。
【００４７】
請求項１５に記載の発明は、請求項１１又は１２の構成に加え、前記フラグレジスタを前記グローバルプロセッサからリード可能に構成したことを特徴とする。
【発明の効果】
【００４９】
上記したように、各プロセッサエレメント（ＰＥ）を指定するアドレスを入力することで、任意のＰＥの内蔵するレジスタに外部からアクセス可能なポートを持つＳＩＭＤ型プロセッサにおいては、外部メモリデータ転送装置との接続に、従来は、前述のポートの接続とは別にシステムバスによる接続が必要であった。この請求項１に記載の発明では、従来システムバスを介して行われていた外部メモリデータ転送装置の設定や指示などを、ポストレジスタで代用できるため、システムバスの接続が不要となり、プロセッサと外部メモリデータ転送装置の接続におけるコストや自由度において有利である。また、一般にグローバルプロセッサ（ＧＰ）にとって内部レジスタへのアクセスは、プロセッサ外部へのアクセスより高速かつ単純である。
【００５０】
更に、請求項１に記載の発明によれば、外部メモリデータ転送装置との通信が内部レジスタによって行われることは、プログラムのスピードアップと単純化で有利である。
【００５１】
また、請求項１に記載の発明によれば、ＧＰから外部メモリデータ転送装置に転送する場合と外部メモリデータ転送装置からＧＰへ転送する場合で、外部メモリデータ転送装置からみれば同じアドレス指定、ＧＰからみれば同じレジスタ指定にできるため有限でしかないアドレス範囲やレジスタ指定の命令コードを節約でき、アドレス拡張や命令コードの拡張を避けてプロセッサ外部へのアクセスが行える。
【００５２】
請求項２に記載の発明によれば、トグル機能を使いハンドシェーク機能を実現でき、ＧＰと外部メモリデータ転送装置の間の通信を確実にできる。
【００５３】
請求項３に記載の発明によれば、従来の割込み要求ルートによらず割込み要求ができるため、従来の割込み要求ルートが不要となる。
【００５４】
従来では、記憶装置（データＲＡＭ）上のデータはプロセッサの命令実行によって、データＲＡＭから読み出され、外部メモリデータ転送装置に転送される処理で行われてきたが、請求項６に記載の発明よれば、外部メモリデータ転送装置からプロセッサの動作に拠ることなく直接データＲＡＭにアクセスできるため、プロセッサがデータＲＡＭにアクセス不要の処理を実行している時間と外部メモリデータ転送装置のデータＲＡＭへのアクセ
スを同時に実施でき、処理速度の向上が図れる。
【００５５】
データＲＡＭのようなメモリには同時にアクセスできる数に上限があり、それを越えた同時アクセスは実行できないが、外部メモリデータ転送装置から確実にデータＲＡＭへのアクセスを実施したい場合、請求項５に記載の発明のように、「アクセス権」を獲得してからデータＲＡＭアクセスする方法であると、排他的にデータＲＡＭへのアクセスが確保できる。
【００５６】
プロセッサが実行中のプログラムの都合で、データＲＡＭに確実にアクセスを実行しなければならない場合や、プログラムの実行以外でのデータＲＡＭ上の内容の更新を確実に抑制したい場合、請求項６に記載の発明のように、レジスタまたはフラグを利用し、外部メモリデータ転送装置からデータＲＡＭへのアクセスを禁止にすることで実現できる。
【００５７】
複数の外部メモリデータ転送装置からデータＲＡＭへの経路が存在すれば、同時に複数のアクセス権を要求する可能性があるが、請求項７に記載の発明のように、優先順位が判定される回路を備えることで、混乱なくアクセス権を付与することができる。
【００５８】
実行プログラムの都合により、請求項７で設定された優先順位を変更したい場合、請求項８に記載の発明によれば、優先順位設定レジスタに所望の優先順位データを設定することで、優先順位判定回路における優先順位変更を実現できる。
【００５９】
請求項９に記載の発明によれば、外部メモリデータ転送装置からデータＲＡＭ上のデータへアクセスするとき、アクセスするアドレスを外部メモリデータ転送装置から設定するため、プロセッサの動作にかかわりなく、外部メモリデータ転送装置から任意のアドレスへのアクセスの可能になる。
【００６０】
請求項１０に記載の発明によれば、外部メモリデータ転送装置からデータＲＡＭ上の連続するアドレスに対してアクセスの場合、アクセスのたびにアドレスレジスタを更新する必要がないため、処理動作が短時間で終了する。
【００６１】
請求項１１に記載の発明によれば、従来システムバスを介して行われていた外部メモリデータ転送装置の設定や指示などを、外部ポートを介して行うことができるため、システムバスの接続が不要となり、プロセッサと外部メモリデータ転送装置の接続におけるコストや自由度において有利である。
【００６２】
更に、請求項１１に記載の発明によれば、フラグレジスタにより、外部メモリデータ転送装置の作動中は、ハザードを起こす可能性のある命令の実行の完了が止められる、すなわちウエイトがかかるため、プログラマが正確に時間を把握しなくとも、ハザードが発生する心配がなくなる。
【００６３】
請求項１２に記載の発明によれば、請求項１１における効果に加え、外部メモリデータ転送装置の作動中のレジスタを特定して命令の完了条件としているため、外部メモリデータ転送装置の作動中以外のレジスタを対象にした命令の実行に関しては条件がなく実行されるため、命令にウエイトがかかる機会が減り、プログラム処理が早くなる。
【００６４】
請求項１３に記載の発明によれば、グローバルプロセッサからアクセス可能なレジスタ（制御レジスタ）を操作することで、条件の有無の設定、すなわちウエイトをかける／かけないの選択ができる。また、プログラマが外部メモリデータ転送装置の作動時間を正確に把握し、かつＳＩＭＤプロセッサ自らのプログラムの実行時間も正確に把握している場合、時間差を利用した高度なプログラムが可能であるが、ハザードを完全回避しようとする請求項１１又は１２の機能が逆に不都合となる場合がある。この場合、請求項１３の構成によりハザード回避の手段を無効化することができる。
【００６５】
請求項１４に記載の発明によれば、外部メモリデータ転送装置が動作を開始する時間と「作動状態」になる時間とに開きがある場合、ハザードが発生する可能性があるため、フラグレジスタ（ビジーフラグ）は外部メモリデータ転送装置の作動中であることを示すため、外部メモリデータ転送装置への動作指示が与えられた直後に「作動状態」に設定するのが望ましい。請求項１４においては、外部メモリデータ転送装置への動作指示となる命令と同時にビジーフラグが「作動状態」に設定されるためハザードの心配がなくなる。
【００６６】
請求項１５に記載の発明によれば、フラグレジスタ（ビジーフラグ）の状態をグローバルプロセッサ側でリードできるため、外部メモリデータ転送装置が作動中であるかどうかの判断がプログラムで可能となる。
【発明を実施するための最良の形態】
【００６８】
以下、この発明の実施形態につき図面を参照して説明する。図１は、この発明の第１の実施形態にかかるＳＩＭＤ型プロセッサの全体構成を示すブロック図である。尚、従来例と同一部分には同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
【００６９】
図１に示すように、この第１の実施形態においては、従来例とは異なり、システムバス７を介しての外部メモリデータ転送装置６とプロセッサ１００の接続を廃止している。
【００７０】
プロセッサ１００は、図示しないほかの周辺機器に接続する必要があるため、プロセッサ１００はシステムバス７に接続しているが、この発明では外部メモリデータ転送装置６が必ずしもシステムバスに接続しなくてもよい。そのため、図１では表示しない。
【００７１】
プロセッサ１００内部において、従来例では、外部入出力ポート４からは、レジスタファイル２にしか接続しなかったが、この実施形態では、新たにグローバルプロセッサ（ＧＰ）１との接続経路４１を備える。これにより、外部メモリデータ転送装置６からグローバルプロセッサ１内部にアクセス可能となる。グロバールプロセッサ１には、このプロセッサのプログラムＲＡＭとデータＲＡＭ、グローバルプロセッサ（ＧＰ）実行部１０ｂ、制御部１０ｃ、プロセッサエレメント（ＰＥ）との間でデータ等のやり取りを行うＰＥインターフェース１０ａ及びプロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な１つ以上の情報格納手段としてのポストレジスタ１２とが内蔵されている。
【００７２】
ＧＰ実行部１０ｄには、プログラムカウンタ（ＰＣ）、汎用レジスタであるＧ０〜Ｇ３レジスタ、スタックポインタ（ＳＰ）、リンクレジスタ（ＬＳ、ＬＩ、ＬＮ）、プロセッサステータスレジスタ（Ｐ）、演算を実行するユニットであるＡＬＵ等を備える。制御部１０Ｃには、命令デコーダ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路等を備える。
【００７３】
ポストレジスタ１２は、経路４１を介して外部入出力ポート４に接続されており、外部メモリデータ転送装置６からアクセス可能なグローバルプロセッサ（ＧＰ）１内蔵のレジスタである。これにより、外部メモリデータ転送装置６からグローバルプロセッサ（ＧＰ）１の内部にアクセス可能としている。外部メモリデータ転送装置６の各種設定は、この経路４１を用いて実行される。
【００７４】
そして、外部メモリデータ転送装置６が、外部メモリ５から処理する元の画像データを読み出しプロセッサエレメントのレジスタファイル２に書き込む、あるいはレジスタファイル２から処理後の画像データを読み出し外部メモリ５に書き込むように制御する。
【００７５】
尚、この経路４１は、レジスタファイル２を通る経路とは別のように、図１では記載しているが、図２に示すように、外部入出力ポート４からレジスタファイル２にデータを送るバスで兼用することができる。
【００７６】
図２に、この実施形態の詳細を示す。図１３で示したと同様に、グロバールプロセッサ（ＧＰ）１には、このプロセッサ１００のプログラムＲＡＭ１０ｅとデータＲＡＭ１０ｆが内蔵され、プログラムカウンタ（ＰＣ）、汎用レジスタであるＧ０〜Ｇ３レジスタ、スタックポインタ（ＳＰ）、リンクレジスタ（ＬＳ、ＬＩ、ＬＮ）、プロセッサステータスレジスタ（Ｐ）が内蔵されている。これらのレジスタと図示していない命令デコーダ、ＡＬＵ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を使用してＧＰ命令の実行が行われることも同様である。
【００７７】
図２に示すように、この実施形態では、グローバルプロセッサ（ＧＰ）１内に、さらに情報記憶手段としてのポストレジスタ１２…を備える。このポストレジスタ１２は、外部入出力ポート４に接続されており、外部メモリデータ転送装置６から直接アクセス可能なＧＰ内蔵のレジスタである。そして、このポストレジスタ１２は、グローバルプロセッサ（ＧＰ）１内の図示する内部データバス１５にも接続され、汎用レジスタＧ０〜Ｇ３などと同様に、命令によってデータの入出力が可能である。
【００７８】
外部入出力ポート４とポストレジスタ１２…の接続は、ポストレジスタ１２…が後述するレジスタファイル２の各ＰＥの最上段レジスタ２０ａへのアクセスと同一のバス２２、２３上に接続される形となる。バス２２はコントロールバス、バス２３はデータバスとして用いられる。紙面の都合で３個のポストレジスタ１２…を図示しているが、レジスタの個数は自由である。
【００７９】
ＰＥ命令実行時は命令デコーダ、レジスタファイル制御回路１０、ＰＥ演算制御回路１１を使用して、レジスタファイル２の制御と演算アレイ３の制御を行う点は、図１３に示した従来と同じである。
【００８０】
レジスタファイル２には、各ＰＥに８ビットのレジスタ２０が複数本内蔵されており、ＰＥ数分の組みがアレイ構成になっている。レジスタ２０はＰＥごとにＲ０、Ｒ１、Ｒ２、．．．と呼ばれている。それぞれのレジスタは、演算アレイ３に対してポートを備えており、８ビットのリード／ライト兼用のレジスタバス２１で演算アレイ３からアクセスされる。この点も従来と同じである。
【００８１】
尚、演算アレイ３の構成等は、従来例と同じであるため、説明は省略する。
【００８２】
レジスタファイル２に示されるレジスタ２０の内、最上段のレジスタ２０ａは、図２では図示されていない外部メモリデータ転送装置６によって内容の読み出し／書き込みが可能なレジスタとしている。プロセッサ１００外の外部メモリデータ転送装置６からデータバス２３とコントロールバス２３からのコントロール信号を用いて、任意のレジスタの読み出し／書き込みが可能である。
【００８３】
外部メモリデータ転送装置６は、この最上段レジスタ２０ａへのアクセスで任意のレジスタの読み出し／書き込みを行うのと同様に、前述のポストレジスタ１２…にもアクセス可能である。
【００８４】
外部メモリデータ転送装置６からポストレジスタ１２にアクセスするために、ポストレジスタ１２の固有の番地をレジスタファイル２のレジスタ２０ａの番地とは異なった固有の番地が割り振られている。その一例を図３に示す。
【００８５】
この例では、このプロセッサ１００が備えるＰＥを２２４個としている。ＰＥ０，ＰＥ１，ＰＥ２，…，ＰＥ２２２，ＰＥ２２３の順にアドレス００ｈ，０１ｈ，０２ｈ，…，ＣＥｈ，ＣＦｈと割り振られている。ポストレジスタ１２のためのアドレスは、Ｆ０ｈ〜ＦＦｈとなっており、Ｅ０ｈ〜ＥＦｈのアドレスは未使用となっている。
【００８６】
次に、ポストレジスタ１２の機能について説明する。前述のように、Ｆ０ｈ〜ＦＦｈのアドレスに配置されたポストレジスタ１２のさらに詳しいアドレスを図４に示す。ここに示す例では、ポストレジスタ１２として、１１種のレジスタを装備している。外部メモリデータ転送装置６からのアクセスでは、外部メモリデータ転送装置６からポストレジスタ１２に書き込みを行うとき（ライト時）と、外部メモリデータ転送装置６がポストレジスタ１２から読み出しを行うとき（リード時）で機能が異なる場合があるため、同一レジスタでライト時とリード時の２通り記載しているものがある。これらは別アドレスとして分離することも可能である。
【００８７】
図４中の“−”は機能が割り付けられていないことを示し、“←”は“ライト時”と機能が同じであることを示す。以下各番地につき説明する。
【００８８】
Ｆ０ｈ番地：制御レジスタ：外部メモリデータ転送装置６自身のコントロールを行う。
プロセッサ１００のプログラム実行により、外部メモリデータ転送装置６の各種指示が必要になった場合、従来は、システムバス７を介した指示を行っていたが、この発明では、グローバルプロセッサ（ＧＰ）１の内部において、命令で外部メモリデータ転送装置６の制御レジスタに指示データを書き込む。外部メモリデータ転送装置６は、Ｆ０ｈ番地のこのレジスタをリードし、プログラムから外部メモリデータ転送装置６への指示を取り込む。ここでの指示内容は、「外部メモリデータ転送装置の初期化」、「転送のスタート」、「有効範囲つき転送」などである。
【００８９】
Ｆ１ｈ番地：転送開始ＰＥアドレスである。
外部メモリデータ転送装置６が外部メモリ５とレジスタファイル２の間のデータを転送するとき、プロセッサ１００内のＰＥすべてが有効データとして取り扱わない場合に対応する。有効とされる範囲の先頭ＰＥの番地をグローバルプロセッサ（ＧＰ）１の内部において設定する。外部メモリデータ転送装置６は、このレジスタから読み出した内容を有効範囲の先頭ＰＥ番地として扱う。
【００９０】
Ｆ２ｈ番地：転送終了ＰＥアドレスである。
外部メモリデータ転送装置６が外部メモリ５とレジスタファイル２の間のデータを転送するとき、プロセッサ１００内のＰＥすべてが有効データとして取り扱わない場合に対応する。有効とされる範囲の最終ＰＥの番地をグローバルプロセッサ（ＧＰ）１の内部において設定する。外部メモリデータ転送装置６は、このレジスタから読み出した内容は、有効範囲の最終ＰＥ番地として扱う。
【００９１】
Ｆ３ｈ番地：トグルである。
外部メモリデータ転送装置６およびグローバルプロセッサ（ＧＰ）が双方からアクセス可能なレジスタである。ライトするデータが”１”となっているビットは、記憶内容が反転（”１”ならば”０”となり、”０”ならば”１”となる）する。”０”となっているビットの記憶内容は変化しない。双方から同一内容にアクセスできるため、ハンドシェイクの機構を構築可能である。
【００９２】
Ｆ４ｈ番地：割込み要求である。
このレジスタに対して外部メモリデータ転送装置６からデータを書き込むと、プロセッサ１００に対して割込み要求できる。プロセッサ１００は、通常の外部端子（割込み要求端子）とは別の割込み処理を用意し動作する。
【００９３】
Ｆ５ｈ〜ＦＡｈ番地：データポート０〜５である。
外部メモリデータ転送装置６とグローバルプロセッサ（ＧＰ）１の間でデータの交換をするポートとして使用する。同機能のものを６本備える。外部メモリデータ転送装置６からグローバルプロセッサ（ＧＰ）１への経路と、グローバルプロセッサ（ＧＰ）１から外部メモリデータ転送装置６への経路を別として異なる記憶装置を備える。
【００９４】
ＦＢｈ番地：ＤＲＡＭアクセスリクエスト／ＤＲＡＭアクセスアクノリッジである。
外部メモリデータ転送装置６からライト時はアクセスリクエストとして機能する。外部メモリデータ転送装置６から直接データＲＡＭにアクセスするとき、データＲＡＭへの「アクセス権」を要求する。外部メモリデータ転送装置６からリード時はアクセスアクノリッジとして機能する。データＲＡＭへの「アクセス権」が設定されたかどうかを示す。
【００９５】
ＦＣｈ番地：ＤＲＡＭアクセス制御である。
外部メモリデータ転送装置６から直接データＲＡＭにアクセスするときの各種設定を行う。この設定は、アクセスアドレスの自動加算を行うか否かの設定などがある。
【００９６】
ＦＤｈ番地：ＤＲＡＭポートである。
データＲＡＭへのアクセスするときのデータポート。データＲＡＭのＤＲＡＭアドレスレジスタの内容の番地に対して読み出し／書き込み可能である。
【００９７】
ＦＥｈ〜ＦＦｈ：ＤＲＡＭアドレスである。
データＲＡＭにアクセスするときのアドレスを格納するレジスタである。ｌｏｗとｈｉｇｈが用意され、１６ビットのアドレスまで指定が可能。アドレスの自動加算の設定の場合、ＤＲＡＭポートへの読み出し／書き込みごとにＤＲＡＭアドレスの内容が“１”加算される。
【００９８】
図１で示された外部メモリデータ転送装置６は、外部入出力ポート４に対してなんらかのアクセスが発生していないときには、上記Ｆ０ｈ番地の制御レジスタからリードを行う機能を持つ。
【００９９】
図５に、ポストレジスタ１２からのデータＲＡＭアクセスの構成例を示す。ここで示す構成例では、外部メモリデータ転送装置６を２個の構成としている。それぞれ、外部メモリデータ転送装置Ａ（６Ａ）、外部メモリデータ転送装置Ｂ（６Ｂ）とする。
【０１００】
それぞれの外部メモリデータ転送装置６Ａ、６Ｂに接続されているのが、外部入出力ポート４を通じてアクセスされるポストレジスタ群Ａ、Ｂ（１２Ａ、１２Ｂ）である。ポストレジスタ群１２Ａ、１２Ｂには、「アクセスリクエスト／アクセスアクノリッジ」「アクセス制御」「データポート」「アドレス」が示されている。データＲＡＭアクセスに無関係なポストレジスタ１２は、図示していない。これらポストレジスタ１２として図示されているレジスタは、図４のＦＢｈ番地〜ＦＦｈ番地のレジスタに相当するものとする。
【０１０１】
ポストレジスタ１２Ａ、１２Ｂからは、データＲＡＭ１３に対してアクセス可能な経路があるが、途中に選択器１４があり、データＲＡＭ１３にアクセス可能なのは、選択器１４によって選択された１通りだけである。選択器の選択肢にはＧＰのデータＲＡＭアクセス回路からの経路も含まれている。
【０１０２】
通常のグローバルプロセッサ（ＧＰ）１からのアクセスがこの経路である。選択器１４の選択は、アクセス権設定回路１６からの信号による。アクセス権設定回路１６は、優先順位判定回路１７からの情報とプロセッサステータスレジスタ（Ｐレジスタ）１９からの情報によって、データＲＡＭ１３へのアクセス可能とするのはどれかを判定する。ポスト
レジスタ１２Ａに「アクセス権」を設定する場合は、ポストレジスタ１２Ａのアクセスアクノリッジに通知を、ポストレジスタ１２Ｂに「アクセス権」を設定する場合は、ポストレジスタ１２Ｂのアクセスアクノリッジに通知を行う。
【０１０３】
優先権判定回路１７は、複数のポストレジスタ群より同時に「アクセス権」の要求を受けたときにどれを選択するかであり、その優先順は、優先順位設定レジスタ１８に従う。優先順位設定レジスタ１８の内容は、固定またはグローバルプロセッサ（ＧＰ）１の命令で変更できるものとする。
【０１０４】
次に、この発明の動作について説明する。従来から外部メモリデータ転送装置６の最も基本的な機能は、外部メモリ５上に存在するデータ（画像データ）をＰＥのレジスタ２０に転送することと、逆にＰＥのレジスタ２０上に存在するデータを外部メモリ５に転送することにある。
【０１０５】
外部メモリ５上に存在するデータをＰＥのレジスタ２０に転送する場合、外部メモリ５から読み出した順でＰＥ順に従ってデータを転送する。この機能を利用するプログラムは、どのような転送をするのかの各種設定を外部メモリデータ転送装置６に行い、転送開始を合図するだけでよい。プログラムは転送合図の後は即座に別の演算処理を実施できる。
【０１０６】
外部メモリデータ転送装置６が所定の転送が終了すると、プロセッサ１００はＳＩＭＤ演算で転送されてきたデータを使った演算処理が可能になる。外部メモリデータ転送装置６の転送が終了したことをプロセッサ１００が知るには、２通りの方法が考えられる。
【０１０７】
１つは全データを転送に十分な時間だけ経過したことを計算する方法であり、プロセッサ１００の動作速度と外部メモリデータ転送装置６の転送速度と転送データ数が既知であり不動であれば算出可能である。もう１つの方法は、割込み要求によってプロセッサ１００に割込みをかけることである。プロセッサ１００は、割り込み処理プログラムの中で割込み要因を特定し、外部メモリデータ転送装置６の転送が終了したことを知ることができる。割込み要求による転送終了の通知は、プロセッサ１００の動作速度や外部メモリデータ転送装置６の転送速度や転送データ数が変化しても対応できるため、柔軟性のある方法といえる。ＰＥのレジスタ２０上のデータを外部メモリ５へ転送する場合も、転送開始の合図と転送終了の通知の点で同じである。
【０１０８】
図１２、図１３に示した従来のＳＩＭＤ型プロセッサ１００は、外部メモリデータ転送装置６に対する転送開始の合図や転送終了の割込み要求など、外部メモリデータ転送装置６とプロセッサ１００間のシステムバス７の接続によって行われていた。
【０１０９】
この発明においては、転送開始の合図は、グローバルプロセッサ（ＧＰ）１がポストレジスタ１２の内の制御レジスタに「転送開始」を示す内容を書き込み、外部メモリデータ転送装置６が制御レジスタからリードすることで、「転送開始」を知らせる。転送終了時は、外部メモリデータ転送装置６がポストレジスタ１２の内の割込み要求レジスタに「割込み要求」の内容を書き込むことにより、プロセッサ１００に割込みが発生し、プロセッサは転送終了を知ることができる。
【０１１０】
図１に示すような外部メモリデータ転送装置６がシステムバス７に接続しないシステムにおいても、上記のように基本的転送機能については遜色がない。
【０１１１】
ＰＥのレジスタ２０上にあるデータについて、全ＰＥが必ずしも有効とは限らない。そのため、外部メモリ５上のデータをＰＥの一部にしか転送しない場合がある。この場合は、ポストレジスタ１２の中の対応するレジスタに次のように格納する。すなわち、有効なＰＥの範囲のうち、先頭のＰＥのアドレスを転送開始ＰＥアドレスレジスタに、最終のＰＥのアドレスを転送終了ＰＥアドレスレジスタに格納し、「有効範囲つき転送」であることを制御レジスタを使って外部メモリデータ転送装置６に知らせる。外部メモリデータ転送装置６は、「有効範囲つき転送」における「転送開始」を受けたとき、転送開始ＰＥアドレスレジスタと転送終了ＰＥアドレスレジスタをそれぞれリードしてから、転送を開始する。転送の対象となるアドレスは、転送開始ＰＥアドレスレジスタからリードした内容が開始のアドレスで、転送終了ＰＥアドレスレジスタからリードした内容が終了のアドレスとなる。
【０１１２】
次に、ポストレジスタ１２の中のトグルレジスタを用いたプロセッサ１００と外部メモリデータ転送装置６間のハンドシェークについて説明する。
【０１１３】
外部メモリデータ転送装置６はプロセッサ１００と異なったクロック系で動作する非同期動作が考えられるため、双方のデータ通信が確実に行われたどうかチェックしながら進める必要がある。例えば、Ｆ５〜ＦＡｈのデータポートを使ってプロセッサ１００から何らかのデータを外部メモリデータ転送装置６に転送する場合を想定する。プロセッサ１００は対象のデータをデータポート（０〜５）に格納したのち、制御レジスタにデータポートにデータを格納した旨の内容を格納する。外部メモリデータ転送装置６は、外部入出力ポート４の「空き」が発生するとＦ０ｈ番地の制御レジスタの読み出しを行うため、データポートに対象データが格納されていることを知り、該当データポートから対象データを読み出す。対象データを読み出したあと、外部メモリデータ転送装置６は、トグルレジスタに”１”を書き込む。トグルレジスタは”１”を書き込まれたビットだけ反転する。プロセッサ１００は、トグルレジスタをチェックし、該当のビットが反転されていれば、外部メモリデータ転送装置６が対象データを読み出したと判断し、反転していなければまだ外部メモリデータ転送装置６が対象データを読み出していないと判断できる。このようにデータの受け渡しを確実にする際にトグルレジスタを利用できる。
【０１１４】
この実施形態では、ポストレジスタ１２からデータＲＡＭ（ＤＲＡＭ）１３へアクセスする機能を備えており、この機能を利用することで外部メモリデータ転送装置６から直接データＲＡＭ１３にアクセス可能となる。データＲＡＭ１３は、通常はプロセッサ動作でプログラムが利用する記憶装置であるため、外部メモリデータ転送装置６とアクセスが重なる可能性がある。また、同様の機能を持つ外部メモリデータ転送装置６を複数持つシステムでは、ポストレジスタ１２が複数個になり、データＲＡＭアクセスが同時になり競合する可能性がある。
【０１１５】
一般的にプロセッサのデータＲＡＭ１３として利用されているメモリの種類は、同時に１個のデータをアクセス可能なシングルポートのメモリであるため、アクセスの競合は避けなければならない。
【０１１６】
アクセス競合を避けるため、「アクセス権」を設定する。「アクセス権」を得ているときのみがデータＲＡＭへのアクセスが可能となる。データＲＡＭ１３へのアクセスを行うとき、最初にデータＲＡＭのどこにアクセスするのかをＤＲＡＭアドレスレジスタに設定する。次にアクセス制御の設定を行う。例えばアクセスのたびにＤＲＡＭアドレスレジスタの値が“１”加算される「自動加算アクセス」をここで選択する。「自動加算アクセス」を選択すると、ＤＲＡＭ上の連続するアドレスのデータに対して、アドレスを毎回設定することなく、連続でアクセス可能になる。次に、アクセスリクエストレジスタにアクセス要求を書き込む。
【０１１７】
プロセッサは、「アクセス権」要求があり、その要求に応えて「アクセス権」を設定できる場合に限り、要求したポストレジスタに対して「アクセス権設定」を示す。これはアクセスアクノリッジレジスタを読み出すことで、外部メモリデータ転送装置６から確認できる。外部メモリデータ転送装置６は、「アクセス権」を確認してから、ＤＲＡＭポートにアクセスを行う。ＤＲＡＭポートに書き込みを行ったデータは、ＤＲＡＭアドレスレジスタに設定されたデータＲＡＭ上の番地に対して書き込まれる。また、ＤＲＡＭポートに読み出しを行ったときは、ＤＲＡＭアドレスレジスタに設定されたデータＲＡＭ上の番地のデータが読み出される。ＤＲＡＭアドレスレジスタを変更せずにアクセスすると、データＲＡＭ上の同じ番地にアクセスすることになるが、「自動加算アクセス」を選択している場合はアクセスのたびにＤＲＡＭアドレスレジスタが“１”加算されるため、連続する次の番地へアクセスすることができる。また、「アクセス権」がないにもかかわらずＤＲＡＭポートにアクセスした場合、書き込みは無視され、読み出しは無効データが読み出される。ひとつのポストレジスタ１２が「アクセス権」を要求したとき、このポストレジスタ１２に対し「アクセス権」を与えるか否かの判断は、プロセッサの命令で行われるのではなく、アクセス権設定回路で自動的に行われる。プロセッサにおけるモード選択で、要求があっても「アクセス権」を与えないことも可能で、これは命令によりプロセッサ内部のレジスタにモード設定することで行う。例えば、プロセッサステータスを示すＰレジスタに書き込み／読み出し可能な１ビットを設け、このビット「ＤＲＡＭアクセス許可フラグ」が“１”のときポストレジスタからのアクセスリクエストを受け付け、“０”のときポストレジスタからのアクセスリクエストは無視することとする。複数のポストレジスタが同時にアクセスリクエストを発信した場合のため、ポストレジスタに予め優先順位を設定しておく。この優先権は、回路において固定とするか、グローバルプロセッサ（ＧＰ）１の内部レジスタを設けて可変とする。
【０１１８】
ポストレジスタ１２で獲得したデータＲＡＭ１３の「アクセス権」は、必要なアクセスを実施した後はプロセッサに返却する。返却はＤＲＡＭアクセスリクエストレジスタに、「アクセス権返却」の内容を書き込むことで実現する。プロセッサがポストレジスタの都合に関係なく「アクセス権」を奪回する手段を設定する。前述の「ＤＲＡＭアクセス許可フラグ」に“０”を書き込むことでアクセス権を確保しているポストレジスタは、アクセス権を放棄させられる。
【０１１９】
ところで、外部との転送を行っている対象となっているＰＥ内蔵のレジスタは、ＳＩＭＤ型プロセッサ側で同一のレジスタへのアクセスがある場合にハザードが発生し、データがプログラマの意図通りの処理ができない可能性がある。これを避けるためには、プログラマが外部との転送動作の状況を正確に把握する必要がある。実行プログラムで正確に把握するための方法は、なんらかのアクセス手段により外部メモリデータ転送装置６が動作中であるか否かを確認する方法と、外部メモリデータ転送装置６の動作時間およびＳＩＭＤプロセッサ１００自らのプログラムの実行時間を正確に算出でき、外部メモリデータ転送装置６の転送に要する時間を経過後まで該当レジスタへのアクセスを控える方法が考えられる。
【０１２０】
前者は一般的に外部メモリデータ転送装置６に実行状態を示すレジスタを設け、そのレジスタにＳＩＭＤ型プロセッサがシステムバス経由でアクセスし確認する方法となる。システムバスを使用するため、この発明のように、バス方式でかつシステムバスを不要とする方法では実現できない。また、プログラム処理としてはポーリング処理であるため、対象レジスタへのアクセスが必要となる毎に、このレジスタのリード及びチェックというステップをプログラムする必要がある。
【０１２１】
後者はプログラマがプログラムする時点で正確に時間の見積りができることが条件となる。すなわち、ＳＩＭＤ型プロセッサ１００の動作速度、命令セットとその実行時間、外部メモリデータ転送装置６の転送能力が既知でかつ固定である必要がある。
【０１２２】
そこで、次に示す第２の実施形態は、バス方式を採用することによる外部メモリデータ転送装置６による高い自由度のアクセスを実現し、システムバスを不要とする利点を得ながら、かつプログラマがハザード回避を考慮しなくともハザードを回避できる機能を有したＳＩＭＤ型プロセッサで構成した画像処理プロセッサである。
【０１２３】
図６にシステムバスを不要とする利点を得ながら、かつプログラマがハザード回避を考慮しなくともハザードを回避できる機能を有したＳＩＭＤ型プロセッサで構成した画像処理プロセッサの実施形態を示す。尚、上記した実施形態と同一部分には同一符号を付し、説明の重複を避けるために、ここでは、その説明を割愛する。
【０１２４】
図６に示す第２の実施形態においても、システムバスを介しての外部メモリデータ転送装置６とプロセッサ１００の接続を廃止している。プロセッサ１００は図示しないほかの周辺機器に接続する必要があるため、プロセッサ１００はシステムバスに接続しているが、この実施形態では、外部メモリデータ転送装置６が必ずしもシステムバスに接続しなくてもよい。
【０１２５】
プロセッサ１００内部において、グローバルプロセッサ（ＧＰ）１内部のポストレジスタ１２との接続経路を備える。これにより、外部メモリデータ転送装置６からグローバルプロセッサ（ＧＰ）１内部のポストレジスタ１２にアクセス可能となる。
【０１２６】
上述の実施形態と同様に、グロバールプロセッサ（ＧＰ）１には、本プロセッサのプログラムＲＡＭ１０ｅとデータＲＡＭ１０ｆが内蔵され、ＧＰ実行部１０ｂにはプログラムカウンタ（ＰＣ）、汎用レジスタであるＧ０〜Ｇ３レジスタ、スタックポインタ（ＳＰ）、リンクレジスタ（ＬＳ、ＬＩ、ＬＮ）、プロセッサステータスレジスタ（Ｐ）、演算を実行するユニットであるＡＬＵが内蔵されている。これら各回路は内部データバス１５に接続されている。制御部１０ｃには、図示していないが命令デコーダ、メモリ制御回路、割り込み制御回路、外部Ｉ／Ｏ制御回路、ＧＰ演算制御回路を内蔵している。
【０１２７】
この第２の実施形態のポストレジスタ１２には、Ｐ１レジスタ１２ａとＰ２レジスタ１２ｂを備えている。このポストレジスタ１２は、上述の実施形態と同様に、外部入出力ポート４に接続されており、外部メモリデータ転送装置６からアクセス可能なグローバルプロセッサ（ＧＰ）１内蔵のレジスタである。
【０１２８】
この第２の実施形態のポストレジスタ１２には、２通りあり、制御部１０ｃからライトされた内容を外部メモリデータ転送装置６へリードするＰ２レジスタ１２ｂと、外部メモリデータ転送装置６からライトされた内容を制御部１０ｃへ伝えるＰ１レジスタ１２ａとなっている。
【０１２９】
外部入出力ポート４とポストレジスタ１２の接続は、ポストレジスタ１２が後述するレジスタファイル２の各ＰＥの最上段レジスタ２０ａへのアクセス経路２２，２３と同一のバス上に接続される形となる。すなわち、図１における経路４１と経路２２（２３）は実質的に同一とすることができる。
【０１３０】
ＰＥ命令実行時は命令デコーダ、レジスタファイル制御回路１０、ＰＥ演算制御回路１１１を使用して、レジスタファイル２の制御と演算アレイ３の制御をおこなう点は、上記実施形態、従来例と同じである。
【０１３１】
レジスタファイル２には各ＰＥに８ビットのレジスタが複数本内蔵されており、ＰＥ数分の組みがアレイ構成になっている。レジスタはＰＥごとにＲ０、Ｒ１、Ｒ２、．．．と呼ばれている。それぞれのレジスタは演算アレイに対してポートを備えており、８ビットのリード／ライト兼用のバス（以下レジスタバス）２１で演算アレイ３からアクセスされる。この点も上記実施形態、従来例と同じである。
【０１３２】
演算アレイ３の構成正等は、従来例と同じであるため、ここでは説明は省略する。
【０１３３】
レジスタファイル２に示される最上段のレジスタ２０は、図６では図示されていない外部メモリデータ転送装置６によって内容の読み出し／書き込みが可能なレジスタである。プロセッサ１００外の外部メモリデータ転送装置６からデータバス２３とコントロール信号２２を用いて、任意のレジスタの読み出し／書き込みが可能である。
【０１３４】
外部メモリデータ転送装置６は、この最上段レジスタ２０ａへのアクセスで任意のレジスタの読み出し／書き込みを行うのと同様に、前述のポストレジスタ１２にもアクセス可能となる。
【０１３５】
外部メモリデータ転送装置６からポストレジスタ１２にアクセスするためには、ポストレジスタ１２の固有の番地を、レジスタファイル２のレジスタの番地とは異なった固有の番地を割り振られる。その例を図１０に示す。
【０１３６】
この図１０に示す例では、プロセッサ１００が備えるＰＥを２２４個としている。ＰＥ０，ＰＥ１，ＰＥ２，…，ＰＥ２２２，ＰＥ２２３の順にアドレス００ｈ，０１ｈ，０２ｈ，…，ＣＥｈ，ＣＦｈと割り振られている。ポストレジスタ１２のためのアドレスは、ＦＥｈ〜ＦＦｈとなっており、Ｅ０ｈ〜ＦＤｈのアドレスは未使用となっている。
【０１３７】
次に、図６のポストレジスタ１２について説明する。ＦＦｈのアドレスに配置されたＰ２レジスタ１２ｂは、グローバルプロセッサ（ＧＰ）１の制御部１０ｃによって設定されるレジスタで、その設定された内容は外部メモリデータ転送装置６によってリードされる。プロセッサ１００は、外部メモリデータ転送装置６に対して、このＰ２レジスタ１２ｂを経て動作の指示を出す。プロセッサ１００は、自らのプログラム実行の中で、外部メモリデータ転送装置６の動作が必要になったとき、すなわち、それは外部メモリ５とレジスタファイル２の間でデータの転送の必要が生じたときであって、そのときプロセッサ１００はＰ２レジスタ１２ｂの内容をセットする命令を発行する。
【０１３８】
外部メモリデータ転送装置６はプロセッサ１００からの指示をＰ２レジスタ１２ｂからリードした内容から得る。Ｐ２レジスタ１２ｂは、外部メモリデータ転送装置６からリードされた後、その内容を自動的にリセット状態、すなわち外部メモリデータ転送装置６への指示がない状態へ移行する。
【０１３９】
ＦＥｈのアドレスに配置されたＰ１レジスタ１２ａは、外部メモリデータ転送装置６によって設定されるレジスタで、その設定された内容はグローバルプロセッサ（ＧＰ）１の制御部１０ｃへ伝えられる。またＰ１レジスタ１２ａは、制御部１０ｃからの信号で内容をセット（”１”にする）する機能がある。
【０１４０】
次に、本発明の動作について説明する。従来から外部メモリデータ転送装置６の最も基本的な機能は、外部メモリ５上に存在するデータをＰＥのレジスタに転送することと、逆にＰＥのレジスタ上に存在するデータを外部メモリ５に転送することにある。
【０１４１】
外部メモリ５上に存在するデータをＰＥのレジスタに転送する場合、外部メモリ５から読み出した順にＰＥ順に従ってデータを転送する。この動作のコントロールはＳＩＭＤプロセッサ１００のプログラムの制御下におかれる。それは、ＳＩＭＤプロセッサ１００の内部で実行される画像処理の進行の都合で、データ転送が必要にあるためである。一般的にこの動作指示は、システムバス７を経由して外部メモリデータ転送装置６に伝えられるが、第１の実施形態と同様に、外部入出力ポート４を経由して伝えられる。この第２の実施形態もこの外部入出力ポート４を経由の方法を採る。
【０１４２】
ＳＩＭＤプロセッサ１００は、データ転送の必要が生じたとき、ポストレジスタ１２のＰ２レジスタ１２ｂに対して指示を設定する命令を発行する。このとき同時にＰ１レジスタ１２ａの内容も“１”に設定する。外部メモリデータ転送装置６は、動作を指示されていない状態のときには、常にＰ２レジスタ１２ｂのリードを行い、Ｐ２レジスタ１２ｂに転送指示が書き込まれると指示通りの転送を開始する。
【０１４３】
外部メモリデータ転送装置６は指示された転送が終了すると、Ｐ１レジスタ１２ａに“０”をライトする。これでＰ１レジスタ１２ａは、外部メモリデータ転送装置６が動作中には“１”を、外部メモリデータ転送装置６の動作休止中は“０”を示すことになる。すなわち、Ｐ１レジスタ１２ａは外部メモリデータ転送装置６の動作状態を示すビジーフラグとして作用する。
【０１４４】
制御部１０ｃは、ＳＩＭＤ命令（ＰＥを操作する命令）をＰ１レジスタ１２ａの内容を条件にストップする。Ｐ１レジスタ１２ａの内容が“０”であるときにはすべての命令に制限がなく通常通り発行される。Ｐ１レジスタ１２ａの内容が“１”のとき、ＳＩＭＤ命令すべての発行をストップする。ストップはウエイト状態であり、Ｐ１レジスタ１２ａの内容が“０”になるまで命令の制御信号発行直前でストップする。Ｐ１レジスタ１２ａの内容が“０”になると、ストップしていたＳＩＭＤ命令は有効になり実行される。ＳＩＭＤ命令以外の場合、Ｐ１レジスタ１２ａの内容に関係なく通常通り動作する。
【０１４５】
上記したように、外部メモリデータ転送装置６の作動中は、ＰＥのレジスタに対して外部メモリデータ転送装置６の方からアクセスがあるため、ＳＩＭＤ型プロセッサ１００側で同一のレジスタへのアクセスがある場合にハザードが発生し、データがプログラマの意図通りの処理ができない可能性がある。この第２の実施形態では、Ｐ１レジスタ１２ａがビジーフラグとして作用するため、外部メモリデータ転送装置６の作動中は、ハザードを起こす可能性のある命令の実行の完了が止められる、すなわち、ウエイトがかかるため、プログラマが正確に時間を把握しなくとも、ハザードが発生する心配がなくなる。
【０１４６】
次に、図７に示した第３の実施形態につき説明する。図７は、図６に示す第２の実施形態に対して、レジスタ検出装置１２ｃと判定装置１２ｄが追加されている。レジスタ検出装置１２ｃはレジスタファイル制御回路１０からアクセスするレジスタ番号を伝えられる経路を持ち、外部メモリデータ転送装置６によりアクセスされるＰＥのレジスタ番号との比較を行い一致を検出する。判定装置１２ｄは、レジスタ検出装置１２ｃとＰ１レジスタ１２ａの内容からグローバルプロセッサ（ＧＰ）１の制御部１０ｃへ伝える信号を生成する。
【０１４７】
次に、図７に示した第３の実施形態の動作に付き説明する。図７に示す例では、ＳＩＭＤ命令で必要とするレジスタ番号をレジスタファイル制御回路１０から読み取り、該当するレジスタ番号と一致するか否かレジスタ検出装置１２ｃにより検出することができる。この検出結果が「一致」であり、かつＰ１レジスタ１２ａの内容が“１”の場合を判定装置１２ｄで検出し、制御部１０ｃへ伝え、命令実行の条件としている。この場合、Ｐ１レジスタ１２ａの内容が“１”でＳＩＭＤ命令を実行しようとしても、レジスタ番号が不一致の場合、Ｐ１レジスタ１２ａの内容が“０”であるのと同じ条件が制御部１０ｃへ伝播されるため、命令実行がストップすることはない。ＳＩＭＤ命令をすべて条件付きにするのではなく、該当するＰＥのレジスタを使用する場合に限りストップすることになるため、通常通り動作する命令の範囲が増え、ストップする機会が減少し、処理速度が向上する。
【０１４８】
次に、図８に示した第４の実施形態につき説明する。図８は、図６に示す第２の実施形態に対して、Ｐ１レジスタ１２ａの内容をＧＰ実行部１０ｂ内のデータバス１５に送出する経路を備える。
【０１４９】
次に、図８に示した第４の実施形態の動作につき説明する。図８に示す例では、Ｐ１レジスタ１２ａの内容をＧＰ実行部１０ｂのデータバス１５に接続する経路があり、Ｐ１レジスタ１２ａの内容をプログラム上で利用できる。これは、一般的に外部メモリデータ転送装置６の実行状態を確認するポーリング処理と同様のことが実施できるということを意味している。
【０１５０】
次に、図９に示した第５の実施形態につき説明する。図９は、図６に示す第２の実施形態に対して、ＧＰ実行部１０ｂにＭＯＤＥレジスタ１１０を備え、ＧＰ実行部１０ｂのデータバス１５からリード／ライト可能なように接続する。更に、許可回路ＥＮ１２ｅを備え、Ｐ１レジスタ１２ａの内容が“１”であり、同時にＭＯＤＥレジスタ１１０の内容が“１”である場合のみ、制御部１０ｃに“１”を伝えるよう接続する。
【０１５１】
次に、図９に示した第５の実施形態の動作につき説明する。図９に示す例では、ＧＰ実行部１０ｂ内部のＭＯＤＥレジスタ１１０に“０”を設定すると、許可装置ＥＮ１２ｅの動作により、Ｐ１レジスタ１２ａの内容の如何に拘わらず制御部１０ｃへはＰ１レジスタ１２ａの内容が“０”であるのと同じ状態で伝えられ、あらゆる命令実行について条件がつかない状態となる。ＭＯＤＥレジスタ１１０に“１”を設定すると、許可装置ＥＮ１２ｅの動作により、Ｐ１レジスタ１２ａの内容がそのまま制御部１０ｃへ伝えられ、一部の命令実行について条件がつく状態となる。
【０１５２】
図１１は図１に示す実施形態に対し、プロセッサ１００外部の外部メモリデータ転送装置６と外部メモリ５に替え、外部シリアルデータ処理装置８を接続したものである。外部シリアルデータ処理装置８は、ＳＩＭＤプロセッサ１００の並列処理に合わない処理、例えば画像処理の誤差拡散やラベリング処理などに多用される処理であり、ある画素の処理内容が隣接する画素の処理後の内容に左右される場合には、ＳＩＭＤの処理に適さない。このような処理は、画素データを順次読み込み、処理後の結果を順次格納する方式で処理する必要がある。そこで、外部入出力ポート４に接続する外部シリアルデータ処理装置８が、画素データを順次読み込み、処理後順次結果を各レジスタに戻す方法が考えられる。この図１１に示す例では、外部シリアルデータ処理装置８の処理内容は何であってもよく、データの読み込み／書き込みが外部メモリデータ転送装置６と同様に実行できれば良い。
【０１５３】
ＳＩＭＤ型プロセッサでは比較的苦手とする演算、たとえば最大値や最小値を求める演算や計数等では、シリアルに処理する方が適している場合がある。シリアル処理は特別な装置がなくてもソフト（プログラム）による実行が可能であるが、専用の装置が利用できれば一般的にソフト処理より高速になる。上記した図１１に示す構成によれば、ＰＥに内蔵するレジスタに外部からアクセス可能なポート４を持つＳＩＭＤ型プロセッサ１００の場合、このポート４にシリアル処理するための装置を接続するのに適している。ＳＩＭＤ型プロセッサが比較的苦手とするシリアル演算を、接続された外部シリアルデータ処理装置８で行い、ＳＩＭＤ型プロセッサ１００は外部シリアルデータ処理装置８の作動中に別の処理を実行できるため、プログラム実行時間が節約される。上記した各実施形態の効果は、外部シリアルデータ処理装置を接続した場合でも、同様に得られる。
【図面の簡単な説明】
【０１５４】
【図１】この発明の実施形態にかかるＳＩＭＤ型プロセッサの概略構成を示すブロック図である。
【図２】この発明の実施形態にかかるＳＩＭＤ型プロセッサの詳細な構成を示すブロック図である。
【図３】この発明の実施形態にかかるＳＩＭＤ型プロセッサにおけるレジスタへアクセスするためのアドレスの一例を示す図である。
【図４】この発明の実施形態にかかるＳＩＭＤ型プロセッサにおけるグロバールプロセッサ内のデータＲＡＭへのアクセスするためのアドレスの一例を示す図である。
【図５】この発明の実施形態にかかるＳＩＭＤ型プロセッサにおけるグロバールプロセッサ内のデータＲＡＭへのアクセス部分を示すブロック図である。
【図６】この発明の第２の実施形態にかかるＳＩＭＤ型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。
【図７】この発明の第３の実施形態にかかるＳＩＭＤ型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。
【図８】この発明の第４の実施形態にかかるＳＩＭＤ型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。
【図９】この発明の第５の実施形態にかかるＳＩＭＤ型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。
【図１０】この発明の第２の実施形態にかかるＳＩＭＤ型プロセッサを用いた画像処理プロセッサにおけるレジスタへアクセスするためのアドレスの一例を示す図である。
【図１１】この発明の他の実施形態にかかるＳＩＭＤ型プロセッサを用いた画像処理プロセッサの概略構成を示すブロック図である。
【図１２】従来のバス方式による演算データの転送を行うＳＩＭＤ型プロセッサの概略構成を示すブロック図である。
【図１３】従来のバス方式による演算データの転送を行うＳＩＭＤ型プロセッサの詳細な構成を示すブロック図である。
【符号の説明】
【０１５５】
１００  ＳＩＭＤ型プロセッサ
１  グロバールプロセッサ（ＧＰ）
２  レジスタファイル
３  演算アレイ
４  外部入出力ポート
５  外部メモリ
７  システムバス
１２  ポストレジスタ
１３  データＲＡＭ
【図１】
0004641151.tif 000002
【図２】
0004641151.tif 000003
【図３】
0004641151.tif 000004
【図４】
0004641151.tif 000005
【図５】
0004641151.tif 000006
【図６】
0004641151.tif 000007
【図７】
0004641151.tif 000008
【図８】
0004641151.tif 000009
【図９】
0004641151.tif 000010
【図１０】
0004641151.tif 000011
【図１１】
0004641151.tif 000012
【図１２】
0004641151.tif 000013
【図１３】
0004641151.tif 000014