(57)【要約】【課題】回路規模やレイアウト規模を増大させることなく、画像処理に伴う外部インタフェース回路を介した外部デバイスとのデータ転送を向上させて、画像処理能力を向上させることができるＳＩＭＤ型マイクロプロセッサを提供する。【解決手段】レジスタアレイ３内のレジスタと外部デバイスがデータ転送を行う場合、レジスタアレイ３の各列を複数行ずつのレジスタブロックに分け、そのレジスタブロックごとにＳＥＬ８とＤａｔａ−Ｓｅｌｅｃｔ９を設けて、ＳＥＬ８で対応する列のデータ線７ａと他の列と接続するためのデータ線７ｄとをＤａｔａ−Ｓｅｌｅｃｔ９の制御で選択し、ＰＥＩＦから出力される制御線７ｂ、７ｃをＳＥＬ８内でデコードすることで同一列の複数のレジスタブロックを選択できるようにする。【選択図】図１
2011113370.tif 000002
【特許請求の範囲】
【請求項１】
ｎ行、ｍ列（ｎ，ｍは２以上の自然数）からなる複数のレジスタから構成されたレジスタアレイと、前記レジスタアレイの列方向に接続され、外部デバイスと前記レジスタアレイとのデータ転送を行うｍ個の外部インタフェース回路と、前記レジスタアレイの行方向に接続され、前記レジスタアレイのデータを演算処理するｎ個のプロセッサエレメントと、前記ｎ個のプロセッサエレメントを制御する制御ユニットと、を備えたＳＩＭＤ型マイクロプロセッサにおいて、
同一列の複数の前記レジスタに、複数の前記外部インタフェース回路から同時にアクセス可能とするアクセス回路と、
一つの列に属する前記レジスタと、前記一つの列とは異なる列に対応する前記外部インタフェース回路とを接続する経路と、
前記一つの列に属する前記レジスタと前記一つの列に対応する前記外部インタフェース回路と接続する経路と、前記一つの列に属する前記レジスタと一つの列とは異なる列に対応する前記外部インタフェース回路とを接続する経路と、のうちいずれかを選択する選択回路と、
を備えていることを特徴とするＳＩＭＤ型マイクロプロセッサ。
【請求項２】
前記外部インタフェース回路から、クロック信号、リードイネーブル信号及びライトイネーブル信号が出力され、
前記選択回路が、前記リードイネーブル信号及びライトイネーブル信号のいずれかが選択状態にある場合には、前記一つの列に属する前記レジスタと前記一つの列に対応する前記外部インタフェース回路と接続する経路を選択し、前記リードイネーブル信号及びライトイネーブル信号がともに非選択状態にある場合には、前記一つの列に属する前記レジスタと一つの列とは異なる列に対応する前記外部インタフェース回路とを接続する経路を選択するように構成されていることを特徴とする請求項１記載のＳＩＭＤ型マイクロプロセッサ。
【請求項３】
前記外部インタフェース回路が対応する列の前記レジスタを選択するためのアドレス信号を出力するとともに、前記アドレス信号の一部をマスクするマスク信号も出力し、
前記アクセス回路が、前記アドレス信号および前記マスク信号を用いて同一列の複数の前記レジスタに、選択信号を出力して、複数の前記外部インタフェース回路から同時にアクセスさせることを特徴とする請求項１または２に記載のＳＩＭＤ型マイクロプロセッサ。
【請求項４】
前記レジスタアレイが、複数の行から構成されるレジスタブロックに分割され、
前記接続回路が、前記レジスタブロックの各列に設けられ、そして、
前記接続回路が、前記レジスタブロック内のレジスタと前記外部インタフェース回路との通信を行うための内部インタフェース回路を備えている
ことを特徴とする請求項１乃至３のうちいずれか一項に記載のＳＩＭＤ型マイクロプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つの演算命令により複数の画像データ等を並列処理するＳＩＭＤ（Single Instruction-stream Multiple Data-stream）型マイクロプロセッサに関する。
【背景技術】
【０００２】
近年、デジタル複写機やファクシミリ装置などの画像処理では、画素数の増加、画像処理の多様化などにより画質の向上が図られている。そしてこの画像の向上に伴い、処理すべきデータ数が増加している。
【０００３】
前述したような画像処理においては、全ての画素に対して同一の演算処理を施すことが多い。そこで、１つの命令で複数のデータに対して、同時に同じ演算処理を行うＳＩＭＤ（Single Instruction-stream, Multiple Data-stream）型マイクロプロセッサがよく用いられるようになった。このＳＩＭＤ型マイクロプロセッサでは、１つの命令で複数のデータに対して同時に同じ演算処理を行うことが可能である。
【０００４】
ＳＩＭＤ型マイクロプロセッサは、プロセッサエレメント（ＰＥ）と呼ばれる単位で演算器とレジスタとを備え、そのプロセッサエレメントを複数個有している。そしてこれら複数個のプロセッサエレメントを同時に制御するグローバルプロセッサも備えられている。このグローバルプロセッサの制御により、１つの命令で複数のデータを同時に演算処理することが可能となる。このとき各プロセッサエレメントは通常１個の画素の処理を担当することとなる。
【０００５】
このようにＳＩＭＤ型マイクロプロセッサは複数の演算器を並列に配置し、グローバルプロセッサにより同時制御することで容易に実現できる。さらに複数のプロセッサエレメントでの演算処理が同時に行われるため、必要な演算処理がより高速に行われることとなる。
【０００６】
しかしながら、演算処理がいくら高速化できたとしても、対象となるデータの転送効率が悪ければＳＩＭＤ型マイクロプロセッサの効果を果たすことができない。データ転送に関しても演算速度に見合う速度でメモリ等の外部デバイスをアクセスする必要があり、この速度に間に合わない場合は、データのアクセス速度でＳＩＭＤ型マイクロプロセッサの性能が決定してしまう。
【０００７】
通常タイプのＳＩＳＤ（Single Instruction-stream, Single Data-stream）型マイクロプロセッサでは、演算データはプロセッサのプログラムによりメモリから逐次アクセスするが、この場合にデータのアクセス速度はメモリのビット幅と転送時間で決定する。ＳＩＭＤ型マイクロプロセッサにおいてもこの方法を用いると、演算は並列処理であるのに対してデータのアクセスは逐次処理となるため、ＳＩＳＤ型マイクロプロセッサ程度に処理能力は低下してしまう。
【０００８】
このような外部データとの転送効率を向上するために、ＳＩＭＤ型マイクロプロセッサでは演算対象データのアクセスはプロセッサの命令では行わず、外部インタフェース回路である外部メモリ転送用ポートなどからプロセッサ内部の入出力用のレジスタに直接アクセスするように構成している。即ち、プロセッサでの演算実行と同時に、外部メモリ転送用ポートから、次に演算処理されるデータを入力用レジスタへ転送したり、演算処理されたデータを出力レジスタから外部メモリ転送用ポートを介して外部メモリへと転送することで、データ処理の高速化を図っている。
【０００９】
ＳＩＭＤ型マイクロプロセッサと外部メモリとのデータ転送手順は以下のように行われる。
（１）メモリから外部メモリ転送用ポートを介して、演算対象データを入力用レジスタに転送。
（２）ＳＩＭＤ型マイクロプロセッサは外部から演算データを転送済みであるレジスタから演算を開始。
（３）ＳＩＭＤ型マイクロプロセッサが所定の演算を実行する。この間に外部メモリから次の演算対象データを入力用レジスタに転送。また、演算処理済みデータ（結果データ）が出力用レジスタにある場合には、外部メモリ転送用ポートを介して結果データを出力用レジスタから外部メモリへと転送。
（４）ＳＩＭＤ型マイクロプロセッサは演算を終了し、結果データを出力用レジスタに転送。
【００１０】
このように、ＳＩＭＤ型マイクロプロセッサの演算実行時に同時に外部メモリ転送用ポートが演算データを転送することで高速化を実現している。しかし、演算処理とデータ転送がいくら同時に出来るとは言え、演算処理時間はプロセッサエレメント数に関わらず同時に実行できるのに対して、データ転送時間はプロセッサエレメント数に比例して長くなるという問題が生じる。外部メモリからプロセッサエレメントのレジスタにデータを転送する過程においては、通常１つのプロセッサエレメントに対して１サイクルかけてデータを転送するため、例えば５１２個のプロセッサエレメントを持つＳＩＭＤ型マイクロプロセッサであれば、データ転送に５１２サイクルが必要になるということになる。したがって、いくら５１２個のプロセッサエレメントに対して同時に演算処理が行われたとしても、それに見合ったデータ転送が出来ない以上、ＳＩＭＤ型マイクロプロセッサの効果が発揮できないという問題があった。
【００１１】
この問題を解決するために、例えば特許文献１に記載されたＳＩＭＤ型プロセッサではＰＥインターフェース（外部インタフェース回路）からのデータ線を偶数プロセッサエレメント用と奇数プロセッサエレメント用の２セット配置し、偶数番目のプロセッサエレメントと奇数番目のプロセッサエレメントとに同時アクセスする手法を用いることで転送時間を１／２にしている。
【００１２】
また、特許文献２に記載されたＳＩＭＤ型マイクロプロセッサでは各プロセッサエレメントがプロセッサエレメント番号や条件フラグを選択信号として利用することにより、異なるＰＥインターフェース（外部インタフェース回路）からの複数のデータを同時に取り込むことを実現している。
【発明の概要】
【発明が解決しようとする課題】
【００１３】
特許文献１に記載のＳＩＭＤ型プロセッサのように転送データのバンド幅を稼げばその分転送効率は向上する。しかしデータ線を増やすということは、それだけＬＳＩ化した際にレイアウト面積が必要になるということであり、コスト面を犠牲にしてしまうという問題が生じる。またレジスタから演算回路への処理速度を考えると、レジスタのレイアウトサイズは少しでも小さく構成する必要があり、レイアウト面積の増大は演算速度の性能面にも影響してくる。
【００１４】
特許文献２に記載のＳＩＭＤ型マイクロプロセッサは、ＰＥインタフェース側の制御によるものではなく、並列プロセッサ側の同時制御によるものであり、数種類のデータの中からいずれかを全プロセッサエレメントが同時取り込みするというものである。したがって、１ラインの画像データを全て取り込むことを対象としたものではない。画像のラインデータ取り込みが対象となると、プロセッサエレメント数分のサイクル数が必要となるため効果は得られない。またプロセッサエレメントごとにデコード信号を引き回さなければならないという欠点もある。
【００１５】
また、画像１ラインのデータを複数のＰＥインターフェース（外部インタフェース回路）に振り分けて、さらに異なるプロセッサエレメントの異なるレジスタに同時転送することによっても、転送サイクル数の短縮を実現させることを本出願人は提案しているが、この場合、データを転送したレジスタの配列がプロセッサエレメントごとに異なるという問題が生じる。プロセッサエレメントのレジスタにＰＥインタフェースから転送されたデータは、一斉にＳＩＭＤ型マイクロプロセッサによる並列演算が行われるため、演算命令が発行されると全データが同時選択されなければならない。データの配列がプロセッサエレメントごとに異なっていると、レジスタ配列の並べ替えをプロセッサエレメントごとに行うか、あるいは異なる位置にあるレジスタのデータを、同時選択できるように制御線の引き回しを行う必要が出てくる。
【００１６】
レジスタデータの配列変換を行うとすると、異なるレジスタ番地にあるデータをそれぞれ取り出し、指定されたレジスタ番地に格納し直すという操作を繰り返さなければならず、処理性能を低下させることとなってしまう。また、あらかじめ格納されている異なったレジスタのデータを破壊してしまう可能性もある。さらに、レジスタ選択制御線の引き回しを行う方法では、配線用のレイアウト領域を確保しなければならないという問題が生じる。レイアウトサイズを大きくするということは、大規模回路の並列処理を目的としているＳＩＭＤ型マイクロプロセッサには不向きである。
【００１７】
本発明はかかる問題を解決することを目的としている。
【００１８】
すなわち、本発明は、回路規模やレイアウト規模を増大させることなく、画像処理に伴う外部インタフェース回路を介した外部デバイスとのデータ転送を向上させて、画像処理能力を向上させることができるＳＩＭＤ型マイクロプロセッサを提供することを目的としている。
【課題を解決するための手段】
【００１９】
請求項１に記載された発明は、ｎ行、ｍ列（ｎ，ｍは２以上の自然数）からなる複数のレジスタから構成されたレジスタアレイと、前記レジスタアレイの列方向に接続され、外部デバイスと前記レジスタアレイとのデータ転送を行うｍ個の外部インタフェース回路と、前記レジスタアレイの行方向に接続され、前記レジスタアレイのデータを演算処理するｎ個のプロセッサエレメントと、前記ｎ個のプロセッサエレメントを制御する制御ユニットと、を備えたＳＩＭＤ型マイクロプロセッサにおいて、同一列の複数の前記レジスタに、複数の前記外部インタフェース回路から同時にアクセス可能とするアクセス回路と、一つの列に属する前記レジスタと、前記一つの列とは異なる列に対応する前記外部インタフェース回路とを接続する経路と、前記一つの列に属する前記レジスタと前記一つの列に対応する前記外部インタフェース回路と接続する経路と、前記一つの列に属する前記レジスタと一つの列とは異なる列に対応する前記外部インタフェース回路とを接続する経路と、のうちいずれかを選択する選択回路と、を備えていることを特徴とするＳＩＭＤ型マイクロプロセッサである。
【００２０】
請求項２に記載された発明は、請求項１に記載された発明において、前記外部インタフェース回路から、クロック信号、リードイネーブル信号及びライトイネーブル信号が出力され、前記選択回路が、前記リードイネーブル信号及びライトイネーブル信号のいずれかが選択状態にある場合には、前記一つの列に属する前記レジスタと前記一つの列に対応する前記外部インタフェース回路と接続する経路を選択し、前記リードイネーブル信号及びライトイネーブル信号がともに非選択状態にある場合には、前記一つの列に属する前記レジスタと一つの列とは異なる列に対応する前記外部インタフェース回路とを接続する経路を選択するように構成されていることを特徴とする。
【００２１】
請求項３に記載された発明は、請求項１または２に記載された発明において、前記外部インタフェース回路が対応する列の前記レジスタを選択するためのアドレス信号を出力するとともに、前記アドレス信号の一部をマスクするマスク信号も出力し、前記アクセス回路が、前記アドレス信号および前記マスク信号を用いて同一列の複数の前記レジスタに、選択信号を出力して、複数の前記外部インタフェース回路から同時にアクセスさせることを特徴とする。
【００２２】
請求項４に記載された発明は、請求項１乃至３に記載された発明において、前記レジスタアレイが、複数の行から構成されるレジスタブロックに分割され、前記接続回路が、前記レジスタブロックの各列に設けられ、そして、前記接続回路が、前記レジスタブロック内のレジスタと前記外部インタフェース回路との通信を行うための内部インタフェース回路を備えていることを特徴とする。
【発明の効果】
【００２３】
請求項１に記載の発明によれば、同一列の複数のレジスタに、複数の外部インタフェース回路から同時にアクセス可能とするアクセス回路と、一つの列に属するレジスタと、一つの列とは異なる列に対応する外部インタフェース回路とを接続する経路と、一つの列に属するレジスタと一つの列に対応する外部インタフェース回路と接続する経路と、一つの列に属するレジスタと一つの列とは異なる列に対応する外部インタフェース回路とを接続する経路と、のうちいずれかを選択する選択回路と、を備えているので、プロセッサ内のレジスタと外部デバイスがデータ転送を行う場合、同一列の複数のレジスタに、複数の異なる外部インタフェース回路を介して同時転送が行えるため、従来プロセッサエレメントの数分かかっていた転送サイクル数を大幅に削減することができる。
【００２４】
請求項２に記載の発明によれば、外部インタフェース回路から、クロック信号、リードイネーブル信号及びライトイネーブル信号が出力され、選択回路が、リードイネーブル信号及びライトイネーブル信号のいずれかが選択状態にある場合には、一つの列に属するレジスタと一つの列に対応する外部インタフェース回路と接続する経路を選択し、リードイネーブル信号及びライトイネーブル信号がともに非選択状態にある場合には、一つの列に属するレジスタと一つの列とは異なる列に対応する外部インタフェース回路とを接続する経路を選択するように構成されているので、同一列の複数のレジスタに、複数の異なる外部インタフェース回路を介して同時転送が行え、また異なる外部インタフェース回路を利用しても、同一列の複数レジスタとの間で転送が行われるため、レジスタ配列の並べ替えが不要となり、ＳＩＭＤ型マイクロプロセッサでの並列処理と外部メモリなどとの外部転送との切り替えが容易となる。
【００２５】
請求項３に記載の発明によれば、外部インタフェース回路が対応する列のレジスタを選択するためのアドレス信号を出力するとともに、アドレス信号の一部をマスクするマスク信号も出力し、アクセス回路が、アドレス信号およびマスク信号を用いて同一列の複数のレジスタに、選択信号を出力して、複数の外部インタフェース回路から同時にアクセスさせているので、同一列の複数のレジスタを同時選択することができ、それらのレジスタへ同時にデータ転送を行うことができる。
【００２６】
請求項４に記載の発明によれば、レジスタアレイが、複数の行から構成されるレジスタブロックに分割され、接続回路が、レジスタブロックの各列に設けられ、そして、接続回路が、レジスタブロック内のレジスタと外部インタフェース回路との通信を行うための内部インタフェース回路を備えているので、いくつかのＰＥごとに接続回路を挿入すればよく、ＳＩＭＤ型マイクロプロセッサの全体のレイアウト規模を増大させることなく実現できる。
【図面の簡単な説明】
【００２７】
【図１】本発明の一実施形態にかかるＳＩＭＤ型マイクロプロセッサのブロック図である。
【図２】図１に示されたＳＥＬのレジスタ選択を行う制御側の回路図である。
【図３】図２に示されたデコーダの回路図である。
【図４】図１に示されたＳＩＭＤ型マイクロプロセッサのデータ転送動作を模式的に示した説明図である。
【図５】図１に示されたＳＥＬの入出力を行うデータ側の回路図である。
【発明を実施するための形態】
【００２８】
以下、本発明の一実施形態を、図１ないし図５を参照して説明する。図１は、本発明の一実施形態にかかるＳＩＭＤ型マイクロプロセッサのブロック図である。図２は、図１に示されたＳＥＬのレジスタ選択を行う制御側の回路図である。図３は、図２に示されたデコーダの回路図である。図４は、図１に示されたＳＩＭＤ型マイクロプロセッサのデータ転送動作を模式的に示した説明図である。図５は、図１に示されたＳＥＬの入出力を行うデータ側の回路図である。
【００２９】
図１に示したＳＩＭＤ型マイクロプロセッサ１は、グローバルプロセッサ２と、複数のプロセッサエレメントＰＥ０〜ＰＥ（ｎ−１）と、レジスタアレイ３と、ＰＥインタフェース群４と、を備えている。
【００３０】
制御ユニットとしてのグローバルプロセッサ２は、プログラム格納用のプログラムＲＡＭ、演算データ格納用のデータＲＡＭ、プログラムのアドレスを保持するプログラムカウンタ、演算処理のデータ格納のための汎用レジスタ、ＡＬＵ、レジスタ退避及び復帰時に退避先データＲＡＭのアドレスを保持しているスタックポインタ、サブルーチンコール時にコール元のアドレスを保持するリンクレジスタ、割り込み時とＮＭＩ（マスク不可割り込み）時の分岐元アドレスを保持するレジスタ、グローバルプロセッサ２の状態を保持しているプロセッサステータスレジスタ、命令を解読し各種制御信号を生成するシーケンスユニットなどを備えている。そして、これらを用いて命令を実行し、ワード線６を含む制御信号を、各プロセッサエレメントＰＥ０〜ＰＥｎやレジスタアレイ３に供給する。
【００３１】
プロセッサエレメントＰＥ０〜ＰＥ（ｎ−１）は、図１に示したようにｎ個（ｎは２以上の自然数）が１列に配置されている。各プロセッサエレメントには、図示しないＡＬＵなどを備えている。
【００３２】
レジスタアレイ３は、レジスタがｎ行×ｍ列のアレイ状に並べて配置されている。そして、レジスタアレイ３の各行のレジスタ（Ｒ０、Ｒ１、Ｒ２、・・・、Ｒｍ−１）はプロセッサエレメントＰＥ０ないしＰＥ（ｎ−１）とＰＥバス５で接続されている。また、レジスタアレイ３は、４行ごとにアクセス回路、接続回路としてのＳＥＬ８が各列に設けられている。即ち、ＳＥＬ８が、レジスタブロックごとに設けられている。さらに、グローバルプロセッサ２によって制御されるＤａｔａ−Ｓｅｌｅｃｔ９がＳＥＬ８に対応して設けられている。
【００３３】
ワード線６は、グローバルプロセッサ２からレジスタアレイ３の各列ごとに出力されて、各レジスタに入力されている。グローバルデータ線７は、ＰＥインタフェース群４の各列に対応するＰＥインタフェースからレジスタアレイ３のＳＥＬ８に出力されている。また、グローバルデータ線７は、出力したＰＥインタフェースに対応する列のＳＥＬ８を接続する経路だけでなく、後述する他の列と接続するためのデータ線７ｄも含まれる。即ち、一つの列に属するレジスタと、一つの列とは異なる列に対応する外部インタフェース回路とを接続する経路が設けられている。
【００３４】
Ｄａｔａ−Ｓｅｌｅｃｔ９は、例えば図示しない外部端子によるユーザ制御やグローバルプロセッサ２の制御などによって、後述するように従来のＰＥＩＦとレジスタが１：１の関係である転送と本発明の転送サイクル数短縮を行う転送のモード切替えを行う。この切り替えによって、ＳＥＬ８内の後述するマルチプレクサが切り替わりグローバルデータ線７の接続を変更する。
【００３５】
ＰＥインタフェース群４は、レジスタアレイ３のレジスタと外部メモリなどの外部デバイスとのデータ転送を行う外部転送用ポートである。ＰＥインタフェース群４は、レジスタアレイ３内のレジスタの番号ごとにＰＥインタフェース（Ｒ０）〜ＰＥインタフェース（Ｒｍ−１）のｍ個の外部インタフェース回路としてのＰＥインタフェース（以降ＰＥＩＦと記載する）が設けられており、ＰＥＩＦ（Ｒ０）〜ＰＥＩＦ（Ｒｍ−１）からは上述したようにグローバルデータ線７が出力される。即ち、ＰＥＩＦは、レジスタアレイ３の列方向に接続され、外部デバイスとレジスタアレイ３とのデータ転送を行う。
【００３６】
レジスタアレイ３の各レジスタは通常１個の画素が格納されており、１画素は８ｂｉｔ、あるいは１６ｂｉｔのデータからなっている。またｎ個のプロセッサエレメントは１列の画素データに相当しており、これらのデータを同時処理することによってＳＩＭＤ型マイクロプロセッサ１は所望の画像処理が実現できる。
【００３７】
図１に示したＳＩＭＤ型マイクロプロセッサ１では、ＳＥＬ８およびＤａｔａ−ｓｅｌｅｃｔ９によって、各ＰＥＩＦから異なる列のレジスタにデータ転送する経路（他の列と接続するためのデータ線７ｄ）を選択し、さらに、同一列の複数のレジスタを同時に選択できるように制御できる（例えばプロセッサエレメントＰＥ０のＲ０とプロセッサエレメントＰＥ（ｎ−１）のＲ０など）。これによりレジスタのデータ配列を変更することなく、外部デバイスとの間のデータ転送が高速に行われることとなる。
【００３８】
例えば、ｎ個のＲ０レジスタ（Ｒ０レジスタの列）に、外部デバイスからＰＥインタフェース群４を介してデータを転送する場合では、ＰＥインタフェース群４のうち２ポート（例えばＰＥＩＦ（Ｒ０）とＰＥＩＦ（Ｒ１））を併用すれば、２ＰＥ分のデータを同時に異なるＲ０レジスタに転送することが可能となり、転送サイクル数は１／２に半減できる。さらに４ポート使用する場合では、転送サイクル数は１／４とさらに半減できることとなる。
【００３９】
図１では４ＰＥごとにＳＥＬ８とＤａｔａ−Ｓｅｌｅｃｔ９を設け、ＳＥＬ８とＤａｔａ−Ｓｅｌｅｃｔ９で複数のＰＥＩＦのいずれかのデータを選択するように構成している。即ち、４ＰＥごとのレジスタブロックを構成している。ＳＩＭＤ型マイクロプロセッサ１の全ＰＥ数が５１２である場合はＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９の挿入箇所は１２８箇所必要となる。つまり、ＳＥＬ８は１２８×列数個、Ｄａｔａ−Ｓｅｌｅｃｔ９は１２８個必要になることとなる。図１では４ＰＥごととしているが、１ＰＥごとも可能である。しかし１ＰＥごとにＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９を設けることは、回路規模やレイアウト規模を大きくすることになるため現実的ではない。逆に、ＰＥＩＦの使用数よりもＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９の挿入箇所が少ない場合には、データ転送ができないポートが生じるため、転送効率向上の効果が出せない。したがってＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９の挿入箇所はＰＥＩＦの最大使用数と等しいか、それ以上である必要がある。図１では図示していないが、通常ＳＩＭＤ型マイクロプロセッサ１においては、一定のＰＥ数ごとにローカルドライバを配置するため、それに合わせてＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９を挿入すれば、レイアウトサイズを大きくすることなく、最適な数のＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９が容易に配置できることになる。
【００４０】
図３にＳＥＬ８におけるＰＥインタフェース群４からレジスタを制御する側の回路例を示す。図３に示したようにＳＥＬ８は、ＤＥＣ８ａと、ＡＮＤ回路８ｂ〜８ｅと、ＳＥＬ８ｆと、ローカルデータ線８ｇと、を備えている。
【００４１】
各ＰＥＩＦは、複数のプロセッサエレメントのレジスタを選択するアドレス信号やリードイネーブル／ライトイネーブル信号及びクロック信号もデータ転送時には出力する。つまり、グローバルデータ線７は、図３に示したように、データ線７ａと、上位アドレス信号とリードイネーブル信号（ＲＥ）とライトイネーブル信号（ＷＥ）とクロック信号（ＣＫ）とを有する制御線７ｂと、下位アドレス信号である制御線７ｃ及び、上述した他の列と接続するためのデータ線７ｄから構成される。上位アドレスは４ＰＥでまとめられたレジスタブロックのいずれのレジスタブロックを選択するかを決めるための信号である。下位アドレスは４ＰＥでまとめられたレジスタブロック内のいずれのレジスタ（いずれのプロセッサエレメント）を選択するかを決める信号である。ＲＥおよびＷＥは、リードあるいはライト行うための選択信号である。
【００４２】
ＲＥ，ＷＥは、選択状態のＰＥＩＦにおいては当該列のレジスタに対してリードまたはライト動作を行うが、非選択のＰＥＩＦにおいては非選択状態にしておけば、このＰＥＩＦに対応する列のレジスタは非選択状態にあるとして制御できる。つまり、非選択のレジスタ列に対応するＰＥＩＦは、ＣＫに同期してデータの入出力のみを行うことができ、そのデータは他の列と接続するためのデータ線７ｄを経由して異なる列のレジスタとの転送データとすることができる。
【００４３】
ＤＥＣ８ａは、上述した制御線７ａが入力されるデコーダであり、レジスタへの選択信号を出力する。ＤＥＣ８ａが出力した選択信号は、下位アドレスである制御線７ｃと論理積をとってレジスタへ出力している。
【００４４】
ＳＥＬ８ｆは、レジスタに転送するデータ線７ａを選択する回路であり、図２は、紙面の都合上、対応するＰＥＩＦ（Ｒ０）のデータ線７ａと、ＰＥＩＦ（Ｒ１）に対応する列から他の列と接続するためのデータ線７ｄから選択するようにしている。
【００４５】
ローカルデータ線８ｇは、同一列の同一レジスタブロック内の複数のレジスタを共通の配線で接続している。
【００４６】
ＳＩＭＤ型マイクロプロセッサ１は、上述したようにレジスタブロックごとにレジスタがローカルデータ線８ｇで接続され、また、各レジスタは上位アドレス信号と下位アドレス信号の論理積で選択されるため、複数のレジスタを同時選択するには、上位アドレス側で複数のレジスタブロックを選択するようにする必要がある。したがって、上位アドレスが二重選択できるように構成されていれば、複数のプロセッサエレメントを同時アクセスすることが可能となる。
【００４７】
図３に１６ＰＥの場合における上位アドレスで複数のレジスタブロックを同時選択するＤＥＣ８ａのデコード回路を示す。ここでは上位アドレスと同数のマスクアドレスを設けている。アドレスを１ｂｉｔマスクすれば２つのレジスタブロックが同時に選択され、２ｂｉｔマスクすれば４つのレジスタブロックを同時に選択するように制御できる。例えば図３の場合、上位アドレス［１：０］が図３の上のＤＥＣ８ａから順に“００” “０１” “１０” “１１”に割り当てられているので、マスクアドレス［０］を“１”にすれば、上位アドレス［１：０］が“００” “０１”のレジスタブロックを同時または“１０” “１１”のレジスタブロックを同時に選択することができる。マスクアドレス［１］を“１”にすれば、上位アドレス［１：０］が“００” “１０”のレジスタブロックを同時または“０１” “１１”のレジスタブロックを同時に選択することができる。即ち、ＤＥＣ８ａをこのように構成することによって、同一列の複数のレジスタに、複数の外部インタフェース回路から同時にアクセスさせることができる。
【００４８】
なお、ＳＩＭＤ型マイクロプロセッサ１が５１２ＰＥ相当のものであればアドレスの本数は９本必要となるが、この上位アドレスが４本であるとすると、４本のマスクアドレスを追加するだけで、最大１６ポートのＰＥＩＦからの同時転送が実現でき、５１２サイクルかかっていた転送サイクルが１／１６の３２サイクルで実現できることとなる。
【００４９】
また、上述したように複数のレジスタが同時選択する場合、通常は選択されたレジスタと同数のデータバスが必要となる。ここでデータバスは一般的に８ｂｉｔ、あるいは１６ｂｉｔで構成されている。一列のレジスタ列の中に複数のデータバスを配線することはレイアウトサイズを大きくすることとなるため、本実施形態のように異なる列に対応するＰＥＩＦが持つデータバスを利用することで、レイアウトサイズの増加を抑えることができる。
【００５０】
図２の動作を詳細に説明すると、プロセッサエレメントＰＥ０のＲ０レジスタにＰＥＩＦ(Ｒ０)からのデータが転送される場合、プロセッサエレメントＰＥ０〜プロセッサエレメントＰＥ３のレジスタを接続するローカルデータ線８ｇは、すでにプロセッサエレメントＰＥ０のＲ０レジスタにアクセスするために使用されている。しかしプロセッサエレメントＰＥ４〜プロセッサエレメントＰＥ７のローカルデータ線８ｇは空いているため、ここにＰＥＩＦ(Ｒ１)から転送されるデータを入力すれば、ＰＥＩＦ(Ｒ１)を用いて例えばプロセッサエレメントＰＥ４のＲ０レジスタにデータ転送させることが可能となる。
【００５１】
ここでプロセッサエレメントＰＥ０とプロセッサエレメントＰＥ４のＲ０レジスタは下位アドレスが共通であり、前述したように複数のレジスタブロックを同時選択するように制御すれば、プロセッサエレメントＰＥ０とプロセッサエレメントＰＥ４のＲ０レジスタを同時選択することは可能となる。そのためプロセッサエレメントＰＥ０とプロセッサエレメントＰＥ４の同一列のレジスタに、ＰＥＩＦ(Ｒ０)，ＰＥＩＦ(Ｒ１)といった異なるＰＥＩＦから転送することが可能となる。同様に他のＰＥＩＦを使用すればさらに同時転送が可能となり、さらに転送効率を向上することができる。
【００５２】
図４に本実施形態のＳＩＭＤ型マイクロプロセッサ１におけるデータ転送方法の概念図を示す。図４では簡略化のため１６ＰＥ×４レジスタ相当、ＰＥＩＦも４ポート使用した場合のものを例に挙げている。ＰＥＩＦからのデータを異なる列のレジスタに転送する選択回路は、図１と同様４ＰＥごととしている。
【００５３】
図４はＰＥＩＦからレジスタへのデータ転送を示している。通常１列の画像データは各プロセッサエレメントの同一レジスタ、例えば各プロセッサエレメントのＲ０レジスタへと転送するため、同一のＰＥＩＦが用いられるが、本実施形態では１列の画像データを全てのＰＥＩＦへと分散させてデータ転送を行うため、まず１ラインの画像データを複数のＰＥＩＦに振り分ける。このとき１画素ごとにデータを振り分けるのではなく、転送後のデータ配列を考慮し、プロセッサエレメント側が４ＰＥ単位で分割されているのであれば４画素ごとに、またそれ以上で合った場合にはその分割数に応じた画素ごとにデータの振り分けを行う。
【００５４】
図４の例では、まず、Ａ０〜Ａ１５といった１ラインの画素データのうち、Ａ０，Ａ４，Ａ８，Ａ１２の画素データを複数のＰＥＩＦに振り分け、それらのデータをプロセッサエレメントＰＥ０，プロセッサエレメントＰＥ４，プロセッサエレメントＰＥ８，プロセッサエレメントＰＥ１２のＲ０レジスタへと４画素まとめて同時転送する。
【００５５】
次のステップでは、Ａ１，Ａ５，Ａ９，Ａ１３の画素データをプロセッサエレメントＰＥ１，プロセッサエレメントＰＥ５，プロセッサエレメントＰＥ９，プロセッサエレメントＰＥ１３のＲ０レジスタへと同時転送する。このように４つの画素データの転送を繰り返すことによりＡ０〜Ａ１５といった１ラインの画素データは１／４のステップ数で各プロセッサエレメントのＲ０レジスタへ転送することができる。したがって、プロセッサエレメントへのデータ転送に消費する処理時間は大幅に短縮できる。
【００５６】
また、転送後のレジスタ配列も従来と同じように１列のＲ０レジスタに配列されている。そのため、転送後のＳＩＭＤ演算においてもデータ配列を考慮する必要がなく、従来どおりの転送方向の切り替えがスムーズに行える。
【００５７】
また、Ｒ１レジスタへもＢ０〜Ｂ１５といった画素データを同時転送することは可能であり、このとき事前に転送しているＲ０レジスタのデータを破壊することもないため、データを退避させておく必要もない。このときのアドレス選択などの制御信号の生成は、Ｒ１レジスタの列に配置されているＰＥＩＦが行うこととなる。このようにいずれのレジスタに対しても同様に、複数のＰＥＩＦを用いてデータ転送が行えるが、レジスタの配列は従来どおり規則正しく配列されている。
【００５８】
ここまで図２及び図３では同一列の複数のレジスタに同時選択する回路について説明したが、次に、レジスタとＰＥＩＦのデータ転送する回路について図５を参照して説明する。
【００５９】
図５に異なる列のＰＥＩＦとのデータ転送を行う部分のＳＥＬ８内の回路を示す。図５では分かりやすくするため、データの転送方向に応じて、グローバルデータ線７であるデータ線７ａをライトデータ用バス７ａ１とリードデータ用バス７ａ２に分割している。勿論、レイアウトサイズ縮小が優先課題であれば、双方向バスを使ってもよい。
【００６０】
ＰＥＩＦから各データ線７ａ１を通してデータはレジスタに入力される。複数プロセッサエレメントごとに分割されたレジスタブロックにはそれぞれＳＥＬ８があり、Ｄａｔａ−Ｓｅｌｅｃｔ９によりいずれかのＰＥＩＦから入力されたデータを取り込む。つまり、ＳＥＬ８は、レジスタブロック内のレジスタとＰＥＩＦとの通信を行うための内部インタフェース回路の機能も持っている。具体的には、図２で示したＳＥＬ８ｆは図５に示したようにマルチプレクサ（ＭＰＸ）８ｈ、８ｉとで構成されている。このＭＰＸ８ｈ、８ｉは、選択できるＰＥＩＦの個数分の選択器である。図５では２入力としているが、これは通常のＰＥＩＦとレジスタが１：１の関係である転送を行う場合と、本発明の転送サイクル数短縮を行う場合の２通りの転送モードでの切り替えが行えることを示している。即ち、レジスタに対応する列の外部インタフェース回路と接続する経路と、異なる列の外部インタフェース回路と接続する経路と、のうちいずれかを選択している。
【００６１】
なお、転送サイクル数短縮を行う場合に複数のＰＥＩＦとの転送を行う場合は、このＭＰＸ８ｈ、８ｉの選択数を拡張することで容易に実現できる。図５の転送サイクル数削減を行うモードでは、レジスタブロックごとに異なる列に対応するＰＥＩＦ（図５では隣接する列に対応するＰＥＩＦ）からのデータを取り込む必要があるため、他の列と接続するためのデータ線７ｄの接続先が異なっている。
【００６２】
図５に示したＳＥＬ８を用いることにより、複数のＰＥＩＦから入力されたデータを、同一列の異なる行のレジスタに同時書き込みを行うように出力することができる。
【００６３】
レジスタから外部デバイスへの読み出し側も同様である。ただし読み出し時に選択されないレジスタブロックでは、“１”を出力するように構成しておく。なお、この部分は、“０”を出力するように構成してもよいが、その場合はＡＮＤ回路８ｊをＯＲ回路に変更する。このように構成することにより、同一列の複数のレジスタが選択された場合にも、異なるＰＥＩＦへ所望のデータを同時転送することが可能となっている。
【００６４】
以上のような方法で、ＰＥインタフェース群４と同一列の複数のレジスタとの間で、データ転送を行うことが可能となるため、データの転送効率が改善でき、またレジスタのデータ配列も通常の転送時と変わらないため、並列演算処理との切り替えがスムーズに行える。
【００６５】
本実施形態によれば、レジスタアレイ３内のレジスタと外部デバイスがデータ転送を行う場合、レジスタアレイ３の各列を複数行ずつのレジスタブロックに分け、そのレジスタブロックごとにＳＥＬ８とＤａｔａ−Ｓｅｌｅｃｔ９を設けて、ＳＥＬ８で対応する列のデータ線７ａと他の列と接続するためのデータ線７ｄとをＤａｔａ−Ｓｅｌｅｃｔ９の制御で選択し、ＰＥＩＦから出力される制御線７ｂ、７ｃをＳＥＬ８内でデコードすることで同一列の複数のレジスタブロックを選択できるようにしているので、同一列の異なる行のレジスタに、複数の異なるＰＥＩＦを介して、同時転送が行え、データ転送効率が向上し、従来プロセッサエレメントの数分かかっていた転送サイクル数が大幅に削減することができる。また異なるＰＥＩＦを利用しても、同一列のレジスタとの間で転送が行われるため、レジスタ配列の並べ替えが不要となり、ＳＩＭＤ型マイクロプロセッサ１での並列処理と外部メモリなどとの外部転送との切り替えが容易となる。
【００６６】
また、複数のＰＥＩＦに外部メモリなどのデータを振り分けるには、バスの接続やマルチプレクサなどの選択回路が必要となるが、ＳＩＭＤ型マイクロプロセッサ１の大部分は巨大なＰＥ部（図１のレジスタアレイ３とプロセッサエレメントＰＥ（０）〜ＰＥ（ｎ−１）を合わせた部分）で占めており、ＰＥＩＦの複数使いをしない場合と比べても、周辺部での回路追加による影響は小さいと言える。また、グローバルプロセッサ２からのワード線６の数は従来回路から変わっていない。また、ＰＥＩＦからの信号も配線数は従来回路と同様にアドレス、ＲＥ、ＷＥ、ＣＫである。さらに、データ線数も変わらない。アドレス信号に関してレジスタの複数選択を行うためのマスク信号分増えるのみである。この範囲ではＳＩＭＤ型マイクロプロセッサ１のレイアウトサイズの大半を占めるデータパスの面積に影響を与えることはない。そして、本発明を実現するための制御回路（ＳＥＬ８やＤａｔａ−Ｓｅｌｅｃｔ９）は、いくつかのプロセッサエレメントごとに挿入されるローカルドライバの部分で構成することができる。したがってＳＩＭＤ型マイクロプロセッサ１の全体のレイアウト規模を大きくすることなく実現できる。
【００６７】
なお、本発明は上記実施形態に限定されるものではない。即ち、本発明の骨子を逸脱しない範囲で種々変形して実施することができる。
【符号の説明】
【００６８】
１   ＳＩＭＤ型マイクロプロセッサ
２   グローバルプロセッサ
３   レジスタアレイ
４   ＰＥインタフェース群
７ａ データ線（レジスタに対応する列の前記外部インタフェース回路と接続する経路）
７ｄ 他の列と接続するためのデータ線（レジスタと異なる列に対応する外部インタフェース回路とを接続する経路）
８   ＳＥＬ（選択回路、アクセス回路、内部インタフェース回路）
９   Ｄａｔａ−Ｓｅｌｅｃｔ（選択回路）
ＰＥ０〜ＰＥ（ｎー１）    プロセッサエレメント
ＰＥＩＦ（Ｒ０）〜ＰＥＩＦ（Ｒｍ−１）  ＰＥインタフェース（外部インタフェース回路）
【先行技術文献】
【特許文献】
【００６９】
【特許文献１】特許第３９７１５３５号公報
【特許文献２】特許第３８３７２９３号公報
【図１】
2011113370.tif 000003
【図２】
2011113370.tif 000004
【図３】
2011113370.tif 000005
【図４】
2011113370.tif 000006
【図５】
2011113370.tif 000007