JP4641151B2 - Simd型プロセッサ及び画像処理プロセッサ - Google Patents

Simd型プロセッサ及び画像処理プロセッサ Download PDF

Info

Publication number
JP4641151B2
JP4641151B2 JP2004148793A JP2004148793A JP4641151B2 JP 4641151 B2 JP4641151 B2 JP 4641151B2 JP 2004148793 A JP2004148793 A JP 2004148793A JP 2004148793 A JP2004148793 A JP 2004148793A JP 4641151 B2 JP4641151 B2 JP 4641151B2
Authority
JP
Japan
Prior art keywords
processor
register
external memory
transfer device
data transfer
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
Application number
JP2004148793A
Other languages
English (en)
Other versions
JP2005235161A (ja
Inventor
和彦 原
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ricoh Co Ltd
Original Assignee
Ricoh Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ricoh Co Ltd filed Critical Ricoh Co Ltd
Priority to JP2004148793A priority Critical patent/JP4641151B2/ja
Publication of JP2005235161A publication Critical patent/JP2005235161A/ja
Application granted granted Critical
Publication of JP4641151B2 publication Critical patent/JP4641151B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

この発明は、1つの演算命令により複数の画像データ等を並列処理するSIMD(Single Instruction−stream Multiple Data−stream)型プロセッサ及びSIMD型プロセッサを用いる画像処理プロセッサに関するものである。
SIMD型プロセッサでは、複数のデータに対して1つの命令で同時に同一の演算処理が実行可能である。この構造により、演算は同一であるがデータ量が非常に多い処理、例えば、デジタルコピアなどにおける画像処理に係る用途において、頻用されている。
SIMD型プロセッサにおける通常の画像処理では、複数の演算ユニット(Processor Element [PE];プロセッサエレメント)を主走査(水平走査)方向に並べ、同一の演算を同時に複数のデータに対して実行することによって高速な演算処理が可能となっている。
通常、SIMD型プロセッサを用いて画像処理を行う場合、水平走査方向にPEを展開する。プロセッサに装備しているPEが、水平走査方向の画素数より少ない場合、水平走査方向の画素をPE数単位で分割し、画像処理を複数回反復実施することで、全画素の画像処理を行う。
ここで、演算処理は複数の演算器を並べることで実現できるが、演算の対象となるデータは演算速度に見合う速度でメモリ等にアクセスする必要があり、この速度に間に合わない場合は、データのアクセス速度でプロセッサの性能が決定してしまう。
通常タイプ(SISD:Single Instruction−stream, Single Data−stream)のプロセッサでは、演算データはプロセッサのプログラムによりメモリから逐次アクセスするが、この場合にデータのアクセス速度はメモリのビット幅と転送時間で決定する。SIMDタイプにおいてもこの方法を用いると演算は並列処理に対してデータのアクセスは逐次処理となり、SISDタイプ程度に処理能力は低下してしまう。このためSIMDタイプのプロセッサでは演算対象データのアクセスはプロセッサの命令ではおこなわず、外部のメモリデータ転送装置からプロセッサ内部の入出力用のレジスタに直接アクセスする方法が採られる。
一般的にプロセッサと外部メモリデータ転送装置での処理フローは、次の通りである。(1)外部メモリデータ転送装置が演算対象データを入力用レジスタに転送。
(2)プロセッサは外部から演算データを転送済みである入力用のレジスタから演算対象データを演算用のレジスタに転送し演算を開始。
(3)プロセッサが所定の演算を実行する。この間に外部メモリデータ転送装置が次の演算対象データを入力用レジスタに転送。また、演算処理済みデータ(結果データ)が出力用レジスタにある場合は外部メモリデータ転送装置が結果データを出力用レジスタからメモリへ転送。
(4)プロセッサは演算を終了し結果データを出力用レジスタに転送。
上記のように、プロセッサの演算実行時に同時に外部のメモリデータ転送装置が演算対象データを転送することで高速化を実現している。
図12に従来のバス方式による演算データの転送を行うSIMD型プロセッサの概略図を示す。
SIMD型プロセッサ100は、グロバールプロセッサ(GP)1と、レジスタファイル2と演算アレイ3とからなるプロセッサエレメントブロックで構成される。グローバルプロセッサ(GP)1は、いわゆるSISD(Single Instruction−stream, Single Data−stream)タイプのプロセッサであり、内蔵するプログラムRAMとデータRAMにアクセスし、プログラムを解読し各種制御信号を生成する。この制御信号は内蔵する各種ブロックの制御以外にもレジスタファイル2、演算アレイ3に供給される。また、GP(グローバルプロセッサ)命令実行時は、内蔵する汎用レジスタ、ALU(算術論理演算器)等を使用して各種演算処理、プログラム制御処理を行う。
レジスタファイル2は、PE(プロセッサエレメント)命令で処理されるデータを保持している。PE命令はSIMDタイプの命令であり、レジスタファイル2に保持されている複数のデータを同時に同じ処理を行う。
このレジスタファイル2からのデータの読み出し/書き込みの制御は、グローバルプロセッサ(GP)1からの制御によって行われる。読み出されたデータは、演算アレイ3に送られ、演算アレイ3での演算処理後にレジスタファイル2に書き込まれる。また、レジスタファイル2はプロセッサ外部からのアクセスが可能であり、グローバルプロセッサ(GP)1の制御とは別に外部から特定のレジスタを読み出し/書き込みが行われる。
演算アレイ3は、PE命令の演算処理が行われる。処理の制御はすべてグローバルプロセッサ(GP)1から行われる。
外部メモリ5は、処理する元の画像データを記憶、処理後の画像データを記憶する記憶装置であり、外部メモリデータ転送装置6は外部メモリ5から処理する元の画像データを読み出し、PEのレジスタファイル2に書き込む、あるいはレジスタファイル2から処理後の画像データを読み出し、外部メモリ5に書き込む装置である。
外部入出力ポート4は、外部メモリデータ転送装置6がPEのレジスタファイル2に書き込む、あるいはレジスタファイル2から処理後の画像データを読み出しを行うためのプロセッサ100側のポートである。
外部メモリデータ転送装置6及びグローバルプロセッサ(GP)1はシステムバス7と接続されている。システムバス7は、一般的なマイコンシステムのシステムバスであり、外部メモリデータ転送装置6の各種設定は、マイコン周辺機器としてシステムバス7を介して行われる。また図示していないが、外部メモリデータ転送装置6からプロセッサ100へ割込み要求(IRQ)を通知する機能がある場合は伝達経路が存在するものとする。
図13は従来のバス方式による演算データの転送を行うSIMD型プロセッサの詳細な構成例である。
グロバールプロセッサ1には、本プロセッサのプログラム格納用のプログラムRAMと演算データ格納用のデータRAMが内蔵されている。さらに、プログラムのアドレスを保持するプログラムカウンタ(PC)、演算処理のデータ格納のための汎用レジスタであるG0〜G3レジスタ、レジスタ退避、復帰時に退避先データRAMのアドレスを保持しているスタックポインタ(SP)、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ(LS)、同じくIRQ時とNMI時の分岐元アドレスを保持するLI、
LNレジスタ、プロセッサの状態を保持しているプロセッサステータスレジスタ(P)が内蔵されている。これらのレジスタと図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を使用してGP命令の実行が行われる。
PE命令実行時は、命令デコーダ、レジスタファイル制御回路10、PE演算制御回路11を使用して、レジスタファイル2の制御と演算アレイ3の制御を行う。
レジスタファイル2には各PEに8ビットのレジスタ20が複数本内蔵されており、PE数分の組みがアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...と呼ばれている。それぞれのレジスタは演算アレイ3に対してポートを備えており、8ビットのリード/ライト兼用のバス(以下、レジスタバスという。)21で演算アレイ3からアクセスされる。図示しているレジスタは、紙面の関係で各PEで3本としている。
演算アレイ3は、16ビットALUと16ビットAレジスタ32、Fレジスタ33、条件レジスタ34、PE番号レジスタ35、マルチプレクサ36を内蔵している。PE命令による演算は、基本的にレジスタファイル2から読み出されたデータをALU31の片側の入力としてもう片側にはAレジスタ32の内容を入力として結果をAレジスタ32に格納する。したがって、Aレジスタ32とR0〜R31レジスタ20との演算が行われることとなる。
レジスタファイル2と演算部3との接続に、5to1のマルチプレクサ40を置いており、PE方向で左に1、2つ離れたデータと右に1、2つ離れたデータ、中央のデータを演算対象として選択している。また、レジスタファイル2の8ビットのデータはシフト&拡張回路41により、任意ビットを左シフトしてALU31に入力する。
PEnは、レジスタファイル2と演算アレイ3の対応する任意の1組であって、図7では、PEnを中心に前後2つのPEを示しており、PE全体の一部を示している。
レジスタファイル2に示される最上段のレジスタ20は、図示されていない外部メモリデータ転送装置によって、内容の読み出し/書き込みが可能なレジスタである。プロセッサ外の外部メモリデータ転送装置からデータバスとコントロール信号を用いて、任意のレジスタ20の読み出し/書き込みが可能である。
外部メモリデータ転送装置から任意のレジスタにアクセスするためには、メモリにアクセスするのと同じようにアドレスによる。外部メモリデータ転送装置からアクセス可能なレジスタは、それぞれ固有の番地を割り振られており、外部メモリデータ転送装置はアクセスするレジスタ固有の番地をアドレスとしてコントロール信号に含めて出力する。このバスに接続されたレジスタにおいては、外部メモリデータ転送装置がアクセスするレジスタの番地と自身の番地を比較し、一致しているとアクセスに対応する。
上記した入出力用レジスタへのアクセスとして、外部インターフェースから、アドレスを入力してアクセスするPEを指定する方法が提案されている(例えば、特許文献1参照)。
特開2001−84229号公報
従来の入出力用レジスタへのアクセスにおいては、外部メモリデータ転送装置の転送内容の設定や転送開始時期の通知などはプロセッサ側からシステムバスを介して接続してい
る。したがって、外部メモリデータ転送装置とプロセッサ間は、SIMD演算対象データを転送するバスとシステムバスの二重で接続する必要がある。
また、外部メモリデータ転送装置からプロセッサに向かって、例えば、データ転送の終了を通知する場合には、外部メモリデータ転送装置からプロセッサに対して、割込み要求(IRQ)を発生させることが一般的である。このため、割込み要求の信号線においても外部メモリデータ転送装置とプロセッサが接続される必要がある。さらに、外部メモリデータ転送装置の設定で使うシステムバスがプロセッサの動作速度に対し相対的に低速の場合には、設定に費やす時間が多くなり、プロセッサの演算処理全体のスループットが低下するという問題点があった。
この発明は、上記した問題点に鑑みなされたものにして、プロセッサと外部メモリデータ転送装置の接続における自由度を向上させたSIMD型プロセッサ、及びSIMD型プロセッサを用いる画像処理プロセッサを提供することを課題とする。
請求項1に記載の発明は、グローバルプロセッサと、複数のプロセッサエレメントと、外部メモリデータ転送装置から前記プロセッサエレメントのレジスタにデータ書き込む、あるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備え、各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能なSIMD型プロセッサにおいて、前記グローバルプロセッサ内にプロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な1つ以上の情報格納手段をさらに備え、前記外部ポートを介して前記グローバルプロセッサと前記外部メモリデータ転送装置との間でデータの授受を行い、前記情報格納手段に前記外部ポートから入力されるデータは、前記グローバルプロセッサから読み出しのみ実施でき、前記情報格納手段に前記グローバルプロセッサから入力されるデータは前記外部ポートからのみ読み出しができることを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記情報格納手段が書き込み内容で内容が反転するトグル機能を持つことを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記情報格納手段に対し、前記外部ポートから入力されるデータによって、前記グローバルプロセッサに割込みを発生させる機能を有することを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記グローバルプロセッサからアクセス可能なデータを記憶する記憶装置を備え、前記外部ポートを通じてプロセッサ外部から前記記憶装置にアクセスする経路を備えたことを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記記憶装置にアクセスする権限が設定されており、その権限の獲得がないと前記外部ポートを通じて外部から前記記憶装置にアクセスできない仕組みを備えたことを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記外部ポートを通じて外部から前記記憶装置にアクセスするのを、前記グローバルプロセッサから命令実行によって禁止または許可の設定ができるレジスタまたはフラグを備えたことを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記外部ポートを通じて外部からの前記記憶装置へのアクセス要求が、同時に複数発生したとき、アクセス権を付与する優先権判定を行う回路を備えたことを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記グローバルプロセッサによって内容の設定が可能なレジスタの内容によって優先権設定が変更可能な優先権判定回路を備えたことを特徴とする。
請求項に記載の発明は、請求項の構成に加え、前記外部ポートを通じて外部から前記記憶装置にアクセスするときに指定するアドレスを、プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能なレジスタから指定することを特徴とする。
請求項10に記載の発明は、請求項の構成に加え、アクセスする前記記憶装置上のアドレスを保持しているレジスタが、前記記憶装置のアクセスのたびに特定値だけ加算されることを特徴とする。
請求項11に記載の発明は、グローバルプロセッサと、複数のプロセッサエレメントと、接続され前記プロセッサエレメントのレジスタにデータ書き込むあるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備えたSIMD型プロセッサと、画像のデータを記憶するための外部メモリと、前記外部ポートと接続され前記外部メモリにアクセス可能な外部メモリデータ転送装置と、を備え、前記各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能な画像処理プロセッサにおいて、プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な1つ以上の情報格納手段と、前記情報格納手段に外部ポート作動中を示すフラグレジスタを設けて、当該フラグレジスタの内容を前記グローバルプロセッサの命令動作制御部へ与える信号経路をさらに備え、前記外部メモリデータ転送装置の動作指示が前記外部ポートを介して前記SIMD型プロセッサから与えられるとともに、前記外部メモリデータ転送装置の動作状態を前記外部ポートを介して前記SIMD型プロセッサへ伝達し、前記グローバルロプロセッサの前記命令動作制御部は、命令動作完了に前記フラグレジスタの内容に応じて命令を与えることを特徴とする。
請求項12に記載の発明は、請求項11の構成に加え、前記グローバルプロセッサが特定のレジスタの操作する場合を検出する検出装置を備え、前記グローバルプロセッサの前記命令動作制御部は、前記検出装置の結果と前記フラグレジスタの内容を条件として完了命令を与えることを特徴する。
請求項13に記載の発明は、請求項11又は12の構成に加え、前記グローバルプロセッサからアクセス可能なレジスタを備え、レジスタの内容により、命令の完了を条件付きあるいは条件なしとすることが可能にすることを特徴とする。
請求項14に記載の発明は、請求項11又は12の構成に加え、前記外部メモリデータ転送装置の動作指示と同時に前記フラグレジスタを動作状態を示す状態にする命令を与えること特徴とする。
請求項15に記載の発明は、請求項11又は12の構成に加え、前記フラグレジスタを前記グローバルプロセッサからリード可能に構成したことを特徴とする。
上記したように、各プロセッサエレメント(PE)を指定するアドレスを入力することで、任意のPEの内蔵するレジスタに外部からアクセス可能なポートを持つSIMD型プロセッサにおいては、外部メモリデータ転送装置との接続に、従来は、前述のポートの接続とは別にシステムバスによる接続が必要であった。この請求項1に記載の発明では、従来システムバスを介して行われていた外部メモリデータ転送装置の設定や指示などを、ポストレジスタで代用できるため、システムバスの接続が不要となり、プロセッサと外部メモリデータ転送装置の接続におけるコストや自由度において有利である。また、一般にグローバルプロセッサ(GP)にとって内部レジスタへのアクセスは、プロセッサ外部へのアクセスより高速かつ単純である。
更に、請求項に記載の発明によれば、外部メモリデータ転送装置との通信が内部レジスタによって行われることは、プログラムのスピードアップと単純化で有利である。
また、請求項に記載の発明によれば、GPから外部メモリデータ転送装置に転送する場合と外部メモリデータ転送装置からGPへ転送する場合で、外部メモリデータ転送装置からみれば同じアドレス指定、GPからみれば同じレジスタ指定にできるため有限でしかないアドレス範囲やレジスタ指定の命令コードを節約でき、アドレス拡張や命令コードの拡張を避けてプロセッサ外部へのアクセスが行える。
請求項に記載の発明によれば、トグル機能を使いハンドシェーク機能を実現でき、GPと外部メモリデータ転送装置の間の通信を確実にできる。
請求項に記載の発明によれば、従来の割込み要求ルートによらず割込み要求ができるため、従来の割込み要求ルートが不要となる。
従来では、記憶装置(データRAM)上のデータはプロセッサの命令実行によって、データRAMから読み出され、外部メモリデータ転送装置に転送される処理で行われてきたが、請求項6に記載の発明よれば、外部メモリデータ転送装置からプロセッサの動作に拠ることなく直接データRAMにアクセスできるため、プロセッサがデータRAMにアクセス不要の処理を実行している時間と外部メモリデータ転送装置のデータRAMへのアクセ
スを同時に実施でき、処理速度の向上が図れる。
データRAMのようなメモリには同時にアクセスできる数に上限があり、それを越えた同時アクセスは実行できないが、外部メモリデータ転送装置から確実にデータRAMへのアクセスを実施したい場合、請求項に記載の発明のように、「アクセス権」を獲得してからデータRAMアクセスする方法であると、排他的にデータRAMへのアクセスが確保できる。
プロセッサが実行中のプログラムの都合で、データRAMに確実にアクセスを実行しなければならない場合や、プログラムの実行以外でのデータRAM上の内容の更新を確実に抑制したい場合、請求項に記載の発明のように、レジスタまたはフラグを利用し、外部メモリデータ転送装置からデータRAMへのアクセスを禁止にすることで実現できる。
複数の外部メモリデータ転送装置からデータRAMへの経路が存在すれば、同時に複数のアクセス権を要求する可能性があるが、請求項に記載の発明のように、優先順位が判定される回路を備えることで、混乱なくアクセス権を付与することができる。
実行プログラムの都合により、請求項で設定された優先順位を変更したい場合、請求項に記載の発明によれば、優先順位設定レジスタに所望の優先順位データを設定することで、優先順位判定回路における優先順位変更を実現できる。
請求項に記載の発明によれば、外部メモリデータ転送装置からデータRAM上のデータへアクセスするとき、アクセスするアドレスを外部メモリデータ転送装置から設定するため、プロセッサの動作にかかわりなく、外部メモリデータ転送装置から任意のアドレスへのアクセスの可能になる。
請求項10に記載の発明によれば、外部メモリデータ転送装置からデータRAM上の連続するアドレスに対してアクセスの場合、アクセスのたびにアドレスレジスタを更新する必要がないため、処理動作が短時間で終了する。
請求項11に記載の発明によれば、従来システムバスを介して行われていた外部メモリデータ転送装置の設定や指示などを、外部ポートを介して行うことができるため、システムバスの接続が不要となり、プロセッサと外部メモリデータ転送装置の接続におけるコストや自由度において有利である。
更に、請求項11に記載の発明よれば、フラグレジスタにより、外部メモリデータ転送装置の作動中は、ハザードを起こす可能性のある命令の実行の完了が止められる、すなわちウエイトがかかるため、プログラマが正確に時間を把握しなくとも、ハザードが発生する心配がなくなる。
請求項12に記載の発明によれば、請求項11における効果に加え、外部メモリデータ転送装置の作動中のレジスタを特定して命令の完了条件としているため、外部メモリデータ転送装置の作動中以外のレジスタを対象にした命令の実行に関しては条件がなく実行されるため、命令にウエイトがかかる機会が減り、プログラム処理が早くなる。
請求項13に記載の発明によれば、グローバルプロセッサからアクセス可能なレジスタ(制御レジスタ)を操作することで、条件の有無の設定、すなわちウエイトをかける/かけないの選択ができる。また、プログラマが外部メモリデータ転送装置の作動時間を正確に把握し、かつSIMDプロセッサ自らのプログラムの実行時間も正確に把握している場合、時間差を利用した高度なプログラムが可能であるが、ハザードを完全回避しようとする請求項11又は12の機能が逆に不都合となる場合がある。この場合、請求項13の構成によりハザード回避の手段を無効化することができる。
請求項14に記載の発明によれば、外部メモリデータ転送装置が動作を開始する時間と「作動状態」になる時間とに開きがある場合、ハザードが発生する可能性があるため、フラグレジスタ(ビジーフラグ)は外部メモリデータ転送装置の作動中であることを示すため、外部メモリデータ転送装置への動作指示が与えられた直後に「作動状態」に設定するのが望ましい。請求項14においては、外部メモリデータ転送装置への動作指示となる命令と同時にビジーフラグが「作動状態」に設定されるためハザードの心配がなくなる。
請求項15に記載の発明によれば、フラグレジスタ(ビジーフラグ)の状態をグローバルプロセッサ側でリードできるため、外部メモリデータ転送装置が作動中であるかどうかの判断がプログラムで可能となる。
以下、この発明の実施形態につき図面を参照して説明する。図1は、この発明の第1の実施形態にかかるSIMD型プロセッサの全体構成を示すブロック図である。尚、従来例と同一部分には同一符号を付し、説明の重複を避けるために、ここではその説明を割愛する。
図1に示すように、この第1の実施形態においては、従来例とは異なり、システムバス7を介しての外部メモリデータ転送装置6とプロセッサ100の接続を廃止している。
プロセッサ100は、図示しないほかの周辺機器に接続する必要があるため、プロセッサ100はシステムバス7に接続しているが、この発明では外部メモリデータ転送装置6が必ずしもシステムバスに接続しなくてもよい。そのため、図1では表示しない。
プロセッサ100内部において、従来例では、外部入出力ポート4からは、レジスタファイル2にしか接続しなかったが、この実施形態では、新たにグローバルプロセッサ(GP)1との接続経路41を備える。これにより、外部メモリデータ転送装置6からグローバルプロセッサ1内部にアクセス可能となる。グロバールプロセッサ1には、このプロセッサのプログラムRAMとデータRAM、グローバルプロセッサ(GP)実行部10b、制御部10c、プロセッサエレメント(PE)との間でデータ等のやり取りを行うPEインターフェース10a及びプロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な1つ以上の情報格納手段としてのポストレジスタ12とが内蔵されている。
GP実行部10dには、プログラムカウンタ(PC)、汎用レジスタであるG0〜G3レジスタ、スタックポインタ(SP)、リンクレジスタ(LS、LI、LN)、プロセッサステータスレジスタ(P)、演算を実行するユニットであるALU等を備える。制御部10Cには、命令デコーダ、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路等を備える。
ポストレジスタ12は、経路41を介して外部入出力ポート4に接続されており、外部メモリデータ転送装置6からアクセス可能なグローバルプロセッサ(GP)1内蔵のレジスタである。これにより、外部メモリデータ転送装置6からグローバルプロセッサ(GP)1の内部にアクセス可能としている。外部メモリデータ転送装置6の各種設定は、この経路41を用いて実行される。
そして、外部メモリデータ転送装置6が、外部メモリ5から処理する元の画像データを読み出しプロセッサエレメントのレジスタファイル2に書き込む、あるいはレジスタファイル2から処理後の画像データを読み出し外部メモリ5に書き込むように制御する。
尚、この経路41は、レジスタファイル2を通る経路とは別のように、図1では記載しているが、図2に示すように、外部入出力ポート4からレジスタファイル2にデータを送るバスで兼用することができる。
図2に、この実施形態の詳細を示す。図13で示したと同様に、グロバールプロセッサ(GP)1には、このプロセッサ100のプログラムRAM10eとデータRAM10fが内蔵され、プログラムカウンタ(PC)、汎用レジスタであるG0〜G3レジスタ、スタックポインタ(SP)、リンクレジスタ(LS、LI、LN)、プロセッサステータスレジスタ(P)が内蔵されている。これらのレジスタと図示していない命令デコーダ、ALU、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を使用してGP命令の実行が行われることも同様である。
図2に示すように、この実施形態では、グローバルプロセッサ(GP)1内に、さらに情報記憶手段としてのポストレジスタ12…を備える。このポストレジスタ12は、外部入出力ポート4に接続されており、外部メモリデータ転送装置6から直接アクセス可能なGP内蔵のレジスタである。そして、このポストレジスタ12は、グローバルプロセッサ(GP)1内の図示する内部データバス15にも接続され、汎用レジスタG0〜G3などと同様に、命令によってデータの入出力が可能である。
外部入出力ポート4とポストレジスタ12…の接続は、ポストレジスタ12…が後述するレジスタファイル2の各PEの最上段レジスタ20aへのアクセスと同一のバス22、23上に接続される形となる。バス22はコントロールバス、バス23はデータバスとして用いられる。紙面の都合で3個のポストレジスタ12…を図示しているが、レジスタの個数は自由である。
PE命令実行時は命令デコーダ、レジスタファイル制御回路10、PE演算制御回路11を使用して、レジスタファイル2の制御と演算アレイ3の制御を行う点は、図13に示した従来と同じである。
レジスタファイル2には、各PEに8ビットのレジスタ20が複数本内蔵されており、PE数分の組みがアレイ構成になっている。レジスタ20はPEごとにR0、R1、R2、...と呼ばれている。それぞれのレジスタは、演算アレイ3に対してポートを備えており、8ビットのリード/ライト兼用のレジスタバス21で演算アレイ3からアクセスされる。この点も従来と同じである。
尚、演算アレイ3の構成等は、従来例と同じであるため、説明は省略する。
レジスタファイル2に示されるレジスタ20の内、最上段のレジスタ20aは、図2では図示されていない外部メモリデータ転送装置6によって内容の読み出し/書き込みが可能なレジスタとしている。プロセッサ100外の外部メモリデータ転送装置6からデータバス23とコントロールバス23からのコントロール信号を用いて、任意のレジスタの読み出し/書き込みが可能である。
外部メモリデータ転送装置6は、この最上段レジスタ20aへのアクセスで任意のレジスタの読み出し/書き込みを行うのと同様に、前述のポストレジスタ12…にもアクセス可能である。
外部メモリデータ転送装置6からポストレジスタ12にアクセスするために、ポストレジスタ12の固有の番地をレジスタファイル2のレジスタ20aの番地とは異なった固有の番地が割り振られている。その一例を図3に示す。
この例では、このプロセッサ100が備えるPEを224個としている。PE0,PE1,PE2,…,PE222,PE223の順にアドレス00h,01h,02h,…,CEh,CFhと割り振られている。ポストレジスタ12のためのアドレスは、F0h〜FFhとなっており、E0h〜EFhのアドレスは未使用となっている。
次に、ポストレジスタ12の機能について説明する。前述のように、F0h〜FFhのアドレスに配置されたポストレジスタ12のさらに詳しいアドレスを図4に示す。ここに示す例では、ポストレジスタ12として、11種のレジスタを装備している。外部メモリデータ転送装置6からのアクセスでは、外部メモリデータ転送装置6からポストレジスタ12に書き込みを行うとき(ライト時)と、外部メモリデータ転送装置6がポストレジスタ12から読み出しを行うとき(リード時)で機能が異なる場合があるため、同一レジスタでライト時とリード時の2通り記載しているものがある。これらは別アドレスとして分離することも可能である。
図4中の“−”は機能が割り付けられていないことを示し、“←”は“ライト時”と機能が同じであることを示す。以下各番地につき説明する。
F0h番地:制御レジスタ:外部メモリデータ転送装置6自身のコントロールを行う。
プロセッサ100のプログラム実行により、外部メモリデータ転送装置6の各種指示が必要になった場合、従来は、システムバス7を介した指示を行っていたが、この発明では、グローバルプロセッサ(GP)1の内部において、命令で外部メモリデータ転送装置6の制御レジスタに指示データを書き込む。外部メモリデータ転送装置6は、F0h番地のこのレジスタをリードし、プログラムから外部メモリデータ転送装置6への指示を取り込む。ここでの指示内容は、「外部メモリデータ転送装置の初期化」、「転送のスタート」、「有効範囲つき転送」などである。
F1h番地:転送開始PEアドレスである。
外部メモリデータ転送装置6が外部メモリ5とレジスタファイル2の間のデータを転送するとき、プロセッサ100内のPEすべてが有効データとして取り扱わない場合に対応する。有効とされる範囲の先頭PEの番地をグローバルプロセッサ(GP)1の内部において設定する。外部メモリデータ転送装置6は、このレジスタから読み出した内容を有効範囲の先頭PE番地として扱う。
F2h番地:転送終了PEアドレスである。
外部メモリデータ転送装置6が外部メモリ5とレジスタファイル2の間のデータを転送するとき、プロセッサ100内のPEすべてが有効データとして取り扱わない場合に対応する。有効とされる範囲の最終PEの番地をグローバルプロセッサ(GP)1の内部において設定する。外部メモリデータ転送装置は、このレジスタから読み出した内容は、有効範囲の最終PE番地として扱う。
F3h番地:トグルである。
外部メモリデータ転送装置6およびグローバルプロセッサ(GP)が双方からアクセス可能なレジスタである。ライトするデータが”1”となっているビットは、記憶内容が反転(”1”ならば”0”となり、”0”ならば”1”となる)する。”0”となっているビットの記憶内容は変化しない。双方から同一内容にアクセスできるため、ハンドシェイクの機構を構築可能である。
F4h番地:割込み要求である。
このレジスタに対して外部メモリデータ転送装置6からデータを書き込むと、プロセッサ100に対して割込み要求できる。プロセッサ100は、通常の外部端子(割込み要求端子)とは別の割込み処理を用意し動作する。
F5h〜FAh番地:データポート0〜5である。
外部メモリデータ転送装置6とグローバルプロセッサ(GP)1の間でデータの交換をするポートとして使用する。同機能のものを6本備える。外部メモリデータ転送装置6からグローバルプロセッサ(GP)1への経路と、グローバルプロセッサ(GP)1から外部メモリデータ転送装置6への経路を別として異なる記憶装置を備える。
FBh番地:DRAMアクセスリクエスト/DRAMアクセスアクノリッジである。
外部メモリデータ転送装置6からライト時はアクセスリクエストとして機能する。外部メモリデータ転送装置6から直接データRAMにアクセスするとき、データRAMへの「アクセス権」を要求する。外部メモリデータ転送装置6からリード時はアクセスアクノリッジとして機能する。データRAMへの「アクセス権」が設定されたかどうかを示す。
FCh番地:DRAMアクセス制御である。
外部メモリデータ転送装置6から直接データRAMにアクセスするときの各種設定を行う。この設定は、アクセスアドレスの自動加算を行うか否かの設定などがある。
FDh番地:DRAMポートである。
データRAMへのアクセスするときのデータポート。データRAMのDRAMアドレスレジスタの内容の番地に対して読み出し/書き込み可能である。
FEh〜FFh:DRAMアドレスである。
データRAMにアクセスするときのアドレスを格納するレジスタである。lowとhighが用意され、16ビットのアドレスまで指定が可能。アドレスの自動加算の設定の場合、DRAMポートへの読み出し/書き込みごとにDRAMアドレスの内容が“1”加算される。
図1で示された外部メモリデータ転送装置6は、外部入出力ポート4に対してなんらかのアクセスが発生していないときには、上記F0h番地の制御レジスタからリードを行う機能を持つ。
図5に、ポストレジスタ12からのデータRAMアクセスの構成例を示す。ここで示す構成例では、外部メモリデータ転送装置6を2個の構成としている。それぞれ、外部メモリデータ転送装置A(6A)、外部メモリデータ転送装置B(6B)とする。
それぞれの外部メモリデータ転送装置6A、6Bに接続されているのが、外部入出力ポート4を通じてアクセスされるポストレジスタ群A、B(12A、12B)である。ポストレジスタ群12A、12Bには、「アクセスリクエスト/アクセスアクノリッジ」「アクセス制御」「データポート」「アドレス」が示されている。データRAMアクセスに無関係なポストレジスタ12は、図示していない。これらポストレジスタ12として図示されているレジスタは、図4のFBh番地〜FFh番地のレジスタに相当するものとする。
ポストレジスタ12A、12Bからは、データRAM13に対してアクセス可能な経路があるが、途中に選択器14があり、データRAM13にアクセス可能なのは、選択器14によって選択された1通りだけである。選択器の選択肢にはGPのデータRAMアクセス回路からの経路も含まれている。
通常のグローバルプロセッサ(GP)1からのアクセスがこの経路である。選択器14の選択は、アクセス権設定回路16からの信号による。アクセス権設定回路16は、優先順位判定回路17からの情報とプロセッサステータスレジスタ(Pレジスタ)19からの情報によって、データRAM13へのアクセス可能とするのはどれかを判定する。ポスト
レジスタ12Aに「アクセス権」を設定する場合は、ポストレジスタ12Aのアクセスアクノリッジに通知を、ポストレジスタ12Bに「アクセス権」を設定する場合は、ポストレジスタ12Bのアクセスアクノリッジに通知を行う。
優先権判定回路17は、複数のポストレジスタ群より同時に「アクセス権」の要求を受けたときにどれを選択するかであり、その優先順は、優先順位設定レジスタ18に従う。優先順位設定レジスタ18の内容は、固定またはグローバルプロセッサ(GP)1の命令で変更できるものとする。
次に、この発明の動作について説明する。従来から外部メモリデータ転送装置6の最も基本的な機能は、外部メモリ5上に存在するデータ(画像データ)をPEのレジスタ20に転送することと、逆にPEのレジスタ20上に存在するデータを外部メモリ5に転送することにある。
外部メモリ5上に存在するデータをPEのレジスタ20に転送する場合、外部メモリ5から読み出した順でPE順に従ってデータを転送する。この機能を利用するプログラムは、どのような転送をするのかの各種設定を外部メモリデータ転送装置6に行い、転送開始を合図するだけでよい。プログラムは転送合図の後は即座に別の演算処理を実施できる。
外部メモリデータ転送装置6が所定の転送が終了すると、プロセッサ100はSIMD演算で転送されてきたデータを使った演算処理が可能になる。外部メモリデータ転送装置6の転送が終了したことをプロセッサ100が知るには、2通りの方法が考えられる。
1つは全データを転送に十分な時間だけ経過したことを計算する方法であり、プロセッサ100の動作速度と外部メモリデータ転送装置6の転送速度と転送データ数が既知であり不動であれば算出可能である。もう1つの方法は、割込み要求によってプロセッサ100に割込みをかけることである。プロセッサ100は、割り込み処理プログラムの中で割込み要因を特定し、外部メモリデータ転送装置6の転送が終了したことを知ることができる。割込み要求による転送終了の通知は、プロセッサ100の動作速度や外部メモリデータ転送装置6の転送速度や転送データ数が変化しても対応できるため、柔軟性のある方法といえる。PEのレジスタ20上のデータを外部メモリ5へ転送する場合も、転送開始の合図と転送終了の通知の点で同じである。
図12、図13に示した従来のSIMD型プロセッサ100は、外部メモリデータ転送装置6に対する転送開始の合図や転送終了の割込み要求など、外部メモリデータ転送装置6とプロセッサ100間のシステムバス7の接続によって行われていた。
この発明においては、転送開始の合図は、グローバルプロセッサ(GP)1がポストレジスタ12の内の制御レジスタに「転送開始」を示す内容を書き込み、外部メモリデータ転送装置6が制御レジスタからリードすることで、「転送開始」を知らせる。転送終了時は、外部メモリデータ転送装置6がポストレジスタ12の内の割込み要求レジスタに「割込み要求」の内容を書き込むことにより、プロセッサ100に割込みが発生し、プロセッサは転送終了を知ることができる。
図1に示すような外部メモリデータ転送装置6がシステムバス7に接続しないシステムにおいても、上記のように基本的転送機能については遜色がない。
PEのレジスタ20上にあるデータについて、全PEが必ずしも有効とは限らない。そのため、外部メモリ5上のデータをPEの一部にしか転送しない場合がある。この場合は、ポストレジスタ12の中の対応するレジスタに次のように格納する。すなわち、有効なPEの範囲のうち、先頭のPEのアドレスを転送開始PEアドレスレジスタに、最終のPEのアドレスを転送終了PEアドレスレジスタに格納し、「有効範囲つき転送」であることを制御レジスタを使って外部メモリデータ転送装置6に知らせる。外部メモリデータ転送装置6は、「有効範囲つき転送」における「転送開始」を受けたとき、転送開始PEアドレスレジスタと転送終了PEアドレスレジスタをそれぞれリードしてから、転送を開始する。転送の対象となるアドレスは、転送開始PEアドレスレジスタからリードした内容が開始のアドレスで、転送終了PEアドレスレジスタからリードした内容が終了のアドレスとなる。
次に、ポストレジスタ12の中のトグルレジスタを用いたプロセッサ100と外部メモリデータ転送装置6間のハンドシェークについて説明する。
外部メモリデータ転送装置6はプロセッサ100と異なったクロック系で動作する非同期動作が考えられるため、双方のデータ通信が確実に行われたどうかチェックしながら進める必要がある。例えば、F5〜FAhのデータポートを使ってプロセッサ100から何らかのデータを外部メモリデータ転送装置6に転送する場合を想定する。プロセッサ100は対象のデータをデータポート(0〜5)に格納したのち、制御レジスタにデータポートにデータを格納した旨の内容を格納する。外部メモリデータ転送装置6は、外部入出力ポート4の「空き」が発生するとF0h番地の制御レジスタの読み出しを行うため、データポートに対象データが格納されていることを知り、該当データポートから対象データを読み出す。対象データを読み出したあと、外部メモリデータ転送装置6は、トグルレジスタに”1”を書き込む。トグルレジスタは”1”を書き込まれたビットだけ反転する。プロセッサ100は、トグルレジスタをチェックし、該当のビットが反転されていれば、外部メモリデータ転送装置6が対象データを読み出したと判断し、反転していなければまだ外部メモリデータ転送装置6が対象データを読み出していないと判断できる。このようにデータの受け渡しを確実にする際にトグルレジスタを利用できる。
この実施形態では、ポストレジスタ12からデータRAM(DRAM)13へアクセスする機能を備えており、この機能を利用することで外部メモリデータ転送装置6から直接データRAM13にアクセス可能となる。データRAM13は、通常はプロセッサ動作でプログラムが利用する記憶装置であるため、外部メモリデータ転送装置6とアクセスが重なる可能性がある。また、同様の機能を持つ外部メモリデータ転送装置6を複数持つシステムでは、ポストレジスタ12が複数個になり、データRAMアクセスが同時になり競合する可能性がある。
一般的にプロセッサのデータRAM13として利用されているメモリの種類は、同時に1個のデータをアクセス可能なシングルポートのメモリであるため、アクセスの競合は避けなければならない。
アクセス競合を避けるため、「アクセス権」を設定する。「アクセス権」を得ているときのみがデータRAMへのアクセスが可能となる。データRAM13へのアクセスを行うとき、最初にデータRAMのどこにアクセスするのかをDRAMアドレスレジスタに設定する。次にアクセス制御の設定を行う。例えばアクセスのたびにDRAMアドレスレジスタの値が“1”加算される「自動加算アクセス」をここで選択する。「自動加算アクセス」を選択すると、DRAM上の連続するアドレスのデータに対して、アドレスを毎回設定することなく、連続でアクセス可能になる。次に、アクセスリクエストレジスタにアクセス要求を書き込む。
プロセッサは、「アクセス権」要求があり、その要求に応えて「アクセス権」を設定できる場合に限り、要求したポストレジスタに対して「アクセス権設定」を示す。これはアクセスアクノリッジレジスタを読み出すことで、外部メモリデータ転送装置6から確認できる。外部メモリデータ転送装置6は、「アクセス権」を確認してから、DRAMポートにアクセスを行う。DRAMポートに書き込みを行ったデータは、DRAMアドレスレジスタに設定されたデータRAM上の番地に対して書き込まれる。また、DRAMポートに読み出しを行ったときは、DRAMアドレスレジスタに設定されたデータRAM上の番地のデータが読み出される。DRAMアドレスレジスタを変更せずにアクセスすると、データRAM上の同じ番地にアクセスすることになるが、「自動加算アクセス」を選択している場合はアクセスのたびにDRAMアドレスレジスタが“1”加算されるため、連続する次の番地へアクセスすることができる。また、「アクセス権」がないにもかかわらずDRAMポートにアクセスした場合、書き込みは無視され、読み出しは無効データが読み出される。ひとつのポストレジスタ12が「アクセス権」を要求したとき、このポストレジスタ12に対し「アクセス権」を与えるか否かの判断は、プロセッサの命令で行われるのではなく、アクセス権設定回路で自動的に行われる。プロセッサにおけるモード選択で、要求があっても「アクセス権」を与えないことも可能で、これは命令によりプロセッサ内部のレジスタにモード設定することで行う。例えば、プロセッサステータスを示すPレジスタに書き込み/読み出し可能な1ビットを設け、このビット「DRAMアクセス許可フラグ」が“1”のときポストレジスタからのアクセスリクエストを受け付け、“0”のときポストレジスタからのアクセスリクエストは無視することとする。複数のポストレジスタが同時にアクセスリクエストを発信した場合のため、ポストレジスタに予め優先順位を設定しておく。この優先権は、回路において固定とするか、グローバルプロセッサ(GP)1の内部レジスタを設けて可変とする。
ポストレジスタ12で獲得したデータRAM13の「アクセス権」は、必要なアクセスを実施した後はプロセッサに返却する。返却はDRAMアクセスリクエストレジスタに、「アクセス権返却」の内容を書き込むことで実現する。プロセッサがポストレジスタの都合に関係なく「アクセス権」を奪回する手段を設定する。前述の「DRAMアクセス許可フラグ」に“0”を書き込むことでアクセス権を確保しているポストレジスタは、アクセス権を放棄させられる。
ところで、外部との転送を行っている対象となっているPE内蔵のレジスタは、SIMD型プロセッサ側で同一のレジスタへのアクセスがある場合にハザードが発生し、データがプログラマの意図通りの処理ができない可能性がある。これを避けるためには、プログラマが外部との転送動作の状況を正確に把握する必要がある。実行プログラムで正確に把握するための方法は、なんらかのアクセス手段により外部メモリデータ転送装置6が動作中であるか否かを確認する方法と、外部メモリデータ転送装置6の動作時間およびSIMDプロセッサ100自らのプログラムの実行時間を正確に算出でき、外部メモリデータ転送装置6の転送に要する時間を経過後まで該当レジスタへのアクセスを控える方法が考えられる。
前者は一般的に外部メモリデータ転送装置6に実行状態を示すレジスタを設け、そのレジスタにSIMD型プロセッサがシステムバス経由でアクセスし確認する方法となる。システムバスを使用するため、この発明のように、バス方式でかつシステムバスを不要とする方法では実現できない。また、プログラム処理としてはポーリング処理であるため、対象レジスタへのアクセスが必要となる毎に、このレジスタのリード及びチェックというステップをプログラムする必要がある。
後者はプログラマがプログラムする時点で正確に時間の見積りができることが条件となる。すなわち、SIMD型プロセッサ100の動作速度、命令セットとその実行時間、外部メモリデータ転送装置の転送能力が既知でかつ固定である必要がある。
そこで、次に示す第2の実施形態は、バス方式を採用することによる外部メモリデータ転送装置6による高い自由度のアクセスを実現し、システムバスを不要とする利点を得ながら、かつプログラマがハザード回避を考慮しなくともハザードを回避できる機能を有したSIMD型プロセッサで構成した画像処理プロセッサである。
図6にシステムバスを不要とする利点を得ながら、かつプログラマがハザード回避を考慮しなくともハザードを回避できる機能を有したSIMD型プロセッサで構成した画像処理プロセッサの実施形態を示す。尚、上記した実施形態と同一部分には同一符号を付し、説明の重複を避けるために、ここでは、その説明を割愛する。
図6に示す第2の実施形態においても、システムバスを介しての外部メモリデータ転送装置6とプロセッサ100の接続を廃止している。プロセッサ100は図示しないほかの周辺機器に接続する必要があるため、プロセッサ100はシステムバスに接続しているが、この実施形態では、外部メモリデータ転送装置6が必ずしもシステムバスに接続しなくてもよい。
プロセッサ100内部において、グローバルプロセッサ(GP)1内部のポストレジスタ12との接続経路を備える。これにより、外部メモリデータ転送装置6からグローバルプロセッサ(GP)1内部のポストレジスタ12にアクセス可能となる。
上述の実施形態と同様に、グロバールプロセッサ(GP)1には、本プロセッサのプログラムRAM10eとデータRAM10fが内蔵され、GP実行部10bにはプログラムカウンタ(PC)、汎用レジスタであるG0〜G3レジスタ、スタックポインタ(SP)、リンクレジスタ(LS、LI、LN)、プロセッサステータスレジスタ(P)、演算を実行するユニットであるALUが内蔵されている。これら各回路は内部データバス15に接続されている。制御部10cには、図示していないが命令デコーダ、メモリ制御回路、割り込み制御回路、外部I/O制御回路、GP演算制御回路を内蔵している。
この第2の実施形態のポストレジスタ12には、P1レジスタ12aとP2レジスタ12bを備えている。このポストレジスタ12は、上述の実施形態と同様に、外部入出力ポート4に接続されており、外部メモリデータ転送装置6からアクセス可能なグローバルプロセッサ(GP)1内蔵のレジスタである。
この第2の実施形態のポストレジスタ12には、2通りあり、制御部10cからライトされた内容を外部メモリデータ転送装置6へリードするP2レジスタ12bと、外部メモリデータ転送装置6からライトされた内容を制御部10cへ伝えるP1レジスタ12aとなっている。
外部入出力ポート4とポストレジスタ12の接続は、ポストレジスタ12が後述するレジスタファイル2の各PEの最上段レジスタ20aへのアクセス経路22,23と同一のバス上に接続される形となる。すなわち、図1における経路41と経路22(23)は実質的に同一とすることができる。
PE命令実行時は命令デコーダ、レジスタファイル制御回路10、PE演算制御回路111を使用して、レジスタファイル2の制御と演算アレイ3の制御をおこなう点は、上記実施形態、従来例と同じである。
レジスタファイル2には各PEに8ビットのレジスタが複数本内蔵されており、PE数分の組みがアレイ構成になっている。レジスタはPEごとにR0、R1、R2、...と呼ばれている。それぞれのレジスタは演算アレイに対してポートを備えており、8ビットのリード/ライト兼用のバス(以下レジスタバス)21で演算アレイ3からアクセスされる。この点も上記実施形態、従来例と同じである。
演算アレイ3の構成正等は、従来例と同じであるため、ここでは説明は省略する。
レジスタファイル2に示される最上段のレジスタ20は、図6では図示されていない外部メモリデータ転送装置6によって内容の読み出し/書き込みが可能なレジスタである。プロセッサ100外の外部メモリデータ転送装置6からデータバス23とコントロール信号22を用いて、任意のレジスタの読み出し/書き込みが可能である。
外部メモリデータ転送装置6は、この最上段レジスタ20aへのアクセスで任意のレジスタの読み出し/書き込みを行うのと同様に、前述のポストレジスタ12にもアクセス可能となる。
外部メモリデータ転送装置6からポストレジスタ12にアクセスするためには、ポストレジスタ12の固有の番地を、レジスタファイル2のレジスタの番地とは異なった固有の番地を割り振られる。その例を図10に示す。
この図10に示す例では、プロセッサ100が備えるPEを224個としている。PE0,PE1,PE2,…,PE222,PE223の順にアドレス00h,01h,02h,…,CEh,CFhと割り振られている。ポストレジスタ12のためのアドレスは、FEh〜FFhとなっており、E0h〜FDhのアドレスは未使用となっている。
次に、図6のポストレジスタ12について説明する。FFhのアドレスに配置されたP2レジスタ12bは、グローバルプロセッサ(GP)1の制御部10cによって設定されるレジスタで、その設定された内容は外部メモリデータ転送装置6によってリードされる。プロセッサ100は、外部メモリデータ転送装置6に対して、このP2レジスタ12bを経て動作の指示を出す。プロセッサ100は、自らのプログラム実行の中で、外部メモリデータ転送装置6の動作が必要になったとき、すなわち、それは外部メモリ5とレジスタファイル2の間でデータの転送の必要が生じたときであって、そのときプロセッサ100はP2レジスタ12bの内容をセットする命令を発行する。
外部メモリデータ転送装置6はプロセッサ100からの指示をP2レジスタ12bからリードした内容から得る。P2レジスタ12bは、外部メモリデータ転送装置6からリードされた後、その内容を自動的にリセット状態、すなわち外部メモリデータ転送装置6への指示がない状態へ移行する。
FEhのアドレスに配置されたP1レジスタ12aは、外部メモリデータ転送装置6によって設定されるレジスタで、その設定された内容はグローバルプロセッサ(GP)1の制御部10cへ伝えられる。またP1レジスタ12aは、制御部10cからの信号で内容をセット(”1”にする)する機能がある。
次に、本発明の動作について説明する。従来から外部メモリデータ転送装置6の最も基本的な機能は、外部メモリ5上に存在するデータをPEのレジスタに転送することと、逆にPEのレジスタ上に存在するデータを外部メモリ5に転送することにある。
外部メモリ5上に存在するデータをPEのレジスタに転送する場合、外部メモリ5から読み出した順にPE順に従ってデータを転送する。この動作のコントロールはSIMDプロセッサ100のプログラムの制御下におかれる。それは、SIMDプロセッサ100の内部で実行される画像処理の進行の都合で、データ転送が必要にあるためである。一般的にこの動作指示は、システムバス7を経由して外部メモリデータ転送装置6に伝えられるが、第1の実施形態と同様に、外部入出力ポート4を経由して伝えられる。この第2の実施形態もこの外部入出力ポート4を経由の方法を採る。
SIMDプロセッサ100は、データ転送の必要が生じたとき、ポストレジスタ12のP2レジスタ12bに対して指示を設定する命令を発行する。このとき同時にP1レジスタ12aの内容も“1”に設定する。外部メモリデータ転送装置6は、動作を指示されていない状態のときには、常にP2レジスタ12bのリードを行い、P2レジスタ12bに転送指示が書き込まれると指示通りの転送を開始する。
外部メモリデータ転送装置6は指示された転送が終了すると、P1レジスタ12aに“0”をライトする。これでP1レジスタ12aは、外部メモリデータ転送装置6が動作中には“1”を、外部メモリデータ転送装置6の動作休止中は“0”を示すことになる。すなわち、P1レジスタ12aは外部メモリデータ転送装置6の動作状態を示すビジーフラグとして作用する。
制御部10cは、SIMD命令(PEを操作する命令)をP1レジスタ12aの内容を条件にストップする。P1レジスタ12aの内容が“0”であるときにはすべての命令に制限がなく通常通り発行される。P1レジスタ12aの内容が“1”のとき、SIMD命令すべての発行をストップする。ストップはウエイト状態であり、P1レジスタ12aの内容が“0”になるまで命令の制御信号発行直前でストップする。P1レジスタ12aの内容が“0”になると、ストップしていたSIMD命令は有効になり実行される。SIMD命令以外の場合、P1レジスタ12aの内容に関係なく通常通り動作する。
上記したように、外部メモリデータ転送装置6の作動中は、PEのレジスタに対して外部メモリデータ転送装置6の方からアクセスがあるため、SIMD型プロセッサ100側で同一のレジスタへのアクセスがある場合にハザードが発生し、データがプログラマの意図通りの処理ができない可能性がある。この第2の実施形態では、P1レジスタ12aがビジーフラグとして作用するため、外部メモリデータ転送装置6の作動中は、ハザードを起こす可能性のある命令の実行の完了が止められる、すなわち、ウエイトがかかるため、プログラマが正確に時間を把握しなくとも、ハザードが発生する心配がなくなる。
次に、図7に示した第3の実施形態につき説明する。図7は、図6に示す第2の実施形態に対して、レジスタ検出装置12cと判定装置12dが追加されている。レジスタ検出装置12cはレジスタファイル制御回路10からアクセスするレジスタ番号を伝えられる経路を持ち、外部メモリデータ転送装置6によりアクセスされるPEのレジスタ番号との比較を行い一致を検出する。判定装置12dは、レジスタ検出装置12cとP1レジスタ12aの内容からグローバルプロセッサ(GP)1の制御部10cへ伝える信号を生成する。
次に、図7に示した第3の実施形態の動作に付き説明する。図7に示す例では、SIMD命令で必要とするレジスタ番号をレジスタファイル制御回路10から読み取り、該当するレジスタ番号と一致するか否かレジスタ検出装置12cにより検出することができる。この検出結果が「一致」であり、かつP1レジスタ12aの内容が“1”の場合を判定装置12dで検出し、制御部10cへ伝え、命令実行の条件としている。この場合、P1レジスタ12aの内容が“1”でSIMD命令を実行しようとしても、レジスタ番号が不一致の場合、P1レジスタ12aの内容が“0”であるのと同じ条件が制御部10cへ伝播されるため、命令実行がストップすることはない。SIMD命令をすべて条件付きにするのではなく、該当するPEのレジスタを使用する場合に限りストップすることになるため、通常通り動作する命令の範囲が増え、ストップする機会が減少し、処理速度が向上する。
次に、図8に示した第4の実施形態につき説明する。図8は、図6に示す第2の実施形態に対して、P1レジスタ12aの内容をGP実行部10b内のデータバス15に送出する経路を備える。
次に、図8に示した第4の実施形態の動作につき説明する。図8に示す例では、P1レジスタ12aの内容をGP実行部10bのデータバス15に接続する経路があり、P1レジスタ12aの内容をプログラム上で利用できる。これは、一般的に外部メモリデータ転送装置6の実行状態を確認するポーリング処理と同様のことが実施できるということを意味している。
次に、図9に示した第5の実施形態につき説明する。図9は、図6に示す第2の実施形態に対して、GP実行部10bにMODEレジスタ110を備え、GP実行部10bのデータバス15からリード/ライト可能なように接続する。更に、許可回路EN12eを備え、P1レジスタ12aの内容が“1”であり、同時にMODEレジスタ110の内容が“1”である場合のみ、制御部10cに“1”を伝えるよう接続する。
次に、図9に示した第5の実施形態の動作につき説明する。図9に示す例では、GP実行部10b内部のMODEレジスタ110に“0”を設定すると、許可装置EN12eの動作により、P1レジスタ12aの内容の如何に拘わらず制御部10cへはP1レジスタ12aの内容が“0”であるのと同じ状態で伝えられ、あらゆる命令実行について条件がつかない状態となる。MODEレジスタ110に“1”を設定すると、許可装置EN12eの動作により、P1レジスタ12aの内容がそのまま制御部10cへ伝えられ、一部の命令実行について条件がつく状態となる。
図11は図1に示す実施形態に対し、プロセッサ100外部の外部メモリデータ転送装置6と外部メモリ5に替え、外部シリアルデータ処理装置8を接続したものである。外部シリアルデータ処理装置8は、SIMDプロセッサ100の並列処理に合わない処理、例えば画像処理の誤差拡散やラベリング処理などに多用される処理であり、ある画素の処理内容が隣接する画素の処理後の内容に左右される場合には、SIMDの処理に適さない。このような処理は、画素データを順次読み込み、処理後の結果を順次格納する方式で処理する必要がある。そこで、外部入出力ポート4に接続する外部シリアルデータ処理装置8が、画素データを順次読み込み、処理後順次結果を各レジスタに戻す方法が考えられる。この図11に示す例では、外部シリアルデータ処理装置8の処理内容は何であってもよく、データの読み込み/書き込みが外部メモリデータ転送装置6と同様に実行できれば良い。
SIMD型プロセッサでは比較的苦手とする演算、たとえば最大値や最小値を求める演算や計数等では、シリアルに処理する方が適している場合がある。シリアル処理は特別な装置がなくてもソフト(プログラム)による実行が可能であるが、専用の装置が利用できれば一般的にソフト処理より高速になる。上記した図11に示す構成によれば、PEに内蔵するレジスタに外部からアクセス可能なポート4を持つSIMD型プロセッサ100の場合、このポート4にシリアル処理すための装置を接続するのに適している。SIMD型プロセッサが比較的苦手とするシリアル演算を、接続された外部シリアルデータ処理装置8で行い、SIMD型プロセッサ100は外部シリアルデータ処理装置8の作動中に別の処理を実行できるため、プログラム実行時間が節約される。上記した各実施形態の効果は、外部シリアルデータ処理装置を接続した場合でも、同様に得られる。
この発明の実施形態にかかるSIMD型プロセッサの概略構成を示すブロック図である。 この発明の実施形態にかかるSIMD型プロセッサの詳細な構成を示すブロック図である。 この発明の実施形態にかかるSIMD型プロセッサにおけるレジスタへアクセスするためのアドレスの一例を示す図である。 この発明の実施形態にかかるSIMD型プロセッサにおけるグロバールプロセッサ内のデータRAMへのアクセスするためのアドレスの一例を示す図である。 この発明の実施形態にかかるSIMD型プロセッサにおけるグロバールプロセッサ内のデータRAMへのアクセス部分を示すブロック図である。 この発明の第2の実施形態にかかるSIMD型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。 この発明の第3の実施形態にかかるSIMD型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。 この発明の第4の実施形態にかかるSIMD型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。 この発明の第5の実施形態にかかるSIMD型プロセッサを用いた画像処理プロセッサの詳細な構成を示すブロック図である。 この発明の第2の実施形態にかかるSIMD型プロセッサを用いた画像処理プロセッサにおけるレジスタへアクセスするためのアドレスの一例を示す図である。 この発明の他の実施形態にかかるSIMD型プロセッサを用いた画像処理プロセッサの概略構成を示すブロック図である。 従来のバス方式による演算データの転送を行うSIMD型プロセッサの概略構成を示すブロック図である。 従来のバス方式による演算データの転送を行うSIMD型プロセッサの詳細な構成を示すブロック図である。
符号の説明
100 SIMD型プロセッサ
1 グロバールプロセッサ(GP)
2 レジスタファイル
3 演算アレイ
4 外部入出力ポート
5 外部メモリ
7 システムバス
12 ポストレジスタ
13 データRAM

Claims (15)

  1. グローバルプロセッサと、複数のプロセッサエレメントと、外部メモリデータ転送装置から前記プロセッサエレメントのレジスタにデータ書き込む、あるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備え、各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能なSIMD型プロセッサにおいて、
    前記グローバルプロセッサ内にプロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な1つ以上の情報格納手段をさらに備え、
    前記外部ポートを介して前記グローバルプロセッサと前記外部メモリデータ転送装置との間でデータの授受を行い、
    前記情報格納手段に前記外部ポートから入力されるデータは、前記グローバルプロセッサから読み出しのみ実施でき、前記情報格納手段に前記グローバルプロセッサから入力されるデータは前記外部ポートからのみ読み出しができることを特徴とするSIMD型プロセッサ。
  2. 前記情報格納手段が書き込み内容で内容が反転するトグル機能を持つことを特徴とする請求項に記載のSIMD型プロセッサ。
  3. 前記情報格納手段に対し、前記外部ポートから入力されるデータによって、前記グローバルプロセッサに割込みを発生させる機能を有することを特徴とする請求項に記載のSIMD型プロセッサ。
  4. 前記グローバルプロセッサからアクセス可能なデータを記憶する記憶装置を備え、前記外部ポートを通じてプロセッサ外部から前記記憶装置にアクセスする経路を備えたことを特徴とする請求項1に記載のSIMD型プロセッサ。
  5. 前記記憶装置にアクセスする権限が設定されており、その権限の獲得がないと前記外部ポートを通じて外部から前記記憶装置にアクセスできない仕組みを備えたことを特徴とする請求項に記載のSIMD型プロセッサ。
  6. 前記外部ポートを通じて外部から前記記憶装置にアクセスするのを、前記グローバルプロセッサから命令実行によって禁止または許可の設定ができるレジスタまたはフラグを備えたことを特徴とする請求項に記載のSIMD型プロセッサ。
  7. 前記外部ポートを通じて外部からの前記記憶装置へのアクセス要求が、同時に複数発生したとき、アクセス権を付与する優先権判定を行う回路を備えたことを特徴とする請求項に記載のSIMD型プロセッサ。
  8. 前記グローバルプロセッサによって内容の設定が可能なレジスタの内容によって優先権設定が変更可能な優先権判定回路を備えたことを特徴とする請求項に記載のSIMD型プロセッサ。
  9. 前記外部ポートを通じて外部から前記記憶装置にアクセスするときに指定するアドレスを、プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能なレジスタから指定することを特徴とする請求項に記載のSIMD型プロセッサ。
  10. アクセスする前記記憶装置上のアドレスを保持しているレジスタが、前記記憶装置のアクセスのたびに特定値だけ加算されることを特徴とする請求項に記載のSIMD型プロセッサ。
  11. グローバルプロセッサと、複数のプロセッサエレメントと、接続され前記プロセッサエレメントのレジスタにデータ書き込むあるいは前記プロセッサエレメントのレジスタから処理後のデータの読み出しを行うための外部ポートとを備えたSIMD型プロセッサと、画像のデータを記憶するための外部メモリと、前記外部ポートと接続され前記外部メモリにアクセス可能な外部メモリデータ転送装置と、を備え、前記各プロセッサエレメントを指定するアドレスを入力することで、任意のプロセッサエレメントの内蔵するレジスタに外部からアクセス可能な画像処理プロセッサにおいて、
    プロセッサエレメント指定以外のアドレスに割り付けられ、外部からアクセス可能な1つ以上の情報格納手段と、前記情報格納手段に外部ポート作動中を示すフラグレジスタを設けて、当該フラグレジスタの内容を前記グローバルプロセッサの命令動作制御部へ与える信号経路をさらに備え、
    前記外部メモリデータ転送装置の動作指示が前記外部ポートを介して前記SIMD型プロセッサから与えられるとともに、前記外部メモリデータ転送装置の動作状態を前記外部ポートを介して前記SIMD型プロセッサへ伝達し、
    前記グローバルロプロセッサの前記命令動作制御部は、命令動作完了に前記フラグレジスタの内容に応じて命令を与えることを特徴とする画像処理プロセッサ。
  12. 記グローバルプロセッサが特定のレジスタの操作する場合を検出する検出装置を備え、前記グローバルプロセッサの前記命令動作制御部は、前記検出装置の結果と前記フラグレジスタの内容を条件として完了命令を与えることを特徴する請求項11に記載の画像処理プロセッサ。
  13. 前記グローバルプロセッサからアクセス可能なレジスタを備え、レジスタの内容により、命令の完了を条件付きあるいは条件なしとすることが可能にすることを特徴とする請求項11又は12に記載の画像処理プロセッサ。
  14. 前記外部メモリデータ転送装置の動作指示と同時に前記フラグレジスタを動作状態を示す状態にする命令を与えること特徴とする請求項11又は12に記載の画像処理プロセッサ。
  15. 前記フラグレジスタを前記グローバルプロセッサからリード可能に構成したことを特徴とする請求項11又は12に記載の画像処理プロセッサ。
JP2004148793A 2004-01-19 2004-05-19 Simd型プロセッサ及び画像処理プロセッサ Expired - Fee Related JP4641151B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004148793A JP4641151B2 (ja) 2004-01-19 2004-05-19 Simd型プロセッサ及び画像処理プロセッサ

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2004010451 2004-01-19
JP2004148793A JP4641151B2 (ja) 2004-01-19 2004-05-19 Simd型プロセッサ及び画像処理プロセッサ

Publications (2)

Publication Number Publication Date
JP2005235161A JP2005235161A (ja) 2005-09-02
JP4641151B2 true JP4641151B2 (ja) 2011-03-02

Family

ID=35018030

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004148793A Expired - Fee Related JP4641151B2 (ja) 2004-01-19 2004-05-19 Simd型プロセッサ及び画像処理プロセッサ

Country Status (1)

Country Link
JP (1) JP4641151B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4798055B2 (ja) * 2007-04-25 2011-10-19 ソニー株式会社 画像処理装置およびカメラシステム
JP5888028B2 (ja) * 2012-03-14 2016-03-16 株式会社リコー Simd型のマイクロプロセッサ及びプロセッサシステム
JP5889372B2 (ja) * 2014-08-11 2016-03-22 キヤノン株式会社 情報処理装置、情報処理システム、情報処理方法、制御装置および制御方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07500437A (ja) * 1991-10-24 1995-01-12 インテル コーポレイシヨン データ処理システム
JP2001092792A (ja) * 1999-09-27 2001-04-06 Hitachi Ltd データ処理装置
JP2002134538A (ja) * 2000-10-27 2002-05-10 Nec Corp ハンダバンプの形成方法
JP2002298135A (ja) * 2001-04-02 2002-10-11 Ricoh Co Ltd Simd型マイクロプロセッサにおける間引き装置、及び拡大装置
JP2002366534A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・プロセッサ及び処理装置
JP2003067355A (ja) * 2001-06-19 2003-03-07 Fujitsu Ltd データ転送および受信方法、マルチ・ノードコンピュータシステム、およびコンピュータ読取り可能な記録媒体
JP2003216950A (ja) * 2002-01-28 2003-07-31 Ricoh Co Ltd パターンマッチングなどを行なうためのsimd型マイクロプロセッサ

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07500437A (ja) * 1991-10-24 1995-01-12 インテル コーポレイシヨン データ処理システム
JP2001092792A (ja) * 1999-09-27 2001-04-06 Hitachi Ltd データ処理装置
JP2002134538A (ja) * 2000-10-27 2002-05-10 Nec Corp ハンダバンプの形成方法
JP2002366534A (ja) * 2001-03-22 2002-12-20 Sony Computer Entertainment Inc コンピュータ・プロセッサ及び処理装置
JP2002298135A (ja) * 2001-04-02 2002-10-11 Ricoh Co Ltd Simd型マイクロプロセッサにおける間引き装置、及び拡大装置
JP2003067355A (ja) * 2001-06-19 2003-03-07 Fujitsu Ltd データ転送および受信方法、マルチ・ノードコンピュータシステム、およびコンピュータ読取り可能な記録媒体
JP2003216950A (ja) * 2002-01-28 2003-07-31 Ricoh Co Ltd パターンマッチングなどを行なうためのsimd型マイクロプロセッサ

Also Published As

Publication number Publication date
JP2005235161A (ja) 2005-09-02

Similar Documents

Publication Publication Date Title
US6434689B2 (en) Data processing unit with interface for sharing registers by a processor and a coprocessor
JP5573134B2 (ja) ベクトル型計算機及びベクトル型計算機の命令制御方法
US20080072011A1 (en) SIMD type microprocessor
CN1983167A (zh) 将一个处理器与一个协处理器相接口的方法
EP0087785B1 (en) Microprogram controlled data processing apparatus
JPS5932045A (ja) 情報処理装置
JP4226085B2 (ja) マイクロプロセッサ及びマルチプロセッサシステム
JPH01131949A (ja) 処理依頼機能を持つ並列計算機
US5029073A (en) Method for fast establishing a co-processor to memory linkage by main processor
EP0807900B1 (en) Microprocessor for processing graphics
JP2008217061A (ja) Simd型マイクロプロセッサ
JP4641151B2 (ja) Simd型プロセッサ及び画像処理プロセッサ
US6738837B1 (en) Digital system with split transaction memory access
JPH0743648B2 (ja) 情報処理装置
US11093276B2 (en) System and method for batch accessing
EP0447101B1 (en) Processor with data format-independent instructions
JP4446968B2 (ja) データ処理装置
JPH0461390B2 (ja)
KR100241970B1 (ko) 파이프라인 처리를 수행하는 데이터 처리 장치
JP4916151B2 (ja) 並列演算装置
US6727903B1 (en) Microprocessor, and graphics processing apparatus and method using the same
CN114281726B (zh) 用于soc芯片的系统架构及外设通信方法
JP2013131139A (ja) アクセス制御装置、画像処理装置及びアクセス制御方法
US20130159682A1 (en) Decimal floating-point processor
JP2024000852A (ja) プログラマブル信号処理回路及び当該回路用のプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070510

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20090731

RD05 Notification of revocation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7425

Effective date: 20090909

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090914

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091117

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100118

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20101124

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: 20101126

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: 20131210

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees