(57)【要約】【課題】回路規模やレイアウト規模を増大させることなく、データ転送時の処理能力を向上させ、より多くの画像データを高速に同時処理する事が可能なＳＩＭＤ型マイクロプロセッサを提供する。【解決手段】ＳＩＭＤ型マイクロプロセッサ１において、第１ワード線６が、複数のプロセッサエレメントＰＥ０〜ＰＥｎ間で、１６個ごとにそれぞれ異なる番号のレジスタに接続され、第２ワード線８が、複数のプロセッサエレメントＰＥ０〜ＰＥｎ間で、同じ番号のレジスタに接続されている。【選択図】図１
2010152450.tif 000002
【特許請求の範囲】
【請求項１】
固有の番号が割り当てられたｎ個（ｎは２以上の自然数）のレジスタおよび演算器を備えた複数のプロセッサエレメントと、前記複数のプロセッサエレメントの動作を制御する制御ユニットと、前記ｎ個のレジスタから外部への通信制御を行う外部インタフェースと、前記ｎ個のレジスタがそれぞれ接続された第１のデータ線と、前記制御ユニットが前記第１のデータ線を介して前記演算器との間で通信を行うレジスタを選択する第１のワード線と、前記複数のプロセッサエレメント間で同じ番号のレジスタ同士および前記外部インタフェースが接続された第２のデータ線と、前記外部インタフェースが前記第２のデータ線を介して通信を行うプロセッサエレメントを選択する第２のワード線と、が設けられたＳＩＭＤ型マイクロプロセッサにおいて、
前記外部インタフェースが前記複数のレジスタにそれぞれ対応して設けられているとともに、
前記第１のワード線が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続され、そして、
前記第２のワード線が、複数のプロセッサエレメント間で、同じ番号のレジスタに接続されている
ことを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
固有の番号が割り当てられたｎ個（ｎは２以上の自然数）のレジスタおよび演算器を備えた複数のプロセッサエレメントと、前記複数のプロセッサエレメントの動作を制御する制御ユニットと、前記ｎ個のレジスタから外部への通信制御を行う外部インタフェースと、前記ｎ個のレジスタがそれぞれ接続された第１のデータ線と、前記制御ユニットが前記第１のデータ線を介して前記演算器との間で通信を行うレジスタを選択する第１のワード線と、前記複数のプロセッサエレメント間で同じ番号のレジスタ同士および前記外部インタフェースが接続された第２のデータ線と、前記外部インタフェースが前記第２のデータ線を介して通信を行うプロセッサエレメントを選択する第２のワード線と、が設けられたＳＩＭＤ型マイクロプロセッサにおいて、
前記第１のワード線および第２のワード線が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されていることを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項３】
前記第１のワード線には、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されたワード線と、同一の番号のレジスタに接続されたワード線と、の２種類が設けられていることを特徴とする請求項１または２記載のＳＩＭＤ型マイクロプロセッサ。
【請求項４】
前記ｎ個のレジスタを複数のレジスタ群に分割するか否かを切替える切替手段が設けられ、そして、
前記切替手段が、複数のプロセッサエレメント間で、前記ｎ個のレジスタを複数のレジスタ群に分割せずにｎ個ごとにそれぞれ異なる番号のレジスタが選択される第１のモードと、前記ｎ個のレジスタを複数のレジスタ群に分割して各レジスタ群内のレジスタ数ごとに異なる番号のレジスタが選択される第２のモードと、を有している
ことを特徴とする請求項１乃至３のうちいずれか一項に記載のＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は１つの演算命令により複数のデータ等を並列処理するＳＩＭＤ（Single Instruction-stream, Multiple Data-stream）型マイクロプロセッサに関する。
【背景技術】
【０００２】
近年、デジタル複写機やファクシミリ装置などの画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。そしてこの画像の向上に伴い、処理すべきデータ数が増加している。
【０００３】
こういった画像処理においては、全ての画素に対して同一の演算処理を施すことが多い。そこで、１つの命令で複数のデータに対して、同時に同じ演算処理を行うＳＩＭＤ（Single Instruction-stream Multiple Data-stream）型マイクロプロセッサがよく用いられるようになった。このＳＩＭＤ型マイクロプロセッサでは、１つの命令で複数のデータに対して同時に同じ演算処理を行うことが可能である。
【０００４】
ＳＩＭＤ型マイクロプロセッサは、プロセッサエレメントと呼ばれる単位で演算器とレジスタとを備え、そのプロセッサエレメントを複数個有している。そしてこれら複数個のプロセッサエレメントを同時に制御する制御ユニットとしてグローバルプロセッサが備えられている。このグローバルプロセッサの制御により、１つの命令で複数のデータを同時に演算処理することが可能となる。このとき各プロセッサエレメントは通常１個の画素の画像処理を担当することとなる。
【０００５】
このようにＳＩＭＤ型マイクロプロセッサは複数の演算器を並列に配置し、グローバルプロセッサにより同時制御することで容易に実現できる。さらに複数のプロセッサエレメントでの演算処理が同時に行われるため、必要な演算処理がより高速に行われることとなる。
【０００６】
しかしながら、演算処理がいくら高速化できたとしても、対象となるデータの転送効率が悪ければＳＩＭＤ型マイクロプロセッサの効果が低下してしまう。そのため、データ転送に関しても演算速度に見合う速度でメモリ等をアクセスする必要があり、この速度に間に合わない場合は、データのアクセス速度でプロセッサの性能が決定してしまう。
【０００７】
通常タイプのＳＩＳＤ（Single Instruction-stream Single Data-stream）型マイクロプロセッサでは、演算データはプロセッサのプログラムによりメモリから逐次アクセスするが、この場合にデータのアクセス速度はメモリのビット幅と転送時間で決定する。ＳＩＭＤ型マイクロプロセッサにおいてもこの方法を用いると、演算は並列処理であるのに対してデータのアクセスは逐次処理となるため、ＳＩＳＤ型マイクロプロセッサ程度に処理能力は低下してしまう。
【０００８】
この外部データとの転送効率を向上するため、ＳＩＭＤ型マイクロプロセッサでは演算対象データのアクセスはプロセッサの命令では行わず、外部メモリ転送用ポートからプロセッサ内部の入出力用のレジスタに直接アクセスするように構成している。即ち、プロセッサでの演算実行と同時に、外部転送用ポートから、次に演算処理されるデータを入力用レジスタへ転送したり、演算処理されたデータを出力レジスタから外部転送用ポートを介して外部メモリへと転送することで、データ処理の高速化を図っている。
【０００９】
ＳＩＭＤ型マイクロプロセッサと外部メモリとのデータ転送フローは以下のように行われる。
（１） 外部メモリから外部転送用ポートを介して、演算対象データを入力用レジスタに転送。
（２） プロセッサは外部から演算データを転送済みであるレジスタから演算を開始。
（３） プロセッサが所定の演算を実行する。この間に外部メモリから次の演算対象データを入力用レジスタに転送。また、演算処理済みデータ（結果データ）が出力用レジスタにある場合には、外部転送用ポートを介して結果データを出力用レジスタから外部メモリへと転送。
（４） プロセッサは演算を終了し、結果データを出力用レジスタに転送。
【００１０】
上記のように、プロセッサの演算実行時に同時に外部のメモリデータ転送装置が演算データを転送することで高速化を実現している。しかし、演算処理とデータ転送がいくら同時に出来るとは言え、演算処理時間はプロセッサエレメント数に関わらず同時に実行できるのに対して、データ転送時間はプロセッサエレメント数に比例して長くなるという問題が生じる。外部メモリからプロセッサエレメントのレジスタにデータを転送する過程においては、通常１つのプロセッサエレメントに対して１サイクルかけてデータを転送するため、例えば５１２個のプロセッサエレメントを持ったＳＩＭＤ型マイクロプロセッサであれば、データ転送に５１２サイクルが必要になるということになる。したがって、いくら５１２個のプロセッサエレメントに対して同時に演算処理が行われたとしても、それに見合ったデータ転送が出来ない以上、ＳＩＭＤ型マイクロプロセッサの効果が発揮できないということになってしまう。
【００１１】
その問題を解消させるため、特許文献１ではＰＥインタフェースからのデータ線を偶数プロセッサエレメント用と奇数プロセッサエレメント用の２セット配置し、偶数番目のプロセッサエレメントと奇数番目のプロセッサエレメントとに同時アクセス手法を用いることで転送時間を１／２にする方法が記載されている。このように転送データのバンド幅を稼げばその分転送効率は向上する。
【００１２】
また、特許文献２には、データの配列変換にかかわる処理能力の低下の問題に対して、レジスタからＡＬＵへのデータ転送時に、マルチポート化することで複数のデータ線を設け、それらを異なるプロセッサエレメントへと転送する経路を持たせたことが記載されている。特許文献３にも、やはりデータの配列変換にかかわる処理能力の低下の問題に対して、複数の分割ワード線でレジスタからＡＬＵへのデータ転送時に異なるレジスタを選択できるように構成したことが記載されている。
【特許文献１】特許第３９７１５３５号公報
【特許文献２】特許第４０２０８０４号公報
【特許文献３】特開２００６−１６４１８３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１３】
しかしながら、特許文献１に記載された方法では、転送データのバンド幅を稼ぐことでその分転送効率は向上されているが、データ線を増やすということは、それだけレイアウト面積が必要になるということであり、コスト面を犠牲にしてしまうという問題が生じる。またレジスタから演算回路への処理速度を考えると、レジスタのレイアウトサイズは少しでも小さく構成する必要があり、レイアウト面積の増大は演算速度の性能面にも影響してくる。
【００１４】
さらに、特許文献２や３に記載された方法でも、回路規模の増加やレイアウト面積の増大を招いてしまうという問題がある。
【００１５】
本発明はかかる問題を解決することを目的としている。
【００１６】
すなわち、本発明は、回路規模やレイアウト規模を増大させることなく、データ転送時の処理能力を向上させ、より多くの画像データを高速に同時処理する事が可能なＳＩＭＤ型マイクロプロセッサを提供することを目的としている。
【課題を解決するための手段】
【００１７】
請求項１に記載された発明は、固有の番号が割り当てられたｎ個（ｎは２以上の自然数）のレジスタおよび演算器を備えた複数のプロセッサエレメントと、前記複数のプロセッサエレメントの動作を制御する制御ユニットと、前記ｎ個のレジスタから外部への通信制御を行う外部インタフェースと、前記ｎ個のレジスタがそれぞれ接続された第１のデータ線と、前記制御ユニットが前記第１のデータ線を介して前記演算器との間で通信を行うレジスタを選択する第１のワード線と、前記複数のプロセッサエレメント間で同じ番号のレジスタ同士および前記外部インタフェースが接続された第２のデータ線と、前記外部インタフェースが前記第２のデータ線を介して通信を行うプロセッサエレメントを選択する第２のワード線と、が設けられたＳＩＭＤ型マイクロプロセッサにおいて、前記外部インタフェースが前記複数のレジスタにそれぞれ対応して設けられているとともに、前記第１のワード線が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続され、そして、前記第２のワード線が、複数のプロセッサエレメント間で、同じ番号のレジスタに接続されていることを特徴とするＳＩＭＤ型マイクロプロセッサである。
【００１８】
請求項２に記載された発明は、固有の番号が割り当てられたｎ個（ｎは２以上の自然数）のレジスタおよび演算器を備えた複数のプロセッサエレメントと、前記複数のプロセッサエレメントの動作を制御する制御ユニットと、前記ｎ個のレジスタから外部への通信制御を行う外部インタフェースと、前記ｎ個のレジスタがそれぞれ接続された第１のデータ線と、前記制御ユニットが前記第１のデータ線を介して前記演算器との間で通信を行うレジスタを選択する第１のワード線と、前記複数のプロセッサエレメント間で同じ番号のレジスタ同士および前記外部インタフェースが接続された第２のデータ線と、前記外部インタフェースが前記第２のデータ線を介して通信を行うプロセッサエレメントを選択する第２のワード線と、が設けられたＳＩＭＤ型マイクロプロセッサにおいて、前記第１のワード線および第２のワード線が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されていることを特徴とするＳＩＭＤ型マイクロプロセッサである。
【００１９】
請求項３に記載された発明は、請求項１または２に記載された発明において、前記第１のワード線に、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されたワード線と、同一の番号のレジスタに接続されたワード線と、の双方が設けられていることを特徴とする。
【００２０】
請求項４に記載された発明は、請求項１乃至３のうちいずれか一項に記載された発明において、前記ｎ個のレジスタを複数のレジスタ群に分割するか否かを切替える切替手段が設けられ、そして、前記切替手段が、複数のプロセッサエレメント間で、前記ｎ個のレジスタを複数のレジスタ群に分割せずにｎ個ごとにそれぞれ異なる番号のレジスタが選択される第１のモードと、前記ｎ個のレジスタを複数のレジスタ群に分割して各レジスタ群内のレジスタ数ごとに異なる番号のレジスタが選択される第２のモードと、を有していることを特徴とする。
【発明の効果】
【００２１】
請求項１に記載の発明によれば、第１のワード線が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続され、第２のワード線が、複数のプロセッサエレメント間で、同じ番号のレジスタに接続されているので、プロセッサエレメントごとに異なる番号のレジスタを同時に選択することができる。そして、外部インタフェースはレジスタごとに設けられて全ての外部インタフェースが同時にデータ転送が可能となるように構成されているので、外部データを各外部インタフェースから同時に各プロセッサエレメントの異なる番号のレジスタに転送することができる。また、演算処理後のデータは配列変換することなく同時に読み出すことが出来るため、データの転送効率が向上する。さらに、演算処理に用いるレジスタの選択ワード線などを新たに追加することもないため、回路規模やレイアウト規模を増大させることなく実現できる。
【００２２】
請求項２に記載の発明によれば、第１のワード線および第２のワード線が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されているので、外部インタフェースがレジスタごとに独立して設けられずに、同期して同時に制御される場合でも、演算処理に用いるレジスタに直接転送することが可能となる。したがってアドレス信号を増やすことなくデータ転送効率を向上させたレジスタを構成することが可能となる。
【００２３】
請求項３に記載の発明によれば、第１のワード線に、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されたワード線と、同一の番号のレジスタに接続されたワード線と、の双方が設けられているので、用途に応じて、転送速度を高速化させた動作が可能なワード線と、外部データ転送ポートごとに異なるデータを並行して入出力する動作が可能なワード線とを切り替えて使い分けることが可能となる。その場合、レジスタ１つにつきワード線１本が追加されるだけであり、レイアウト規模を増大させることも少ない。
【００２４】
請求項４に記載の発明によれば、切替手段において、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタが選択される第１のモードと、各レジスタ群内のレジスタ数ごとに異なる番号のレジスタが選択される第２のモードと、を切替えることができるので、複数のレジスタを分割し領域ごとにデータ転送効率を向上させることを可能としている。
【発明を実施するための最良の形態】
【００２５】
［第１実施形態］
以下、本発明の第１の実施形態を、図１および図２を参照して説明する。図１は、本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサのブロック図である。図２は、図１に示したＳＩＭＤ型マイクロプロセッサにおけるレジスタ転送動作の説明図である。
【００２６】
図１に示したＳＩＭＤ型マイクロプロセッサ１は、グローバルプロセッサ２と、複数のプロセッサエレメントＰＥ０〜ＰＥｎと、ＰＥインタフェース４と、を備えている。
【００２７】
制御ユニットとしてのグローバルプロセッサ２は、プログラム格納用のプログラムＲＡＭと、演算データ格納用のデータＲＡＭと、プログラムのアドレスを保持するプログラムカウンタと、演算処理のデータ格納のための汎用レジスタと、ＡＬＵと、レジスタ退避及び復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタと、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタと、割り込み時とＮＭＩ（マスク不可割り込み）時の分岐元アドレスを保持するレジスタと、グローバルプロセッサ２の状態を保持しているプロセッサステータスレジスタと、命令を解読し各種制御信号を生成するシーケンスユニットと、などを備えている。そして、これらを用いて命令を実行し、後述する第１ワード線６を含む制御信号を、各プロセッサエレメントＰＥ０〜ＰＥｎに供給する。
【００２８】
プロセッサエレメントＰＥ０〜ＰＥｎは、図１に示したようにｎ個（ｎは２以上の自然数）が１列に配置されている。各プロセッサエレメントには、レジスタＲ０〜レジスタＲ１５までの１６個のレジスタと、ＡＬＵ３ａと、を備えている。
【００２９】
レジスタＲ０〜Ｒ１５は、ＡＬＵ３ａで演算するデータやＡＬＵ３ａで演算したデータを格納する。また、レジスタＲ０は０番、レジスタＲ１は１番といったように、各レジスタには固有の番号が割り当てられている。
【００３０】
演算器としてのＡＬＵ２５は、算術論理演算器であり、レジスタＲ０〜Ｒ１５に格納されたデータを後述する第１データ線５を介して取得して、グローバルプロセッサ２からの制御信号によって指定された演算を行い、再度第１データ線５を介してレジスタＲ０〜Ｒ１５に出力する。
【００３１】
１６個のレジスタＲ０〜Ｒ１５とＡＬＵ３ａとはそれぞれプロセッサエレメント内部の共通のデータ線である第１データ線５で接続されており、いずれのレジスタに対してＡＬＵ３ａがアクセスするかは、グローバルプロセッサ２から出力される第１ワード線６によって選択される。
【００３２】
第１ワード線６は、グローバルプロセッサ２から各プロセッサエレメントのレジスタを選択するためのワード線であり、プロセッサエレメントごとに異なる番号のレジスタに接続されている。例えばプロセッサエレメントＰＥ０のレジスタＲ０に接続した第１ワード線６は、プロセッサエレメントＰＥ１ではレジスタＲ１、プロセッサエレメントＰＥ２ではレジスタＲ２といったように、プロセッサエレメントが１つ移動するごとにレジスタの番号も１ずつずらして接続されている。本実施形態の場合、プロセッサエレメントＰＥ０のレジスタＲ０に接続した第１ワード線６は、ｎ＞１５であれば、プロセッサエレメントＰＥ１５のレジスタＲ１５まで接続された後は、プロセッサエレメントＰＥ１６からは再びレジスタＲ０を選択するように接続される。つまり、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されている。
【００３３】
外部インタフェースとしてのＰＥインタフェース４は、プロセッサエレメントＰＥ０〜ＰＥｎ内のレジスタＲ０〜Ｒ１５とＳＩＭＤ型マイクロプロセッサ１とのデータ転送を行う外部転送用ポートである。ＰＥインタフェース４は、プロセッサエレメント内のレジスタの番号ごとにＰＥＩＦ（Ｒ０）〜ＰＥＩＦ（Ｒ１５）の１６個が設けられており、ＰＥＩＦ（Ｒ０）〜ＰＥＩＦ（Ｒ１５）と各プロセッサエレメントのレジスタＲ０〜Ｒ１５とは第２データ線７で接続されている。つまり、ＰＥＲＦ（Ｒ０）から出力された第２データ線７は、各プロセッサエレメントのレジスタＲ０に接続され、ＰＥＲＦ（Ｒ１）から出力された第２データ線７は、各プロセッサエレメントのレジスタＲ１に接続され、といったように接続されている。すなわち、ＰＥＩＦが複数のレジスタにそれぞれ対応して設けられている。
【００３４】
また  第２データ線７を用いてデータを入出力するプロセッサエレメントの選択を制御する第２ワード線８がＰＥＩＦ（Ｒ０）〜ＰＥＩＦ（Ｒ１５）から出力されて各プロセッサエレメントのレジスタＲ０〜Ｒ１５に接続されている。つまり、第２ワード線８も第２データ線７と同様に、ＰＥＲＦ（Ｒ０）から出力された第２ワード線８は、各プロセッサエレメントのレジスタＲ０に接続され、ＰＥＲＦ（Ｒ１）から出力された第２ワード線８は、各プロセッサエレメントのレジスタＲ１に接続され、といったように接続されている。つまり、複数のプロセッサエレメント間で、同じ番号のレジスタに接続されている。
【００３５】
上述した構成の各プロセッサエレメントの各レジスタは通常１個の画素に相当するデータが格納されており、１画素は８ｂｉｔ、あるいは１６ｂｉｔのデータからなっている。つまり、各レジスタは８ｂｉｔ、あるいは１６ｂｉｔ幅で構成されている。また、ｎ個のプロセッサエレメントは１列の画素データに相当するように構成されており、これらのデータを同時処理することによって所望の画像処理が実現できる。
【００３６】
次に、上述した構成のＳＩＭＤ型マイクロプロセッサ１におけるプロセッサエレメントＰＥ０〜ＰＥｎのレジスタＲ０〜Ｒ１５へのデータの転送方法を説明する。従来、１列の画像データは各プロセッサエレメントの同じ番号のレジスタへと転送するため、１つのＰＥＩＦが用いられるが、本実施例では１列の画像データを全てのＰＥＩＦへと分散させてデータ転送を行う。例えば１つ目の画素はＰＥＩＦ（Ｒ０）から、２つ目の画素はＰＥＩＦ（Ｒ１）から、３つ目はＰＥＩＦ（Ｒ２）からといったように１６画素ごとに異なるＰＥＩＦに振り分けて転送する。このようにすることで１６画素のデータを同時に転送することができ、プロセッサエレメントＰＥ０〜ＰＥｎへのデータ転送に要する時間は１／１６に短縮される。
【００３７】
つまり、各ＰＥＩＦ（Ｒ０）〜ＰＥＩＦ（Ｒ１５）が第２データ線７と第２ワード線８を用いて、それぞれ異なる番号のレジスタにデータを転送する。そのため、１つ目の画素はプロセッサエレメントＰＥ０のレジスタＲ０へ転送され、２つ目の画素はプロセッサエレメントＰＥ１のレジスタＲ１へ転送され、３つ目の画素はプロセッサエレメントＰＥ２のレジスタＲ２へ転送され、１６個目の画素はプロセッサエレメントＰＥ１５のレジスタＲ１５へ転送される。
【００３８】
このようにしてプロセッサエレメントＰＥ０〜ＰＥｎのレジスタに転送された画像データは、上述したグローバルプロセッサ２が第１ワード線６のうち１本をアクティブにすることによって、アクティブにされた第１ワード線６に接続されたレジスタが選択される。選択されたデータは第１データ線６を介してＡＬＵ３ａに転送される。ここで選択されたレジスタに格納されているデータは本来１列に並んだ画像データそのものであるので、ＰＥインタフェース４から転送された画像データがプロセッサエレメント上で配列変換を行うことなく、ＡＬＵ３ａの演算データとして使用できる。
【００３９】
演算処理後のデータは、演算処理前と逆の手順でデータ転送を行って、異なる各プロセッサエレメント間で異なる番号のレジスタに格納した後ＰＥインタフェース４から１６個分のデータを同時に取り出す。そのため、データの配列変換による処理時間のロスはなく、１／１６に短縮された転送時間がそのまま処理時間の短縮に繋がる。
【００４０】
画像データなどの演算処理を行うＳＩＭＤ型マイクロプロセッサ１では、画像データの並列処理を行うことで処理速度を向上させることを可能にしている。しかし、プロセッサエレメント数の増加に伴い処理時間にはデータの転送速度が支配的になっており、この転送効率を向上させることはＳＩＭＤ型マイクロプロセッサ１の性能向上に繋がるといえる。
【００４１】
図２は上述したデータ転送方法について、より簡易的に示した図である。簡略化するため、ここではプロセッサエレメント数が８、レジスタ数が４の場合を例に挙げている。まず１回目のＰＥインタフェース４とのデータ転送ではＰＥ０，ＰＥ１，ＰＥ２，ＰＥ３の４つのプロセッサエレメントの太線でくくった部分へと第２データ線７と第２ワード線８によってデータが転送される。２回目のデータ転送ではＰＥ４，ＰＥ５，ＰＥ６，ＰＥ７の４つのプロセッサエレメントの太線でくくった部分へとデータが転送される。その後全てのプロセッサエレメントの太線でくくった部分のデータがまとめて第１データ線５と第１ワード線６によってＡＬＵ３ａ側へと同時に転送されて演算処理が実行される。演算処理後のデータの転送についても順序が逆になる他は同様である。
【００４２】
なお、本実施形態において、複数のＰＥＩＦに外部メモリなどのデータを振り分けるには、バスの接続やマルチプレクサなどの選択回路が必要となるが、ＳＩＭＤ型マイクロプロセッサ１の大部分は複数のプロセッサエレメントで占めており、ＰＥＩＦの複数使いをしない場合と比べても、周辺部での回路追加による影響は小さいと言える。
【００４３】
本実施例によれば、第１ワード線６が、複数のプロセッサエレメントＰＥ０〜ＰＥｎ間で、１６個ごとにそれぞれ異なる番号のレジスタに接続され、第２ワード線８が、複数のプロセッサエレメントＰＥ０〜ＰＥｎ間で、同じ番号のレジスタに接続されているので、ＰＥインタフェース４からプロセッサエレメント１６個ごとに異なる番号のレジスタに格納して、その格納したデータを各プロセッサエレメントのＡＬＵ３ａに一斉に転送することができるので、グローバルプロセッサ２からのワード線の数を増やすことがなく、レイアウトサイズの増加もしない。またグローバルプロセッサ２側の回路構成は従来例と全く共通とすることができる。要するに本発明の構成を用いることで、レイアウトサイズを大きくすることなく、容易に転送速度を向上させることができる。
【００４４】
［第２実施形態］
次に、本発明の第２の実施形態を図３を参照して説明する。なお、前述した第１の実施形態と同一部分には、同一符号を付して説明を省略する。図３は、本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサ１のブロック図である。
【００４５】
本実施形態では、第１の実施形態に加えて、第１ワード線６´と、ＯＲゲート３ｂと、が追加されている。
【００４６】
つまり、グローバルプロセッサ２からレジスタを選択するためのワード線として、１つのレジスタにつき２本ずつ配線されて、ＯＲゲート３ｂを介してレジスタに入力されている。このワード線のうち１つは第１の実施形態と同様のプロセッサエレメントごとに異なる番号のレジスタに接続されている第１ワード線６であり、もう１つは、プロセッサエレメントごとに同一の番号のレジスタに接続されている第１ワード線６´である。すなわち、第１ワード線６には、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されたワード線と、同一の番号のレジスタに接続されたワード線と、の２種類が設けられている。
【００４７】
第１ワード線６´は、従来どおりの１つのＰＥＩＦから順次各プロセッサエレメントにデータ転送を行うためのワード線である。つまり、本実施形態では従来の転送方式と第１の実施形態で示した転送方式とを共存させている。
【００４８】
本実施形態によれば、第１のワード線６と６´との２本を各レジスタに配線しているので、用途に応じて、転送速度を高速化させたモードと、ＰＥＩＦごとに異なるデータを並行して入出力するモードとを切り替えて使い分けることが可能となる。その場合、レジスタ１つにつきワード線１本が追加されるだけであり、レイアウト規模を増大させることも少ない。
【００４９】
［第３実施形態］
次に、本発明の第３の実施形態を図４ないし図６を参照して説明する。なお、前述した第１、第２の実施形態と同一部分には、同一符号を付して説明を省略する。図４は、本発明の第３の実施形態にかかるＳＩＭＤ型マイクロプロセッサのブロック図である。図５は、図４に示したＳＩＭＤ型マイクロプロセッサのＷＬ−Ｓｅｌｅｃｔｏｒの構成図である。図６は、図４に示したＳＩＭＤ型マイクロプロセッサにおけるレジスタ転送動作の説明図である。
【００５０】
本実施形態では、第１の実施形態に対して複数のレジスタＲ０〜Ｒ１５の間にＷＬ−Ｓｅｌｅｃｔｏｒ３ｃが設けられている点が異なる。
【００５１】
切替手段としてのＷＬ−Ｓｅｌｅｃｔｏｒ３ｃは、４つのトランスファゲート３ｄ１、３ｄ２、３ｄ３、３ｄ４と、２つの入力端子ＷＬＬＩ、ＷＬＲＩと、２つの出力端子ＷＬＬＯ、ＷＬＲＯと、から構成される回路が１ＰＥ当たりに１組ずつ設けられており、４つのトランスファゲート３ｄ１、３ｄ２、３ｄ３、３ｄ４はグローバルプロセッサ２から入力されるＳＥＬおよびＳＥＬＮ信号によってＯＮ／ＯＦＦが制御される。また、入力端子ＷＬＬＩ、ＷＬＲＩと出力端子ＷＬＬＯ、ＷＬＲＯは、それぞれ第１のワード線６が接続されている。
【００５２】
ＷＬ−Ｓｅｌｅｃｔｏｒ３ｃの動作を説明すると、グローバルプロセッサ２から入力される信号ＳＥＬとＳＥＬＮは互いに排他的な信号レベルに設定される。つまり、ＳＥＬが“Ｈｉ”レベルの場合はＳＥＬＮが“Ｌｏｗ”レベルに、ＳＥＬが“Ｌｏｗ”レベルの場合はＳＥＬＮは“Ｈｉ”レベルに、それぞれ設定される。まず、ＳＥＬが“Ｈｉ”レベル、ＳＥＬＮは“Ｌｏｗ”レベルの場合で説明すると、４つのトランスファゲート３ｄ１、３ｄ２、３ｄ３、３ｄ４は、トランスファゲート３ｄ１がＯＦＦ、トランスファゲート３ｄ２がＯＮ、トランスファゲート３ｄ３がＯＮ、トランスファゲート３ｄ４がＯＦＦ、となるため、入力端子ＷＬＬＩから入力された信号はトランスファゲート３ｄ２を経由して出力端子ＷＬＲＯから出力され、入力端子ＷＬＲＩから入力された信号はトランスファゲート３ｄ３を経由して出力端子ＷＬＬＯから出力される。つまり、ｎ個のレジスタを複数のレジスタ群に分割せずにｎ個ごとにそれぞれ異なる番号のレジスタが選択される第１のモードに切替えられる。
【００５３】
次に、ＳＥＬが“Ｌｏｗ”レベル、ＳＥＬＮが“Ｈｉ”レベルの場合、４つのトランスファゲート３ｄ１、３ｄ２、３ｄ３、３ｄ４は、トランスファゲート３ｄ１がＯＮ、トランスファゲート３ｄ２がＯＦＦ、トランスファゲート３ｄ３がＯＦＦ、トランスファゲート３ｄ４がＯＮ、となるため、入力端子ＷＬＬＩから入力された信号はトランスファゲート３ｄ１を経由して出力端子ＷＬＬＯから出力され、入力端子ＷＬＲＩから入力された信号はトランスファゲート３ｄ４を経由して出力端子ＷＬＲＯから出力される。つまり、ｎ個のレジスタを複数のレジスタ群に分割して各レジスタ群内のレジスタ数ごとに異なる番号のレジスタが選択される第２のモードに切替えられる。
【００５４】
したがって、ＳＥＬが“Ｈｉ”レベル、ＳＥＬＮは“Ｌｏｗ”レベルの場合は２つのブロックを跨いで第１ワード線６が接続される構成となり、ＳＥＬが“Ｌｏｗ”レベル、ＳＥＬＮは“Ｈｉ”レベルの場合は２つのブロック内で異なるレジスタが選択されるように第１ワード線６が接続される構成となる。
【００５５】
本実施形態では、複数のレジスタＲ０〜Ｒ１５をＷＬ−Ｓｅｌｅｃｔｏｒ３ｃで複数のブロックに分割して、ブロックごとにデータ転送の形式を変更できるようにしている。例えば図４の場合は、１６レジスタを２＋１４に２分割している。このときの１ブロック内のレジスタ数は任意の数でよい。勿論ブロック数も３以上に分割してもよい。
【００５６】
本実施形態における第１ワード線６選択の切り替えを図６に示す。図６ではより簡易的に示すため、レジスタ数が４のものを２＋２のブロックに分割した場合で、プロセッサエレメントＰＥ０のレジスタＲ０とＲ２がそれぞれ先頭になる第１ワード線６を例に挙げている。図中の矢印が通ったレジスタ位置のものが同時に選択されることを表している。
【００５７】
なお、本実施形態では第１の実施形態に対してレジスタを分割した構成としたが、第２の実施形態に対して行っても良い。この場合２レジスタの一方のブロックでは複数のＰＥＩＦを同時に使用したバンド幅でのデータ転送を行い、他方のブロックでは各レジスタごとに同一ＰＥＩＦからデータ転送を行うということも可能となる。
【００５８】
本実施形態によれば、複数のレジスタＲ０〜Ｒ１５を分割するためのＷＬ−Ｓｅｌｅｃｔｏｒ３ｃを設けたので、複数のレジスタを分割し領域ごとにデータ転送効率を向上させることを可能としている。したがって、データ転送効率の向上とデータ転送の並列性をバランスよく実現させることが可能となる。
【００５９】
［第４実施形態］
次に、本発明の第４の実施形態を図７を参照して説明する。なお、前述した第１乃至第３の実施形態と同一部分には、同一符号を付して説明を省略する。図７は、本発明の第４の実施形態にかかるＳＩＭＤ型マイクロプロセッサ１のブロック図である。
【００６０】
第１から第３の実施形態ではＰＥインタフェース４がレジスタごとに独立して存在していたが、本実施形態では、ＰＥインタフェース４が同期して同時に制御される。そのために、ＰＥインタフェース４のうち第２ワード線７を生成出力する機能を有したブロックであるＰＥＩＦ−Ｄｅｃ４ａから出力される第２ワード線７を、第１ワード線と同様にプロセッサエレメントごとに異なる番号のレジスタに接続する。例えばプロセッサエレメントＰＥ０のレジスタＲ０に接続した第２ワード線７は、プロセッサエレメントＰＥ１ではレジスタＲ１、プロセッサエレメントＰＥ２ではレジスタＲ２といったように、１ずつずらして接続する。すなわち、第１ワード線６および第２ワード線８が、複数のプロセッサエレメント間で、ｎ個ごとにそれぞれ異なる番号のレジスタに接続されている。
【００６１】
このようにすることで、ＰＥインタフェース４がレジスタごとに独立している場合と同様に、異なるプロセッサエレメントの異なる番号のレジスタに転送することが実現できる。
【００６２】
本実施形態においても、第２、第３実施形態に記載した従来のワード線の接続やレジスタのブロック分割を行っても良い。
【００６３】
本実施形態によれば、第１ワード線、第２ワード線ともにプロセッサエレメントごとに異なる番号のレジスタに接続しているので、ＰＥインタフェース４から共通のアドレス信号により、同時にレジスタにデータを転送する場合、演算処理に用いるレジスタに直接転送することが可能となる。したがってアドレス信号を増やすことなくデータ転送効率を向上させたレジスタを構成することが可能となる。
【００６４】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【図面の簡単な説明】
【００６５】
【図１】本発明の第１の実施形態にかかるＳＩＭＤ型マイクロプロセッサのブロック図である。
【図２】図１に示したＳＩＭＤ型マイクロプロセッサにおけるレジスタ転送動作の説明図である。
【図３】本発明の第２の実施形態にかかるＳＩＭＤ型マイクロプロセッサ１のブロック図である。
【図４】本発明の第３の実施形態にかかるＳＩＭＤ型マイクロプロセッサのブロック図である。
【図５】図４に示したＳＩＭＤ型マイクロプロセッサのＷＬ−Ｓｅｌｅｃｔｏｒの構成図である。
【図６】図４に示したＳＩＭＤ型マイクロプロセッサにおけるレジスタ転送動作の説明図である。
【図７】本発明の第４の実施形態にかかるＳＩＭＤ型マイクロプロセッサ１のブロック図である。
【符号の説明】
【００６６】
１                 ＳＩＭＤ型マイクロプロセッサ
２                 グローバルプロセッサ（制御ユニット）
３ａ               ＡＬＵ（演算器）
３ｃ               ＷＬ−Ｓｅｌｅｃｔｏｒ（切替手段）
４                 ＰＥインタフェース（外部インタフェース）
５                 第１データ線（第１のデータ線）
６                 第１ワード線（第１のワード線）
６´               第１ワード線（第１のワード線）
７                 第２データ線（第２のデータ線）
８                 第２ワード線（第２のワード線）
ＰＥ０〜ＰＥｎ     プロセッサエレメント
Ｒ０〜Ｒ１５       レジスタ
【図１】
2010152450.tif 000003
【図２】
2010152450.tif 000004
【図３】
2010152450.tif 000005
【図４】
2010152450.tif 000006
【図５】
2010152450.tif 000007
【図６】
2010152450.tif 000008
【図７】
2010152450.tif 000009