説明

SIMD型プロセッサを備えたマイクロプロセッサとその処理方法

【課題】データの増加に伴ってプロセッサエレメントの数が増加しても、従来技術に比較してデータ転送速度を向上できるSIMD型プロセッサを備えたマイクロプロセッサを提供する。
【解決手段】データ転送装置2−3は、データ転送用ポートP3から256プロセッサエレメント分の距離以内の位置に配置されたプロセッサエレメントPE0〜PE255の汎用レジスタR3との間で500MHzの周波数を有するクロック信号CKに従って所定の第1のデータ転送速度でデータ転送を行う一方、データ転送用ポートP3から256プロセッサエレメント分の距離より遠い位置に配置されたプロセッサエレメントPE256〜PE511の汎用レジスタR3であとの間で250MHzの周波数を有するクロック信号CK2に従って第1のデータ転送速度の半分の第2のデータ転送速度でデータ転送を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、1つの演算命令によって複数のデータ等を並列処理するSIMD(Single Instructuon stream Multiple Data stream)型プロセッサを備えたマイクロプロセッサ及び当該マイクロプロセッサの処理方法に関する。
【背景技術】
【0002】
近年、デジタルコピア、デジタル複写機又はファクリミリ装置等の画像処理装置において、画素数を増加させたり、あるいはカラー対応の構成にしたりするなどの画質の向上が図られている。そして、画質の向上に伴い、処理すべきデータ数が増加しており画像処理のためのIPU(Image Processing Unit:イメージプロセッシングユニット)の処理性能の向上が必須になってきている。一方、画像処理装置におけるデータ処理では、全ての画素データに対して同一の演算処理を行うことが多い。そこで、1つの命令で複数のデータに対して同時に同一の演算処理を行うSIMD型プロセッサがIPUとして用いられるようになっている。
【0003】
ここで、一般に、画像処理のためのSIMD型プロセッサは複数段の汎用レジスタをそれぞれ備えた複数の演算ユニット(Processer Unit(以下、プロセッサエレメント又はPEという。))を画像データの主走査方向に並べて構成される。そして、全てのプロセッサエレメントの各同一段の汎用レジスタに対してそれぞれ1ライン分の画像データが転送され、当該1ライン分の画像データ内の複数の画素データに対して同一の演算を同時に実行する(例えば、特許文献1参照。)。
【0004】
特許文献2〜5は、SIMD型プロセッサとの間で画像データなどのデータ転送を行うデータ転送装置とSIMD型プロセッサとの間のデータ転送方法をそれぞれ開示している。例えば、特許文献2は、プロセッサエレメント内の汎用レジスタをカラムデコーダにてなるシフトレジスタで構成するシフトレジスタ方式のデータ転送方法を開示している。しかしながら、この場合、例えば256個のプロセッサエレメントを備えたSIMD型プロセッサの場合には、最初に1番目のプロセッサエレメントの1段目のシフトレジスタに転送されたデータが255番目のプロセッサエレメントの1段目のシフトレジスタに保持されるまでに256回のクロック入力が必要となり、データ転送時間を短縮できなかった。
【0005】
このような問題を解決するために、特許文献3は、「プロセッサエレメントに割り付けられたアドレスにより所定のプロセッサエレメントを指定する指定手段」を備えたSIMD型プロセッサを開示している。これにより、特許文献2に比較して、SIMD型プロセッサへのデータ転送速度を向上できる。また、特許文献4は、「複数のデータ演算装置により構成され、各データ演算装置は、複数のプロセッサエレメントを有し、各プロセッサエレメントは、入力されるシリアルデータを取り込む取り込み部と、前記取り込み部で取り込まれたデータを演算する演算部と、前記演算部で演算された結果をシリアルデータとして出力する出力部とを備えるデータ演算システムにおいて、前記データ演算装置のうちの第1のデータ演算装置の取り込み部におけるシリアルデータの取り込みを、前記データ演算装置のうちの第2のデータ演算装置の取り込み部におけるシリアルデータの取り込みに較べて遅延させる入力遅延手段と、前記第1のデータ演算装置の出力部におけるシリアルデータの出力を、前記第2のデータ演算装置の出力部におけるシリアルデータの出力に較べて遅延させる出力遅延手段とを備えることを特徴とするデータ演算システム。」を開示している。これにより、第1のデータ演算装置に加えて第2のデータ演算装置を用いることにより、処理する画素データが多くなった場合にも対応できるようにしている。
【0006】
さらに、特許文献5は、「画像データを格納するアクセスレジスタを複数段備えた複数のプロセッサエレメントが一次元状に配置されたSIMD型マイクロプロセッサと、前記アクセスレジスタと同数が前記プロセッサエレメントと同一方向に一次元状に配置されて前記アクセスレジスタへの画像データのリードおよびライトといった通信が行うようにされたデータ処理装置と、を有する画像処理装置において、前記複数段のアクセスレジスタが、複数の前記データ処理装置にそれぞれ対応し、複数の前記プロセッサエレメントそれぞれにおける同一段のアクセスレジスタを互いに接続する共通配線を設け、前記共通配線からその共通配線によって接続されているアクセスレジスタが対応する前記データ処理装置に配線するための配線の引き出し口を、対応する前記データ処理装置の最も近くに設けることを特徴とする画像処理装置。」を開示している。
【発明の概要】
【発明が解決しようとする課題】
【0007】
SIMD型プロセッサの処理性能をさらに向上するためには、動作周波数の向上及びプロセッサエレメントの個数を増やして並列度を上げるといった方法が考えられる。しかしながら、プロセッサエレメントの個数を増やすと、各プロセッサエレメントの動作を制御するブロック又はSIMD型プロセッサの外部装置(例えば、上述したデータ転送装置である。)と各プロセッサエレメント内部の各汎用レジスタとの間のデータ転送を行うためのインタフェースブロック(以下、PE外部インタフェースという。)と、各プロセッサエレメントとを結ぶ配線(以下、グローバル配線という。)が長くなってしまい、動作周波数の低下を招くことになる。特許文献3は、プロセッサエレメントの数の増大に伴う処理速度の低下を解決する方法を開示していない。
【0008】
また、特許文献4のように主走査方向の画像データを2分割して2つのデータ演算装置を用いてそれぞれ処理する場合は、並列処理の単位も2分割されており、別々に処理された2つの画像データを接続するための処理が必要になった。さらに、全てのプロセッサエレメントを2つのグループに分け、2つのグループの間に制御ブロックや、PE外部インタフェースを配置することで動作周波数の低下を抑制することも考えられるが、2つのグループの間に細長く配置した制御ブロックからSIMD型プロセッサ外部への配線数が非常に多くなり、配線レイアウトを行うことが実質的に困難となってしまう。
【0009】
また、特許文献5に記載されている画像処理装置によれば、プロセッサエレメント内の汎用レジスタにSIMD型プロセッサの外部のデータ転送装置からアクセスするためのPE外部インタフェースを、当該データ転送装置の近くに配置することができる。しかしながら、データ転送装置及びPE外部インタフェースが全てのプロセッサエレメントの中央部に配置された場合に比較して、データ転送装置及びPE外部インタフェースが全てのプロセッサエレメントの両側などに配置された場合は、PE外部インタフェースから最も遠い汎用レジスタまでの距離が増加するのでデータ転送装置は低速動作を行うことになりデータ転送効率が悪くなるという課題があった。また。PE外部インタフェースから最も遠い汎用レジスタまでの距離が比較的小さく高速動作できるデータ転送装置と、上記距離が大きく低速動作しかできないデータ転送装置との間でのデータのやり取りを行うことができない。このため、拡大処理又は縮小処理のような変倍処理(以下、速度変換処理ともいう。)などのように複数のデータ転送装置からの各データを同期して処理を行えないという問題点があった。
【0010】
本発明の目的は以上の問題点を解決し、データの増加に伴ってプロセッサエレメントの数が増加しても、従来技術に比較してデータ転送速度を向上できるSIMD型プロセッサを備えたマイクロプロセッサ及び当該マイクロプロセッサの処理方法を提供することにある。
【課題を解決するための手段】
【0011】
第1の発明に係るマイクロプロセッサは、複数N個のレジスタをそれぞれ備えかつそれぞれ固有アドレスを有する複数のプロセッサエレメントと、上記各プロセッサエレメントの各1つのレジスタがそれに対応する1つのデータ転送用ポートに接続されるように構成された複数N個のデータ転送用ポートとを備えたSIMD型プロセッサと、
1つのデータ転送装置が対応する少なくとも1つのデータ転送用ポートに接続されるように構成され、上記各プロセッサエレメントの固有アドレスを指定して、上記各レジスタとの間でデータ転送を行う複数N個のデータ転送装置とを備えたマイクロプロセッサにおいて、
上記各データ転送装置は、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行う第1の制御手段を備えたことを特徴とする。
【0012】
上記マイクロプロセッサにおいて、
上記複数N個のデータ転送装置のうちの第1と第2のデータ転送装置において、
上記第1のデータ転送装置が第1のデータ転送用ポートに接続され、上記第2のデータ転送装置が第2のデータ転送用ポートに接続され、
上記第1と第2のデータ転送用ポートは上記複数のプロセッサエレメントを挟むように配置されたことを特徴とする。
【0013】
また、上記マイクロプロセッサにおいて、上記第1のデータ転送装置は上記第1のデータ転送用ポートを介して当該第1のデータ転送用ポートからデータ転送を行うレジスタまでの距離が上記所定のしきい値距離以内のレジスタと接続され、
上記第2のデータ転送装置は上記第2のデータ転送用ポートを介して当該第2のデータ転送用ポートからデータ転送を行うレジスタまでの距離が上記所定のしきい値距離以内のレジスタと接続されたことを特徴とする。
【0014】
さらに、上記マイクロプロセッサにおいて、上記SIMD型プロセッサは、
上記第1のデータ転送装置が上記第1のデータ転送用ポートを介して所定の第1のレジスタにデータを転送するように上記第1のデータ転送装置に対して制御し、
上記第2のデータ転送装置が上記第2のデータ転送用ポートを介して所定の第2のレジスタにデータを転送するように上記第2のデータ転送装置に対して制御した後、
上記第1のレジスタ内のデータを、上記第2のデータ転送装置に第3のデータ転送用ポートを介して接続された第3のレジスタに転送し、上記第2のレジスタ内のデータを、上記第1のレジスタに転送するように所定の命令を用いて制御する第2の制御手段を備えたことを特徴とする。
【0015】
またさらに、上記マイクロプロセッサにおいて、上記各データ転送装置は、
所定の記憶装置から読み出されたデータを格納するための転送データバッファと、
上記記憶装置から読み出されたデータと、上記転送データバッファに格納されたデータとのうちのいずれかのデータを選択的に上記データ転送用ポートに出力する第1のマルチプレクサとを備えたことを特徴とする。
【0016】
また、上記マイクロプロセッサにおいて、上記各データ転送装置は、
当該データ転送装置に接続されたデータ転送用ポートを介して読み出されたデータと、上記転送データバッファに格納されたデータとのうちのいずれかのデータを選択的に、上記第1のデータ転送速度で他のデータ転送装置に出力する第2のマルチプレクサをさらに備えたことを特徴とする。
【0017】
さらに、上記マイクロプロセッサにおいて、上記記憶手段から読み出されたデータは画像データを拡大するための変倍制御データであり、
上記第1の制御手段は、上記変倍制御データを上記第1のデータ転送速度で他のデータ転送装置に直接に出力するとともに所定のレジスタに転送するときに、(a)当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離以内の場合において、上記第1のマルチプレクサに対して上記記憶手段から読み出された変倍制御データを出力するように制御して、上記第1のマルチプレクサから出力された変倍制御データを上記第1のデータ転送速度で上記データ転送用ポートに出力する一方、(b)当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において、上記第1のマルチプレクサに対して上記転送データバッファに格納された変倍制御データを出力するように制御して、上記第1のマルチプレクサから出力された変倍制御データを上記第2のデータ転送速度で上記データ転送用ポートに出力することを特徴とする。
【0018】
さらに、上記マイクロプロセッサにおいて、上記記憶手段から読み出されたデータは画像データを縮小するための変倍制御データであり、
上記第1の制御手段は、上記変倍制御データを所定のレジスタに転送するときに、上記第1のマルチプレクサに対して上記記憶手段から読み出された変倍制御データを出力するように制御して、上記第1のマルチプレクサから出力された変倍制御データを当該データ転送装置に接続されたデータ転送用ポートを介して当該レジスタに出力するとともに、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において、上記記憶手段から読み出された変倍制御データを上記転送データバッファに格納するように制御し、
当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離以内であるレジスタに出力された変倍制御データを上記第1のデータ転送速度で上記データ転送用ポートを介して読み出し、上記第2のマルチプレクサに対して上記データ転送用ポートを介して読み出された変倍制御データを上記第1のデータ転送速度で他のデータ転送装置に出力するように制御し、
上記第2のマルチプレクサに対して上記転送データバッファに格納された変倍制御データを上記第1のデータ転送速度で他のデータ転送装置に出力するように制御することを特徴とする。
【0019】
第2の発明に係るマイクロプロセッサの処理方法は、複数N個のレジスタをそれぞれ備えかつそれぞれ固有アドレスを有する複数のプロセッサエレメントと、上記各プロセッサエレメントの各1つのレジスタがそれに対応する1つのデータ転送用ポートに接続されるように構成された複数N個のデータ転送用ポートとを備えたSIMD型プロセッサと、
1つのデータ転送装置が対応する少なくとも1つのデータ転送用ポートに接続されるように構成され、上記各プロセッサエレメントの固有アドレスを指定して、上記各レジスタとの間でデータ転送を行う複数N個のデータ転送装置とを備えたマイクロプロセッサの処理方法において、
上記各データ転送装置において、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行う制御ステップを含むことを特徴とするマイクロプロセッサの処理方法。
【発明の効果】
【0020】
本発明に係るSIMD型プロセッサを備えたマイクロプロセッサとその処理方法によれば、各データ転送装置において、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行うので、データの増加に伴ってプロセッサエレメントの数が増加しても、従来技術に比較してデータ転送速度を向上できる。
【図面の簡単な説明】
【0021】
【図1】データ転送装置2−0〜2−8、RAM1−0〜1−8及びSIMD型プロセッサ10を備えた本発明の第1の実施形態に係る画像処理装置の構成を示すブロック図である。
【図2】図1の各データ転送装置2の構成を示すブロック図である。
【図3】図1の画像処理装置の第1の動作例を示すブロック図である。
【図4】比較例に係る画像処理装置の動作例を示すブロック図である。
【図5】図1の画像処理装置の第2の動作例を示すブロック図である。
【図6】図1の画像処理装置の第3の動作例を示すブロック図である。
【図7】本発明の第2の実施形態に係る画像処理装置の要部の構成を示すブロック図である。
【図8】図7の画像処理装置の動作例を示すブロック図である。
【図9】本発明の第3の実施形態に係るデータ転送装置2Aの構成を示すブロック図である。
【図10】画像データの縮小を行うときの図9のデータ転送装置2Aと同様に構成されたデータ転送装置2A−0及び2A−3の動作例を示すブロック図である。
【図11】画像データの拡大を行うときの図9のデータ転送装置2Aと同様に構成されたデータ転送装置2A−0及び2A−3の動作例を示すブロック図である。
【発明を実施するための形態】
【0022】
以下、本発明に係る実施形態について図面を参照して説明する。なお、以下の各実施形態において、同様の構成要素については同一の符号を付している。
【0023】
第1の実施形態.
図1は、データ転送装置2−0〜2−8(以下、データ転送装置2と総称する。)、RAM(Random Access Memory)1−0〜1−8(以下、RAM1と総称する。)及びSIMD型プロセッサ10を備えた本発明の第1の実施形態に係る画像処理装置の構成を示すブロック図であり、図2は、図1の各データ転送装置2の構成を示すブロック図である。また、図3、図5及び図6はそれぞれ、図1の画像処理装置の第1乃至第3の動作例を示すブロック図である。
【0024】
詳細後述するように、本実施形態に係る画像処理装置は、9個の汎用レジスタR0〜R8をそれぞれ備えかつそれぞれ固有アドレスを有するプロセッサエレメントPE0〜PE511と、上記各プロセッサエレメントの各1つのレジスタがそれに対応する1つのデータ転送用ポートに接続されるように構成された9個のデータ転送用ポートP0〜P8とを備えたSIMD型プロセッサ10と、1つのデータ転送装置が対応する少なくとも1つのデータ転送用ポートに接続されるように構成され、上記各プロセッサエレメントの固有アドレスを指定して、上記各レジスタとの間でデータ転送を行う9個のデータ転送装置2−0〜2−8とを備えた画像処理装置において、上記各データ転送装置2は、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行う第1の制御手段を備えたことを特徴としている。
【0025】
図1の画像処理装置はマイクロプロセッサであって、シングルポートメモリにてなるRAM1−0〜1−8と、データ転送装置2−0〜2−8と、SIMD型プロセッサ10とを備えて構成される。RAM1はそれぞれ、処理対象の1ライン分の画像データ、画像データを拡大又は縮小する変倍処理のための変倍制御データ、又は処理後の画像データを格納する。ここで、1ライン分の画像データは複数の画素データを含む。また、画像データを拡大する場合の変倍制御データは、画像データ内の各画素データにそれぞれ対応するフラグ値を含み、各フラグ値は対応する画素データを重複して出力するか否かを示す1ビットのデータである。さらに、画像データを縮小する場合の変倍制御データは、画像データ内の各画素データにそれぞれ対応するフラグ値を含み、各フラグ値は対応する画素データを出力せずに間引くか否かを示す1ビットのデータである。図1において、RAM1−1は変倍制御データを格納し、他のRAM1−0,1−2〜1−8はそれぞれ1ライン分の画像データを格納しているが、どのRAM1が変倍制御データを格納してもよい。
【0026】
図1において、各データ転送装置2−0〜2−8はRAM1−0〜1−8にそれぞれ接続され、SIMD型プロセッサ10のグローバルプロセッサ5からの動作設定用データ及びデータ転送のためのコマンドに従って、接続されているRAM1−0〜1−8とSIMD型プロセッサ10内の対応する汎用レジスタR0〜R8との間のデータ転送を行う。ここで、各データ転送装置2は、外部同期信号である500MHzの周波数を有するパルス形状のクロック信号CKに従って互いに同期して動作する。また、変倍制御データを格納するRAM1−1に接続されたデータ転送装置2−1は、他のデータ転送装置2−0,2−2〜2−8に変倍制御データを送信する。なお、各データ転送装置2の構成及び動作については、図2を参照して詳細後述する。
【0027】
図1において、SIMD型プロセッサ10は、グローバルプロセッサ(GP)5と、データ転送用ポートP3〜P5を備えたPE外部インタフェース3−1と、データ転送用ポートP0〜P2を備えたPE外部インタフェース3−2と、データ転送用ポートP6〜P8を備えたPE外部インタフェース3−3(以下、PE外部インタフェース3−1〜3−3をPE外部インタフェース3と総称する。)と、プロセッサエレメントアレイ4−1,4−2とを備えて構成される。プロセッサエレメントアレイ4−1は、互いに平行に配置された256個のプロセッサエレメントPE0〜PE255を備え、各プロセッサエレメントPEn(n=0,1,…,255)は汎用レジスタR0〜R8と、演算回路Anとを備える。また、プロセッサエレメントアレイ4−2は、互いに平行に配置された256個のプロセッサエレメントPE256〜PE511を備え、各プロセッサエレメントPEm(m=256,257,…,511)は汎用レジスタR0〜R8と、演算回路Amとを備える。演算回路A0〜A511は、1つの演算アレイを構成する。ここで、図1に示すように各プロセッサエレメントPE0〜PE511の1段目の汎用レジスタR0は各プロセッサエレメントPE0〜PE511が配置される方向に直交する方向に沿って配置される。同様に、各プロセッサエレメントPE0〜PE511の各同一の段の汎用レジスタR1〜R8も各プロセッサエレメントPE0〜PE511が配置される方向に直交する方向に沿って配置される。さらに、PE外部インタフェース3−1はプロセッサエレメントアレイ4−1の外側(図4上の最上部)に設けられ、PE外部インタフェース3−2はプロセッサエレメントアレイ4−1,4−2の間に設けられ、PE外部インタフェース3−1はプロセッサエレメントアレイ4−2の外側(図4上の最下部)に設けられる。
【0028】
図1において、データ転送装置2−0〜2−2はそれぞれ、PE外部インタフェース3−2のデータ転送用ポートP0〜P2を介して、プロセッサエレメントPE0〜PE511の汎用レジスタR0〜R2に接続される。また、データ転送装置2−3〜2−5はそれぞれ、PE外部インタフェース3−1のデータ転送用ポートP3〜P5を介して、プロセッサエレメントPE0〜PE511の汎用レジスタR3〜R5に接続される。さらに、データ転送装置2−6〜2−8はそれぞれ、PE外部インタフェース3−3のデータ転送用ポートP6〜P8を介して、プロセッサエレメントPE0〜PE511の汎用レジスタR6〜R8に接続される。各プロセッサエレメントPE0〜PE511にはグローバルプロセッサ5により、それぞれ固有アドレスが割り当てられており、各データ転送装置2は、アドレス指定信号を出力することによりプロセッサエレメントPE0〜PE511に割り当てられた各固有アドレスを指定して、当該データ転送装置2にPE外部インタフェース3を介して接続された任意のプロセッサエレメントの汎用レジスタとの間でデータ転送を行う。本実施形態では、プロセッサエレメントPE0〜PE511には、固有アドレス0〜511がそれぞれ割り当てられている。すなわち、プロセッサエレメントPE0〜PE511には、PE外部インタフェース3−1からプロセッサエレメントPE0〜PE511までの距離に対応する値を有する固有アドレスが割り当てられている。
【0029】
図1において、グローバルプロセッサ5は、SIMD型プロセッサ10の全体の動作、ならびにプロセッサエレメントアレイ4−1,4−2及びPE外部インタフェース3−1〜3−3の各動作を制御するとともに、各データ転送装置2に対して動作設定用データ及びデータ転送のためのコマンドなどを送信する。
【0030】
図2において、データ転送装置2は、シーケンスユニット200と、ライトバッファ201と、RAM1の動作を制御するRAM制御部202と、リードバッファ203と、PE制御部204と、PE範囲指定レジスタ205と、PE範囲指定レジスタ206とを備えて構成される。シーケンスユニット200は、データ転送装置2全体の動作ならびにライトバッファ201、RAM制御部202、リードバッファ203、PE制御部204、PE範囲指定レジスタ205、及びPE範囲指定レジスタ206の各動作を制御するために設けられ、比較器211及び212と、転送速度制御回路213と、アンドゲート214とを備えて構成される。ここで、転送速度制御回路213からの出力信号はアンドゲート214の第1の入力端子に出力され、クロック信号CKはアンドゲート214の第2の入力端子に出力される。また、PE制御部204は、転送を開始するプロセッサエレメントの固有アドレス(以下、転送開始PEアドレスという。)を予め格納する転送開始PEアドレスレジスタ221と、アップカウンタ回路にてなるPEアドレスカウンタ回路222と、リード/ライト指定信号発生回路223とを備えて構成される。
【0031】
シーケンスユニット200は、グローバルプロセッサ5からの所定の転送開始コマンドに応答して、データ転送装置2に接続された汎用レジスタに対してデータの読み出し又は書き込みを指示するためのリード/ライト指定信号及び読み出し又は書き込み対象のプロセッサエレメントの固有アドレスを指定するアドレス指定信号を発生するように、PE制御部204を制御する。これに応答して、PE制御部204のリード/ライト指定信号発生回路223は、リード/ライト指定信号を発生してPE外部インタフェース3を介して対応する汎用レジスタに出力する。また、PEアドレスカウンタ回路222は、転送開始PEアドレスレジスタ221から転送開始PEアドレスをロードし、詳細後述するシーケンスユニット200の転送速度制御回路213からのカウントアップ信号に従って固有アドレスをインクリメントすることにより、読み出し又は書き込み対象のプロセッサエレメントの固有アドレスを指定するアドレス指定信号を発生する。そして、アドレス指定信号は、PE外部インタフェース3を介して対応する汎用レジスタに出力されるとともに、比較器211,212に出力される。
【0032】
PE範囲指定レジスタ205及び206はそれぞれ、データ転送装置2に接続されているプロセッサエレメントPE0〜PE511のうち250MHzの周波数を有するクロック信号CK2に従ってデータ転送を行う各プロセッサエレメントの固有アドレスの最小値PEmin及び最大値PEmaxを予め格納する。比較器211はPEアドレスカウンタ回路222からのアドレス信号に含まれるPEアドレスとPEアドレスPEminとを比較し、当該比較結果を示す信号を転送速度制御回路213に出力する。また、比較器212はPEアドレスカウンタ回路222からのアドレス信号に含まれるPEアドレスとPEアドレスPEmaxとを比較し、当該比較結果を示す信号を転送速度制御回路213に出力する。転送速度制御回路213は、比較器211及び212からの各信号に基づいて、読み出し又は書き込み対象のプロセッサエレメントの固有アドレスがPEアドレスPEmin以上かつPEアドレスPEmax以下であるか否かを判断し、PEアドレスPEmin以上かつPEアドレスPEmax以下である場合は、クロック信号CKの立ち上がりエッジの各タイミングでハイレベル及びローレベルの信号を交互に発生してアンドゲート214の第1の入力端子に出力する。一方、読み出し又は書き込み対象のプロセッサエレメントの固有アドレスがPEアドレスPEminより大きいか又はPEアドレスPEmaxより小さい場合は、ハイレベルの信号を発生してアンドゲート214の第1の入力端子に出力する。また、転送速度制御回路213は、クロック信号CK又はCK2を出力するときに、カウントアップ信号を発生してPEアドレスカウンタ回路222に出力する。
【0033】
これにより、アンドゲート214は、読み出し又は書き込み対象のプロセッサエレメントの固有アドレスがPEアドレスPEmin以上かつPEアドレスPEmax以下であるときには、クロック信号CK2をPE外部インタフェース3を介して汎用レジスタに出力する一方、PEアドレスPEminより大きいか又はPEアドレスPEmaxより小さいときには、クロック信号CKをPE外部インタフェース3を介して汎用レジスタに出力する。なお、データ転送装置2に接続された全ての汎用レジスタに対して、クロック信号CKのみを用いてデータ転送を行う場合には、PE範囲指定レジスタ206及び207はそれぞれ、最大のPEアドレスより大きい所定の値を格納する。
【0034】
図2において、汎用レジスタから読み出されたデータはPE外部インタフェース3のデータ転送用ポート及びライトバッファ201を介してRAM1に出力される。一方、RAM1から読み出されたデータは、リードバッファ203及びPE外部インタフェース3のデータ転送用ポートを介して汎用レジスタに出力される。このとき、PE外部インタフェース3と汎用レジスタとの間のデータ転送は、アンドゲート214から出力されたクロック信号CK又はCK2に従って行われる。さらに、RAM1が変倍制御データを格納している場合、データ転送装置2(例えば、図1のデータ転送装置2−1である。)は、アンドゲート214からのクロック信号CK又はCK2に従って変倍制御データを他のデータ転送装置2に出力する。
【0035】
次に、図3を参照して、図1の画像処理装置の第1の動作例を説明する。図3において、データ転送装置2−1のPE範囲指定レジスタ206及び207はそれぞれ、プロセッサエレメントPE256の固有アドレス256及びプロセッサエレメントPE511の固有アドレス511を格納している。これにより、データ転送装置2−1は、プロセッサエレメントPE0〜PE255の各汎用レジスタR1との間でクロック信号CKに従って変倍制御データの転送を行うとともに変倍制御データをデータ転送装置2−3に出力する一方、プロセッサエレメントPE256〜PE511の各汎用レジスタR1との間でクロック信号CK2に従って変倍制御データの転送を行うとともに変倍制御データをデータ転送装置2−3に出力する。また、データ転送装置2−3のPE範囲指定レジスタ206及び207はそれぞれ、プロセッサエレメントPE256の固有アドレス256及びプロセッサエレメントPE511の固有アドレス511を格納しており、データ転送装置2−3はプロセッサエレメントPE0〜PE255の各汎用レジスタR3との間でクロック信号CKに従って画像データの転送を行う一方、プロセッサエレメントPE256〜PE511の各汎用レジスタR3との間でクロック信号CK2に従って画像データの転送を行う。すなわち、本実施形態によれば、データ転送装置2−3は、プロセッサエレメントPE0〜PE511のある1つの汎用レジスタR3との間データ転送を行うときに、当該汎用レジスタR3を含むプロセッサエレメントの固有アドレスに基づいて、データ転送装置2−3に接続されたデータ転送用ポートP3から当該汎用レジスタR3までの距離がしきい値距離である256プロセッサエレメント分の距離以内の場合において、500MHzの周波数を有するクロック信号CKに従って所定の第1のデータ転送速度でデータ転送を行う。一方、データ転送装置2−3に接続されたデータ転送用ポートP3から当該汎用レジスタR3までの距離がしきい値距離である256プロセッサエレメント分の距離より大きい場合において、250MHzの周波数を有するクロック信号CK2に従って第1のデータ転送速度の半分の第2のデータ転送速度でデータ転送を行う。なお、本実施形態において、プロセッサエレメントPE0〜PE511の各固有アドレスは、PE外部インターフェースからプロセッサエレメントPE0〜PE511までの各距離に対応するように割り当てられているので、256プロセッサエレメント分の距離である上記しきい値距離は、しきい値固有アドレス256に対応する。
【0036】
一方、図4は、比較例に係る画像処理装置の動作例を示すブロック図である。図4においてデータ転送装置2−1p,2−3pは特許文献5に記載の従来技術に係るデータ転送装置(特許文献5では「データ処理装置」と記載されている。)である。従来技術に係るデータ転送装置2−1p,2−3pは、当該データ転送装置に接続されている汎用レジスタのうち当該データ転送装置から最も遠い汎用レジスタまでの配線長に基づいて通信速度を変更する。具体的には、図4において、データ転送装置2−1pは500MHzの周波数を有するクロック信号CKに従って、全てのプロセッサエレメントPE0〜PE511の各汎用レジスタR1との間で変倍制御データの転送を行う。一方、データ転送装置2−3pは250MHzの周波数を有するクロック信号CK2に従って、全てのプロセッサエレメントPE0〜PE511の汎用レジスタR3との間で画像データの転送を行う。従って、画像処理装置のレイアウト上の配線トラフィックを従来技術に比較して軽減できるが、データ転送装置2−3pはデータ転送装置2−1pに比較して半分の第2のデータ転送速度でしかデータ転送を行えないので、SIMD型プロセッサ10全体のバンド幅が目減りしてしまった。さらに、汎用レジスタR1及びR3に対して同期して変倍制御データ及び画像データを転送できないので、変倍処理を行う場合には汎用レジスタR1とデータ転送装置2−1pとの間のデータ転送をクロック信号CK2に従って行う必要があり、SIMDプロセッサ10全体のデータ転送速度が低下してしまった。
【0037】
しかしながら、本実施形態によれば、図3に示すように、データ転送装置2−3は、プロセッサエレメントPE0〜PE511のある1つの汎用レジスタR3との間データ転送を行うときに、当該汎用レジスタR3を含むプロセッサエレメントの固有アドレスに基づいて、データ転送装置2−3に接続されたデータ転送用ポートP3から当該汎用レジスタR3までの距離がしきい値距離である256プロセッサエレメント分の距離以内の場合において、500MHzの周波数を有するクロック信号CKに従って所定の第1のデータ転送速度でデータ転送を行う一方、データ転送装置2−3に接続されたデータ転送用ポートP3から当該汎用レジスタR3までの距離がしきい値距離である256プロセッサエレメント分の距離より大きい場合において、250MHzの周波数を有するクロック信号CK2に従って第1のデータ転送速度の半分の第2のデータ転送速度でデータ転送を行うので、従来技術に係るデータ転送装置2−3pに比較して、データ転送装置2−3と汎用レジスタR0〜R8との間のデータ転送速度を向上できる。さらに、変倍制御データを転送するデータ転送装置2−1を、画像データを転送するデータ転送装置2−3と同様に動作させることにより、変倍制御データ及び画像データを汎用レジスタR1及びR3に同期してかつ従来技術に比較して高速で書き込み又は読み出すことができるので、従来技術に比較して、SIMD型プロセッサ10全体のデータ転送速度を向上できる。
【0038】
次に、図5を参照して、図1の画像処理装置の第2の動作例を説明する。本動作例は、データ転送装置2−3がデータ転送用ポートP3に接続され、データ転送装置2−6がデータ転送用ポートP6に接続され、データ転送用ポートP3及びP6はプロセッサエレメントPE0〜PE511を挟むように配置されたことを特徴としている。図5において、RAM1−3及び1−6はそれぞれ画像データを格納し、RAM1−0はRAM1−3内の画像データに対応する変倍制御データを格納し、RAM1−2はRAM1−6の画像データに対応する変倍制御データを格納している。また、データ転送装置2−3は、プロセッサエレメントPE0〜PE255の各汎用レジスタR3との間でクロック信号CKに従って画像データの転送を行う一方、プロセッサエレメントPE255〜PE511の各汎用レジスタR3との間でクロック信号CK2に従って画像データの転送を行う。さらに、データ転送装置2−0は、データ転送装置2−3と同様に、プロセッサエレメントPE0〜PE255の各汎用レジスタR0との間でクロック信号CKに従って変倍制御データの転送を行う一方、プロセッサエレメントPE255〜PE511の各汎用レジスタR0との間でクロック信号CK2に従って変倍制御データの転送を行う。
【0039】
また、データ転送装置2−6は、プロセッサエレメントPE256〜PE511の各汎用レジスタR6との間でクロック信号CKに従って画像データの転送を行う一方、プロセッサエレメントPE0〜PE255の各汎用レジスタR6との間でクロック信号CK2に従って画像データの転送を行う。さらに、データ転送装置2−2は、データ転送装置2−6と同様に、プロセッサエレメントPE256〜PE511の各汎用レジスタR2との間でクロック信号CKに従って変倍制御データの転送を行う一方、プロセッサエレメントPE0〜PE255の各汎用レジスタR2との間でクロック信号CK2に従って変倍制御データの転送を行う。本動作例は、図3の第1の動作例と同様の効果を奏する。
【0040】
次に、図6を参照して、図1の画像処理装置の第3の動作例を説明する。本動作例は、データ転送装置2−3がデータ転送用ポートP3に接続され、データ転送装置2−8がデータ転送用ポートP8に接続され、データ転送用ポートP3及びP8はプロセッサエレメントPE0〜PE511を挟むように配置されたことを特徴としている。また、データ転送装置2−4がデータ転送用ポートP4に接続され、データ転送装置2−7がデータ転送用ポートP7に接続され、データ転送用ポートP4及びP7はプロセッサエレメントPE0〜PE511を挟むように配置されたことを特徴としている。
【0041】
図6において、RAM1−3及び1−8はそれぞれ画像データを格納し、RAM1−4はRAM1−3内の画像データに対応する変倍制御データを格納し、RAM1−7はRAM1−8の画像データに対応する変倍制御データを格納している。また、データ転送装置2−3は、プロセッサエレメントPE0〜PE255の各汎用レジスタR3との間でクロック信号CKに従って画像データの転送を行う一方、プロセッサエレメントPE255〜PE511の各汎用レジスタR3との間でクロック信号CK2に従って画像データの転送を行う。さらに、データ転送装置2−4は、データ転送装置2−3と同様に、プロセッサエレメントPE0〜PE255の各汎用レジスタR4との間でクロック信号CKに従って変倍制御データの転送を行う一方、プロセッサエレメントPE255〜PE511の各汎用レジスタR4との間でクロック信号CK2に従って変倍制御データの転送を行う。
【0042】
また、データ転送装置2−8は、プロセッサエレメントPE256〜PE511の各汎用レジスタR8との間でクロック信号CKに従って画像データの転送を行う一方、プロセッサエレメントPE0〜PE255の各汎用レジスタR8との間でクロック信号CK2に従って画像データの転送を行う。さらに、データ転送装置2−7は、データ転送装置2−8と同様に、プロセッサエレメントPE256〜PE511の各汎用レジスタR7との間でクロック信号CKに従って変倍制御データの転送を行う一方、プロセッサエレメントPE0〜PE255の各汎用レジスタR7との間でクロック信号CK2に従って変倍制御データの転送を行う。本動作例は、図3の第1の動作例と同様の効果を奏する。
【0043】
第2の実施形態.
図7は、本発明の第2の実施形態に係る画像処理装置の要部の構成を示すブロック図であり、図8は、図7の画像処理装置の動作例を示すブロック図である。本実施形態は、第1の実施形態の第2の動作例(図5参照。)に比較して、以下の点で異なる。
(a)データ転送装置2−3は、PE外部インタフェース3−1のデータ転送用ポートP3を介してプロセッサエレメントPE0〜PE255の各汎用レジスタR3と接続され、かつPE外部インタフェース3−1のデータ転送用ポートP4を介してプロセッサエレメントPE0〜PE255の各汎用レジスタR4と接続されている。これにより、データ転送装置2−3は、データ転送用ポートP3及びP4を介して、データ転送用ポートP3及びP4からデータ転送を行う汎用レジスタR3,R4までの距離がしきい値距離である256プロセッサエレメント分の距離以内の汎用レジスタR3,R4と接続されている。
(b)データ転送装置2−6は、PE外部インタフェース3−3のデータ転送用ポートP9を介してプロセッサエレメントPE256〜PE511の各汎用レジスタR3と接続され、かつPE外部インタフェース3−3のデータ転送用ポートP10を介してプロセッサエレメントPE256〜PE511の各汎用レジスタR4と接続されている。これにより、データ転送装置2−6は、データ転送用ポートP9及びP10を介して、データ転送用ポートP9及びP10からデータ転送を行う汎用レジスタR3,R4までの距離がしきい値距離である256プロセッサエレメント分の距離以内の汎用レジスタR3,R4と接続されている。
【0044】
図7において、RAM1−3及び1−4はそれぞれ画像データを格納し、RAM1−0はRAM1−3内の画像データに対応する変倍制御データを格納し、RAM1−2はRAM1−4の画像データに対応する変倍制御データを格納している。また、データ転送装置2−0はプロセッサエレメントPE0〜PE511の各汎用レジスタR0との間でクロック信号CKに従って変倍制御データの転送を行い、データ転送装置2−2はプロセッサエレメントPE0〜PE511の各汎用レジスタR2との間でクロック信号CKに従って変倍制御データの転送を行う。さらに、データ転送装置2−3は、プロセッサエレメントPE0〜PE255の各汎用レジスタR3及びR4との間でクロック信号CKに従って画像データの転送を行い、データ転送装置2−6は、プロセッサエレメントPE256〜PE511の各汎用レジスタR3及びR4との間でクロック信号CKに従って画像データの転送を行う。従って、全てのデータ転送装置2−0,2−2,2−3,2−4と汎用レジスタR0,R2,R3,R4との間で、500MHzの周波数を有するクロック信号CKに従って第1のデータ転送速度でデータ転送を行うので、図5の第1の実施形態の第2の動作例に比較して、データ転送装置2−0,2−2,2−3,2−4と汎用レジスタR0,R2,R3,R4との間のデータ転送速度を向上できる。
【0045】
図8において、GP5は、最初に、データ転送装置2−0,2−2,2−3,2−4に対して、図6に示すようにデータ転送用ポートP0,P2,P3,P4,P9,P10を介して汎用レジスタR0,R2,R3,R4にデータを転送するように制御する。次に、グローバルプロセッサ5は、所定の命令を用いて、プロセッサエレメントPE0〜PE255の各汎用レジスタR4内のデータをプロセッサエレメントPE256〜P511の各汎用レジスタR3に転送し、プロセッサエレメントPE256〜P511の各汎用レジスタR3内のデータをプロセッサエレメントPE256〜P511の各汎用レジスタR4に転送し、プロセッサエレメントPE256〜P511の各汎用レジスタR4内のデータをプロセッサエレメントPE0〜PE255の各汎用レジスタR4に転送する。これにより、プロセッサエレメントPE0〜PE511の汎用レジスタR3にRAM1−3の1ライン分の画像データが格納され、プロセッサエレメントPE0〜PE511の汎用レジスタR4にRAM1−4の1ライン分の画像データが格納される。そして、GP5は、プロセッサエレメントPE0〜PE511の各汎用レジスタR0,R2,R3,R4内の各データを用いて所定の変倍制御処理を行う。
【0046】
本実施形態によれば、プロセッサエレメントアレイ4−1,4−2の上下に相対するようにデータ転送装置2−3,2−4及びPE外部インタフェース3−1,3−3を配置し、データ転送用ポートP3,P4,P9,P10からデータ転送を行う汎用レジスタR3,R4までの距離が256プロセッサエレメント分の距離以内の汎用レジスタR3,R4とデータ転送装置2−3,2−4との間でクロック信号CKに従って第1のデータ転送速度でデータ転送を行うように構成した。従って、全てのデータ転送装置2−0,2−2,2−3,2−4と汎用レジスタR0,R2,R3,R4との間でクロック信号CKに従ってデータ転送を行うことができるので、データ転送装置2−0,2−2,2−3,2−4間での変倍制御データの転送を行っても、第1の実施形態に比較して、データ転送装置2−0,2−2,2−3,2−4と汎用レジスタR0,R2,R3,R4との間のデータ転送速度を大幅に向上できる。さらに、このようなデータ転送の後に、GP5は、プロセッサエレメントPE0〜PE511の汎用レジスタR3に1ライン分の画像データが格納され、かつプロセッサエレメントPE0〜PE511の汎用レジスタR4に1ライン分の画像データが格納されるように、プロセッサエレメントPE0〜PE511の汎用レジスタR3及びR4の各画像データを転送する。このため、第1の実施形態に比較して、ハードウェアを追加することなく、データ転送装置2と汎用レジスタR0〜R8との間のデータ転送速度を向上させながら、データ転送の前後で変倍制御処理などの所定の画像処理又はSIMDプロセッサ10での並列処理を行うことができる。
【0047】
なお、本実施形態では、データ転送装置2−3は、データ転送用ポートP3を介してプロセッサエレメントPE0〜PE255の各汎用レジスタR3と接続され、データ転送用ポートP4を介してプロセッサエレメントPE0〜PE255の各汎用レジスタR4と接続されたが、本発明はこれに限らず、データ転送装置2−3は、PE外部インターフェース3−1の複数のデータ転送用ポートを介して、当該データ転送用ポートからデータ転送を行う汎用レジスタまでの距離が所定のしきい値距離以内の汎用レジスタと接続されてもよい。
【0048】
第3の実施形態.
図9は、本発明の第3の実施形態に係るデータ転送装置2Aの構成を示すブロック図である。本実施形態に係るデータ転送装置2Aは、第1の実施形態に係るデータ転送装置2に比較して、256個の変倍制御データを格納可能なサイズを有しかつRAM1からリードバッファ203を介して出力された変倍制御データを一時的に格納する転送データバッファ231と、転送データバッファ231に格納されたデータとリードバッファ203に格納されたデータとのうちのいずれかのデータを選択的にPE外部インタフェース3のデータ転送用ポートに出力するマルチプレクサ232と、PE外部インタフェース3から出力されライトバッファ201に格納されたデータと転送データバッファ231に格納された変倍制御データとのうちのいずれかのデータを選択的に、他のデータ転送装置2又は2Aに出力するマルチプレクサ233とをさらに備えたことを特徴としている。ここで、シーケンスユニット200は、転送データバッファ231ならびにマルチプレクサ232及び233の各動作を制御する。
【0049】
次に、図10及び図11を参照して、画像データの縮小及び拡大を行うときのデータ転送装置2A−3の動作を説明する。なお、図10及び図11において、データ転送装置2A−0及び2A−3は図9のデータ転送装置2Aと同様に構成されており、各データ転送装置2A−0及び2A−3の動作主体はそれぞれシーケンスユニット200(図9参照)であるが、以下においてその説明を省略する。
【0050】
図10は、画像データの縮小を行うときのデータ転送装置2A−0及び2A−3の動作例を示すブロック図である。図10において、プロセッサエレメントPE0〜PE511の各汎用レジスタR0は、縮小される前の1ライン分の画像データを予め格納している。また、RAM1−3は、縮小される前の1ライン分の画像データを縮小するための変倍制御データを予め格納している。まず、最初に、ステップS1において、データ転送装置2A−3は、RAM1−3に格納されている変倍制御データを、リードバッファ203、マルチプレクサ232及びPE外部インタフェース3−1を介してプロセッサエレメントPE0〜PE511の汎用レジスタR3に転送する。このとき、データ転送装置2A−3は、プロセッサエレメントPE0〜PE255に対してクロック信号CKに従ってデータ転送を行う一方、プロセッサエレメントPE256〜PE511に対してクロック信号CK2に従ってデータ転送を行う。また、プロセッサエレメントPE256〜PE511に対して変倍制御データを転送するときは、当該変倍制御データを転送データバッファ231に格納する。
【0051】
次に、ステップS2において、データ転送装置2A−0は、プロセッサエレメントPE0〜PE511の各汎用レジスタR0に格納されている縮小前の画像データをクロック信号CKに従って読み出す。データ転送装置2A−0がプロセッサエレメントPE0〜PE255の画像データを読み出しているときに、データ転送装置2A−3は、当該読み出しに同期してプロセッサエレメントPE0〜PE255の各汎用レジスタR3の変倍制御データをクロック信号CKに従って読み出してマルチプレクサ233を介してデータ転送装置2A−0に出力する。また、データ転送装置2A−0がプロセッサエレメントPE256〜PE511の画像データを読み出しているときに、データ転送装置2A−3は、転送データバッファ231に格納されている変倍制御データを、マルチプレクサ233を介してデータ転送装置2A−0に出力する。データ転送装置2A−0は、データ転送装置2A−3からの変倍制御データに基づいて、プロセッサエレメントPE0〜PE511からの縮小前の画像データを縮小して、RAM1−0に出力して格納する。
【0052】
すなわち、図10において、シーケンスユニット200は、(a)RAM1−3から読み出された変倍制御データをレジスタR3に転送するときに、マルチプレクサ232に対してRAM1−3から読み出された変倍制御データを出力するように制御して、マルチプレクサ232から出力された変倍制御データをデータ転送装置2A−3に接続されたデータ転送用ポートP3を介して当該レジスタR3に出力するとともに、データ転送装置2A−3に接続されたデータ転送用ポートP3から当該レジスタR3までの距離がしきい値距離である256プロセッサエレメント分の距離より大きい場合において、RAM1−3から読み出された変倍制御データを転送データバッファ231に格納するように制御し、(b)データ転送装置2A−3に接続されたデータ転送用ポートP3から当該レジスタR3までの距離が上記所定のしきい値距離以内であるレジスタR3に出力された変倍制御データを第1のデータ転送速度でデータ転送用ポートP3を介して読み出し、マルチプレクサ233に対してデータ転送用ポートP3を介して読み出された変倍制御データを上記第1のデータ転送速度で他のデータ転送装置2A−0に出力するように制御し、(c)マルチプレクサ233に対して転送データバッファ231に格納された変倍制御データを上記第1のデータ転送速度で他のデータ転送装置2A−0に出力するように制御することを特徴としている。
【0053】
図11は、画像データの拡大を行うときの図9のデータ転送装置2Aと同様に構成されたデータ転送装置2A−0及び2A−3の動作例を示すブロック図である。図11において、RAM1−0は、拡大前の1ライン分の画像データを予め格納している。また、RAM1−3は、拡大前の1ライン分の画像データに対応する拡大用の変倍制御データを予め格納している。データ転送装置2A−3は、クロック信号CKに従って、RAM1−3から変倍制御データを読み出し、リードバッファ203を介してクロック信号CKに従ってデータ転送装置2A−0に出力する。さらに、データ転送装置2A−3は、RAM1−3からの変倍制御データのうちプロセッサエレメントPE0〜PE255の各汎用レジスタR3に格納されるべき変倍制御データを、マルチプレクサ232を介して、クロック信号CKに従ってプロセッサエレメントPE0〜PE255の各汎用レジスタR3に出力するように制御する。また、データ転送装置2A−3は、RAM1−3からの変倍制御データのうちプロセッサエレメントPE256〜PE511の各汎用レジスタR3に格納されるべき変倍制御データを、転送データバッファ231に一旦格納した後に、クロック信号CK2に従ってプロセッサエレメントPE256〜PE511の各汎用レジスタR3に出力するように制御する。一方、データ転送装置2A−0は、RAM1−0から拡大前の画像データを読み出し、データ転送装置2A−3からクロック信号CKに従って出力された変倍制御データに基づいて拡大前の画像データを拡大し、クロック信号CKに従ってプロセッサエレメントPE0〜PE511の各汎用レジスタR0に格納する。
【0054】
すなわち、図11において、シーケンスユニット200は、RAM1−3から読み出された変倍制御データを第1のデータ転送速度で他のデータ転送装置2A−0に直接に出力するとともに各レジスタR3に転送するときに、(a)データ転送装置2A−3に接続されたデータ転送用ポートP3から当該レジスタR3までの距離がしきい値距離である256プロセッサエレメント分の距離以内の場合において、マルチプレクサ232に対してRAMから読み出された変倍制御データを出力するように制御して、マルチプレクサ232から出力された変倍制御データを上記第1のデータ転送速度でデータ転送用ポートP3に出力する一方、(b)データ転送装置2A−3に接続されたデータ転送用ポートP3から当該レジスタR3までの距離が上記所定のしきい値距離より大きい場合において、マルチプレクサ232に対して転送データバッファ231に格納された変倍制御データを出力するように制御して、マルチプレクサ232から出力された変倍制御データを上記第2のデータ転送速度でデータ転送用ポートP3に出力することを特徴としている。
【0055】
本実施形態によれば、第1の実施形態と同様に、従来技術に比較して各データ転送装置2とSIMD型プロセッサ10内の汎用レジスタとの間のデータ転送速度を向上できる。また、第2の実施形態に比較して、グローバルプロセッサ5からの命令によって汎用レジスタ内のデータを移動させる(図8参照)ことなく、データ転送装置231に256個の変倍制御データを格納するための転送データバッファ231及びマルチプレクサ232,233を備えるだけで、データ転送装置2A−0,2A−3間で500MHzの周波数を有するクロック信号CKに従って変倍制御データを転送し、画像データの縮小及び拡大を行うことができる。
【0056】
上記の各実施形態に係るデータ転送装置2,2Aの各処理の処理ステップを含むプログラムはコンピュータにより実行可能であって、データ転送装置2,2A内の内蔵メモリに格納されてデータ転送装置2,2Aにより実行される。また、上記の各実施形態に係るグローバルプロセッサ5の各処理の処理ステップを含むプログラムはコンピュータにより実行可能であって、グローバルプロセッサ5内の内蔵メモリに格納されてグローバルプロセッサ5により実行される。上記各プログラムは例えばCD−ROM、CD−R、DVD、DVD−Rなどのコンピュータにより読み取り可能な記録媒体に記録してもよい。
【0057】
上記各実施形態において、RAM1、データ転送装置2、及び汎用レジスタR0〜Rの個数はそれぞれ9個であったが、本発明はこれに限らず、任意の個数であってよい。また、プロセッサエレメントPE0〜PE511の個数もまた任意の個数であってよい。さらに、上記各実施形態において、プロセッサエレメントPE0〜PE511を2つのプロセッサエレメントアレイ4−1,4−2に分割したが、本発明はこれに限らず、1つのプロセッサエレメントアレイとしてもよく、又は、3つ以上の複数のプロセッサエレメントアレイに分割してもよい。
【産業上の利用可能性】
【0058】
以上詳述したように、本発明に係るSIMD型プロセッサを備えたマイクロプロセッサとその処理方法によれば、各データ転送装置において、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行うので、データの増加に伴ってプロセッサエレメントの数が増加しても、従来技術に比較してデータ転送速度を向上できる。
【符号の説明】
【0059】
1,1−0〜1−8…RAM、
2,2−0〜2−8,2A,2A−0,2A−3…データ転送装置、
3,3−1〜3−3…PE外部インタフェース、
4,4−1,4−2…プロセッサエレメントアレイ、
5…グローバルプロセッサ(GP)、
10…SIMD型プロセッサ、
200…シーケンスユニット、
201…ライトバッファ、
202…RAM制御部、
203…リードバッファ、
204…PE制御部、
205,206…PE範囲指定レジスタ、
211,212…比較器、
213…転送速度制御回路、
214…アンドゲート、
221…転送開始PEアドレスレジスタ、
222…PEアドレスカウンタ回路、
223…リード・ライト指定信号発生回路、
231…転送データバッファ、
232,233…マルチプレクサ、
A0〜A511…演算回路、
P0〜P10…データ転送用ポート、
PE0〜PE511…プロセッサエレメント、
R0〜R8…汎用レジスタ。
【先行技術文献】
【特許文献】
【0060】
【特許文献1】特許第3821198号公報。
【特許文献2】特開平5−067203号公報。
【特許文献3】特許第3971535号公報。
【特許文献4】特開平10−326258号公報。
【特許文献5】特開2009−175837号公報。

【特許請求の範囲】
【請求項1】
複数N個のレジスタをそれぞれ備えかつそれぞれ固有アドレスを有する複数のプロセッサエレメントと、上記各プロセッサエレメントの各1つのレジスタがそれに対応する1つのデータ転送用ポートに接続されるように構成された複数N個のデータ転送用ポートとを備えたSIMD(Single Instruction stream Multiple Data stream)型プロセッサと、
1つのデータ転送装置が対応する少なくとも1つのデータ転送用ポートに接続されるように構成され、上記各プロセッサエレメントの固有アドレスを指定して、上記各レジスタとの間でデータ転送を行う複数N個のデータ転送装置とを備えたマイクロプロセッサにおいて、
上記各データ転送装置は、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行う第1の制御手段を備えたことを特徴とするマイクロプロセッサ。
【請求項2】
上記複数N個のデータ転送装置のうちの第1と第2のデータ転送装置において、
上記第1のデータ転送装置が第1のデータ転送用ポートに接続され、上記第2のデータ転送装置が第2のデータ転送用ポートに接続され、
上記第1と第2のデータ転送用ポートは上記複数のプロセッサエレメントを挟むように配置されたことを特徴とする請求項1記載のマイクロプロセッサ。
【請求項3】
上記第1のデータ転送装置は上記第1のデータ転送用ポートを介して当該第1のデータ転送用ポートからデータ転送を行うレジスタまでの距離が上記所定のしきい値距離以内のレジスタと接続され、
上記第2のデータ転送装置は上記第2のデータ転送用ポートを介して当該第2のデータ転送用ポートからデータ転送を行うレジスタまでの距離が上記所定のしきい値距離以内のレジスタと接続されたことを特徴とする請求項2記載のマイクロプロセッサ。
【請求項4】
上記SIMD型プロセッサは、
上記第1のデータ転送装置が上記第1のデータ転送用ポートを介して所定の第1のレジスタにデータを転送するように上記第1のデータ転送装置に対して制御し、
上記第2のデータ転送装置が上記第2のデータ転送用ポートを介して所定の第2のレジスタにデータを転送するように上記第2のデータ転送装置に対して制御した後、
上記第1のレジスタ内のデータを、上記第2のデータ転送装置に第3のデータ転送用ポートを介して接続された第3のレジスタに転送し、上記第2のレジスタ内のデータを、上記第1のレジスタに転送するように所定の命令を用いて制御する第2の制御手段を備えたことを特徴とする請求項3記載のマイクロプロセッサ。
【請求項5】
上記各データ転送装置は、
所定の記憶装置から読み出されたデータを格納するための転送データバッファと、
上記記憶装置から読み出されたデータと、上記転送データバッファに格納されたデータとのうちのいずれかのデータを選択的に上記データ転送用ポートに出力する第1のマルチプレクサとを備えたことを特徴とする請求項1又は2記載のマイクロプロセッサ。
【請求項6】
上記各データ転送装置は、
当該データ転送装置に接続されたデータ転送用ポートを介して読み出されたデータと、上記転送データバッファに格納されたデータとのうちのいずれかのデータを選択的に、上記第1のデータ転送速度で他のデータ転送装置に出力する第2のマルチプレクサをさらに備えたことを特徴とする請求項5記載のマイクロプロセッサ。
【請求項7】
上記記憶手段から読み出されたデータは画像データを拡大するための変倍制御データであり、
上記第1の制御手段は、上記変倍制御データを上記第1のデータ転送速度で他のデータ転送装置に直接に出力するとともに所定のレジスタに転送するときに、(a)当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離以内の場合において、上記第1のマルチプレクサに対して上記記憶手段から読み出された変倍制御データを出力するように制御して、上記第1のマルチプレクサから出力された変倍制御データを上記第1のデータ転送速度で上記データ転送用ポートに出力する一方、(b)当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において、上記第1のマルチプレクサに対して上記転送データバッファに格納された変倍制御データを出力するように制御して、上記第1のマルチプレクサから出力された変倍制御データを上記第2のデータ転送速度で上記データ転送用ポートに出力することを特徴とする請求項5記載のマイクロプロセッサ。
【請求項8】
上記記憶手段から読み出されたデータは画像データを縮小するための変倍制御データであり、
上記第1の制御手段は、上記変倍制御データを所定のレジスタに転送するときに、上記第1のマルチプレクサに対して上記記憶手段から読み出された変倍制御データを出力するように制御して、上記第1のマルチプレクサから出力された変倍制御データを当該データ転送装置に接続されたデータ転送用ポートを介して当該レジスタに出力するとともに、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において、上記記憶手段から読み出された変倍制御データを上記転送データバッファに格納するように制御し、
当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離以内であるレジスタに出力された変倍制御データを上記第1のデータ転送速度で上記データ転送用ポートを介して読み出し、上記第2のマルチプレクサに対して上記データ転送用ポートを介して読み出された変倍制御データを上記第1のデータ転送速度で他のデータ転送装置に出力するように制御し、
上記第2のマルチプレクサに対して上記転送データバッファに格納された変倍制御データを上記第1のデータ転送速度で他のデータ転送装置に出力するように制御することを特徴とする請求項6記載のマイクロプロセッサ。
【請求項9】
複数N個のレジスタをそれぞれ備えかつそれぞれ固有アドレスを有する複数のプロセッサエレメントと、上記各プロセッサエレメントの各1つのレジスタがそれに対応する1つのデータ転送用ポートに接続されるように構成された複数N個のデータ転送用ポートとを備えたSIMD型プロセッサと、
1つのデータ転送装置が対応する少なくとも1つのデータ転送用ポートに接続されるように構成され、上記各プロセッサエレメントの固有アドレスを指定して、上記各レジスタとの間でデータ転送を行う複数N個のデータ転送装置とを備えたマイクロプロセッサの処理方法において、
上記各データ転送装置において、ある1つのレジスタとの間でデータ転送を行うときに、当該レジスタを含むプロセッサエレメントの固有アドレスに基づいて、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が所定のしきい値距離以内の場合において所定の第1のデータ転送速度でデータ転送を行う一方、当該データ転送装置に接続されたデータ転送用ポートから当該レジスタまでの距離が上記所定のしきい値距離より大きい場合において上記第1のデータ転送速度より小さい所定の第2のデータ転送速度でデータ転送を行う制御ステップを含むことを特徴とするマイクロプロセッサの処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate