(57)【特許請求の範囲】
【請求項１】
演算処理を行う複数のプロセッサエレメント、および、前記プロセッサエレメント間を接続する複数のプログラマブルスイッチエレメントを、二次元アレイ状に電気的に接続して構成されたデータパス部を具備し、
前記プロセッサエレメントは、複数の命令コードを記憶する命令コードメモリと、この命令コードメモリから読み出された前記命令コードを解読する命令デコーダと、解読された前記命令コードに基づいて、前記演算処理を行なう演算部とを有し、かつ、前記プログラマブルスイッチエレメントは、前記プロセッサエレメントと前記プログラマブルスイッチエレメント間、及び／又は、前記プログラマブルスイッチエレメント相互間の接続構成を指示する接続構成情報を複数セット記憶する接続構成情報メモリを有するアレイ型プロセッサにおいて、
複数の演算状態間の遷移ルールが書き込まれた状態遷移テーブルを記憶する状態遷移テーブルメモリおよび、この状態遷移テーブルメモリを用いて前記複数の演算状態間の遷移を制御することにより、任意の時点における演算状態を決定するシーケンサ部を有する状態遷移管理部を前記データバス部と独立に具備し、
前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び／又は、前記接続構成情報メモリのアドレスを出力し、前記命令コードメモリのアドレスに応じて命令コードが選択され、前記命令デコーダが前記命令コードを解読し、
前記状態遷移管理部で決定された状態に基づき、解読された前記命令コードに従って前記プロセッサエレメントの各プロセッサエレメント毎に、演算処理内容、及び前記プログラマブルスイッチエレメントの接続状態を切り替わることを特徴とするアレイ型プロセッサ。
【請求項２】
請求項１において、前記プロセッサエレメントの演算処理内容、及び前記プログラマブルスイッチエレメントの接続状態の一方のみの切り替えを可能とすることを特徴とするアレイ型プロセッサ。
【請求項３】
上記請求項１又は２に記載のアレイ型プロセッサにおいて、
前記状態遷移管理部からの制御が、前記状態遷移管理部単独による前記演算状態の遷移、及び／又は、前記データパス部からのイベントを入力することによる前記演算状態の遷移、及び／又は、外部からのイベントを入力することによる前記演算状態の遷移に基づくことを特徴とするアレイ型プロセッサ。
【請求項４】
上記請求項１から３のいずれか１項に記載のアレイ型プロセッサにおいて、
前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記任意の時点における演算状態に応じて前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び／又は、前記接続構成情報メモリのアドレスを出力することを特徴とするアレイ型プロセッサ。
【請求項５】
上記請求項４に記載のアレイ型プロセッサにおいて、
一つ以上の前記演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、かつ、各前記プロセッサエレメント及び／又は各前記プログラマブルスイッチエレメントが、それぞれ一つの前記演算制御バスを選択して前記アドレスを入力することを特徴とするアレイ型プロセッサ。
【請求項６】
上記請求項４に記載のアレイ型プロセッサにおいて、
前記状態遷移管理部が、それぞれの前記プロセッサエレメントおよびそれぞれの前記プログラマブルスイッチエレメントに対し、独立した前記アドレスを並列に与えることを特徴とするアレイ型プロセッサ。
【請求項７】
上記請求項４に記載のアレイ型プロセッサにおいて、
前記プロセッサエレメント及び／又は前記プログラマブルスイッチエレメントをグループ化し、このグループに対して一つの前記アドレスを与えることを特徴とするアレイ型プロセッサ。
【請求項８】
上記請求項６又は７に記載のアレイ型プロセッサにおいて、
一部の前記プロセッサエレメント及び／又は一部の前記プログラマブルスイッチエレメントに対してのみ、前記任意の時点における演算状態に応じた前記アドレスを与え、残りの前記プロセッサエレメントおよび残りの前記プログラマブルスイッチエレメントは、前記任意の時点における演算状態の直前に使用していた前記アドレスを継続して使用することを特徴とするアレイ型プロセッサ。
【請求項９】
上記請求項４に記載のアレイ型プロセッサにおいて、
前記演算制御バスが、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに配設され、かつ、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、さらに、前記プロセッサエレメント及び／又は前記プログラマブルスイッチエレメントが、隣接する前記演算制御バスのうちいずれか一つを選択して前記アドレスを得ることを特徴とするアレイ型プロセッサ。
【請求項１０】
上記請求項４から９のいずれかに記載のアレイ型プロセッサにおいて、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに対して、それぞれ独立の前記演算制御バスが配設され、かつ、それぞれ独立した制御が行われることを特徴とするアレイ型プロセッサ。
【請求項１１】
上記請求項１から１０のいずれかに記載のアレイ型プロセッサにおいて、
前記プロセッサエレメントが、演算処理データを記録するレジスタを有することを特徴とするアレイ型プロセッサ。
【請求項１２】
上記請求項１１に記載のアレイ型プロセッサにおいて、
前記プロセッサエレメントが、外部からの入力データまたは前記演算処理データに対して、前記状態遷移管理部からの制御に応じた演算処理を行ない、この演算処理結果を、前記外部に出力データとして出力するか、あるいは、前記レジスタに記録することを特徴とするアレイ型プロセッサ。
【請求項１３】
上記請求項１から１２のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移管理部と前記データパス部とを電気的に接続するイベント通知バスを有し、前記データパス部が、前記イベント通知バスを通じて、演算結果をイベントとして前記状態遷移管理部に通知することを特徴とするアレイ型プロセッサ。
【請求項１４】
上記請求項１から１３のいずれかに記載のアレイ型プロセッサにおいて、
前記シーケンサ部が、前記状態遷移テーブルメモリに書き込まれた前記状態遷移ルールにしたがって、前記演算状態から同一のまたは異なる演算状態への状態遷移を制御し、前記同一のまたは異なる演算状態を新たな演算状態とすることを特徴とするアレイ型プロセッサ。
【請求項１５】
上記請求項１から１４のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移テーブルが、複数の演算状態の記述エントリを並べたリスト形式で記録されており、前記記述エントリが、状態を識別するある時点の状態番号、状態遷移先の状態を識別する次の時点の状態番号及び前記ある時点の状態から次の時点の状態へ遷移するための状態遷移条件を有することを特徴とするアレイ型プロセッサ。
【請求項１６】
上記請求項１４又は１５に記載のアレイ型プロセッサにおいて、
前記状態遷移管理部は、前記ある時点の状態番号、あるいは前記次の時点の状態番号に対応して、前記命令コードアドレスのアドレス及び／又は前記接続構成情報メモリのアドレスを管理する制御情報メモリを有し、
前記状態遷移テーブルから特定された前記ある時点の状態番号、あるいは前記次の時点の状態番号を基に、前記制御情報メモリより前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを特定することを特徴とするアレイ型プロセッサ。
【請求項１７】
上記請求項１４又は１５に記載のアレイ型プロセッサにおいて、
前記状態遷移管理部は、前記ある時点の状態番号に対応して、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを管理する状態遷移テーブルを有し、
前記状態遷移テーブルは、前記ある時点の状態番号を基に、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを特定することを特徴とするアレイ型プロセッサ。
【請求項１８】
上記請求項１５から１７のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移テーブルが、前記ある時点の状態番号、前記次の時点の状態番号及び前記状態遷移条件を前記記述エントリとするイベント状態遷移テーブルと、前記ある時点の状態番号と前記次の時点の状態番号とを前記記述エントリとするデフォルト状態遷移テーブルとを有し、前記イベント状態遷移テーブルにより前記状態遷移条件が満たされる場合の状態遷移を実現し、かつ、前記デフォルト状態遷移テーブルにより前記状態遷移条件が満たされない場合の状態遷移を実現することを特徴とするアレイ型プロセッサ。
【請求項１９】
上記請求項１５から１８のいずれかに記載のアレイ型プロセッサにおいて、
一つの前記ある時点の状態番号には、一つ以上の前記記述エントリが対応し、一つの前記ある時点の状態番号に対応する前記記述エントリが二つ以上存在する場合には、当該前記記述エントリ間で異なる前記状態遷移条件を有することを特徴とするアレイ型プロセッサ。
【請求項２０】
上記請求項１６又は１７に記載のアレイ型プロセッサにおいて、
前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記状態遷移テーブルメモリを、前記ある時点の状態番号と前記イベント識別コードとで検索し、この検索において、前記ある時点の状態番号が合致し、かつ、前記イベント識別コードが前記状態遷移条件を満たす前記記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定することを特徴とするアレイ型プロセッサ。
【請求項２１】
上記請求項２０に記載のアレイ型プロセッサにおいて、
前記イベントが通知されない場合に、前記シーケンサ部が、前記イベントが発生しなかったことを示すイベント識別コードを生成し、さらに、前記ある時点の状態番号と前記イベント識別コードの組み合わせにより前記状態遷移テーブルメモリを検索することを特徴とするアレイ型プロセッサ。
【請求項２２】
上記請求項１８又は１９に記載のアレイ型プロセッサにおいて、
前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記イベント状態遷移テーブルを前記ある時点の状態番号と前記イベント識別コードとで検索すると同時に、前記デフォルト状態遷移テーブルを前記ある時点の状態番号で検索し、この検索において、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードが一致する前記記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定し、あるいは、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードとが一致する前記記述エントリが無かった場合には、前記デフォルト状態遷移テーブルにおける前記ある時点の状態番号と一致する前記記述エントリの前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定することを特徴とするアレイ型プロセッサ。
【請求項２３】
上記請求項２０から２２のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移テーブルメモリからなる内容アドレスメモリに、前記ある時点の状態番号と前記イベント識別コードとが入力され、前記内容アドレスメモリと前記記述エントリとの並列照合により一致した前記記述エントリにおける前記次の時点の状態番号が出力されることを特徴とするアレイ型プロセッサ。
【請求項２４】
上記請求項１８から２３のいずれかに記載のアレイ型プロセッサにおいて、
前記次の時点の状態番号の生成の開始以降、若しくは終了以降に、前記状態遷移先の状態に対応した前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスの生成が行われることを特徴とするアレイ型プロセッサ。
【請求項２５】
上記請求項１８から２３のいずれかに記載のアレイ型プロセッサにおいて、
決定された前記状態遷移先の状態が、前記状態遷移管理部において前記ある時点の状態とされた時点で、前記ある時点の状態に対応する前記アドレスの生成を開始することを特徴とするアレイ型プロセッサ。
【請求項２６】
上記請求項１５から２５のいずれかに記載のアレイ型プロセッサにおいて、
前記次の時点の状態番号の生成開始から前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスが届くまでのパスに、レジスタを設け、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記アドレスを受け取る時点とを、別サイクルとすることを特徴とするアレイ型プロセッサ。
【請求項２７】
上記請求項１５から２５のいずれかに記載のアレイ型プロセッサにおいて、
前記次の時点の状態番号の生成を開始する時点から、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスが届くまでを一つのサイクルとして独立させることを特徴とするアレイ型プロセッサ。
【請求項２８】
上記請求項２０から２３のいずれかに記載のアレイ型プロセッサにおいて、
前記イベント識別コードを前記シーケンサ部から前記状態遷移テーブルメモリへ伝搬する接続線上に第一のレジスタを設け、該第一のレジスタにより前記イベント識別コードを前記接続線上において一時保持することで、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを受け取る時点とを、別サイクルとすることを特徴とするアレイ型プロセッサ。
【請求項２９】
上記請求項２８に記載のアレイ型プロセッサにおいて、
前記状態遷移テーブルメモリが、前記ある時点の状態番号を含む全てのエントリにおける前記次の時点の状態番号を保持する一つ以上の第二のレジスタを有し、前記状態遷移条件が満たされる場合には、前記一つ以上の第二のレジスタで保持されている前記次の時点の状態番号の内、前記状態遷移条件を満たすいずれかを選択して出力することを特徴とするアレイ型プロセッサ。
【請求項３０】
上記請求項２９に記載のアレイ型プロセッサにおいて、
前記第一のレジスタ及び第二のレジスタ各々に対して、使用するか否かを選択するセレクタを有し、
前記命令コードが、前記第一及び第二のレジスタを使用するか否かを制御する制御情報を含み、
前記セレクタが、前記命令コードに基づき前記第一及び第二のレジスタを使用するか否かを選択することを特徴とするアレイ型プロセッサ。
【請求項３１】
上記請求項１から３０のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移管理部が、クロック信号入力端子を有しており、このクロック信号入力端子から入力されるクロック信号の立ち上がり及び／又は立ち下がりにおいて、前記演算状態の遷移動作を同期させることを特徴とするアレイ型プロセッサ。
【請求項３２】
上記請求項１から３１のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移管理部が、現時点での演算状態に依存せずに状態遷移させるための強制状態遷移信号により、強制的に前記演算状態が遷移することを特徴とするアレイ型プロセッサ。
【請求項３３】
上記請求項１から３１のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移テーブルが、入力された前記イベント識別コードとの一致を検出する強制状態遷移テーブルを有し、この強制状態遷移テーブルにおいて、前記状態遷移テーブルに入力された前記イベント識別コードと一致する前記記述エントリが存在する場合には、前記記述エントリに記述された次の時点の状態番号を強制的に状態遷移先の状態とすることを特徴とするアレイ型プロセッサ。
【請求項３４】
上記請求項１から３３のいずれかに記載のアレイ型プロセッサにおいて、
前記状態遷移管理部が、前記データパス部を制御する演算制御情報メモリを有することを特徴とするアレイ型プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、プログラムすることで所望の演算処理を実行できるプロセッサに関するものであり、特に、プロセッサエレメントを二次元アレイ状に並べたアレイ型プロセッサに関する。
【０００２】
【従来の技術】
従来、プログラム可能なデバイスとして、様々なマイクロプロセッサが知られており、これらのマイクロプロセッサは、メモリに記憶されている命令を順に読み出し、逐次的に処理することを特徴としていた。
つまり、マイクロプロセッサは、非常にシンプルな処理を行なう一つの命令を順に処理する形が、組み合わされて実行されることで、目的とする一連の処理を実現していた。
【０００３】
しかし、このマイクロプロセッサは、一つのプロセッサで同時に実行できる命令が数個であるため、処理性能を向上させる上で限界があった。
具体的には、大量のデータに対して同一の処理を行う場合に、一つ一つのデータに対して逐次処理を繰り返す必要があり、処理能力を向上させることができなかった。
【０００４】
この限界を越える技術として、複数のプロセッサエレメントを用いて、命令を並列処理する（同時に実行する）技術があり、具体的には、プロセッサエレメント間の電気的接続方法により様々な技術が存在する。
その一つとして、Ｌａｗｒｅｎｃｅ  Ｓｎｙｄｅｒにより、論文‘‘ＩｎｔｒｏｄｕｃＴｉｏｎ  Ｔｏ  Ｔｈｅ  Ｃｏｎｆｉｇｕｒａｂｌｅ，Ｈｉｇｈｌｙ  Ｐａｒａｌｌｅｌ  ＣｏｍｐｕＴｅｒ’’（ＩＥＥＥ  ＣＯＭＰＵＴＥＲ，Ｊａｎ．１９８２）において提案された、複数のプロセッサエレメントをアレイ状に配置し、かつ、プログラマブルなスイッチを用いて電気的に接続することにより、所望のプロセッサを電気的に接続する技術がある（適宜、第一従来技術と略称する。）。
【０００５】
この第一従来技術のマイクロプロセッサは、複数のプロセッサを用いて並列処理を行うことで、一つのプロセッサによる処理よりも処理能力が向上し、しかも、プロセッサエレメント間をプログラマブルなスイッチで電気的に接続しているため、目的に応じたプロセッサエレメント同士の電気的接続を実現でき、特に、データ処理分野のアプリケーションにおいて、効率の良い処理を行うことができた。
【０００６】
また、このマイクロプロセッサは、異なった性質の処理、すなわち、データパスのような演算器ベースの処理と、制御回路のようなランダムロジック回路の処理を、各プロセッサエレメントのアレイ部のみで実現するために、各プロセッサエレメントに汎用処理能力を付加する必要があった。
【０００７】
【発明が解決しようとする課題】
ところが、マイクロプロセッサのさらなる小型化・高性能化の要求に応えるためには、各プロセッサエレメントの機能をそれぞれを処理目的に応じて特化する技術を確立する必要があるが、この技術は極めて困難であり、結果的に、マイクロプロセッサの小型化・高性能化の要求に応えることができないという問題があった。
【０００８】
本発明は、上述した従来技術の問題点を解決するためになされたものであり、プロセッサエレメントをアレイ状に並べたものをプログラマブルなスイッチで電気的に接続した構成からなる、演算を主体として行うデータパス部と、状態遷移手段の実現を容易とした構成からなる、制御を行う状態遷移管理部を独立して具備し、それぞれを処理目的に応じて特化した構成で実現することで、小型化・高性能化の可能なアレイ型プロセッサの提供を目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するために、本発明のアレイ型プロセッサは、演算処理を行う複数のプロセッサエレメント、および、前記プロセッサエレメント間を接続する複数のプログラマブルスイッチエレメントを、二次元アレイ状に電気的に接続して構成されたデータパス部を具備し、前記プロセッサエレメントは、複数の命令コードを記憶する命令コードメモリと、この命令コードメモリから読み出された前記命令コードを解読する命令デコーダと、解読された前記命令コードに基づいて、前記演算処理を行なう演算部とを有し、かつ、前記プログラマブルスイッチエレメントは、前記プロセッサエレメントと前記プログラマブルスイッチエレメント間、及び／又は、前記プログラマブルスイッチエレメント相互間の接続構成を指示する接続構成情報を複数セット記憶する接続構成情報メモリを有するアレイ型プロセッサにおいて、複数の演算状態間の遷移ルールが書き込まれた状態遷移テーブルを記憶する状態遷移テーブルメモリおよび、この状態遷移テーブルメモリを用いて前記複数の演算状態間の遷移を制御することにより、任意の時点における演算状態を決定するシーケンサ部を有する状態遷移管理部を前記データバス部と独立に具備し、前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び／又は、前記接続構成情報メモリのアドレスを出力し、前記命令コードメモリのアドレスに応じて命令コードが選択され、前記命令デコーダが前記命令コードを解読し、前記状態遷移管理部で決定された状態に基づき、解読された前記命令コードに従って前記プロセッサエレメントの各プロセッサエレメント毎に、演算処理内容、及び前記プログラマブルスイッチエレメントの接続状態を切りえを可能とする構成としてある。
【００１０】
このように、演算を主体として行うデータパス部と、制御を行う状態遷移管理部を分離して具備し、それぞれを処理目的に応じて特化した構成で実現することで、演算と制御の両者を効率良く実装および処理することが可能となり、アレイ型プロセッサは、小型化され、かつ、処理性能が向上する。
【００１１】
さらに、前記状態遷移管理部からの制御が、前記状態遷移管理部単独による前記演算状態の遷移、及び／又は、前記データパス部からのイベントを入力することによる前記演算状態の遷移、及び／又は、外部からのイベントを入力することによる前記演算状態の遷移に基づく構成としてある。
【００１２】
このようにすることにより、アレイ型プロセッサは、きめ細かく柔軟な制御を行うことができるので、処理性能が向上する。
【００１３】
さらに、前記状態遷移管理部と前記データパス部とを電気的に接続する演算制御バスを有し、前記状態遷移管理部が、前記任意の時点における演算状態に応じて前記演算制御バスを通じて、前記命令コードメモリのアドレスを出力し、及び／又は、前記接続構成情報メモリのアドレスを出力する構成としてある。
【００１４】
このようにすることにより、アレイ型プロセッサは、状態遷移管理部からプロセッサエレメントとプログラマブルスイッチエレメントに、効率良く制御信号を出力することができる。
【００１５】
さらに、一つ以上の前記演算制御バスを有し、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、かつ、各前記プロセッサエレメント及び／又は各前記プログラマブルスイッチエレメントが、それぞれ一つの前記演算制御バスを選択して前記アドレスを入力する構成としてある。
【００１６】
このようにすることにより、アレイ型プロセッサは、プロセッサエレメントを効率良く作動させることができ、処理性能が向上する。
【００１７】
また、前記状態遷移管理部が、それぞれの前記プロセッサエレメントおよびそれぞれの前記プログラマブルスイッチエレメントに対し、独立した前記アドレスを並列に与える構成としてある。
【００１８】
このようにすることにより、アレイ型プロセッサは、データパス部内のプロセッサエレメントを効率良く作動させることができるので、処理性能が向上する。
【００１９】
また、前記プロセッサエレメント及び／又は前記プログラマブルスイッチエレメントをグループ化し、このグループに対して一つの前記アドレスを与える構成としてある。
【００２０】
このようにすることにより、アレイ型プロセッサは、データパス部内のグループ化されたプロセッサエレメントを効率良く作動させることができるので、より処理性能が向上する。
【００２１】
さらに、一部の前記プロセッサエレメント及び／又は一部の前記プログラマブルスイッチエレメントに対してのみ、前記任意の時点における演算状態に応じた前記アドレスを与え、残りの前記プロセッサエレメントおよび残りの前記プログラマブルスイッチエレメントは、前記任意の時点における演算状態の直前に使用していた前記アドレスを継続して使用する構成としてある。
【００２２】
このようにすることにより、アレイ型プロセッサは、継続してプロセッサエレメントに処理を実行させることができ、また、きめ細かく柔軟な制御を行うことができるので、処理性能がより向上する。
【００２３】
また、前記演算制御バスが、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに配設され、かつ、前記状態遷移管理部が、前記演算制御バスに対して前記アドレスを出力し、さらに、前記プロセッサエレメント及び／又は前記プログラマブルスイッチエレメントが、隣接する前記演算制御バスのうちいずれか一つを選択して前記アドレスを得る構成としてある。
【００２４】
このようにすることにより、アレイ型プロセッサは、きめ細かく柔軟な制御を行うことができるので、処理性能がより向上する。
【００２５】
さらに、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに対して、それぞれ独立の前記演算制御バスが配設され、かつ、該独立の演算制御バスは、それぞれ独立した制御が行われる構成としてある。
【００２６】
このようにすることにより、アレイ型プロセッサは、構成が単純化され、制御が容易になる。
【００２７】
さらに、前記プロセッサエレメントが、演算処理データを記録するレジスタを有する構成としてある。
【００２８】
このようにすることにより、アレイ型プロセッサは、演算部とレジスタ間の配線効率が改善されて、小型化されるとともに処理性能が向上する。
【００２９】
さらに、前記プロセッサエレメントが、外部からの入力データまたは前記演算処理データに対して、前記状態遷移管理部からの制御に応じた演算処理を行ない、この演算処理結果を、前記外部に出力データとして出力するか、あるいは、前記レジスタに記録する構成としてある。
【００３０】
このようにすることにより、アレイ型プロセッサは、演算処理を効率良く実行することができ、処理性能が向上する。
【００３１】
さらに、前記状態遷移管理部と前記データパス部とを電気的に接続するイベント通知バスを有し、前記データパス部が、前記イベント通知バスを通じて、演算結果をイベントとして前記状態遷移管理部に通知する構成としてある。
【００３２】
このようにすることにより、アレイ型プロセッサは、きめ細かく柔軟な制御を行うことができるので、処理性能がより向上する。
【００３３】
さらに、前記シーケンサ部が、前記状態遷移テーブルメモリに書き込まれた前記状態遷移ルールにしたがって、前記演算状態から同一のまたは異なる演算状態への状態遷移を制御し、前記同一のまたは異なる演算状態を新たな演算状態とする構成としてある。
【００３４】
このようにすることにより、アレイ型プロセッサは、効率良く制御を行うことができるので、処理性能が向上する。
【００３５】
さらに、前記状態遷移テーブルが、複数の演算状態の記述エントリを並べたリスト形式で記録されており、前記記述エントリが、状態を識別するある時点の状態番号、状態遷移先の状態を識別する次の時点の状態番号及び前記ある時点の状態から次の時点の状態へ遷移するための状態遷移条件を有する構成としてある。
【００３６】
このように、アレイ型プロセッサは、状態遷移テーブルが複数の演算状態の記述エントリを並べたリスト形式で記録されてあるので、効率が良くかつ容易な制御を行うことができるので、処理性能が向上する。
【００３７】
さらに、前記状態遷移管理部は、前記ある時点の状態番号、あるいは前記次の時点の状態番号に対応して、前記命令コードアドレスのアドレス及び／又は前記接続構成情報メモリのアドレスを管理する制御情報メモリを有し、前記状態遷移テーブルから特定された前記ある時点の状態番号、あるいは前記次の時点の状態番号を基に、前記接続情報メモリより前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを特定する構成としてある。
【００３８】
このように、状態遷移先である、ある時点の状態番号、あるいは次の時点の状態番号の特定と、命令コードメモリのアドレス及び／又は接続構成情報メモリのアドレスの特定と、各々別のメモリを用いて実行することにより、メモリが搭載された回路面積の縮小と、状態遷移先を決定するための自由度の縮減のない接続制御バスのビット幅の縮減と、を実現することが可能となる。
【００３９】
また、前記ある時点の状態番号に対応して、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを管理する状態遷移テーブルを有し、前記状態遷移テーブルは、前記ある時点の状態番号を基に、前記次の時点の状態番号及び、前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを特定する構成としてある。
【００４０】
このように、ある時点の状態番号を基に、次の時点の状態番号だけでなく、ある時点の命令コードメモリのアドレスも特定することにより、メモリの参照回数を減らすことが可能となり、より高速な処理を実現することが可能となる。
【００４１】
さらに、前記状態遷移テーブルが、前記ある時点の状態番号、前記次の時点の状態番号及び前記状態遷移条件を前記記述エントリとするイベント状態遷移テーブルと、前記ある時点の状態番号と前記次の時点の状態番号とを前記記述エントリとするデフォルト状態遷移テーブルとを有し、前記イベント状態遷移テーブルにより前記状態遷移条件が満たされる場合の状態遷移を実現し、かつ、前記デフォルト状態遷移テーブルにより前記状態遷移条件が満たされない場合の状態遷移を実現する構成としてある。
【００４２】
このようにすることにより、アレイ型プロセッサは、状態遷移を効率良く行なうことができ、制御が容易となる。
【００４３】
さらに、一つの前記ある時点の状態番号には、一つ以上の前記記述エントリが対応し、前記一つ以上の記述エントリが、各々異なる前記状態遷移条件を有する構成としてある。
【００４４】
このようにすることにより、アレイ型プロセッサは、状態遷移を実行する際の自由度が拡大され、結果的に、制御が容易となる。
【００４５】
また、前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記状態遷移テーブルメモリを、前記ある時点の状態番号と前記イベント識別コードで検索し、この検索において、前記ある時点の状態番号が合致し、かつ、前記イベント識別コードが前記状態遷移条件を満たす前記記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定する構成としてある。
【００４６】
このように、アレイ型プロセッサは、シーケンサ部が、イベントからイベント識別コードを生成し、さらに、状態遷移テーブルメモリを検索することによっても、状態遷移先を決定することができ、制御方式の選択の自由度が拡大される。
【００４７】
さらに、前記イベントが通知されない場合に、前記シーケンサ部が、前記イベントが発生しなかったことを示すイベント識別コードを生成し、さらに、前記ある時点の状態番号と前記イベント識別コードの組み合わせにより前記状態遷移テーブルメモリを検索する構成としてある。
【００４８】
このようにすると、イベントが発生しない場合であっても、アレイ型プロセッサは、シーケンサ部が状態遷移テーブルメモリを検索することができ、状態遷移先を決定する。
【００４９】
また、前記シーケンサ部が、イベントからイベント識別コードを生成し、さらに、前記イベント状態遷移テーブルを前記ある時点の状態番号と前記イベント識別コードで検索すると同時に、前記デフォルト状態遷移テーブルを前記ある時点の状態番号で検索し、この検索において、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードが一致する前記状態記述エントリがある場合には、前記記述エントリにおける前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定し、あるいは、前記イベント状態遷移テーブルに、前記ある時点の状態番号と前記イベント識別コードとが一致する前記記述エントリが無かった場合には、前記デフォルト状態遷移テーブルにおける前記ある時点の状態番号と一致する前記記述エントリの前記次の時点の状態番号に基づいて、前記状態遷移先の状態を決定する構成としてある。
【００５０】
このようにすることにより、アレイ型プロセッサは、状態遷移先を決定することができ、制御方式の選択の自由度が拡大される。
【００５１】
また、前記状態遷移テーブルメモリからなる内容アドレスメモリに、前記ある時点の状態番号と前記イベント識別コードとが入力され、前記内容アドレスメモリと前記記述エントリとの並列照合により一致した前記記述エントリにおける前記次の時点の状態番号が出力される構成としてある。
【００５２】
このように、アレイ型プロセッサは、前記状態遷移テーブルメモリを内容アドレスメモリとし、この内容アドレスメモリを照合することにより、次の時点の状態番号が出力できるので、制御方式の選択の自由度が拡大される。
【００５３】
更に、前記次の時点の状態番号の生成の開始以降、若しくは終了以降に、前記状態遷移先の状態に対応した前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスの生成が行われる構成としてある。
【００５４】
このようにすることにより、アレイ型プロセッサは、状態遷移管理部とデータパス部の信号の受け渡しの自由度が拡大され、きめ細かく柔軟な制御を行うことができる。
【００５５】
また、決定された前記状態遷移先の状態が、前記状態遷移管理部において前記ある時点の状態とされた時点で、前記ある時点の状態に対応する前記アドレスの生成を開始する構成としてある。
【００５６】
このようにすることにより、アレイ型プロセッサは、同じ状態遷移を連続して実行することができる。
【００５７】
更に、前記次の時点の状態番号の生成開始から前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスが届くまでのパスに、レジスタを設け、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記アドレスを受け取る時点とを、別サイクルとする構成としてある。
【００５８】
このように、アレイ型プロセッサは、アドレスの生成開始時点と、プロセッサエレメントおよびプログラマブルロジックエレメントがアドレスを受け取る時点とを、別サイクルとすることにより、動作速度の向上を図ることが可能となる。これは、“演算動作＋イベント伝播＋アドレス配布”の動作を１サイクルとせずに、“演算動作＋イベント伝播”と“アドレス配布”とを別サイクルとすることで、アドレスを発行するタイミングを前倒しにすることが可能となり、クリティカルパスであるこの部分の遅延を削除することが可能となるためである。
【００５９】
さらに、前記次の時点の状態番号の生成を開始する時点から、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントに前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスが届くまでを一つのサイクルとして独立させる構成としてある。
【００６０】
このように、アレイ型プロセッサは、アドレスの生成開始時点と、プロセッサエレメントおよびプログラマブルロジックエレメントがアドレスを受け取る時点とを、別サイクルとすることにより、動作速度の向上を図ることが可能となる。これは、レジスタ等を用いることで、“演算動作＋イベント伝播”と“アドレス配布”とを別サイクルとすることで、クリティカルパスが短くなり、高速化（動作）が可能となる。
【００６１】
また、前記イベント識別コードを前記シーケンサ部から前記状態遷移テーブルメモリへ伝搬する接続線上に第一のレジスタを設け、該第一のレジスタにより前記イベント識別コードを前記接続線上において一時保持することで、前記次の時点の状態番号の生成開始時点と、前記プロセッサエレメントおよび前記プログラマブルスイッチエレメントが前記命令コードメモリのアドレス及び／又は前記接続構成情報メモリのアドレスを受け取る時点とを、別サイクルとする構成としてある。
【００６２】
このように構成することにより、アレイ型プロセッサは、命令コードアドレスを生成する時点と、生成した命令コードアドレスがプロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６に到達する時点とを、別サイクルとして動作させることが可能となり、命令コードアドレスの発行のタイミングを他の構成に依存させずに、制御の確実性を向上させることができる。
【００６３】
さらに、前記状態遷移テーブルメモリが、前記ある時点の状態番号を含む全てのエントリにおける前記次の時点の状態番号を保持する一つ以上の第二のレジスタを有し、前記状態遷移条件が満たされる場合には、前記一つ以上の第二のレジスタで保持されている前記次の時点の状態番号の内、前記状態遷移条件を満たすいずれかを選択して出力する構成としてある。
【００６４】
このように構成することにより、アレイ型プロセッサは、イベント状態遷移テーブルへのある時点の状態番号の入力の如何に関わらず、データパス部に対して次の時点の状態番号に対する命令コードアドレスを発行することが可能となり、制御の確実性を向上させることが可能となる。
【００６５】
さらに、前記第一のレジスタ及び第二のレジスタ各々に対して、使用するか否かを選択するセレクタを有し、前記命令コードが、前記第一及び第二のレジスタを使用するか否かを制御する制御情報を含み、前記セレクタが、前記命令コードに基づき前記第一及び第二のレジスタを使用するか否かを選択する構成としてある。
【００６６】
このように構成することにより、アレイ型プロセッサは、上記請求項２６に記載のアレイ型プロセッサにおける制御をより状況に応じて実行することが可能となり、制御の確実性を向上させることが可能となる。
【００６７】
さらに、前記状態遷移管理部が、クロック信号入力端子を有しており、このクロック信号入力端子から入力されるクロック信号の立ち上がり及び／又は立ち下がりにおいて、前記演算状態の遷移動作を同期させる構成としてある。
【００６８】
このように、アレイ型プロセッサは、演算状態の遷移動作を同期させることにより、精度の良い制御を行うことができる。
【００６９】
さらに、前記状態遷移管理部が、現時点での演算状態に依存せずに状態遷移させるための強制状態遷移信号により、強制的に前記演算状態が遷移する構成としてある。
【００７０】
このように、アレイ型プロセッサは、演算状態の遷移を強制的に遷移させることにより、制御が容易となる。
【００７１】
また、前記状態遷移テーブルが、入力された前記イベント識別コードとの一致を検出する強制状態遷移テーブルを有し、この強制状態遷移テーブルにおいて、前記状態遷移テーブルに入力された前記イベント識別コードと一致する前記記述エントリが存在する場合には、前記記述エントリに記述された次の時点の状態番号を強制的に状態遷移先の状態とする構成としてある。
【００７２】
このように、アレイ型プロセッサは、演算状態の遷移を強制的に遷移させることにより、制御が容易となる。
【００７３】
さらに、前記状態遷移管理部が、前記データパス部を制御する演算制御情報メモリを有する構成としてある。
【００７４】
このように、アレイ型プロセッサは、演算制御情報メモリを有することにより、データパス部の制御を効率良く行うことができる。
【００７５】
【発明の実施の形態】
以下、本発明に係るアレイ型プロセッサについて、図面を参照して説明する。
先ず、本発明のアレイ型プロセッサの実施形態について説明する。
「アレイ型プロセッサの実施形態」
図１は、本発明のアレイ型プロセッサの実施形態における概略ブロック図を示している。
【００７６】
＜アレイ型プロセッサの構成＞
〔アレイ型プロセッサの第１の実施例〕
図１を説明するにあたり、この構成をアレイ型プロセッサの第１の実施例として説明する。
同図において、アレイ型プロセッサ１は、演算制御バス１０３、イベント通知バス１０４及び外部イベントバス１０７が電気的に接続された状態遷移管理部１０１と、この状態遷移管理部１０１からの制御に応じた演算処理を行なう、複数のプロセッサエレメント（ＰＥ）１０５および電気的接続を行なう複数のプログラマブルスイッチエレメント（ＰＳＥ）１０６を、二次元アレイ状に電気的に接続して構成されたデータパス部１０２とを独立に具備した構成としてある。
【００７７】
状態遷移管理部１０１は、演算状態の遷移を管理する、すなわち、基本的に状態遷移手段として動作する。
ここで、好ましくは、状態遷移管理部１０１からの制御は、状態遷移管理部１０１単独（入力される信号にかかわらず状態遷移管理部１０１の独自の判断による、閉じた状態）による演算状態の遷移、及び／又は、データパス部１０２からイベント通知バス１０４を通じてイベントを入力することによる演算状態の遷移、及び／又は、アレイ型プロセッサ１の外部から外部イベントバス１０７を通じてイベントを入力することによる演算状態の遷移に基づいて行われる構成とすると良く、これにより、アレイ型プロセッサ１は、きめ細かく柔軟な制御を行うことができるので、処理性能が向上する。
【００７８】
また、好ましくは、アレイ型プロセッサ１は、状態遷移管理部１０１とデータパス部１０２とを電気的に接続する演算制御バス１０３を具備し、状態遷移管理部１０１が、演算状態に応じて演算制御バス１０３を通じて、命令コードメモリのアドレスを出力し、及び／又は、後述する接続構成情報メモリのアドレスを出力する構成とすると良く、これにより、状態遷移管理部１０１からプロセッサエレメント１０５とプログラマブルスイッチエレメント１０６とに、効率良く制御信号を出力することができる。
【００７９】
つまり、データパス部１０２は、状態遷移管理部１０１から出力される、命令コードを記憶する命令コードメモリのアドレス、および、プログラマブルスイッチエレメント１０６相互間の接続構成を指示する接続構成情報メモリのアドレスにより（適宜、これら二つのアドレスを命令コードアドレスと略称する。）、プロセッサエレメント１０５の動作およびプログラマブルスイッチエレメント１０６の電気的接続関係が決定される。
【００８０】
具体的には、各プロセッサエレメント１０５は、入力した命令コードアドレスにしたがって演算を行い、また、各プログラマブルスイッチエレメント１０６は、データパス部１０２の内部および外部との電気的接続を行う。
これにより、データパス部１０２は、データ入力１０８または後述するレジスタによりデータパス部１０２内部に記録されたデータを処理し、その結果をデータ出力１０９として出力するか、または、データパス部１０２の内部に記録することができる。
【００８１】
また、アレイ型プロセッサ１は、一つの演算制御バス１０３に限定するものではなく、二つ以上の演算制御バス１０３を具備し、状態遷移管理部１０１が、複数の演算制御バス１０３に対してアドレスを出力し、かつ、各プロセッサエレメント１０５及び／又は各プログラマブルスイッチエレメント１０６が、それぞれ一つの演算制御バス１０３を選択して、命令コードアドレスを入力する構成としても良く、これにより、プロセッサエレメント１０５を効率良く作動させることができ、処理性能が向上する。
【００８２】
また、好ましくは、アレイ型プロセッサ１は、状態遷移管理部１０１が、プロセッサエレメント１０５、および、プログラマブルスイッチエレメント１０６に対し、それぞれ独立したアドレスを並列に与えると良く、これにより、データパス部１０２内のプロセッサエレメント１０５を効率良く作動させることができるので、処理性能が向上する。
【００８３】
このように、アレイ型プロセッサ１の基本的な動作は、先ず、状態遷移管理部１０１が、演算状態の遷移を管理することにより、ある時点の状態（適宜、現状態と略称する。）において行うべき処理を指示する命令コードアドレスを、演算制御バス１０３を通してデータパス部１０２に出力する。
【００８４】
続いて、データパス部１０２は、現状態に応じた処理を行い、また、データパス部１０２において発生したイベントを、イベント通知バス１０４を通じて状態遷移管理部１０１に出力する。
そして、状態遷移管理部１０１は、このイベントの入力、外部からのイベントの入力又は状態遷移管理部１０１単独の動作により次の演算状態へと遷移し、この繰り返しにより一連の動作を行うことができる。
【００８５】
＜状態遷移管理部の構成＞
〔状態遷移管理部の第１の実施例〕
次に、本発明による状態遷移管理部１０１を好適に実施した第１の実施例について、図面を参照して説明する。
図２は、本発明のアレイ型プロセッサ１の実施形態における状態遷移管理部１０１の概略ブロック図を示している。
同図において、状態遷移管理部１０１は、複数の状態間の遷移ルールが書き込まれた状態遷移テーブルを記憶する状態遷移テーブルメモリ２０２、この状態遷移テーブルメモリ２０２を用いて複数の状態間の遷移を制御することにより、次の状態を決定するシーケンサ部２０１及び命令コードアドレスをデータパス部１０２に出力する制御情報メモリ２０３とで構成してある。
【００８６】
シーケンサ部２０１は、クロック２０７，リセット２０８，イベント２０９及び次状態番号２０５の入力に応じて、イベント識別コード２０６、及び／又は強制イベント識別コード２１０、および現状態番号２０４を出力する。
ここで、現状態番号２０４は、現状態を識別する番号（本明細書においては、ある時点の状態番号とも称す。）である。
また、次状態とは、現状態から状態遷移する次の時点の状態（適宜、次状態と略称する。）をいい、同様に、次状態番号２０５は、次状態を識別する番号（本明細書においては、次の時点の状態番号とも称す。）である。
また、「状態」とは、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６の状態である。
【００８７】
状態遷移テーブルメモリ２０２は、イベント識別コード２０６、及び／又は強制イベント識別コード２１０、および現状態番号２０４を入力して、次状態番号２０５を出力する。
また、制御情報メモリ２０３は、現状態番号２０４の入力に応じて演算制御バス１０３へ命令コードアドレスを出力する。
【００８８】
つまり、状態遷移管理部１０１は、状態遷移手段の動作として、シーケンサ部２０１が、現状態番号２０４とイベント識別コード２０６及び／又は強制イベント識別コード２１０を出力すると、その組み合わせに応じた次状態番号２０５が、状態遷移テーブルメモリ２０２からシーケンサ部２０１に出力される。
そして、この次状態番号２０５は、シーケンサ部２０１から、次の現状態番号２０４として出力される。
ここで、状態遷移手段とは、複数の演算状態間を遷移させる手段である。
【００８９】
また、イベント識別コード２０６は、シーケンサ部２０１への入力であるクロック２０７，リセット２０８及びイベント２０９の各信号に応じて生成される信号である（適宜、各信号における信号の表示を省略する。）。
なお、このイベント２０９は、イベント通知バス１０４および外部イベントバス１０７と電気的に接続してある。
これにより、現状態番号２０４による状態およびイベント識別コード２０６によるイベントの組み合わせにより次の状態が決定するという、状態遷移手段の動作が実現できる。
更に、強制イベント識別コード２１０は同様に、シーケンサ部２０１への入力であるクロック２０７、リセット２０８及びイベント２０９の各信号に応じて生成される信号であり、他の構成から割り込みとして入力されるものである。
但し、イベント識別コード２０６と強制イベント識別コード２１０とを区別せず、同一のものとして構成することも可能である。このイベント識別コード２０６及び強制イベント識別コード２１０については、以下の図１３の説明において触れる。
【００９０】
また、制御情報メモリ２０３は、命令コードアドレスを記憶していて、シーケンサ部２０１の出力である現状態番号２０４を入力すると、演算制御バス１０３を通して、命令コードアドレスをデータパス部１０２に出力する。
そして、上述したように、この命令コードアドレスは、データパス部１０２の動作を決定する。
このようにして、現在の状態に応じてデータパス部１０２が動作するという仕組みが実現される。
【００９１】
また、後述において図５を用いて説明するが、アレイ型プロセッサ１は、制御情報メモリ２０３を配設せず、制御情報メモリ２０３が命令コードアドレスを出力する構成の替わりに、状態遷移テーブルメモリ２０２が次状態番号２０５の他に命令コードアドレス（対応する状態遷移テーブルメモリ２０２の詳細を説明する図１６における命令コードアドレス１５０５に対応）を出力するよう構成することも可能である。
但し、この場合に適用される状態遷移テーブルメモリ２０２の構成としては、後述において、図１６を用いて説明する形態が例に挙げられる。
また、図５の構成において、命令コードアドレス１５０５を出力せず、次状態番号２０５自体を命令コードアドレスとして、制御情報バス１０３を介してデータパス部１０２へ出力するよう構成することも可能である。この場合、データパス部１０２では、入力された次状態番号２０５に基づいて、各プロセッサエレメント１０５の演算状態の遷移、及び／又は、各プログラマブルスイッチエレメント１０６の接続状態の遷移が実行される。但し、このように構成した場合、データパス部１０２における各プロセッサエレメント１０５及び各プログラマブルスイッチエレメント１０６の遷移先となる演算状態若しくは接続状態の自由度がある程度限定されてしまうという欠点が生じる。この欠点を解決するものが、上述の次状態番号２０５と命令コードアドレスとの双方を状態遷移テーブルメモリ２０２が出力する構成である。この構成については、後述において図１６を用いて詳細に説明する。
【００９２】
また、好ましくは、アレイ型プロセッサ１は、状態遷移管理部１０１のシーケンサ部２０１が、クロック信号入力端子を有しており、このクロック信号入力端子から入力されるクロック信号２０７の立ち上がり及び／又は立ち下がりにおいて、演算状態の遷移動作を同期させる構成とすると良く、これにより、精度の良い制御を行うことができる。
【００９３】
また、アレイ型プロセッサ１は、リセット２０８の入力により、強制的にシーケンサ部２０１の動作を初期化し、現状態番号２０４を初期値にすることもできる。
またさらに、アレイ型プロセッサ１は、イベント信号２０９の入力により、強制的に現状態番号２０４を変更することもできる。
【００９４】
また、例えば、後述するデータパス部１０２の第４の実施例のように、プロセッサエレメント１０５及び／又はプログラマブルスイッチエレメント１０６をグループ化した場合は、好ましくは、グループに対して独立したアドレスを並列に与えると良く、これにより、アレイ型プロセッサ１は、データパス部１０２内のグループ化されたプロセッサエレメント１０５を効率良く作動させることができるので、より処理性能が向上する。
【００９５】
また、アレイ型プロセッサ１は、基本的には、プロセッサエレメント１０５の動作およびプログラマブルスイッチエレメント１０６の電気的接続が、状態遷移管理部１０１からの命令コードアドレスにより決定されることを基本とするが、その決定の一部または全体が、状態遷移管理部１０１によらずデータパス部１０２内部で生成されたイベント信号により、直接的に決定されることもできる。
【００９６】
ここで、好ましくは、アレイ型プロセッサ１は、一部のプロセッサエレメント１０５及び／又は一部のプログラマブルスイッチエレメント１０６に対してのみ、複数の状態に応じたアドレスを与え、残りのプロセッサエレメント１０５及び／又はプログラマブルスイッチエレメント１０６は、複数の状態の直前に使用していたアドレスを継続して使用すると良く、これにより、一部は前演算（状態）を継続して動作させ、他は演算（状態）を変えるという柔軟な制御を効率的に行うことができるので、処理性能がより向上する。
この構成については、後述において実施例を用いて詳細に説明する。
【００９７】
なお、データパス部１０２は、イベント通知バス１０４を通じて、演算結果をイベントとして状態遷移管理部１０１に通知することができるので、アレイ型プロセッサ１は、柔軟な制御を行うことができる。
【００９８】
〔状態遷移管理部の第２の実施例〕
続いて、状態遷移管理部１０１の第２の実施例について、図面を参照して説明する。
図３は、本発明のアレイ型プロセッサ１の実施形態における状態遷移管理部１０１の第２実施例の概略ブロック図を示している。
同図において、状態遷移管理部１０１は、図２と異なり、次状態番号２０５を制御情報メモリ２０３の入力としており、演算制御バス１０３に次状態の命令コードアドレスが出力される構成としてある。
【００９９】
このようにすることにより、アレイ型プロセッサ１は、シーケンサ部２０１の状態遷移すなわち次状態番号２０５を現状態番号２０４として有効化する動作とともに、各プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６が演算制御バス１０２からの命令コードアドレスを有効化すると、状態遷移と同時に各プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６が命令の実行を開始できる。
【０１００】
この命令の実行の開始、すなわち演算動作の開始について、図面を参照して説明する。
図４は、図２及び図３に示した状態遷移管理部１０１の命令コードアドレス発行のタイミングチャート図を示している。
【０１０１】
同図において、現状態番号を命令コードアドレス発行に使用（図２）する場合は、シーケンサ部２０１が現状態番号２０４を発行してから制御情報メモリ２０３により命令コードアドレスを出力し、各プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６に命令コードアドレスが届くまでの、命令コードアドレス発行のための遅延４０１が、状態遷移４０２から各プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６が命令を実行するまでに必要となる。
【０１０２】
これに対し、次状態番号２０４を命令コードアドレス発行に使用（図３）する場合は、状態遷移４０２の前に、命令コードアドレス発行が行われるので、この遅延を回避することができる。
ただし、この場合には、命令コードアドレス発行のための遅延４０１が状態遷移直前の状態４０３に含まれることになる。
【０１０３】
なお、この遅延を回避するために、アレイ型プロセッサ１は、本説明の末尾において構成例を用いて説明するが、状態遷移テーブルメモリ２０２による次状態番号２０５の出力から、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６における命令コードアドレスの受け取りまでのパス間に、電気的に絶縁するレジスタを設け、命令コードアドレス発行のための遅延４０１を状態遷移４０２の直前の状態４０３と直後の状態４０４に分配する構成や、命令コードアドレス発行のための遅延４０１を１サイクルとして分離し隠蔽する構成とすることもできる。
【０１０４】
〔状態遷移管理部の第３の実施例〕
更に、図３に示す状態遷移管理部１０１は、図５に示すように変形して実施することが可能である。これを以下の説明において状態遷移管理部１０１の第３の実施例とする。
以下、状態遷移管理部１０１の第３の実施例について、図面を参照して説明する。
図５は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第３の実施例の概略ブロック図を示している。
【０１０５】
同図において、状態遷移管理部１０１は、図３に示す状態遷移管理部の第２の実施例と異なり、制御情報メモリ２０３の構成が削除され、状態遷移テーブルメモリ２０２がそのまま演算制御バス１０３を介してデータパス部１０２へ接続される構成としてある。
【０１０６】
これは、状態遷移管理部の第２の実施例では、メモリの参照が状態遷移テーブルメモリ２０２と制御情報メモリ２０３とで行われるよう構成されていたものを、状態遷移テーブルメモリ２０２における参照の一回で済ますよう構成するためである。即ち、上述の状態遷移管理部の第２の実施例では、シーケンサ部２０１より出力された現状態番号２０４を基に、先ず状態遷移テーブルメモリ２０２において対応する次状態番号２０５を特定し、この次状態番号２０５をシーケンサ部２０１と制御情報メモリ２０３とに並列に入力し、制御情報メモリ２０３において対応する命令コードアドレスを特定する構成としてあるが、図５に示す本実施例では、状態遷移テーブルメモリ２０２において、シーケンサ部２０１より入力された現状態番号２０４に対応する次状態番号２０５と命令コードアドレス（対応する状態遷移テーブルメモリ２０２の詳細を説明する図１６における命令コードアドレス１５０５に対応）とを特定し、この特定した次状態番号２０５をシーケンサ部２０１へ、また、命令コードアドレスをデータパス部１０２へ出力するよう構成してある。
【０１０７】
このように構成することで、本実施例によるアレイ型プロセッサ１では、メモリを参照するという処理を一度にまとめることが可能となり、処理速度の向上を図ることができる。
【０１０８】
このことを模式的に説明するためのタイミングチャート図を図６に示す。図６を参照すると、本実施例では、上述の状態遷移管理部の第２の実施例と比較して、命令コードアドレス発行に要する時間が短縮、即ち、再度（２回目）のメモリ（制御情報メモリ２０３）参照による遅延が削減され、結果として、イベント伝搬からデータパス部におけるプロセッサエレメントの動作開始までの時間が短くなっている。これは、メモリ参照回数を一回に減らしたために生じた効果である。
【０１０９】
（データパス部の構成）
〔データパス部の第１の実施例〕
次に、データパス部１０２の第１の実施例について、図面を参照して説明する。
図７は、本発明のアレイ型プロセッサ１の実施形態におけるデータパス部１０２の第１の実施例の概念図を示している。
同図において、データパス部１０２は、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６のアレイによって構成してある。
【０１１０】
ここで、隣接するプロセッサエレメント１０５は、プログラマブルスイッチエレメント１０６を介して電気的に接続されている。
また、各プロセッサエレメント１０５は、一つ以上のプログラマブルスイッチエレメント１０６を介して、さらに、任意あるいは一定の制限を受けた上で、他のプロセッサエレメント１０５あるいはデータパス部１０２の外部と電気的に接続することができる。
【０１１１】
図８は、本発明のアレイ型プロセッサの実施形態におけるデータパス部１０２の第１の実施例の概略ブロック図を示している。
同図において、データパス部１０２は、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６がそれぞれマトリックス状に配設された構成としてある。
【０１１２】
ここで、各プログラマブルスイッチエレメント１０６は、格子状に配設されたデータバス６０１及びイベント通知バス１０４、並びに、列方向に並列に配設された演算制御バス１０３と電気的に接続されている。
また、各プログラマブルスイッチエレメント１０６は、電気的に接続されているデータバス６０１の接続をＯｎ／Ｏｆｆさせることができ、また、同様に、イベント通知バス１０４の接続をＯｎ／Ｏｆｆさせることができる。但し、各プログラマブルスイッチエレメント１０６が全データバス６０１及び全イベント通知バス１０４の接続をＯｎ／Ｏｆｆするわけでなく、状況に応じて制限が加えられる場合も存在する。これは、各プログラマブルスイッチエレメント１０６が全てのデータバス６０１及び全てのイベント通知バス１０４をＯｎ／Ｏｆｆできるように構成すると、接続の自由度は増すが、配線が断片的（プログラマブルスイッチエレメント１０６毎に全て接続スイッチが設けられる。）となり、遅延が増加するためである。更に、全てのプログラマブルスイッチエレメント１０６が全てのデータバス６０１及び全てのイベント通知バス１０４をＯｎ／Ｏｆｆする場合、これを制御するための情報量が膨大なものとなるためである。したがって、各位置の全てのバス（データバス６０１及びイベント通知バス１０４）にスイッチを設けるわけでなく、部分的に設けることで、全体における整合を図る。
また、この構成において、データバス６０１は、図７におけるプログラマブルスイッチエレメント１０６に含まれるものであり、各プログラマブルスイッチエレメント１０６を接続するためのものである。
【０１１３】
プロセッサエレメント１０５は、それぞれ対応するプログラマブルスイッチエレメント１０６から配設されたデータバス６０１及びイベント通知バス１０４、並びに、列方向に並列に配設された演算制御バス１０３と電気的に接続されている。
これにより、プロセッサエレメント１０５は、プログラマブルスイッチエレメント１０６を通して、データ入力１０８およびデータ出力１０９を行い、また、同じく、イベントの発行およびイベントの受け取りを行うことができる。
ここで、データパス部１０２は、このイベント通知バス１０４が、データバス６０１の一部として組み込まれる構成とすることもできる。
【０１１４】
また、データパス部１０２は、演算制御バス１０３がプロセッサエレメント１０５とプログラマブルスイッチエレメント１０６とに配線されており、この演算制御バス１０３から各プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６に命令コードアドレスが出力され、それぞれの動作が決定される。
演算制御バス１０３は、この構成により、省スペース化を実現することができるが、この構成に限定するものではない。
【０１１５】
例えば、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６に対して、格子状に演算制御バス１０３を配設し、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６が、隣接する演算制御バス１０３のうちいずれか一つを選択してアドレスを得る構成としても良く、これにより、アレイ型プロセッサ１は、きめ細かく柔軟な制御を行うことができる。
【０１１６】
また、例えば、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６に対して、それぞれ独立の演算制御バス１０３を配設し、かつ、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６に対して独立した制御を行なう構成としても良く、これにより、制御の自由度が拡大されると共に、アレイ型プロセッサ１の構成が単純化され、制御も容易になる。
【０１１７】
〔データパス部の第２の実施例〕
続いて、実施形態におけるデータパス部１０２の第２の実施例について、図面を参照して説明する。
図９は、本発明のアレイ型プロセッサ１の実施形態におけるデータパス部１０２の第２の実施例の概略ブロック図を示している。
【０１１８】
同図において、データパス部１０２は、プロセッサエレメント１０５およびプログラマブルスイッチエレメント１０６がそれぞれマトリックス状に配設された構成としており、演算制御バス７０１がプロセッサエレメント１０５と電気的に接続してあり、また、接続構成情報を制御する接続制御バス７０２がプログラマブルスイッチエレメント１０６と電気的に接続してある。
その他の構造については、図８に示すデータパス部１０２と同様としてある。但し、本図における接続制御バス７０２は、プロセッサエレメント１０５に着目して説明した図１における演算制御バス１０３に含まれるものであり、各プログラマブルスイッチエレメント１０６の接続状態を遷移させるための命令コードアドレスを伝播するための媒体である。また、本発明では、説明の明確化及び簡略化のため、必要に応じて接続制御バス７０２に関する説明を省略するが、本来は、全ての構成において、接続制御バス７０２も演算制御バス１０３に含まれて構成されているものである。以下における本実施例の説明では、各々を演算制御バス７０１と接続制御バス７０２とに区別する。
【０１１９】
ここで、演算制御バス７０１と接続制御バス７０２とは、それぞれプロセッサエレメント１０５とプログラマブルスイッチエレメント１０６とに命令コードアドレスを送ることができるように、それぞれが独立のリソースとして用意されている。
これによりプロセッサエレメント１０５とプログラマブルスイッチエレメント１０６との構成を全く独立に制御することが可能となり、プロセッサエレメント１０５と比較して、プログラマブルスイッチエレメント１０６による接続の変更をより多く可能にするなど、データパス部１０２の構成変更の自由度を高め、より柔軟性を増すことができる。
【０１２０】
このように演算制御バス７０１と接続制御バス７０２とを分離する場合も、演算制御バス７０１および接続制御バス７０２は、状態遷移管理部１０１からの制御により、演算制御バス１０３だけの構成の場合と同様の構成にて実現することができる。
また、本実施例は、図８においては、データバス６０１と分離しているイベント通知バス１０４を、データバス７０３内に含めた構成の例でもある。
【０１２１】
〔データパス部の第３の実施例〕
続いて、実施形態におけるデータパス部の第３の実施例について、図面を参照して説明する。
図１０は、本発明のアレイ型プロセッサ１の実施形態におけるデータパス部１０２の第３の実施例の概略ブロック図を示している。
【０１２２】
同図において、データパス部１０２は、プロセッサエレメント１０５とプログラマブルスイッチエレメント１０６とが、各プロセッサエレメント１０５の周囲を八個のプログラマブルスイッチエレメント１０６で取り囲むように、配設した構成としてある。
ここで、データパス部１０２は、隣接するプログラマブルスイッチエレメント１０６同士、および隣接するプロブラマブルスイッチエレメント１０６とプロセッサエレメント１０５とがデータバス８０１により電気的に接続されており、また、プログラマブルスイッチエレメント１０６およびプロセッサエレメント１０５に、演算制御バス１０３が配線してある。ここで、図１０には示していないが、各プロセッサエレメント１０５を取り囲むように四角に構成された８個のプログラマブルスイッチエレメント１０６のうち、この四角の対角に存在するプログラマブルスイッチエレメント１０６に関しても、この四角の中央に位置するプロセッサエレメント１０５とデータバス８０１を介して接続するよう構成することも可能である。
【０１２３】
プロセッサエレメント１０５同士のデータのやり取りは、プログラマブルスイッチエレメント１０６を介す形で行われる。
つまり、一つのプロセッサエレメント１０５が複数のスイッチエレメント１０６に接続されていることにより、プロセッサエレメント１０５のデータ入出力接続の自由度が高められている。
【０１２４】
〔データパス部の第４の実施例〕
続いて、実施形態におけるデータパス部１０２の第４の実施例について、図面を参照して説明する。
図１１は、本発明のアレイ型プロセッサ１の実施形態におけるデータパス部１０２の第４の実施例の概略ブロック図を示している。
【０１２５】
同図において、データパス部１０２は、隣接するプロセッサエレメント１０５間を直接電気的に接続する、複数（一例として、１６個）のプロセッサエレメント１０５からなるグループ９０２が、複数（２０個）のプログラマブルスイッチエレメント１０６で囲まれるように、配設された構成としてある。
つまり、このグループ９０２間は、プログラマブルスイッチエレメント１０６を介して電気的に接続される。
【０１２６】
これにより、同一グループ９０２内の隣接するプロセッサエレメント１０５間では、プログラマブルスイッチエレメント１０６を通さずに接続することが可能となり、遅延等の性能面や回路量の削減による面積の縮小化といった効果を得ることができる。
即ち、配線において、プロセッサエレメント１０５をプログラマブルスイッチエレメント１０６で挟むように構成した場合、隣接するプロセッサエレメント１０５を接続する場合でも、その間に必ずプログラマブルスイッチエレメント１０６が設けられることとなり、遅延や面積でのデメリットが生じる。
また、実際の利用する場合を考慮すると、各プロセッサエレメント１０５間に必ずしもプログラマブルスイッチエレメント１０６が必要であるとは限らない。これは、例えば“Ａ＋Ｂ＋Ｃ”を演算する場合、先ず“Ａ”と“Ｂ”とが初段のプロセッサエレメント１０５に入力され、次に、この初段のプロセッサエレメント１０５における演算結果“Ａ＋Ｂ”と“Ｃ”とが、次段のプロセッサエレメント１０５に入力されることで実現することができる。これは、隣接するプロセッサエレメント１０５間を接続するためのプログラマブルスイッチエレメント１０６が必ずしも必要な訳ではないことを示している。
従って、本実施例では、ある程度のサイズ（個数）のプロセッサエレメント１０５のみのアレイを作成し、このアレイ同士をプログラマブルスイッチエレメント１０６により接続する。
但し、本実施例における構成においても、各プロセッサエレメント１０５同士を接続するためのスイッチエレメントは必要である。このスイッチエレメントは、隣接するプロセッサエレメント１０５同士を接続する機能のみを有するものであればよいため、本実施例では、詳細な説明を省略する。また、本実施例における図面では、このスイッチエレメントが、各プロセッサエレメント１０５に予め組み込まれているものとする。
【０１２７】
（シーケンサ部の構成）
〔シーケンサ部の第１の実施例〕
次に、実施形態（図２）におけるシーケンサ部２０１の第１の実施例について、図面を参照して説明する。
図１２は、本発明のアレイ型プロセッサ１の実施形態におけるシーケンサ部２０１の第１の実施例の概略ブロック図を示している。
【０１２８】
同図において、シーケンサ部２０１は、クロック２０７，リセット２０８及びイベント２０９の各信号を入力し、イベント識別コード２０６及び／又は強制イベント識別コード２１０を出力する符号化器１００１と、クロック２０７，リセット２０８及び次状態番号２０５の各信号入力し、現状態番号２０４を出力するレジスタ１００２とで構成してある。
【０１２９】
ここで、入力された次状態番号２０５は、レジスタ１００２に入力され、現状態番号２０４として出力される。
この際、新たな現状態番号２０４を出力するタイミングは、クロック２０７を用いて同期化することもできる。
また、リセット２０８の入力により、現状態番号２０４を初期化することもできる。
【０１３０】
符号化器１００１は、入力されたイベント２０９を符号化し、イベント識別コード２０６及び／又は強制イベント識別コード２１０として出力する。
ここで、イベント２０９をそのままイベント識別コード２０６及び／又は強制イベント識別コード２１０とすることも可能であるし、符号化したものをイベント識別コード２０６及び／又は強制イベント識別コード２１０とすることも可能である。後者の場合、符号化により、イベント識別コード２０６及び／又は強制イベント識別コード２１０の伝送に必要とするビット幅を小さくすることができる。但し、以下に図１５を用いて説明するが、イベント２０９を符号化せず、イベント識別コード２０６を、このイベント識別コード２０６における各ビットがイベント状態遷移テーブル（図１５ではイベント状態遷移テーブル１１１１）の１つ以上の出力に１対１で対応する１ｈｏｔ信号として構成する方が、信号を容易に取り扱うことが可能となり、さらに、同一サイクル内で次状態番号が変化するという問題（ハザード）の発生を防ぎ易いという利点を発揮することができる。また、リセット２０８をイベント２０９の一つとして扱うこともできる。
【０１３１】
また、イベント識別コード２０６の発生タイミングは、クロック２０７を用いて同期化することもできるし、入力遷移時に出力が直ちに変化する非同期式とすることもできる。
【０１３２】
（状態遷移テーブルメモリの構成）
〔状態遷移テーブルメモリの第１の実施例〕
次に、実施形態（図２）における状態遷移テーブルメモリ２０２の第１の実施例について、図面を参照して説明する。
図１３は、本発明のアレイ型プロセッサ１の実施形態における状態遷移テーブルメモリ２０２の第１の実施例の概略ブロック図を示している。
【０１３３】
状態遷移テーブルメモリ２０２は、イベント状態遷移テーブル１１０１、デフォルト状態遷移テーブル１１０２、強制状態遷移テーブル１１０３及びセレクタ１１０８、１１１０とからなっており、状態遷移テーブルメモリ２０２に書き込まれた状態遷移ルールにしたがって、ある演算状態から同一または異なる演算状態へ状態遷移を制御し、同一または異なる演算状態を新たな演算状態とすることができる。
【０１３４】
ここで、イベント状態遷移テーブル１１０１は、現状態番号２０４とイベント識別コード２０６とを入力し、両者の組み合わせに一致するエントリが存在した場合にのみ、それに応じた次状態番号１１０６が出力される。
また、一致したエントリが存在したかどうかを示す、イベント一致信号１１０４も同時に出力される。
一方、デフォルト状態遷移テーブル１１０２は、現状態番号２０４を入力し、この入力に応じた次状態番号１１０７を出力する。
【０１３５】
そして、この二つのテーブル１１０１、１１０２において、現状態番号２０４とイベント識別コード２０６との組み合わせに一致するエントリが、イベント状態遷移テーブル１１０１に存在する場合には、そこで指定された次状態番号１１０６がセレクタ１１０８で選択され次状態番号２０５として出力される。
また、上述の一致するエントリが、イベント状態遷移テーブル１１０１に存在しない場合には、デフォルト状態遷移テーブル１１０２で示された、現状態番号２０４に応じた次状態番号１１０７が、セレクタ１１０８で選択され次状態番号２０５として出力される。このセレクタ１１０８における選択は、イベント一致信号１１０４を用いることで実現できる。
【０１３６】
強制状態遷移テーブル１１０３は、強制イベント識別コード２１０が強制状態遷移テーブル１１０３のエントリと一致した場合に、次状態番号１１０９を決定する。
そして、この強制状態遷移テーブル１１０３において一致した場合には、セレクタ１１１０は、先に示した次状態番号１１０６、１１０７より優先的に、次状態番号１１０９を次状態番号２０５として出力することができる。
具体的には、このような出力は、強制状態遷移テーブル１１０３で一致が起こったことを示す強制イベント一致信号１１０５と、セレクタ１１１０を用いて実現することができる。
【０１３７】
このように、アレイ型プロセッサ１は、状態遷移管理部１０１が、強制状態遷移信号である強制イベント一致信号１１０５により、強制的に演算状態が遷移する構成とすると良く、これにより、制御が容易となる。但し、上記のような動作を実現するにあたり、上記におけるイベント状態遷移テーブル１１０１を、内容アドレスメモリ（ＣＡＭ：Content Addressable Memory）により構成するとよい。また、これは、図１７に示す状態遷移テーブルメモリ２０２における通常状態遷移テーブル１３０１でも同様である。但し、内容アドレスメモリとは、メモリをアドレスではなく内容（アドレスと異なり入力値の群が不連続）で引くメモリのことである。
【０１３８】
また、状態遷移テーブルメモリ２０２は、例えば、リセット２０８により強制的に次状態番号２０５を初期化することも可能である。
この構成により、状態遷移手段における状態間の遷移ルールをイベント状態遷移テーブル１１０１及び／又はデフォルト状態遷移テーブル１１０２及び／又は強制状態遷移テーブル１１０３に書き込むことができる。
つまり、デフォルト状態遷移テーブル１１０２を用いてデフォルトの状態遷移先を指定する。ここで、条件分岐が存在する（デフォルト以外の状態遷移先が存在する）場合には、それらを全てイベント状態遷移テーブル１１０１に書き込む。
また、割り込みのように、状態に関わらず必ず強制的に状態を遷移させたい場合には、次状態番号１１０９を強制状態遷移テーブル１１０３に書き込む。
このように各テーブルに、状態遷移条件に応じて複数持つ遷移可能な次状態の次状態番号を書き込むことにより、この書き込まれた次状態番号の中から一つを次状態として選択することが可能となる。ここで、状態遷移条件の判断はイベント識別コード２０６及び強制イベント識別コード２１０の判別により実現する。
但し、本実施例及び、その他の各実施例において、イベント識別コード及び強制イベント識別コード（各々の符号は各実施例におけるもの）を区別することなく、１つのコードとして構成することも可能である。
【０１３９】
また、イベント状態遷移テーブル１１０１のテーブルサイズが許す範囲内において、一状態が記録する遷移可能な次状態の数に制限は無く、状態遷移に要する時間も遷移可能な次状態の数に依らず一定とすることができる。即ち、全状態における条件分岐数の総和がイベント状態遷移テーブル１１０１のサイズ（エントリ数）に収まる数であれば問題は生じない。これは、一つの状態が持つ遷移可能な次状態数のばらつきに依って、イベント状態遷移テーブル１１０１に無駄が生じることが無いことを意味する。
【０１４０】
続いて、実施形態における状態遷移テーブルメモリ２０２に書き込まれた状態遷移例について、図１３及び図１４を参照して説明する。
図１４は、本発明のアレイ型プロセッサ１の実施形態における状態遷移テーブルメモリ２０２に書き込まれた状態遷移例の図を示している。
先ず、同図において、現状態番号２０４がＳＴ−０１の場合、次状態番号２０５は無条件にＳＴ−０２となる。
この動作を状態遷移テーブルメモリ２０２に記述するには、デフォルト状態遷移テーブル１１０２に、‘‘現状態番号２０４をＳＴ−０１、次状態番号１１０７をＳＴ−０２’’としたエントリを作成することで実現される。
【０１４１】
続いて、動作時は、現状態番号２０４がＳＴ−０１であるとイベント状態遷移テーブル１１０１に一致するエントリが存在しないためイベント一致信号１１０４は出力されず、デフォルト状態遷移テーブル１１０２において現状態番号２０４がＳＴ−０１であるエントリが必ず有効となり、次状態番号１１０７がＳＴ−０２となり、次状態番号２０５として出力される。
【０１４２】
次に現状態番号２０４がＳＴ−０２の場合は、条件により次状態番号１１０６がＳＴ−０２，ＳＴ−０３，ＳＴ−０５，ＳＴ−１１の四つのいずれかとなる（図１３を参照願います。）。
イベントＥＶ−１０が入力された場合は状態ＳＴ−０３へ遷移するため、イベント状態遷移テーブル１１０１に、‘‘現状態番号２０４をＳＴ−０２、イベント識別コード２０６をＥＶ−１０、次状態番号１１０６をＳＴ−０３’’としたエントリを作成する。
【０１４３】
同様に、イベントＥＶ−１８が入力された場合は状態ＳＴ−０５へ遷移するため、‘‘現状態番号２０４をＳＴ−０２、イベント識別コード２０６をＥＶ−１８、次状態番号１１０６をＳＴ−０５’’としたエントリ、イベントＥＶ−２１が入力された場合は状態ＳＴ−１１へ遷移するため、‘‘現状態番号２０４をＳＴ−０２、イベント識別コード２０６をＥＶ−２１、次状態番号１１０６をＳＴ−１１’’としたエントリをそれぞれイベント状態遷移テーブル１１０１に作成する。
【０１４４】
それ以外の場合は次状態番号２０５がＳＴ−０２であるので、デフォルト状態遷移テーブル１１０２に、‘‘現状態番号２０４をＳＴ−０２、次状態番号１１０７をＳＴ−０２’’としたエントリを作成する。
【０１４５】
上述した記述により、例えば、現状態番号２０４がＳＴ−０２である場合に、イベント識別コード２０６にＥＶ−２１が入力されると、イベント状態遷移テーブル１１０１において、この二つの組み合わせに一致するエントリが有効となり、ＳＴ−１１が次状態番号２０５として出力される。
その際、イベント状態遷移テーブル１１０１で一致が発生しているのでイベント一致信号１１０４が出力され、デフォルト状態遷移テーブル１１０２から出力される現状態番号２０４のＳＴ−０２に対応した次状態番号１１０７のＳＴ−０２は破棄される。
【０１４６】
次に、現状態番号２０４がＳＴ−０２で、イベント識別コード２０６にＥＶ−１０、ＥＶ−１８、ＥＶ−２１のいずれも入力されなかった場合、イベント一致信号１１０４が出力されず、デフォルト状態遷移テーブル１１０２から、現状態番号ＳＴ−０２に対応したＳＴ−０２が次状態番号２０５として出力される。
【０１４７】
さらに、上記のいずれの場合においても、強制イベント識別コード２１０にＩＲＱ−０１が入力された場合、強制状態遷移テーブル１１０３においてＩＲＱ−０１に対応したＳＴ−０１が次状態番号２０５として出力される（図１３を参照願います。）。
この場合は、強制イベント一致信号１１０５が出力されるため、イベント状態遷移テーブル１１０１の出力およびデフォルト状態遷移テーブル１１０２の出力は破棄され、強制状態遷移テーブル１１０３からの次状態番号１１０９のＳＴ−０１が有効となる。
【０１４８】
また、図１３に示す状態遷移テーブルメモリ２０２は、以下に示すように応用して実施することが可能である。
以下に、この実施例の幾つかを図面を用いて詳細に説明する。
【０１４９】
〔状態遷移テーブルメモリの第２の実施例〕
図１５は、図１３に示す本発明の状態遷移テーブルメモリ２０２を変形した第２の実施例のブロック図を示している。
【０１５０】
図１５を参照すると、本実施例による状態遷移テーブルメモリ２０２は、イベント状態遷移テーブル１１１１、デフォルト状態遷移テーブル１１１２、強制状態遷移テーブル１１１３、イベント発生判定回路１２１１，１２１２及びセレクタ１１１８，１１１９，１１２０を有して構成されており、図１３に示した状態遷移テーブルメモリ２０２と同様に、書き込まれた状態遷移ルールに従って、ある演算状態から同一のまたは異なる演算状態への状態遷移を制御し、同一のまたは異なる演算状態を新たな演算状態とすることを可能としている。
【０１５１】
上記構成において、本実施例によるイベント状態遷移テーブル１１１１は、入力された現状態番号２０４に対して一つ以上のエントリを次状態番号１１２６として出力する（図１５では、４つのエントリを次状態番号１１２６として出力するよう構成されている）。
この構成において、イベント状態遷移テーブル１１１１から出力される次状態番号１１２６の数は、各現状態番号２０４に対応する次状態番号１１２６において、この種類数が最も多い場合でも対応可能な数となるように構成される。即ち、現状態番号２０４がＳＴ−０２である場合に対して遷移先となる次状態番号２０５がＳＴ−０３，ＳＴ−０５，ＳＴ−１１，ＳＴ−１３の計４種類存在する場合、この出力数は４つ、あるいはこれ以上となる。
また、例えばイベント状態遷移テーブル１１１１が入力された現状態番号２０４に対して４つのエントリを次状態番号１１２６として出力するよう構成した場合、イベント識別コード１２０６は、この４つの次状態番号１１２６の中から何れか１つの次状態番号１１２６をセレクタ１１１８に選択させる。このための構成としては、例えば、イベント識別コード１２０６を４ビットで構成し、各々のビットとイベント状態遷移テーブル１１１１の出力とを対応させ、セレクタ１１１８において“１”が格納されたビットに対応する次状態番号１１２６を選択して出力するよう構成することで実現することが可能である。但し、このように構成する場合、イベント状態遷移テーブル１１１１の出力数とイベント識別コード１２０６のビット数とを同数として構成する必要がある。
【０１５２】
また、上記では、イベント状態遷移テーブル１１１１の出力数が４である場合、イベント識別コード１２０６を４ビットで構成したが、これを（２n −１）≦４を満たすｎビットにより構成することも可能である（図１５に示す例ではｎは３となる）。ここで、例えばイベント識別コード１２０６を３ビットで構成した場合、イベント識別コード１２０６は、０から７の８種類で表現されるため、イベント状態遷移テーブル１１１１の出力を、この値に対応させることで、セレクタ１１１８において出力させる次状態番号１１２６を選択させることが可能となる。以下に、図１５を例に揚げて具体的に説明する。
図１５を参照すると、イベント識別コード１２０６を３ビットにより“０”から“７”で構成し、イベント状態遷移テーブル１１１１の出力を同図における上から順に“１”，“２”，“３”，“４”と割り当てることで、セレクタ１１１９へ出力する次状態番号１１２６を選択させる。
但し、この場合、イベント識別コード１２０６が“０”若しくは“５”〜“７”であった場合は、セレクタ１１１９へデフォルト状態遷移テーブル１１１２から入力された次状態番号１１２７を出力するようセレクタ１１１８を制御する。
【０１５３】
また、上記の各イベント識別コード１２０６の構成双方を両立させて構成することも可能である。このように構成する場合、図１５におけるセレクタ１１１８に図２８に示すようなメモリを接続させ、このメモリからの制御に従い、イベント識別コード１２０６をデコードするか否かを選択させるよう構成することで実現することが可能である。但し、この場合でも、イベント識別コード１２０６のビット数は、イベント状態遷移テーブル１１１１からセレクタ１１１８へ出力される次状態番号候補の数に限定する必要がある。
【０１５４】
このようにセレクタ１１１８で選択して出力された次状態番号１１２６は、セレクタ１１１９に入力される。また、このセレクタ１１１９には、デフォルト状態遷移テーブル１１１２から出力された次状態番号１１２７も入力されるよう構成される。
ここで、デフォルト状態遷移テーブル１１１２は、入力された現状態番号２０４に一意に対応する次状態番号１１２７を出力するよう構成される。従って、セレクタ１１１９は、イベント状態遷移テーブル１１１１及びデフォルト状態遷移テーブル１１１２より入力された次状態番号１１２６，１１２７の中から何れか一方を選択して出力するよう動作する。
【０１５５】
この動作において、何れの次状態番号（１１２６，１１２７）を出力するかを判断する要素として、イベント発生判定回路１２１１から入力されたイベント一致信号１１１４を用いる。このイベント一致信号１１１４とは、例えば１ビットで構成された信号であり、イベント発生判定回路１２１１において入力されたイベント識別コード１２０６に対応するイベントが存在する場合に“１”として出力され、存在しない場合に“０”として出力される信号である。
また、イベント識別コード１２０６にエンコードされているもの（図１５では３ビットの信号）を用いる場合、イベント発生判定回路１２１１は、イベント識別コード１２０６が例えば“０”若しくは“５”〜“７”のいずれかの信号であった場合、イベント一致信号１１１４として“０”を出力し、“１”〜“４”のいずれかであった場合、“１”を出力する。但し、この構成において、イベント識別コード１２０６として、“５”〜“７”を発生させないよう構成することも可能である。この場合、イベント識別コード１２０６が“０”のときにイベント無しを判定し、また、イベント識別コード１２０６が“１”〜“４”のときにセレクタ１１１８で次状態番号１１２６を選択するよう構成する。これにより、イベント発生判定回路１２１１が“５”〜“７”に対する判定を行う必要がなくなる。
これに対して、イベント識別コード１２０６にエンコードされていないもの（図１５では、４ビットの信号）を用いる場合、イベント発生判定回路１２１１は、イベント識別コード１２０６を構成する各ビットの何れかに“１”が格納されていた場合、イベント一致信号１１１４として“１”を出力するように構成され、これ以外であれば“０”を出力するよう構成される。但し、例えば、イベント無しを示すためのイベント識別コード１２０６として、全てのビットが“０”である信号（“００００”）を用いる場合、イベント発生判定回路１２１１を、４つの入力をもつ論理和回路（ＯＲ回路）で構成することが可能である。これにより、イベント識別コード１２０６のいずれかに“１”が格納されていた場合、イベント発生判定回路１２１１は、“１”を出力するが、何れのビットにも“０”が格納されていた場合、“０”を出力するよう構成することが可能である。
【０１５６】
従って、セレクタ１１１９は、イベント一致信号１１１４が“１”である場合、イベント識別コード１２０６に対応するイベントが存在すると判断して、イベント状態遷移テーブル１１１１から入力された次状態番号１１２６を選択して出力し、また、イベント一致信号１１１４が“０”である場合、イベント識別コード１２０６に対応するイベントが存在しないと判断して、デフォルト状態遷移テーブル１１１２から入力された次状態番号１１２７を選択して出力する。但し、デフォルト状態遷移テーブル１１１２の構成としては、上記図１３で示した構成と同一のもので実施することが可能である。
【０１５７】
更に、セレクタ１１１９から出力された次状態番号（１１２６若しくは１１２７のいずれか）は、セレクタ１１２０に入力され、強制状態遷移テーブル１１１３から出力された次状態番号１１２８との何れか一方が出力されるよう構成されている。
ここで、強制状態遷移テーブル１１１３は、他の構成から割り込みとして入力された強制イベント識別コード１２１６に対応するエントリを次状態番号１１２８としてセレクタ１１２０へ出力する。
【０１５８】
また、セレクタ１１２０には、イベント発生判定回路１２１２から出力された強制イベント一致信号１１１５も入力されるよう構成されている。このイベント発生判定回路１２１２は、上記のイベント発生判定回路１２１１と同様な構成であり、入力されたイベント識別コード１２１６に対応するイベントが存在する場合に強制イベント一致信号１１１５を“１”として出力し、存在しない場合に“０”として出力する。
また、強制イベント識別コード１２１６にエンコードされているもの（例えば２ビットの信号）を用いる場合、イベント発生判定回路１２１２は、強制イベント識別コード１２１６が“０”のときに、強制イベント一致信号１１１５を“０”として出力し、それ以外（例えば２ビットで構成した場合、“１”〜“３”）の場合、“１”として出力する。
また、強制イベント識別コード１２１６にエンコードされていないもの（例えば４ビットの信号）を用いるよう構成することも可能である。このように、エンコードされていない信号を使用した場合、複数の強制イベントが発生した場合も適用することが可能となる。つまり、同時に２つ以上のイベントの発生を表現することが可能である。
また、このように２つのイベントが同時に発生した場合、以下に示すような幾通りかの方法で、処理を実行することが可能となる。これは、発生した２つ以上のイベントに対していずれかを優先させる方法と、発生したイベントの組み合わせに応じた処理を実行する方法と、等である。
ここで、例えば２ビット幅の強制イベント識別コード１２１６を判別できる回路の場合、２ビットで表現される４値全てを判別できるような強制状態遷移テーブル１１１３を作成する。即ち、強制状態遷移テーブル１１１３において、強制イベント識別コード１２１６が“０”であった場合、“なにも発生しない”を判定し、“１”であった場合、“イベントａが発生した”を判定し、“２”であった場合、“イベントｂが発生した”を判定し、“３”であった場合、“イベントａ及びｂが発生した”を判定するよう構成する。ここで、“１”，“２”，“３”各々に対応した次状態番号１１２８は、強制状態遷移テーブル１１１３のエントリとして書き込まれる。これにより、強制イベント識別コード１２１６による割り込みに対応することが可能となる。
このような構成のもと、前者として説明した、いずれかのイベントを優先させる方法を適用する場合には、イベントａ若しくはイベントｂのいずれか一方に対応した次状態番号１１２８を出力する。また、後者として説明した組み合わせに応じた処理を実行する方法を適用する場合には、イベントａ、イベントｂのいずれにも対応しない次状態番号１１２８を出力する。これは、強制イベント識別コード１２１６が“３”の場合に応じたエントリを新たに強制状態遷移テーブル１１１３に書き込むことで実現される。これにより、両イベントａ及びｂが発生したときに独自の処理を実行することが可能となる。
また、上記した方法の他に、２ビットで構成した強制イベント識別コード１２１６自体に優先順位を設け、この優先順位に基づき次状態番号１１２８を決定する方法も可能である。例えばイベントａがイベントｂより優先して判断されるよう構成した場合では、強制イベント識別コード１２１６が“０”であれば“なにも発生しない”が判定され、“１”であれば“イベントａが発生した”が判定され、“２”であれば“イベントｂが発生した”が判定される。但し、イベントａ及びｂが発生した場合には、イベントａが優先されるため、イベントａが発生したとハードウェア的に判断されることとなる。即ち、この方法では、２つ以上のイベントが発生した場合に独自の処理を実行することができなくなる。
このように強制イベント一致信号１１１５として“１”が出力されると、セレクタ１１２０は強制状態遷移テーブル１１１３から入力された次状態番号１１２８を選択し、次状態番号２０５として出力するよう動作する。
また、イベント発生判定回路１２１２において入力された強制イベント識別コード１２１６に対応する強制イベントが存在しない場合には、即ち、強制イベント一致信号１１１５が例えば“０”として出力された場合には、セレクタ１１２０はセレクタ１１１９から入力された次状態番号（１１２６若しくは１１２７のいずれか）を選択し、次状態番号２０５として出力するよう動作する。
【０１５９】
また、上記構成において、イベント状態遷移テーブル１１１１からセレクタ１１１８へ出力される次状態番号候補の数は、状態遷移先となる次状態番号１１２６の数の最多種類（以下、これを最大分岐数という）として構成されるとしているが、最大分岐数が多岐にわたる場合、ハードウェアにかけるオーバヘッド（所謂、面積及び遅延の増加）が大きくなるため、ある程度、次状態番号候補の数、及び状態遷移先となる次状態番号１１２６の種類を制限する必要が存在する。この問題を生じない構成が、図１３に示す構成である。従って、実施にあたっては、用途に応じて使い分けることが望ましい。但し、本実施例において、状態遷移先の次状態番号１１２６を、次状態番号候補の数以上とすることも可能である。これは、ハードウェアにおける次状態番号１１２６の出力の種類の制限を、ソフトウェアにおいて仮想的に回避する方法である。この方法では、例えば、イベント識別コード１２０６による条件分岐をソフトウェアにより二段以上とすることで実現される。
これは、図１５に示す構成において、ソフトウェア的に二段階以上に条件分岐を行うことで実現される。例えば、現状態番号２０４が“０１”の状態に対し、遷移先となる次状態番号２０５の候補が“１０”〜“１７”の計８種類存在する場合、先ず、第１段階目の条件分岐として、“０１”の現状態から“０２”若しくは“０３”の次状態に遷移し、次に、例えば“０２”の現状態から“１０”〜“１３”の次状態、若しくは“０３”の現状態から“１４”〜“１７”の次状態へ条件分岐する。これにより、イベント状態遷移テーブル１１１１の出力が４つしか存在しない場合でも、それ以上の８分岐が可能となる。但し、このように構成した場合、状態遷移時に、１段階で構成した場合よりも１段階余分な状態を経る必要がある。
また、イベント識別コード１２０６は、状態番号との組み合わせで意味を持つため、異なる状態間でコードを重複させることが可能である。これは、どの瞬間においても有効である状態が１つであるため、入力されたイベント識別コード１２０６を、その有効な状態における値であると判断することができるためである。
例えば、状態ａと状態ｂとにおいて、イベント識別コード１２０６の共通な値ｘが別の意味（状態ａの時に“甲”、状態ｂの時に“乙”の意味を持つとする）を持つことは可能である。その理由は、状態ａと状態ｂとが同時に有効であることがあり得ない為、状態ａの時に値ｘが入力されれば、（ａ，ｘ）の組み合わせで値ｘの意味を“甲”と判断することができる。また、状態ｂの時に値ｘが入力された場合でも、（ｂ，ｘ）の組み合わせで値ｘを“乙”と判断することができる。即ち、値ｘのみで意味を持たせる必要はない。
【０１６０】
〔状態遷移テーブルメモリの第３の実施例〕
更に、以下に本発明による状態遷移テーブルメモリ２０２の第３の実施例を図面を用いて詳細に説明する。
図１６は、本発明の図１３に示す状態遷移テーブルメモリ２０２の第１の実施例を変形して応用した第３の実施例のブロック図を示している。
【０１６１】
図１６を参照すると、本実施例による状態遷移テーブルメモリ２０２は、イベント状態遷移テーブル１１２１、デフォルト状態遷移テーブル１１２２、強制状態遷移テーブル１１２３、イベント発生判定回路１２２１，１２２２及びセレクタ１１３８，１１３９，１１４０を有して構成されており、図１３に示した状態遷移テーブルメモリ２０２と同様に、書き込まれた状態遷移ルールに従って、ある演算状態から同一のまたは異なる演算状態への状態遷移を制御し、同一のまたは異なる演算状態を新たな演算状態とすることが可能なものである。
この図面からも明らかなように、本実施例による状態遷移テーブルメモリ２０２は、図１５に示す状態遷移テーブルメモリ２０２の第２の実施例と概ね同様な構成となっているが、相違点として、イベント状態遷移テーブル１１２１及びデフォルト状態遷移テーブル１１２２がそれぞれ現状態番号２０４に対応させて次状態番号１１４６若しくは１１４７を格納するだけでなく、同様に対応させて命令コードアドレス１３４６若しくは１３４７（図１６中、“ＣＡ−（番号）”で記載されているものは、命令コードアドレスである）も格納するように構成され、また、強制状態遷移テーブル１１２３が強制イベント識別コード１２３６に対応させて次状態番号１１４８を格納するだけでなく、同様に対応させて命令コードアドレス１３４８も格納するように構成されており、且つ、イベント状態遷移テーブル１１２１，デフォルト状態遷移テーブル１１２２，及び強制状態遷移テーブル１１２３がそれぞれ次状態番号１１４６，１１４７，若しくは１１４８だけでなく、命令コードアドレス１３４６，１３４７，若しくは１３４８も出力するように構成され、さらに各セレクタ１１３８，１１３９，及び１１４０それぞれが次状態番号１１４６，１１４７，若しくは１１４８の他に命令コードアドレス１３４６，１３４７，若しくは１３４８も出力するよう構成される。但し、セレクタ１１４０の出力先は、次状態番号２０５と命令コードアドレス１５０５とを分離して、次状態番号２０５をシーケンサ部２０１（図５参照）へ、また、命令コードアドレス１５０５を演算制御バス１０３を介してデータパス部１０２（図５参照）へ、それぞれ出力するよう構成される。更に、イベント状態遷移テーブル１１２１，デフォルト状態遷移テーブル１１２２，強制状態遷移テーブル１１２３，各セレクタ１１３８，１１３９は、その出力として、次状態番号１１４６，１１４７，若しくは１１４８と命令コードアドレス１３４６，１３４７，若しくは１３４８とをシリアルあるいはパラレルに出力するよう構成されるが、パラレルに出力するよう構成した場合、各々を同時に出力する構成に限定されるものではない。また、上記構成において、各次状態番号１１４６，１１４７，１１４８と対として出力される命令コードアドレス１３４６，１３４７，１３４８は、各々の対において必ずしも１つとは限らず、１つの次状態番号１１４６，１１４７，１１４８に対して複数の命令コードアドレス１３４６，１３４７，１３４８が出力されるよう構成することも可能である。
【０１６２】
この構成は、図５に示した状態遷移管理部１０１の構成に伴い要求された構成である。即ち、図１６において、出力された次状態番号２０５は、図５におけるシーケンサ部２０１に入力され、また、同図１６における演算制御バス１０３へは、命令コードアドレス１５０５がデータパス部１０２へ向けて出力される。
【０１６３】
〔状態遷移テーブルメモリの第４の実施例〕
続いて、実施形態における状態遷移テーブルメモリ２０２の第４の実施例について、図面を参照して説明する。
図１７は、本発明のアレイ型プロセッサ１の実施形態における状態遷移テーブルメモリ２０２の第４の実施例の概略ブロック図を示している。
【０１６４】
同図において、状態遷移テーブルメモリ２０２は、通常状態遷移テーブル１３０１、強制状態遷移テーブル１１０３及びセレクタ１１１０とからなっている。ここで、イベント識別コード２０６に、対象となるイベントが発生しなかったことを示すＮｏＥｖｅｎｔというコードを加えることにより、図１３に示すデフォルト状態遷移テーブル１１０２の機能をイベント状態遷移テーブル１１０１に含ませて、通常状態遷移テーブル１３０１としている。
【０１６５】
これにより、通常の状態遷移は、通常状態遷移テーブル１３０１によって、また、割り込み等の処理は、強制状態遷移テーブル１１０３によって処理される。そのためには、データパス部１０２等からのイベント２０９への入力信号を、ＮｏＥｖｅｎｔを含めて符号化する必要がある。
この処理は、シーケンサ部２０１内でも実現できるし、データパス部１０２内部でも実現することができる。
その他の構造は、図１３に示す状態遷移テーブルメモリ２０２と同様としてある。
【０１６６】
続いて、例えば、図１４に示した状態遷移を実現させる動作について説明する。
先ず、現状態番号２０４がＳＴ−０１の場合は、常に、次状態番号１１０６がＳＴ−０２となる必要がある。そのため、現状態番号２０４が入力される場合には、イベント識別コード２０６として必ずＮｏＥｖｅｎｔが入力されるようにする。
これにより、通常状態遷移テーブル１３０１中の‘‘現状態番号２０４がＳＴ−０１、イベント識別コード２０６がＮｏＥｖｅｎｔ’’のエントリに一致し、ＳＴ−０２が次状態番号１１０６として出力される。
【０１６７】
そして、現状態番号２０４がＳＴ−０２の場合は、イベント識別コード２０６としてＥＶ−１０、ＥＶ−１８、ＥＶ−２１のいずれかが入力した場合は通常状態遷移テーブル１３０１において図１３に示すイベント状態遷移テーブル１１０１と同様の記述および動作をするが、これらのイベント識別コード２０６が入力されない場合には必ずＮｏＥｖｅｎｔがイベント識別コード２０６として入力されるようにする。
【０１６８】
これにより、図１３ではデフォルト状態遷移テーブル１１０２で動作していたものが、図１７では通常状態遷移テーブル１３０１において‘‘現状態番号２０４がＳＴ−０２、イベント識別コード２０６がＮｏＥｖｅｎｔ’’のエントリに一致し、ＳＴ−０２を次状態番号１１０６として出力する。
また、強制状態遷移テーブル１１０３については図１３と同様の動作をする。その他の動作および作用は、図１３に示す状態遷移テーブルメモリ２０２と同様としてある。
【０１６９】
〔状態遷移テーブルメモリの第５の実施例〕
更に、上述した本発明による状態遷移テーブルメモリ２０２の第２の実施例と第４の実施例とを組み合わせた実施例について、以下に、状態遷移テーブルメモリの第５の実施例として図面を用いて詳細に説明する。
図１８は、本実施例による状態遷移テーブルメモリ２０２の構成を示すブロック図である。
図１８を参照すると、本実施例による状態遷移テーブルメモリ２０２は、イベント状態遷移テーブル１１３１、強制状態遷移テーブル１１３３、セレクタ１１５８、１１５９及びイベント発生判定回路１２３２を有して構成されている。
ここで、状態遷移テーブルメモリの第４の実施例と同様に、イベント識別コード１２４６に、対象となるイベントが発生しなかったことを示すＮｏＥｖｅｎｔというコードを加える。
また、本実施例は、例えばイベント状態遷移テーブル１１３１の出力を二つ以上（図１８では、例として四つ）設け、この中で何れか一つ（例えば図１８において最も下部に構成された信号線）をＮｏＥｖｅｎｔの場合に対応した次状態番号１１６６を出力する信号線として固定し、ＮｏＥｖｅｎｔがセレクタ１１５８に入力された場合に、セレクタ１１５８において、必ず上記のＮｏＥｖｅｎｔに対応した信号線から入力された次状態番号１１６６を選択して出力するよう構成する。これにより、デフォルト状態遷移テーブルを削除することが可能となる。
【０１７０】
また、状態遷移テーブルメモリの第４の実施例と同様に、通常の状態遷移は、イベント状態遷移テーブル１１３１によって処理され、更に、割り込み等の処理は、強制状態遷移テーブル１１３３によって処理される。
そのためには、本実施例においても、データパス部１０２等からのイベント２０９への入力信号を、ＮｏＥｖｅｎｔを含めて符号化する必要がある。
この処理は、シーケンサ部２０１内でも実現できるし、データパス部１０２内部でも実現することができる。
その他の構造は、図１５に示す状態遷移テーブルメモリ２０２と同様である。
【０１７１】
（制御情報メモリの構成）
〔制御情報メモリの第１の実施例〕
次に、実施形態（図２）における制御情報メモリ２０３の第１の実施例について、図面を参照して説明する。
図１９は、本発明のアレイ型プロセッサ１の実施形態における制御情報メモリ２０３の第１の実施例の概略ブロック図を示している。
同図において、状態遷移管理部１０１を構成する制御情報メモリ２０３は、複数の演算制御情報メモリ１４０２およびデコーダ１４１１とからなっている。
【０１７２】
ここで、制御情報メモリ２０３は、状態番号１４０１の入力に応じて、一つ以上の演算制御情報メモリ１４０２が選択され、この選択された演算制御情報メモリ１４０２の中の情報が演算制御バス１０３を通じてデータパス部１０２に出力される構成としてある。
このように、アレイ型プロセッサ１は、演算制御情報メモリ１４０２を有することにより、複数の演算制御バス１０３を効率良く制御できるので、結果的に、データパス部１０２の制御を効率良く行うことができる。
即ち、状態遷移テーブルメモリ２０２が１状態につき複数のエントリ（あるいは複数個の次状態候補）を有しているため、出力ビット幅を狭くすることが状態遷移テーブルメモリ２０２の面積削減効果に大きく作用するが、演算制御バス１０３を介して出力される命令コードアドレスの自由度を向上させる（つまり、各プロセッサエレメント１０５毎や各プログラマブルスイッチエレメント１０６毎に命令コードアドレスを割り当てる）ためには、出力ビット幅を広くする必要がある。上記の制御情報メモリ２０３は、この相反する両者の要求を満足させるために設けられるものである。即ち、状態遷移テーブルメモリ２０２とデータパス部１０２との間に制御情報メモリ２０３を設け、イベント状態遷移テーブル１１１１の深さ（アドレス空間若しくはエントリ数）よりも制御情報メモリ２０３の深さ（アドレス空間）の方を浅くすることにより、状態遷移テーブルメモリ２０２に要求される面積の削減と、状態遷移先の自由度を向上させるために要求される命令コードアドレスの自由度の向上と、を両立させることが可能となる。
この具体的な例を図１５を用いて説明すると、図２における状態遷移テーブルメモリ２０２に図１５に示す状態遷移テーブルメモリ２０２を構成した例では、１つの現状態番号２０４に対応し、イベント識別テーブル１１１１から４つの分岐先である次状態番号１１２６と、デフォルト状態遷移テーブル１１１２から１つの遷移先である次状態番号１１２７と、を出力するよう構成されており、更に、強制イベント識別コードに対応する次状態番号１１２８が強制状態遷移テーブル１１１３から出力されるよう構成されており、これらから、セレクタ１１１８、セレクタ１１１９、セレクタ１１２０において１つが選択され、次状態番号２０５として出力される。この出力された次状態番号２０５は、シーケンサ部２０１において、現状態番号２０４に置き換えられ、制御情報メモリ２０３へ出力される構成となっている。制御情報メモリ２０３では、例えば図１９を用いて説明すると、入力された状態番号１４０１に対応する演算制御情報メモリ１４０２を選択し、演算制御情報メモリ１４０２に記憶された命令コードアドレス１５０５を演算制御バス１０３を介して、データパス部１０２に入力する構成となっている。これに対し、制御情報メモリ２０３が構成されていない場合、状態遷移テーブルメモリ２０２の出力に命令コードアドレス１５０５を有していなければならない。例えば、図５における状態遷移テーブル２０２に図１６に示す状態遷移テーブル２０２を構成した例では、制御情報メモリ２０３を構成しておらず、イベント状態遷移テーブル１１２１と、デフォルト状態遷移テーブル１１２２と、強制状態遷移テーブル１１２３と、には、現状態番号２０４と次状態番号（１１４６，１１４７，１１４８）だけでなく、次状態番号（１１４６，１１４７，１１４８）に対応する命令コードアドレス（１３４６，１３４７，１３４８）のためのメモリも必要となる。このため、各テーブル（イベント状態遷移テーブル１１２１、デフォルト状態遷移テーブル１１２２、強制状態遷移テーブル１１２３）には、命令コードアドレス（１３４６，１３４７，１３４８）を格納するためのメモリ領域も要求される。
即ち、イベント状態遷移テーブル１１２１に関してのみ比べても、例えば１つの現状態番号２０４に対して４組の次状態番号１１４６及び命令コードアドレス１３４６を出力するよう構成（図１６に示す構成）した場合では、制御情報メモリ２０３を組み込んだ場合の約４倍のメモリが必要となり、また、デフォルト状態遷移テーブル１１２２、および、強制状態遷移テーブル１１２３にも命令コードアドレス（１３４７，１３４８）を有するため、命令コード用のメモリが制御情報メモリ２０３を設けた場合の約５倍、必要となる。更に、セレクタ（１１３８，１１３９，１１４０）等のビット幅もこれに応じて広く構成する必要がある。
図５の構成では、制御情報メモリ２０３を有していないために、図１６に示されるように状態遷移テーブルメモリ２０２のメモリ数が増加し、ビット幅を広くする必要があるが、高速化には向いている。
一方、図２に示す構成は、制御情報メモリ２０３を持たせることで、状態遷移テーブルメモリ２０２のメモリ領域が削減される。更に、この構成では、状態遷移テーブルメモリ２０２が次状態番号２０５だけを出力するため、ビット幅を狭く構成することが可能となる。但し、この構成では、一旦制御情報メモリ２０３を介するために速度は遅くなる。また、制御情報テーブルメモリ２０３が別に構成されていることに起因するメモリ効率の良さを利用して、命令コードアドレスの出力数を図１６に示す状態遷移テーブルメモリ２０２から出力される数よりも増やすことにより、データパス部１０２の構成の高効率化を図ることが可能となる。
即ち、この両者の構成は、命令コード配布数を増やす（自由度を上げる）ことを目的とする場合と、処理速度を上げることを目的とする場合と、で各々使い分けられるものである。
但し、メモリの参照を状態遷移テーブル２０２と制御情報メモリ２０３との２回として構成することが遅延的に問題を有する場合は、命令コードアドレス１５０５の自由度を削減し、イベント状態遷移テーブル１１２１と、デフォルト状態遷移テーブル１１２２と、強制状態遷移テーブル１１２３と、における出力ビット幅を削減することで、上記のような問題を回避することも可能である。
なお、状態番号１４０１は、現状態番号２０４または次状態番号２０５を指している。
【０１７３】
（プロセッサエレメントの構成）
〔プロセッサエレメントの第１の実施例〕
次に、実施形態（図２）におけるプロセッサエレメント１０５の第１の実施例について、図面を参照して説明する。
図２０は、本発明のアレイ型プロセッサ１の実施形態におけるプロセッサエレメント１０５の第１の実施例の概略ブロック図を示している。
同図において、プロセッサエレメント１０５は、複数の命令コードを記憶する命令コードメモリ１５０１、命令コードを解読する命令デコーダ１５０２、デコードされた命令コードを実行する演算部１５０３及び演算処理データを記録するレジスタ１５０４とで構成してある。
【０１７４】
ここで、プロセッサエレメント１０５は、演算制御バス１０３を通して与えられる命令コードアドレス１５０５を入力すると、命令コードメモリ１５０１内に記憶されている命令コード１５０８が一つ選択されて出力され、この命令コード１５０８を入力した命令デコーダ１５０２が、命令コード１５０８を解釈し、この解釈により、演算部１５０３およびレジスタ部１５０４の動作が決定される。このように命令デコーダ１５０２の解釈により、演算部１５０３は、何れの入力信号を用いて何の演算を行い、何を何処へ出力するかを決定する。また、この構成により、レジスタ部１５０４を使用するか否かの動作も決定される。
【０１７５】
このように、アレイ型プロセッサ１は、プロセッサエレメント１０５が、演算処理データを記録するレジスタ１５０４を有する構成としてあるので、演算部１５０３とレジスタ１５０４間の配線効率が改善されて、小型化されるとともに処理性能が向上する。
【０１７６】
また、好ましくは、アレイ型プロセッサ１は、プロセッサエレメント１０５が、外部からの入力データ１５０６またはレジスタ１５０４に記録された演算処理データに対して、状態遷移管理部１０１からの制御に応じた演算処理を行ない、この演算処理結果を、外部に出力データ１５０７として出力するか、あるいは、前記レジスタに記録する構成とすると良く、これにより、演算処理を効率良く実行することができ、処理性能が向上する。
【０１７７】
演算部１５０３は、入力データ１５０６またはレジスタ１５０４からのデータを入力として演算し、出力データ１５０７またはレジスタ１５０４へ結果を出力することを基本動作とする。
また、必ずしも各プロセッサエレメント１０５内に、レジスタ１５０４が必要なわけではない。
さらにまた、複数のプロセッサエレメントにつき一つのレジスタを持つことや、複数のプロセッサエレメントを一つのグループとし、そのグループにレジスタを属させることも可能であり、また、演算制御バス１０３の入力から演算部１５０３およびレジスタ１５０４までのパス中にレジスタを設け、プロセッサエレメント１０５の動作変更、正確には、プロセッサエレメント１０５の動作開始（状態の実現若しくは構成の変更）を同期化することも可能である。これは、状態遷移管理部１０１から次状態番号２０５に応じた命令コードアドレスが届くよう構成されている場合に、次サイクルでこれを有効化する必要があるために組み込まれた構成である。また、このように構成することにより、サイクルの開始と同期して各プロセッサエレメントの構成（状態）が切り替わり、その後、演算が一斉に開始されるようになる。
【０１７８】
〔プロセッサエレメントの第２の実施例〕
続いて、実施形態におけるプロセッサエレメント１０５の第２の実施例について、図面を参照して説明する。
図２１は、本発明のアレイ型プロセッサ１の実施形態におけるプロセッサエレメント１０５の第２の実施例の概略ブロック図を示している。
【０１７９】
同図において、プロセッサエレメント１０５は、命令コードメモリ１５０１、命令デコーダ１６０２、演算部１５０３、レジスタ１５０４及びプログラマブルスイッチ１６０３、１６０４とからなっており、命令デコーダ１６０２が、制御信号１６０１を入力する構成としてある。
【０１８０】
命令デコーダ１６０２は、命令コード１５０８と制御信号１６０１との両方を使用して演算部１５０３とレジスタ１５０４とに制御信号を出力する。また、このレジスタ１５０４は、適宜、信号を演算部１５０３と受け渡しする。
この制御信号１６０１は、プロセッサエレメント１０５の出力やデータパス部１０２の外部から来る信号である。ここで、データパス部１０２の外部から来る信号としては、チップ外部（制御用プロセッサ）や状態遷移管理部１０１等が例に挙げられる。これは、例えば、状態遷移管理部１０１が複数のプロセッサエレメントに対して共通の命令コードアドレスを配布するが、制御信号１６０１は各プロセッサエレメント１０５に対して個別に配布するという方法が適用されるためである。これは、同じ命令コードアドレスを使用（使用命令コードアドレス空間の削減＝効率化）しながら、微妙な調整を制御信号１６０１により実現するためである。
これにより、状態遷移管理部１０１から発行される命令コードアドレス１５０５のみでなく、データパス部１０２内部やアレイ型プロセッサ１の外部からの信号によりプロセッサエレメント１０５の動作を制御することも可能としている。例えば、演算部１５０３が２入力１出力のセレクタを実現するということが命令コードアドレスにより決定されている場合、セレクタの選択線（制御）も命令コードに含ませる方法の他に、選択線をプロセッサエレメント１０５外部から入力させる方法も適用することが可能である。この構成については、レジスタ１５０４の書き込み制御やシフトの方向等に関しても同様である。
このように構成することで、基本的な構成を命令コードアドレスにより決定し、また、一部を外部から制御することが可能となり、同一の命令コードアドレスでありながら、例えば条件等によって、一部の状態に変化を加える動作を実現することが可能となる。
【０１８１】
したがって、例えば、他のプロセッサエレメント１０５の出力信号を当該のプロセッサエレメント１０５に入力させ、当該の演算器で実現しているセレクタの選択信号を制御する、即ち、演算部１５０３でセレクタを演算器として実現（この実現は命令コードにより行われる）している時に、その選択制御を当該のプロセッサエレメント１０５が行うのでなく、他のプロセッサエレメント１０５からの出力により行うことも可能となる。
【０１８２】
また、プロセッサエレメント１０５は、演算部１５０３と入力データとの間に、プログラマブルスイッチ１６０３を、演算部１５０３と出力データ１５０７との間に、プログラマブルスイッチ１６０４を配置している。
これにより、複数の入力データ１５０６の中から使用するものを選択することや、複数の出力先である出力データ１５０７の中から、出力先を選択することができる。
【０１８３】
このようにすることにより、プロセッサエレメント１０５は、特に、図１０に示したように、一つのプロセッサエレメント１０５が複数のプログラマブルスイッチエレメント１０６に接続されている場合や、図１１に示したように、プロセッサエレメント同士がプログラマブルスイッチエレメント１０６を通さずに直接電気的に接続されている場合に、処理性能を向上させることができる。
なお、プログラマブルスイッチ１６０３、１６０４は、入力側及び出力側両方に設置することも可能であるし、どちらか一方だけに設置することも可能である。
その他の構造および作用は、図２０に示すプロセッサエレメント１０５と同様としてある。
【０１８４】
（プログラマブルスイッチエレメントの構成）
〔プログラマブルスイッチエレメントの第１の実施例〕
次に、実施形態（図７）におけるプログラマブルスイッチエレメント１０６の第１の実施例について、図面を参照して説明する。
図２２は、本発明のアレイ型プロセッサ１の実施形態におけるプログラマブルスイッチエレメント１０６の第１の実施例の概略ブロック図を示している。
同図において、プログラマブルスイッチエレメント１０６は、接続構成情報１７０３を複数セット記憶する接続構成情報メモリ１７０１、接続スイッチ１７０２及び接続線１７０４とからなっている。
【０１８５】
ここで、接続構成情報１７０３は、図示してないが、プロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６間、及び／又は、プログラマブルスイッチエレメント１０６相互間の接続構成を指示する情報であり、この接続構成情報１７０３に基づいて、接続スイッチ１７０２は、接続線１７０４間の電気的接続をＯｎ／Ｏｆｆする機能を果たす。
【０１８６】
プログラマブルスイッチエレメント１０６は、演算制御バス１０３を通して入力された命令コードアドレス１５０５によって、接続構成情報メモリ１７０１の中から、一つの接続構成情報１７０３を選択し出力する。
そして、この接続構成情報１７０３は、各接続スイッチ１７０２の動作を決定し、結果的に、プロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６間、及び／又は、プログラマブルスイッチエレメント１０６相互間の接続構成を指示する
【０１８７】
ここで、接続スイッチ１７０２および接続線１７０４は、双方向に信号伝播を可能としても良いし単方向の信号伝播のみを可能としても良い。
また、接続スイッチ１７０２および接続線１７０４毎に双方向と単方向を分けても良い。
【０１８８】
プログラマブルスイッチエレメント１０６は、接続構成情報メモリ１７０１の出力をそのまま接続スイッチ１７０２の制御に使用しているが、接続構成情報メモリ１７０１と接続スイッチ１７０２の間にデコーダを設置することもできる。また、プログラマブルスイッチエレメント１０６は、排他的に接続がＯｎされる接続スイッチの接続構成情報メモリを共有化することなどにより、接続スイッチの数に対して接続構成情報メモリの量を減らすことができる。
【０１８９】
さらにまた、プログラマブルスイッチエレメント１０６は、演算制御バス１０３の入力から接続スイッチ１７０２までのパス中にレジスタを設け、プログラマブルスイッチエレメント１０６の接続変更を同期化することができる。即ち、このように構成することにより、サイクルの開始と同期して各プロセッサエレメントの構成（状態）を切り替えるという接続関係の変更を同期化することが可能となる。
【０１９０】
（データパス部の制御方法）
〔データパス部の制御方法の第１の実施例〕
次に、実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法について、図面を参照して説明する。
図２３は、本発明のアレイ型プロセッサ１の実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第１の実施例の模式図を示している。
【０１９１】
同図において、データパス部１０２は、演算制御情報メモリ１４０２を使用して、プロセッサエレメント１０５を制御する方法を示している。
先ず、図１９に示すように、状態番号１４０１により選択された、制御情報メモリ２０３に含まれる演算制御情報メモリ１４０２が使用され、この演算制御情報メモリ１４０２は、その演算制御情報メモリ１４０２が制御するプロセッサエレメント１０５と同数の命令コードアドレスを記録する。
【０１９２】
つまり、プロセッサエレメント１０５と命令コードアドレスが、一対一の対応をしている。
具体的には、同図に示すように、Ａｄｄｒ１はＰＥ１、Ａｄｄｒ２はＰＥ２というように対応しており、各プロセッサエレメント１０５のアドレスを独立に制御することができる。
なお、一つの演算制御情報メモリ２０３が制御するプロセッサエレメント１０５の配置は、図示した例に限られるものではないことは勿論である。つまり、本形態において、必ずしも横一列に配置されたプロセッサエレメント１０５を１つの演算制御情報メモリ１４０２が制御するよう構成する必要はなく、また、プロセッサエレメント１０５の順番（並び）も同様にこの構成に限定されるものではない。但し、プロセッサエレメント１０５をアレイ状に配列した場合、その各プロセッサエレメント１０５に個々の命令コードアドレスが供給されるとする構成が望ましい。
【０１９３】
また、図示してないが、プログラマブルスイッチエレメント１０６に対しては、プロセッサエレメント１０５とは独立した同様の形式の演算制御情報メモリを持ち、プロセッサエレメント１０５と同様に制御することが可能である。
【０１９４】
〔データパス部の制御方法の第２の実施例〕
上述したデータパス部１０２の制御方法の第２の実施例としては、演算制御情報メモリ１４０２内にプロセッサエレメント１０５とプログラマブルスイッチエレメント１０６の両方の命令コードアドレスを持たせ、同一の演算制御情報メモリ１４０２によりプロセッサエレメント１０５とプログラマブルスイッチエレメント１０６の両方を制御することもできる。
【０１９５】
この構成を説明するための模式図を図２４に示す。
図２４を参照すると、本実施例では、演算制御情報メモリ１４０２において、プロセッサエレメント１０５に対する命令コードアドレスの他に、プログラマブルスイッチエレメント１０６への命令コードアドレスも格納するように構成される。
この構成により、本実施例では、接続構成情報メモリを異なる構成として設ける必要がなくなり、回路規模の縮小を図ることができる。
【０１９６】
〔データパス部の制御方法の第３の実施例〕
さらに、データパス部の制御方法の第３の実施例としては、プロセッサエレメント１０５とプログラマブルスイッチエレメント１０６とで、同一演算制御情報メモリ１４０２内の同一アドレスを共有して使用し、プロセッサエレメント１０５とプログラマブルスイッチエレメント１０６とで共通の命令コードアドレスを使用することもできる。
【０１９７】
なお、図２３に示すデータパス部１０２の制御方法は、状態番号１４０１により選択された一つの演算制御情報メモリ１４０２に含まれる命令コードアドレス数と、その演算制御情報メモリ１４０２が担当するプロセッサエレメント１０５の数が等しいために、各プロセッサエレメント１０５の命令コードアドレス指定に関する柔軟性を得られるが、各命令コードアドレスを各プロセッサエレメント１０５へ個別に伝播させるために要求される演算制御バス１０３や、一つの演算制御情報メモリ１４０２の大きさといったリソース量が大きくなるといった問題がある。
【０１９８】
〔データパス部の制御方法の第４の実施例〕
続いて、この問題を解決した、実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第４の実施例について、図面を参照して説明する。
図２５は、本発明のアレイ型プロセッサ１における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第４の実施例におけるブロック図を示している。
【０１９９】
本実施例は、演算制御情報メモリ１４０２内の一つのアドレスで複数のプロセッサエレメント１０５の命令コードアドレスを指定することを可能とする方法である。
具体的には、Ａｄｄｒ１によりＰＥ１−１〜ＰＥ１−ｍまでのｍ個のアドレス、Ａｄｄｒ２によりＰＥ２−１〜ＰＥ２−ｍまでのｍ個のアドレスというように制御を行うことができるように構成してある。
ただし、各プロセッサエレメント１０５に対して独立なアドレスを指定するという柔軟性は失われるが、要求するハードェアリソース量が軽減される効果がある。
【０２００】
なお、一つの演算制御情報メモリ１４０２に含まれるアドレスの数は、一以上で構成可能である。また、一つのアドレスが制御するグループ１９０１に含まれるプロセッサエレメント１０５の数ｍは、全グループにおいて共通である必要はなく、ｍは一以上で構成可能である。
【０２０１】
また、プログラマブルスイッチエレメント１０６も同様に制御することができる。
【０２０２】
以下に、プログラムブルスイッチエレメント１０６も同様にグループ化して制御するよう構成した制御方法について、独立した実施例として図面を用いて詳細に説明する。
【０２０３】
〔データパス部の制御方法の第５の実施例〕
図２６は、本発明によるアレイ型プロセッサ１の実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第５の実施例の模式図である。
ここで、本実施例は、演算制御情報メモリ１４０２内の一つのアドレスで複数のプロセッサエレメント１０５若しくはプログラマブルスイッチエレメント１０６の命令コードアドレスを指定することを可能とする方法である。
従って、本実施例では、プロセッサエレメント１０５に対するアドレスが図２５で示したデータパス部の制御方法の第４の実施例と同様に構成されており、更に、本実施例独自の構成として、プログラマブルスイッチエレメント１０６をグループ化して、各々のグループ１９０１にアドレスが割り当てられるよう構成されており、一つのアドレスで複数のプログラマブルスイッチエレメント１０６の命令コードアドレスも指定することを可能としている。
具体的には、Ａｄｄｒｓ１によりＰＳＥｓ１−１〜ＰＳＥｓ１−ｊまでのｊ個のアドレス、Ａｄｄｒｓ２によりＰＳＥｓ２−１〜ＰＳＥｓ２−ｊまでのｊ個のアドレスというように制御を行うことができるように構成してある。
この構成も、データパス部の制御方法の第４の実施例における各プロセッサエレメント１０５に対する構成と同様に、各プログラマブルスイッチエレメント１０６に対して独立なアドレスを指定するという柔軟性は失われるが、要求するハードェアリソース量が軽減される効果がある。
【０２０４】
なお、一つの演算制御情報メモリ１４０２に含まれるアドレスの数ｎ及びｓｋは、各々一以上で構成可能である。また、一つのアドレスが制御するグループ１９０１に含まれるプロセッサエレメント１０５の数ｍ、若しくはプログラマブルスイッチエレメント１０６の数ｊは、全グループ１９０１において共通である必要はなく、各々一以上で構成可能である。
【０２０５】
〔データパス部の制御方法の第６の実施例〕
更に、データパス部の第５の実施例による演算制御情報メモリ１４０２の制御方法は、図２７に示すようにも変形可能である。図２７に示す制御方法を、以下、データパス部の制御方法の第６の実施例として詳細に説明する。
【０２０６】
図２７を参照すると、実施例による制御方法では、演算制御情報メモリ１４０２における一つのアドレスにより、複数のプロセッサエレメント１０５及び複数のプログラマブルスイッチエレメント１０６の命令コードアドレスを指定することが可能なよう構成されている。
具体的には、Ａｄｄｒ１によりＰＥ１−１〜ＰＥ１−ｍ，及びＰＳＥ１−１〜ＰＳＥ１−ｋまでの合計（ｍ＋ｋ）個のアドレスを指定する制御を行うことが可能なように構成されている。
この構成では、データパス部の制御方法の第４の実施例における各プロセッサエレメント１０５に対する構成と同様に、各プロセッサエレメント１０５及び各プログラマブルスイッチエレメント１０６に対して独立なアドレスを指定するという柔軟性が失われるが、上述のデータパス部の制御方法の第４及び第５の実施例よりも、要求するハードウェアリソース量が軽減されるという効果が得られる。
【０２０７】
なお、一つの演算制御情報メモリ１４０２に含まれるアドレスの数は、一以上で構成可能である。また、一つのアドレスが制御するグループ１９０２に含まれるプロセッサエレメント１０５の数ｍ、若しくはプログラマブルスイッチエレメント１０６の数ｋは、全グループ１９０２において共通である必要はなく、いずれかが一以上で構成可能である。
【０２０８】
〔データパス部の制御方法の第７の実施例〕
続いて、実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第７の実施例について、図面を参照して説明する。
図２８は、本発明のアレイ型プロセッサ１における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第７の実施例におけるブロック図を示している。
【０２０９】
同図において、状態番号１４０１により選択された演算制御情報メモリ１４０２に含まれる各アドレス値は、演算制御バス２００３にそれぞれ出力されており、当該の演算制御情報メモリ１４０２によって制御されるプロセッサエレメント１０５は、演算制御バス２００３の中からセレクタ２００１を用いて一つのバスを選択し、そのバスから送られてくるアドレスを命令コードアドレスとして使用する。
【０２１０】
したがって、例えば、プロセッサエレメント１０５であるＰＥ２が演算制御バスａを選択している場合は、演算制御情報メモリ１４０２のＡｄｄｒ１の値が演算制御バスａを通りＰＥ２の命令コードアドレスとして使用される。
このように、各プロセッサエレメント１０５が任意の演算制御バス２００３を選択できるようにすれば、一つの演算制御情報メモリ１４０２に接続されたプロセッサエレメント１０５を演算制御バス２００３の数以下にグループ化でき、各グループごとに異なった命令コードアドレスを使用することができる。
【０２１１】
また、上記の各プロセッサエレメント１０５のグループ化は、図２８に示すメモリ２００２で制御される。このメモリ２００２は、例えば図２０に示すプロセッサエレメント１０５における命令コードメモリ１５０１と命令デコーダ１５０２とで構成されるものである。
即ち、本実施例によるデータパス部１０２の制御方法では、図２８に示す演算制御バス２００３の選択に、命令デコーダ１５０２でデコードされた命令コードが使用される。この構成は、以下における説明において同様の形態で実施されるものである。
【０２１２】
また、各プロセッサエレメント１０５が選択できる演算制御バス２００３を制限する方法や、いくつかのプロセッサエレメント１０５でセレクタ２００１を共有し、回路量を削減することも可能である。ただし、その際は、グループ化に制限を受けることになる。
【０２１３】
このように、データパス部の制御方法の第７の実施例によれば、図２３に示すように、一つ以上のプロセッサエレメント１０５と同数の演算制御バスを必要とすることもなく、また、図２５に示すように、一つのアドレスで制御されるプロセッサエレメント１０５が予め固定されるといった状態を回避することができる。
すなわち、命令コードアドレスを伝播させるために必要とするリソース量の削減と、プロセッサエレメント１０５のグループ化の自由度といった両者のメリットを得ることが可能となる。
【０２１４】
また、セレクタ２００１がどのバスを選択するかという情報は、固定情報としてメモリ２００２に保存しておく方法もあるし、各プロセッサエレメント１０５の状態に応じて動的に変更する方法もある。
例えば、各プロセッサエレメント毎に、現在の命令コードアドレスにより、次の演算制御バス２００３を決定する方法がある。
【０２１５】
〔データパス部の制御方法の第８の実施例〕
更に、上述したデータパス部の制御方法の第７の実施例をプロセッサエレメント１０５だけでなく、プログラマブルスイッチエレメント１０６にも適用した形態について、データパス部の制御方法の第８の実施例として以下に図面を用いて詳細に説明する。
図２９は、本実施例によるデータパス部１０２の制御方法のブロック図である。
【０２１６】
同図において、状態番号１４０１により選択された演算制御情報メモリ１４０２に含まれる各アドレス値は、演算制御バス２０１３にそれぞれ出力されており、当該の演算制御情報メモリ１４０２によって制御されるプロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６は、演算制御バス２０１３の中からセレクタ２０１１を用いて一つのバスを選択し、そのバスから送られてくるアドレスを命令コードアドレスとして使用する。
【０２１７】
したがって、例えば、プログラマブルスイッチエレメント１０６であるＰＳＥ１が演算制御バスａを選択している場合は、演算制御情報メモリ１４０２のＡｄｄｒ１の値が演算制御バスａを通りＰＳＥ１の命令コードアドレスとして使用される。
このように、各プロセッサエレメント１０５及び各プログラマブルスイッチエレメント１０６が任意の演算制御バス２０１３を選択できるようにし、且つ、共に共通の命令コードアドレスを使用するよう構成すれば、一つの演算制御情報メモリ１４０２に接続されたプロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６を演算制御バス２０１３の数以下にグループ化でき、各グループごとに異なった命令コードアドレスを使用することができる。
【０２１８】
また、各プロセッサエレメント１０５及び各プログラマブルスイッチエレメント１０６が選択できる演算制御バス２０１３を制限する方法や、いくつかのプロセッサエレメント１０５若しくはいくつかのプログラマブルスイッチエレメント１０６、更には、いくつかのプロセッサエレメント１０５及びいくつかのプログラマブルスイッチエレメント１０６でセレクタ２０１１を共有し、回路量を削減することも可能である。ただし、その際は、グループ化に制限を受けることになる。
【０２１９】
このように、データパス部１０２の制御方法の第８の実施例によれば、データパス部の制御方法の第７の実施例で得られた効果を更にプログラマブルスイッチエレメント１０６を含めて奏するよう構成することが可能となる。
すなわち、命令コードアドレスを伝播させるために必要とするリソース量の削減と、プロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６のグループ化の自由度といった両者のメリットを得ることが可能となる。
【０２２０】
また、セレクタ２０１１がどの演算制御バス２０１３を選択するかという情報は、データパス部の制御方法の第７の実施例と同様に、固定情報としてメモリ２０１２に保存しておく方法もあるし、各プロセッサエレメント１０５および各プログラマブルスイッチエレメント１０６の状態に応じて動的に変更する方法もある。
例えば、各プロセッサエレメント毎および各プログラマブルスイッチエレメント１０６毎に、現在の命令コードアドレスにより、次の演算制御バス２０１３を決定する方法である。
【０２２１】
〔データパス部の制御方法の第９の実施例〕
また、上述したデータパス部の制御方法の第８の実施例の他の構成をデータパス部の制御方法の第９の実施例として図面を用いて詳細に説明する。
図３０は、本実施例によるデータパス部１０２の制御方法のブロック図である。
【０２２２】
図３０を参照すると、本実施例は、プロセッサエレメント１０５への命令コードアドレスを伝搬させる演算制御バス２０２３だけでなく、プログラマブルスイッチエレメント１０６への命令コードアドレスを伝搬させるための演算制御バス２０２３も構成されている。
更に、本実施例による演算制御情報メモリ１４０２は、プロセッサエレメント１０５へのアドレスに対する命令コードアドレスだけでなく、プログラマブルスイッチエレメント１０６へのアドレスに対する命令コードアドレスも格納するよう構成されている。
【０２２３】
即ち、同図において、状態番号１４０１により選択された演算制御情報メモリ１４０２に含まれる各アドレス値は、演算制御バス２０２３にそれぞれ出力されており、当該の演算制御情報メモリ１４０２によって制御されるプロセッサエレメント１０５若しくはプログラマブルスイッチエレメント１０６は、演算制御バス２０２３の中からセレクタ２０２１を用いて一つの演算制御バス２０２３を選択し、その演算制御バス２０２３から送られてくるアドレスを命令コードアドレスとして使用する。
【０２２４】
したがって、例えば、プログラマブルスイッチエレメント１０６であるＰＳＥ１が演算制御バスａ’を選択している場合は、演算制御情報メモリ１４０２のＡｄｄｒｓ１の値が演算制御バスａ’を通りＰＳＥ１の命令コードアドレスとして使用される。
このように、各プロセッサエレメント１０５若しくは各プログラマブルスイッチエレメント１０６が任意の演算制御バス２０２３を選択できるように構成すれば、一つの演算制御情報メモリ１４０２に接続されたプロセッサエレメント１０５を演算制御バス２０２３の数以下にグループ化できるだけでなく、同一の演算制御情報メモリ１４０２に接続されたプログラマブルスイッチエレメント１０６を合わせて、演算制御バス２０２３の数以下にグループ化することができ、また、各グループごとに異なった命令コードアドレスを使用することができる。
【０２２５】
また、各プロセッサエレメント１０５若しくは各プログラマブルスイッチエレメント１０６が選択できる演算制御バス２０２３を制限する方法や、いくつかのプロセッサエレメント１０５若しくはいくつかのプログラマブルスイッチエレメント１０６でセレクタ２０２１を共有し、回路量を削減することも可能である。ただし、その際は、グループ化に制限を受けることになる。
【０２２６】
このように、データパス部１０２の制御方法の第９の実施例によれば、データパス部の制御方法の第７の実施例で得られた効果を更にプログラマブルスイッチエレメント１０６を含めて奏するよう構成することが可能となる。
すなわち、命令コードアドレスを伝播させるために必要とするリソース量の削減と、プロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６のグループ化の自由度といった両者のメリットを得ることが可能となる。
【０２２７】
また、セレクタ２０２１がどの演算制御バス２０２３を選択するかという情報は、データパス部の制御方法の第７の実施例と同様に、固定情報としてメモリ２０２２に保存しておく方法もあるし、各プロセッサエレメント１０５の状態に応じて動的に変更する方法もある。
例えば、各プロセッサエレメント１０５毎に、現在の命令コードアドレスにより、次の演算制御バス２０２３を決定する方法である。
【０２２８】
〔データパス部の制御方法の第１０の実施例〕
次に、実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第１０の実施例について、図面を参照して説明する。
図３１は、本発明のアレイ型プロセッサ１における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第１０の実施例におけるブロック図を示している。
【０２２９】
同図において、データパス部１０２は、プロセッサエレメント１０５をアレイ状に配置し、縦方向に対し演算制御バス（２０３３−Ｖ１，２０３３−Ｖ２，…）を通し、また、横方向に対し演算制御バス（２０３３−Ｈ１，２０３３−Ｈ２，…）を通し、その縦横各々に演算制御情報メモリ（１４０２−Ｖ１，１４０２−Ｖ２，…、１４０２−Ｈ１，１４０２−Ｈ２，…）が接続されている。
このようにすることにより、各プロセッサエレメント１０５は、近傍を通る演算制御バス２０３３の中から一つを選択し、命令コードアドレスを得ることができる。即ち、図３１におけるプロセッサエレメントＰＥ１−１に注目して説明すると、これに接続されたセレクタ２００１は、メモリ２００２からのデコードされた命令コードにより演算制御バス２０３３−Ｖ１に含まれる命令アドレスバス（Ｖ１−１，Ｖ１−２，…，Ｖ１−ｍ）若しくは２０３３−Ｈ１に含まれる命令コードアドレス（Ｈ１−１，Ｈ１−２，…，Ｈ１−ｎ）の中から何れか一つを選択し、これをプロセッサエレメントＰＥ１−１へ入力する。
【０２３０】
また、図３１に示す構成の、グループ化の最大分割数は（ｍ＋ｎ）よりも遥かに大きいが、自由な形と位置が保障されるのは（ｍ＋ｎ）個である。
これにより、プロセッサエレメント１０５の領域分割方法が、演算制御バス１０３の数の範囲内で、縦横方向自由に決定することができる。
即ち、図３１に示す本実施例では、データパス部１０２を（ｍ＋ｎ）個の自由な領域に分割することが可能である。
これは、各プロセッサエレメント１０５に対して、（ｍ＋ｎ）本の命令アドレスバス（図３１におけるＰＥ１−１に注目すれば、Ｖ１−１，〜，Ｖ１−ｍ、Ｈ１−１，〜，Ｈ１−ｎの本数）が入力されており、これを各プロセッサエレメント１０５が自由に選択できるためである。これにより、全プロセッサエレメント１０５を（ｍ＋ｎ）個のグループに分割することが可能である。このようにグループに分割した場合、各グループ毎にプロセッサエレメント１０５の命令コードアドレスを変える（個別に値を決定し、入力する）ことが可能となる。これは例えば、グループ１のアドレスは固定したまま、グループ５のアドレスを変える等の動作である。
例えば、図２３、若しくは図２４に示す方法により、グループ分けの全自由度を持たせるためには、全プロセッサエレメント１０５に個別のアドレスを入力する必要があるが、これを実現するためには、膨大なハードウェア量が要求される。更に、実際の方法では、全自由度を実現する必要がなく、ある程度、自由度を落として構成することが好ましい。また、例えば、図２９に示す構成では、各列毎のグループ化の自由度は高いが、上下方向にグループ分けをする場合に大きな制限を受ける。そこで、本実施例では、縦方向及び横方向に命令アドレスバス（演算制御バス２０３３−Ｖ１，２０３３−Ｖ２，…、２０３３−Ｈ１，２０３３−Ｈ２，…としてもよい）を通すことにより、縦方向及び横方向において自由にグループ分けを行うことを可能にしている。但し、生成されるグループは、塊とされていなくてもよく、例えば市松模様のように分割することも可能である。
また、図３１に示す構成でも、グループ化における最大分割数は非常に大きいが、自由な形（プロセッサエレメント１０５の位置及び数を自由に選択することが可能であるという意味）でグループ化が可能である理由は、（ｍ＋ｎ）が保証されていることに起因する。但し、同じ（ｍ＋ｎ）を保証する場合、各列毎に（ｍ＋ｎ）本の命令アドレスバスを通すよりも、図３１に示すように、縦横に通した方が自由度があると考えられる。これは、例えばデータパス部１０２において横方向にデータの流れがある場合、パイプラインを切るためには、縦方向に分割する必要があるが、ビット幅方向に分割する（複数のデータパスを実現する）ためには、横方向に分割する必要がある。図３１に示す構成は、この両者を効率的に実現するための構成である。
【０２３１】
〔データパス部の制御方法の第１１の実施例〕
次に、実施形態における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第１１の実施例について、図面を参照して説明する。
図３２の（ａ）は、本発明のアレイ型プロセッサ１における演算制御情報メモリ１４０２を用いたデータパス部１０２の制御方法の第１１の実施例におけるブロック図を示している。また、図３２の（ｂ）は、同実施例の動作を実現する回路の例を示すブロック図である。
【０２３２】
図３２の（ａ）において、データパス部１０２は、演算制御情報メモリ１４０２内に命令コードメモリ部２２０１とマスク部２２０２を持つことを特徴とする。
このようにすることにより、当該の演算制御情報メモリ１４０２が制御するプロセッサエレメント１０５のうち、一部のみのアドレス変更を可能とする。
つまり、図３２の（ａ）におけるマスク部２２０２とは、演算制御情報メモリ１４０２に含まれる各命令コードアドレスを有効値として出力するか否かの情報を格納するものである。マスク部２２０２に含まれる各マスク２２０３，２２０４，…，２２０５は、各々対応する命令コードアドレスを有効値とするか否かの情報を格納するために１ビットにより構成される。即ち、図３２の（ａ）のマスク部２２０２においては、マスクに“１”が格納されている場合は、対応する命令コードアドレスを有効値として出力させ、“０”が格納されている場合は、無効値として出力する。但し、無効値として出力された場合、例えば各プロセッサエレメント１０５が前状態の命令コードアドレスを保持しておき使用するよう動作し、また演算制御情報メモリ１４０２が前状態の命令コードアドレスを出力する等の動作するものとする。また、上記の各マスクは、必ずしも１ビットで構成されるものではない。即ち、各マスクが対応する命令コードアドレスを有効値とするか無効値とするかの情報のみを格納する場合は、各マスクは１ビットで構成されるが、この他の情報を持たせるために多ビットにより構成することも可能である。
また、各マスク２２０３，２２０４，…，２２０５を１ビットで構成した場合、マスク部２２０２のビット幅は、命令コードアドレスの数と同数となる。
【０２３３】
具体的に説明すると、例えば、マスク部２２０２の値が“１”であるアドレスを有効、“０”であるアドレスを無効とすると、図３２の（ａ）ではマスク部２２０２中の２２０３、２２０４が“１”であるから、それぞれに対応するＡｄｄｒ１とＡｄｄｒ２が有効となり、ＰＥ１とＰＥ２とへ命令コードアドレスが送られる。
しかし、マスク部２２０２中の２２０５は値が“０”であるため、それに対応するＡｄｄｒｎは無効となり、ＰＥｎへはＡｄｄｒｎが送られない。
【０２３４】
この場合、ＰＥｎは直前と同じ命令コードアドレスを使用するように構成することで対応できる。
これにより、例えばＰＥ１とＰＥ２のみのアドレスを変えたい場合、その部分のマスクのみが有効であるエントリを一つ作れば、前の状態における他のプロセッサエレメント１０５のアドレスによらず、ＰＥ１とＰＥ２のみのアドレスを変更することができる。
【０２３５】
この機構が無いと、例えばＰＥｎのアドレスが“０”の場合にも“１”の場合にも、ＰＥ１とＰＥ２のアドレスを“０”から“１”に変えたい場合に、ＰＥ１とＰＥ２のアドレスが“０”でＰＥｎのアドレスが“０”という演算制御情報メモリ１４０２のエントリと、ＰＥ１、ＰＥ２、ＰＥｎのアドレスが“１”というエントリの二つが必要となる。
より詳細に説明するために、ＰＥｎの値に依らず、状態遷移によってＰＥ１の命令コードアドレスを“０”から“１”に変更する場合を例に挙げて説明する。但し、この例において、ＰＥｎの命令コードアドレスは状態遷移によって変化しないものとする。
上記の場合、マスク部２２０２により各命令コードアドレスにマスクをかけることができないと、ＰＥｎの命令コードアドレスが“０”であったときにＰＥ１の命令コードアドレスを“１”に変えるという演算制御情報メモリ１４０２のエントリ
（構成）と、ＰＥｎの命令コードアドレスが“１”であったときにＰＥ１の命令コードアドレスを“１”変えるという演算制御情報メモリ１４０２のエントリ
（構成）と、が必要となる。
即ち、命令コードアドレス部２２０１に格納される命令コードアドレスとして、“１，…，０”と“１，…，１”との２通りのエントリが必要となる。これは、全てのプロセッサエレメント１０５へ必ず命令コードアドレスを送信する必要があるため、このように状態に適用したエントリ
（構成）を設けておかなければＰＥｎの状態が変化してしまうためである。従って、ＰＥｎのアドレスが“０”であった場合、前者のエントリを使用してＰＥ１のアドレスを“１”に変更し、且つ、ＰＥｎのアドレスを“０”に保持する。また、ＰＥｎのアドレスが“１”であった場合、後者のエントリを使用してＰＥ１のアドレスを“１”に変更し、且つＰＥｎのアドレスを“１”に保持する。
これに対し、マスク部２２０２を設けた場合、ＰＥ１のアドレスを“１”にするという演算制御情報メモリ１４０２のエントリ
（構成）のみでこれに対応することが可能となる。
即ち、エントリとして“１，…，−”（“−”は、アドレスを出力しないという意味）の１つがあれば、ＰＥ１のアドレスが“１”に変化するが、ＰＥｎのアドレスが変化しないという遷移が可能となる。
更に、この構成は、変化しないプロセッサエレメント１０５が複数ある場合に対して、より有効な手段となる。
【０２３６】
このように部分的なプロセッサエレメント１０５のアドレスの変更を可能とすることにより、演算制御情報メモリ１４０２のエントリ数を大きく削減することが可能となる。
また、このような動作は、単純に演算制御情報メモリ１４０２の命令コードメモリ部２２０１にマスクをかけ、各々、対応するマスク値が“０”（対応するアドレスを有効値としない）のときは、これに対応するアドレスを出力せず、また、対応するマスク値が“１”のときは、これに対応するアドレスをそのまま出力することで実現される。
また、同様な動作を、例えば論理積回路を用いることにより実現することも可能である。この構成例を図３２の（ｂ）に示す。
図３２の（ｂ）を参照すると、本構成例は、演算制御情報メモリ１４０２におけるアドレス（例えば（ａ）におけるＡｄｄｒ１）の出力部にセレクタ２２０６を設け、このセレクタ２２０６の出力（これを例としてＡｄｄｒ１’とする）は、データパス部１０２に送られる他に、分岐され、レジスタ２２０７を介して同セレクタ２２０６の入力に帰還されている。更に、セレクタ２２０６には、演算制御情報メモリ１４０２におけるマスク部２２０２から出力された値（例えばマスク２２０３）が入力され、この値（マスク２２０３）を基に出力する値（Ａｄｄｒ１若しくはＡｄｄｒ１’）が選択される。但し、レジスタ２２０７は、例えばフリップフロップ等で構成されるものであり、前回の出力値（アドレス）を保持する。
即ち、図３２の（ａ）におけるＡｄｄｒ１に着目して説明すると、セレクタ２２０６に入力されているマスク２２０３が、本例では、“１”（Ａｄｄｒ１を有効値とする）であるため、セレクタ２２０６はＡｄｄｒ１を選択して出力する。これに対して、例えばマスク２２０３が“０”（Ａｄｄｒ１を有効値としない）である場合、セレクタ２２０６は、レジスタ２２０７において保持されている値（前サイクルの値）を選択して出力する。
但し、本発明によるマスク部を用いたデータパス部の制御方法は、上記第１１の実施例による構成に限定されるものではなく、マスクをかけることにより状況に応じてアドレスの配布を行うという本発明の主旨を逸脱しない限り、種々変形して実施することが可能である。
【０２３７】
〔データパス部の制御方法の第１２の実施例〕
次に、上記したデータパス部の制御方法の第１１の実施例を、プロセッサエレメント１０５だけでなく、プログラマブルスイッチエレメント１０６に対しても適用した場合について、以下にデータパス部の制御方法の第１２の実施例として図面を用いて詳細に説明する。
図３３は、本実施例によるデータパス部１０２の制御方法のブロック図である。
【０２３８】
同図において、データパス部１０２は、演算制御情報メモリ１４０２内に命令コードメモリ部２２１１とマスク部２２１２とを持つことを特徴とする。
このようにすることにより、当該の演算制御情報メモリ１４０２が制御するプロセッサエレメント１０５のうち、一部のみのアドレス変更を可能とする。
【０２３９】
例えば、マスク部２２１２の値が“１”であるアドレスを有効、“０”であるアドレスを無効とすると、図３３ではマスク部２２１２中の２２１３，２２１４，２２２３，２２２４が“１”であるから、それぞれに対応するＡｄｄｒ１，Ａｄｄｒ２，Ａｄｄｒｓ１，Ａｄｄｒｓ２が有効となり、ＰＥ１，ＰＥ２，ＰＳＥｓ１及びＰＳＥｓ２へ命令コードアドレスが送られる。
しかし、マスク部２２１２中の２２１５及び２２２５は値が“０”であるため、それに対応するＡｄｄｒｎ及びＡｄｄｒｓｋは無効となり、ＰＥｎへはＡｄｄｒｎが、ＰＳＥｓｋにはＡｄｄｒｓｋが送られない。
【０２４０】
この場合、命令コードアドレスが送信されないＰＥｎ及びＰＳＥｓｋは直前と同じ命令コードアドレスを使用するように構成することで対応できる。
これにより、例えばＰＥ１とＰＳＥｓ１のみのアドレスを変えたい場合、その部分のマスクのみが有効であるエントリを一つ作れば、前の状態における他のプロセッサエレメントのアドレスによらず、ＰＥ１とＰＳＥｓ１のみのアドレスを変更することができる。
【０２４１】
この機構が無いと、例えばＰＥｎ若しくはＰＳＥｋのアドレスが“０”の場合にも“１”の場合にも、あるＰＥのアドレスのみを“０”から“１”に変えたい場合には、ＰＥｎ若しくはＰＳＥｋの現在のアドレスの有り得るパターン全てに対応して変更対象のＰＥのアドレスを“０”から“１”にするエントリを設ける必要がある。これは、データパス部１０２の制御方法の第１１の実施例における図３２の（ａ）及び（ｂ）の説明と同等の理由である。
【０２４２】
このように部分的なプロセッサエレメント１０５及びプログラマブルスイッチエレメント１０６のアドレスの変更を可能とすることにより、演算制御情報メモリ１４０２のエントリ数を大きく削減することが可能となる。
【０２４３】
＜命令コードアドレスを発行するタイミング＞
また、本発明のアレイ型プロセッサ１において、状態遷移テーブルメモリ２０２が命令コードアドレスを発行するタイミングについて、以下に幾つかの実施例を用いて詳細に説明する。
ここで、本説明及び各実施例を説明するにあたり、本発明による状態遷移テーブルメモリ２０２の第３の実施例を引用して説明することとする。但し、以下の説明では、説明の簡略化のために、強制状態遷移テーブル１１１３の構成を省くものとする。
【０２４４】
先ず、状態遷移の基本的な流れを説明すると、本動作は、“現状態番号２０４”と“イベント２０９入力”とにより“次状態番号２０５”を求め、この“次状態番号２０５”を新たな（状態遷移先の）“現状態番号２０４”とするものである。
ここで、回路動作を同期式とする場合、状態遷移、即ち、次状態番号２０５を現状態番号２０４とするタイミングを、図３におけるシーケンサ部２０１に入力されたクロック（例えばクロック２０７の立ち上がり。以下、このクロック２０７に同期させる場合を例に挙げる。）に合わせることで実現できる。また、イベント２０９（図３参照）は、状態遷移テーブルメモリ２０２において次状態番号２０５を特定するために必要となるため、状態遷移のタイミング、即ち、次状態番号２０５を現状態番号２０４とする以前にシーケンサ部２０１に入力されている必要がある。
【０２４５】
〔命令コードアドレスを発行するタイミングの第１の実施例〕
この状態遷移テーブルメモリ２０２が命令コードアドレスを発行するタイミングを図３４に示す第１の実施例を用いて詳細に説明する。
ここで、本実施例を説明するにあたり、上記と同様に、本発明による状態遷移テーブルメモリ２０２の第２の実施例を引用し、図３４の（ａ）に示す状態遷移テーブルメモリ２０２の構成と（ｂ）に示す状態遷移タイミングチャート図とを用いて説明することとする。但し、強制状態遷移テーブル１１１３の構成は説明の簡略化のために省する。
【０２４６】
図３４の（ｂ）を説明するにあたり、クロックの立ち上がりに同期した回路を構成したとする。また、図３４の（ｂ）において、“Ｔ１”，“Ｔ２”を、それぞれ連続した任意のクロックの立ち上がりタイミングとし、各々のタイミングの間隔をサイクルと呼ぶ（例えばタイミング“Ｔ１”から“Ｔ２”の直前までの期間をサイクルＣ１と呼ぶ：以下、各実施例において同様である）。
このことを踏まえて図３４の（ｂ）を参照すると、本実施例では、イベント２０９がサイクルＣ１（但し、タイミング“Ｔ２”に対して、ある程度の余裕をもつ直前であることが好ましい。この点も、以下の各実施形態において同様である。）の期間に入力される。但し、状態が切り替わるのはクロックの立ち上がりと同時（同期）である。
これにより、本実施例では、効率的な（遅延のない）状態遷移が実現されている。これは、サイクルＣ１、即ち、タイミング“Ｔ２”の直前までの段階において、現状態番号２０４と入力されたイベント２０９との組み合わせを基に次状態番号２０５を特定し、タイミング“Ｔ２”となると同時に、この特定した次状態番号２０５を現状態番号２０４とすることに起因している。即ち、ある状態のサイクルにおいてイベントが入力されると、この入力されたイベントを同サイクル内で解釈し、次のサイクルの最初に遷移すべき状態へ移行することが可能となる。また、次のサイクルの最初に遷移すべき状態へ移行することが可能となるのは、次状態番号２０５を現状態番号２０４とする（状態遷移する）タイミングを図３におけるシーケンサ部２０１に入力されたクロック（例えばクロック２０７の立ち上がり）に合わせているためである。但し、“Ｔ１”のタイミングより前にイベント２０９をシーケンサ部２０１に入力し、このイベント２０９をシーケンサ部２０１においてレジスタ等で保持しておくという構成も可能であり、この構成から得られる効果も、上記のものと同様なものとなる。
【０２４７】
この状態遷移の過程を示す図３４の（ｂ）の状態遷移タイミングチャート図について、図３４の（ａ）の状態遷移テーブルメモリ２０２の構成図を用いて、より詳細に説明する。
図３４の（ａ）を参照すると、図３４の（ｂ）の状態遷移タイミングチャート図におけるサイクルＣ１では状態は（１）である。この状態において、サイクルＣ１の期間に、現状態番号２０４（状態（１））がイベント状態遷移テーブル１１１１とデフォルト状態遷移テーブル１１１２との両方に入力され、この入力に対し、イベント状態遷移テーブル１１１１が、例えば４つの次状態番号１１２６（図３４の（ｂ）では状態（３）と状態（４）との２つの次状態番号１１２６）を出力し、また、デフォルト状態遷移テーブル１１１２が、１つの次状態番号１１２７（図３４の（ｂ）では状態（２）の１つの次状態番号１１２７）を出力する。
【０２４８】
ここで、同じくサイクルＣ１の期間にイベント識別コード１２０６がシーケンサ部２０１（図３参照）からセレクタ１１１８及びイベント発生判定回路１２１１に入力される。従って、イベントが発生している場合（例えば、図１５の説明において、１ｈｏｔとして構成されたイベント識別コード１２０６におけるビットのいずれかに“１”が格納されている場合）、セレクタ１１１８では、入力された次状態番号１１２６（状態（３）及び状態（４））の中からこれに対応する次状態番号１１２６（状態（３）又は状態（４））がセレクタ１１１９へ出力される。また、サイクルＣ１の期間にイベント発生判定回路１２１１では、イベントが発生していることを示すイベント一致信号１１１４がセレクタ１１１９へ出力される。さらに、デフォルト状態遷移テーブル１１１２からは、現状態番号２０４に対応した次状態番号１１２７（状態（４））がセレクタ１１１９へ出力される。
【０２４９】
これにより、セレクタ１１１９では、イベント一致信号１１１４に基づき次状態番号１１２６，１１２７のいずれか（状態（３），状態（４）、若しくは状態（２）のいずれか）が次状態番号２０５として出力される。但し、これまでの動作は、サイクルＣ１期間内、即ち、タイミング“Ｔ２”の直前までに処理されるものである。
このように出力された次状態番号２０５は、タイミング“Ｔ２”において現状態番号２０４として有効化され、サイクルＣ２になると、この現状態番号２０４がシーケンサ部２０１から状態遷移テーブルメモリ２０２へ出力される。
【０２５０】
〔命令コードアドレスを発行するタイミングの第２の実施例〕
更に、本発明による状態遷移テーブルメモリ２０２が命令コードアドレスを発行するタイミングについて、上記の命令コードアドレスを発行するタイミングの第１の実施例を応用した例を、以下に命令コードアドレスを発行するタイミングの第２の実施例として図面を用いて詳細に説明する。
ここで、本実施例を説明するにあたり、上記の命令コードアドレスを発行するタイミングの第１の実施例と同様に、本発明による状態遷移テーブルメモリ２０２の第２の実施例を引用し、図３５の（ａ）に示す状態遷移テーブルメモリ２０２の構成と（ｂ）に示す状態遷移タイミングチャート図とを用いて説明することとする。但し、強制状態遷移テーブル１１１３の構成は説明の簡略化のために省する。
【０２５１】
また、本実施例は上記の命令コードアドレスを発行するタイミングの第１の実施例と比較して、条件分岐が実現される２つ（２サイクル）前の状態においてイベント２０９がシーケンサ部２０１（図２参照）に入力されるという特徴がある。（第１の実施例では、条件分岐の１つ（１サイクル）前の状態においてイベント２０９が入力される構成である。）
また、構成としての差分は、セレクタ１１１８とイベント発生判定回路１２１１との前段にイベント識別コード１２０６を保持するレジスタ３００１が設けられた点である。このレジスタ３００１は、例えばフリップフロップ等により構成される。
このレジスタ３００１によって、本実施例では、図３５の（ｂ）に示すタイミング“Ｔ３”において条件分岐が実現される。即ち、図３５の（ｂ）におけるタイミング“Ｔ２”の直前のサイクルＣ１においてイベント２０９がシーケンサ部２０１に入力され、このシーケンサ部２０１から出力されたイベント識別コード１２０６がタイミング“Ｔ２”の時点でレジスタ３００１に保持される。但し、“Ｔ１”のタイミングより前にイベント２０９をシーケンサ部２０１に入力し、このイベント２０９をシーケンサ部２０１においてレジスタ等で保持しておくという構成も可能であり、この構成から得られる効果も、上記のものと同様なものとなる。
【０２５２】
この状態遷移の過程を示す図３５の（ｂ）の状態遷移タイミングチャート図について、図３５の（ａ）の状態遷移テーブルメモリ２０２の構成図を用いて、より詳細に説明する。
図３５の（ａ）を図３５の（ｂ）を用いて説明するにあたり、第１の実施例と同様に、クロックの立ち上がりに同期した回路を構成したとする。また、図３５の（ｂ）において、“Ｔ１”，“Ｔ２”，“Ｔ３”を、それぞれ任意のクロックの立ち上がりタイミングとし、タイミング“Ｔ１”から“Ｔ２”の直前までをサイクルＣ１、タイミング“Ｔ２”から“Ｔ３”の直前までをサイクルＣ２と呼ぶ。
このことを踏まえて図３５の（ａ）を参照すると、図３５の（ｂ）の状態遷移タイミングチャート図におけるサイクルＣ１では、先ず、イベント２０９がシーケンサ部２０１に入力される。
また、サイクルＣ１では、現状態番号２０４として状態（１）がイベント状態遷移テーブル１１１１とデフォルト状態遷移テーブル１１１２との両方に入力される。この入力に対し、イベント状態遷移テーブル１１１１からは、状態（１）に対応する例えば４つの次状態番号１１２６（この次状態番号１１２６の値は、本説明においては特に限定されるものではない。）が出力され、また、デフォルト状態遷移テーブル１１１２からは、１つの次状態番号１１２７（図３５の（ｂ）では状態（２）の１つの次状態番号１１２７）が出力される。
但し、同じサイクルＣ１では、シーケンサ部２０１から出力されたイベント識別コード１２０６が、一旦レジスタ３００１において保持されるため、セレクタ１１１８及びイベント発生判定回路１２１１には、イベント識別コード１２０６が入力されない。従って、セレクタ１１１９から出力される次状態番号２０５は、セレクタ１１１８からの出力の如何に関わらず、次状態番号１１２７として出力された状態（２）となる。また、この次状態番号２０５（次状態番号１１２７＝状態（２））は、シーケンサ部２０１に入力され、タイミング“Ｔ２”において現状態番号２０４とされる。また、このタイミング“Ｔ２”では、サイクルＣ１で入力されたイベント識別コード１２０６がレジスタ３００１に書き込まれる。
【０２５３】
その後、次のサイクルＣ２では、タイミング“Ｔ２”において現状態番号２０４とされた状態（２）がイベント状態遷移テーブル１１１１及びデフォルト状態遷移テーブル１１１２に入力される。従って、サイクルＣ２では、このイベント状態遷移テーブル１１１１から状態（２）に対応した例えば４つの次状態番号１１２６（図３５の（ｂ）では、状態（４）及び状態（５）の２つの次状態番号１１２６）がセレクタ１１１８へ出力され、また、デフォルト状態遷移テーブル１１１２から状態（２）に対応した次状態番号１１２７（図３５の（ｂ）では、状態（３）の１つの次状態番号１１２７）がセレクタ１１１９へ出力される。
【０２５４】
また、このサイクルＣ２において、レジスタ３００１からは、タイミング“Ｔ２”で保持したイベント識別コード１２０６がセレクタ１１１８及びイベント発生判定回路１２１１へ出力される。更に、このイベント識別コード１２０６が入力されたイベント発生判定回路１２１１からは、イベント一致信号１１１４がセレクタ１１１９へ出力される。従って、サイクルＣ１でイベントが発生していた場合、セレクタ１１１８からは、該当する次状態番号１１２６（状態（４）若しくは状態（５））がセレクタ１１１９へ出力される。その後、セレクタ１１１９からは、セレクタ１１１８から入力された次状態番号１１２６（状態（４）若しくは状態（５））が次状態番号２０５として出力される。これに対して、サイクルＣ１でイベントが発生していなかった場合、セレクタ１１１９からは、セレクタ１１１８からの出力の如何に関わらず、デフォルト状態遷移テーブル１１１２から入力された次状態番号１１２７（状態（３））が次状態番号２０５として出力される。
また、この出力された次状態番号２０５は、シーケンサ部２０１に入力され、タイミング“Ｔ３”において現状態番号２０４として有効化される。
【０２５５】
即ち、命令コードアドレスを発行するタイミングの第１の実施例では、（（サイクルＣ１における現状態番号２０４）＋（サイクルＣ１の期間に入力されたイベント２０９））から（サイクルＣ２における次状態番号２０５）が特定されるが、本実施例では、（（サイクルＣ２における現状態番号２０４）＋（サイクルＣ１の期間に入力されたイベント２０９））から（サイクルＣ３における次状態番号２０５）が特定されるという構成となっている。
【０２５６】
このように構成することで本実施例では、クリティカルパスを短くすることが可能となり、アレイ型プロセッサ１の動作周波数を上げることができる。
これは、イベント識別コード１２０６があるサイクル（状態）においてデータパス部１０２により演算された結果に従い状態遷移管理部１０１に入力されることに起因している。
即ち、イベント識別コード１２０６がセレクタ１１１８とセレクタ１１１９とに入力されて次状態番号２０５が出力され、さらにこの次状態番号２０５が、例えば図３に示した構成例では制御情報メモリ２０３に入力されて命令コードアドレスが送出された後に、プロセッサエレメント１０５の命令コードメモリ１５０１（例として図２０参照）に入力されるまでを１サイクルとして構成した場合、クリティカルパスとなるこのパスが長いために、動作速度が低下してしまう。
従って、本実施例では、このパスの途中にレジスタ３００１を設けることで、このパスを比較的短い２つのクリティカルパスに分割し、動作速度の低下を防ぐよう構成している。そして、この２つ（イベント伝送と命令アドレス供給と）をパイプライン動作させることにより、スループットを上げ、全体の処理性能を向上させることができる。
【０２５７】
但し、本実施例は、命令コードアドレスを発行するタイミングの第１の実施例においてサイクルＣ１（第２の実施例ではサイクルＣ２に相当）における状態（１）（第２の実施例では状態（２）に相当）とイベント２０９入力との組み合わせにより次状態番号２０５を決定していたものを、第２の実施例では、１サイクル前のサイクルＣ１（第１の実施例では、サイクルＣ１の直前のサイクルに相当）においてイベント２０９を入力する必要があるため、状態遷移とイベント２０９を入力するタイミングとの決定が複雑化するという欠点がある。
また、本実施例では、サイクルＣ１にイベント２０９を入力できない場合、条件分岐のタイミングが１サイクル遅れる。これは、図３５の（ｂ）に示す状態遷移タイミングチャート図において、サイクルＣ１にイベントを入力することが不可能なためにサイクルＣ２に入力した場合、サイクルＣ３にダミーの状態を挿入する必要があり、これが原因で実際に状態分岐が行われるタイミングがタイミング“Ｔ３”より１サイクル遅れたタイミングとなるためである。
【０２５８】
〔命令コードアドレスを発行するタイミングの第３の実施例〕
更に、本発明による状態遷移テーブルメモリ２０２が命令コードアドレスを発行するタイミングについて、上記の命令コードアドレスを発行するタイミングの第２の実施例をさらに応用した例を、以下に命令コードアドレスを発行するタイミングの第３の実施例として図面を用いて詳細に説明する。
ここで、本実施例を説明するにあたり、上記の命令コードアドレスを発行するタイミングの第２の実施例と同様に、本発明による状態遷移テーブルメモリ２０２の第２の実施例を引用し、図３６の（ａ）に示す状態遷移テーブルメモリ２０２の構成と、（ｂ）に示す状態遷移図と、（ｃ），（ｄ）に示す状態遷移タイミングチャート図とを用いて説明する。但し、強制状態遷移テーブル１１１３の構成は説明の簡略化のために省する。
【０２５９】
また、本実施例は上記の命令コードアドレスを発行するタイミングの第２の実施例と比較して、図３６の（ｃ），（ｄ）に示すように、デフォルト時の状態遷移では通常の状態分岐（状態（１）→状態（２）→状態（３））を実現し、イベント発生時の状態遷移では途中に１サイクル無効なサイクルが存在し、分岐する（状態（１）→状態（４）若しくは（５））点を特徴としている。即ち、本実施例では、イベント２０９が入力されない場合では、デフォルト状態遷移に従い、サイクル毎に順次状態が遷移するが、イベント２０９が入力された場合では、入力から条件分岐までに１サイクル無効なサイクルを挿入する。これを実現するにあたり、本実施例は、命令コードアドレスを発行するタイミングの第２の実施例におけるレジスタ３００１だけでなく、イベント状態遷移テーブル１１１１の出力とセレクタ１１１８との間にレジスタ３００２を設けている。但し、レジスタ３００２も、例えばフリップフロップ等により構成される。
【０２６０】
この状態遷移を図３６の（ｃ），（ｄ）を用いて説明する。
但し、図３６の（ｃ），（ｄ）を説明するにあたり、第２の実施例と同様に、クロックの立ち上がりに同期した回路を構成したとする。また、図３５の（ｃ），（ｄ）において、“Ｔ１”，“Ｔ２”，“Ｔ３”を、それぞれ任意のクロックの立ち上がりタイミングとし、タイミング“Ｔ１”から“Ｔ２”の直前までをサイクルＣ１、タイミング“Ｔ２”から“Ｔ３”の直前までをサイクルＣ２と呼ぶ。
このことを踏まえて、図３６の（ｃ）を参照すると、本実施例は、サイクルＣ１において状態が（１）であり、このサイクル中にイベント２０９が入力されなければ、次のサイクルＣ２において状態（２）に遷移し、さらに次のサイクルＣ３において状態（３）となる。これに対して、図３６の（ｄ）を参照すると、サイクルＣ１においてイベント２０９が入力された場合、サイクルＣ２において一度、状態（２）に遷移した状態がキャンセルされ、次のサイクルＣ３において、サイクルＣ１で入力されたイベント２０９に応じた状態遷移（状態（４）または状態（５）への遷移）が実行される。
このような状態遷移の形は、デフォルト状態による遷移が多く発生し、たまにイベント２０９が入力されるという場合に特に有効な形態である。何故なら、デフォルト状態による遷移の場合は、ロスとなる無効のサイクルがなく状態遷移がされるが、イベント２０９が入力された場合は、必ず１サイクル分の無駄が挿入されるためである。
【０２６１】
上記において説明した状態遷移タイミングチャート図について、図３６の（ａ）の状態遷移テーブルメモリ２０２の構成図を用いて、より詳細に説明する。
図３６の（ａ）を参照すると、サイクルＣ１においてイベント２０９がシーケンサ部２０１（図３参照）に入力された場合、タイミング“Ｔ２”においてその値はレジスタ３００１に保持される。また、サイクルＣ１では、イベント状態遷移テーブル１１１１及びデフォルト状態遷移テーブル１１１２に、現状態番号２０４として、状態（１）が入力されている。従って、サイクルＣ１では、イベント状態遷移テーブル１１１１からは、状態（１）に対応する例えば４つの次状態番号１１２６（図３６の（ｂ）及び（ｄ）では、状態（４）及び状態（５））が出力され、また、デフォルト状態遷移テーブル１１１２からは、状態（１）に対応する次状態番号１１２７（図３６の（ｂ），（ｃ）及び（ｄ）では、状態（２））が出力される。但し、上記において、イベント状態遷移テーブル１１１１から出力された次状態番号１１２６は、レジスタ３００２に保持されるため、サイクルＣ１において、セレクタ１１１８へは何も入力されない。
また、このとき、セレクタ１１１８及びイベント発生判定回路１２１１には、イベント識別コード１２０６が入力されていないため、セレクタ１１１９にイベント一致信号１１１４が入力されず、強制的にセレクタ１１１９は、デフォルト状態遷移テーブル１１１２から入力された次状態番号１１２７（状態（２））を次状態番号２０５としてシーケンサ部２０１へ出力する。これに対して、シーケンサ部２０１では、タイミング“Ｔ２”において、入力された次状態番号２０５（状態（２））を現状態番号２０４として有効化し、これをサイクルＣ２において出力する。よって、本実施例では、サイクルＣ２において全ての条件分岐に対して一時、デフォルト状態遷移テーブル１１１２から出力された状態が有効化される。
【０２６２】
次に、サイクルＣ２では、タイミング“Ｔ２”で有効化された現状態番号２０４（状態（２））がイベント状態遷移テーブル１１１１及びデフォルト状態遷移テーブル１１１２に入力され、各々のテーブルよりこの状態（２）に対応した次状態番号１１２６（この次状態番号１１２６の値は、本説明においては特に限定されるものではない。）及び１１２７（図３６の（ｂ），（ｃ）及び（ｄ）における状態（３））が出力される。但し、このとき、レジスタ３００２には、前のサイクルＣ１において保持した次状態番号１１２６が格納されているため、サイクルＣ２においてセレクタ１１１８に入力される次状態番号１１２７は、この格納されている値（図３６の（ｂ），（ｄ）では、状態（４）及び（５））である。
また、タイミング“Ｔ２”でレジスタ３００１に保持されたイベント識別コード１２０６も、サイクルＣ２においてセレクタ１１１８及びイベント発生判定回路１２１１へ入力される。
【０２６３】
このため、サイクルＣ２では、例えばサイクルＣ１でイベントが発生していた場合、このイベント識別コード１２０６に該当する次状態番号１１２６（図３６の（ｂ），（ｄ）では、状態（４）若しくは（５））が選択され、セレクタ１１１９へ出力される。また、イベント発生判定回路１２１１からは、イベントが発生したことを示したイベント一致信号１１１４がセレクタ１１１９へ入力されるため、セレクタ１１１９からは、セレクタ１１１８より入力された次状態番号１１２６（状態（４）若しくは（５））が選択され、次状態番号２０５として出力される。その後、この出力された次状態番号２０５は、シーケンサ部２０１に入力され、タイミング“Ｔ３”において現状態番号２０４として有効化される。但し、このままでは、タイミング“Ｔ２”のときに、一旦、現状態番号２０４としてデフォルト状態遷移テーブル１１１２から出力された状態（２）を有効化しているため、動作に矛盾が生じる。従って、本実施例では、この矛盾を回避するために、サイクルＣ２における、イベント発生判定回路１２１１にてイベント識別コード１２０６がイベント発生を示していると判定した時点で、イベント発生判定回路１２１１がデータパス部１０２に対して、現在実行している動作（書き込み等）をキャンセルさせるための動作（書き込み）キャンセル信号１２０７を出力するよう構成する。これにより、サイクルＣ２において実行されている動作をキャンセルし、新たにタイミング“Ｔ３”で有効化された現状態番号２０４に基づく動作を前の状態（この場合、状態（１））に引き続いて実行可能なように構成する。
これに対して、サイクルＣ１でイベントが発生していなかった場合、サイクルＣ２では、第２の実施例と同様に、セレクタ１１１９が、デフォルト状態遷移テーブル１１１２より入力された、現状態番号２０４（状態（２））に対応する次状態番号１１２７（状態（３））を選択して、次状態番号２０５として出力する。その後、この出力された次状態番号２０５（状態（３））は、シーケンサ部２０１に入力され、タイミング“Ｔ３”において現状態番号２０４として有効化される。但し、この動作において、イベントが発生していないため、イベント発生判定回路１２１１は、動作（書き込み）キャンセル信号１２０７を出力しない。
【０２６４】
このような動作を経ることにより、タイミング“Ｔ３”では、サイクルＣ１においてイベント２０９が入力されていた場合、そのイベント２０９に応じた次状態番号２０５（図３６の（ｂ），（ｄ）では状態（４）若しくは状態（５）に対応）を現状態番号２０４とし、また、サイクルＣ１においてイベント２０９が入力されていない場合、デフォルト状態遷移テーブル１１１２に従って出力された次状態番号２０５（図３６の（ｂ）では状態（３）に対応）を現状態番号２０４とすることが可能となる。
【０２６５】
〔命令コードアドレスを発行するタイミングの第１から第３の実施例の各サイクル毎の状態〕
また、上述した命令コードアドレスを発行するタイミングの第１から第３の実施例における各サイクル毎の状態について、図３８を用いて比較する。
図３８を参照すると、上記第１から第３の実施例全てにおいて、タイミング“Ｔ１”から“Ｔ２”の直前までのサイクルＣ１の期間の状態は、（１）とされている。
この状態において、第１の実施例では、サイクルＣ１においてイベント（イベント無しも含むとする）と現状態番号２０４（状態（１）が入力され、この組み合わせに応じた次状態番号２０５（状態（２）又は、（３）若しくは（４））が出力される。従って、タイミング“Ｔ２”では、この組み合わせに応じた次状態番号２０５が現状態番号２０４として有効化され、この現状態番号２０４を基にタイミング“Ｔ２”において状態遷移が行われる。
また、第２の実施例では、サイクルＣ１において入力されたイベントがタイミング“Ｔ２”においてレジスタ３００１に保持されるため、サイクルＣ２における状態は、デフォルト遷移に従って状態（２）となる。従って、サイクルＣ２では、保持されたイベントと状態（２）との組み合わせに応じた次状態番号２０５（状態（３）又は、（４）若しくは（５））が出力され、これがタイミング“Ｔ３”において現状態番号２０４として有効化される。
更に、第３の実施例では、サイクルＣ１において入力されたイベントが第２の実施例と同様に、タイミング“Ｔ２”においてレジスタ３００１に保持される。従って、タイミング“Ｔ２”の時点では、サイクルＣ１において出力された、デフォルト状態遷移テーブル１１１２において状態（１）に対応する次状態番号１１２７（状態（２））が現状態番号２０４として有効化される。但し、サイクルＣ１では、イベント状態遷移テーブル１１１１から状態（１）に対応する次状態番号１１２６（状態（４）若しくは（５））が出力され、これがレジスタ３００２において保持されている。
ここで、サイクルＣ１においてイベントが発生しなかった場合、第２の実施例と同様に、サイクルＣ２では、デフォルト状態遷移テーブル１１１２から、タイミング“Ｔ２”において現状態番号２０４とされた状態（２）に対応する次状態番号１１２７（状態（３））が出力され、これがタイミング“Ｔ３”において現状態番号２０４として有効化される。
これに対して、サイクルＣ１においてイベントが発生していた場合、実行されている状態（２）が、動作（書き込み）キャンセル信号１２０７によりキャンセルされ、代わりに、サイクルＣ１においてレジスタ３００２に保持された次状態番号１１２６（状態（４）若しくは（５））が現状態番号２０４として有効化される。
【０２６６】
〔命令コードアドレスを発行するタイミングの第４の実施例〕
また、上述した命令コードアドレスを発行するタイミングの第１から第３の実施例については、図３７のように構成することにより、各実施例の何れかを選択して実行するよう構成することが可能である。これを以下に、命令コードアドレスを発行するタイミングの第４の実施例として説明する。
但し、本実施例でも、本発明による状態遷移テーブルメモリ２０２の第２の実施例を引用し、強制状態遷移テーブル１１１３の構成は説明の簡略化のために省略する。
【０２６７】
図３７を参照すると、本実施例では、イベント状態遷移テーブル１１１１からの各出力に対して、各々が分岐され、一方がレジスタ３００４〜３００７を介し、他の一方がこれを介さずに対応するセレクタ３１０２〜３１０５に入力されるよう構成されている。また、このセレクタ３１０２〜３１０５は、図２０における命令デコーダ１５０２からの出力に対応するメモリ３０２２に接続されており、各セレクタ３１０２〜３１０５における選択（レジスタ３００４〜３００７各々に関して使用するか否かの選択）には、この命令デコーダ１５０２でデコードされた命令コードが使用される。
また、本実施例では、セレクタ１１１８及びイベント発生判定回路１２１１に入力されるイベント識別コード１２０６に対しても、分岐して、一方がレジスタ３００３を介し、他の一方が介さずにセレクタ３１０１に入力されるよう構成されている。また、このセレクタ３１０１も、図２０における命令デコーダ１５０２からの出力に対応するメモリ３０２１に接続されており、セレクタ３１０１における選択（レジスタ３００３を使用するか否かの選択）には、この命令デコーダ１５０２でデコードされた命令コードが使用される。
但し、上記における各レジスタ３００３、〜、３００７も、各々例えばフリップフロップ等により構成される。
【０２６８】
このように構成することで、本実施例では、メモリ３０２２及びメモリ３０２１の値を制御することにより、図３４から図３６に示す命令コードアドレスを発行するタイミングの第１の実施例から第３の実施例のいずれかを選択して実行させることが可能となる。
但し、本実施例の選択には、アプリケーションの実装時に１つに固定して使用することも可能であるし、また、動作中（状態遷移時）に選択して切り替えるよう構成することも可能である。
【０２６９】
【発明の効果】
以上説明したように、本発明によるアレイ型プロセッサでは、データパス部分のプロセッサエレメントアレイを演算処理に特化させることが可能となり、状態遷移管理部は状態遷移手段としての動作およびデータパス部の制御を柔軟に行うよう構成を特化させることができるという効果があり、これにより面積、処理性能の両面に対する効果も得られる。
【０２７０】
また、状態遷移手段としての動作において、条件により複数の遷移先の中から一つの状態を選択する際、選択先の状態数によらず分岐に要する時間を一定とすることを実現し、状態遷移を記述するテーブルにも分岐先の状態数のばらつきによる無駄が生じない効果がある。
また、条件が一致した時の遷移先および条件が一致しなかった場合の遷移先を容易に記述することを可能としている。
また、状態遷移の方法として、状態遷移管理部内だけの制御、データパス部からの信号による制御、アレイ型プロセッサ外部からの信号による制御のいずれも可能としており、状態遷移条件設定の柔軟性を高める効果がある。
【０２７１】
さらに、状態遷移管理部によるデータパス部の制御は、全プロセッサエレメントおよび全プログラマブルスイッチエレメントを独立に制御する、いくつかのエレメントを固定的にグループ化し制御する、プログラムによりグループ化を決定し制御する、全エレメントの中の一部のみを制御することが可能となる。
この結果、目的に応じてデータパス部の制御の柔軟性と、制御のために必要とされるリソース量のバランスを考慮したアレイ型プロセッサの構成を可能とする効果がある。
【０２７２】
また、全ての制御を状態遷移管理部が行うのではなく、データパス部内においても制御の信号を発生して直接データパス部内を制御する方法も可能としているため、制御に関する柔軟性を高める効果がある。
【図面の簡単な説明】
【図１】図１は、本発明のアレイ型プロセッサの実施形態における概略ブロック図を示している。
【図２】図２は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第１の実施例の概略ブロック図を示している。
【図３】図３は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第２の実施例の概略ブロック図を示している。
【図４】図４は、図２及び図３に示した状態遷移管理部の命令コードアドレス発行のタイミングチャート図を示している。
【図５】図５は、本発明のアレイ型プロセッサの実施形態における状態遷移管理部の第３の実施例の概略ブロック図を示している。
【図６】図６は、図５に示した状態遷移管理部の命令コードアドレス発行のタイミングチャート図を示している。
【図７】図７は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第１の実施例の概念図を示している。
【図８】図８は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第１の実施例の概略ブロック図を示している。
【図９】図９は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第２の実施例の概略ブロック図を示している。
【図１０】図１０は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第３の実施例の概略ブロック図を示している。
【図１１】図１１は、本発明のアレイ型プロセッサの実施形態におけるデータパス部の第４の実施例の概略ブロック図を示している。
【図１２】図１２は、本発明のアレイ型プロセッサの実施形態におけるシーケンサ部の第１の実施例の概略ブロック図を示している。
【図１３】図１３は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第１の実施例の概略ブロック図を示している。
【図１４】図１４は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリに書き込まれた状態遷移例の図を示している。
【図１５】図１５は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第２の実施例の概略ブロック図を示している。
【図１６】図１６は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第３の実施例の概略ブロック図を示している。
【図１７】図１７は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第４の実施例の概略ブロック図を示している。
【図１８】図１８は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリの第５の実施例の概略ブロック図を示している。
【図１９】図１９は、本発明のアレイ型プロセッサの実施形態における制御情報メモリの第１の実施例の概略ブロック図を示している。
【図２０】図２０は、本発明のアレイ型プロセッサの実施形態におけるプロセッサエレメントの第１の実施例の概略ブロック図を示している。
【図２１】図２１は、本発明のアレイ型プロセッサの実施形態におけるプロセッサエレメントの第２の実施例の概略ブロック図を示している。
【図２２】図２２は、本発明のアレイ型プロセッサの実施形態におけるプログラマブルスイッチエレメントの第１の実施例の概略ブロック図を示している。
【図２３】図２３は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第１の実施例の模式図を示している。
【図２４】図２４は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第２の実施例の模式図を示している。
【図２５】図２５は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第４の実施例の模式図を示している。
【図２６】図２６は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第５の実施例の模式図を示している。
【図２７】図２７は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第６の実施例の模式図を示している。
【図２８】図２８は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第７の実施例の模式図を示している。
【図２９】図２９は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第８の実施例の模式図を示している。
【図３０】図３０は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第９の実施例の模式図を示している。
【図３１】図３１は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第１０の実施例の模式図を示している。
【図３２】図３２は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第１１の実施例を説明するための図であり、（ａ）は、本実施例の模式図を示し、（ｂ）は、本実施例の動作を実現するための回路構成の例を示している。
【図３３】図３３は、本発明のアレイ型プロセッサの実施形態における演算制御情報メモリを用いたデータパス部の制御方法の第１２の実施例の模式図を示している。
【図３４】図３４は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第１の実施例を説明するための図であり、（ａ）は、第１の実施例の概略ブロック図であり、（ｂ）は、第１の実施例の状態遷移タイミングチャート図である。
【図３５】図３５は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第２の実施例を説明するための図であり、（ａ）は、第２の実施例の概略ブロック図であり、（ｂ）は、第２の実施例の状態遷移タイミングチャート図である。
【図３６】図３６は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第３の実施例を説明するための図であり、（ａ）は、第３の実施例の概略ブロック図であり、（ｂ）は、第３の実施例の状態遷移図であり、（ｃ）は、（ｂ）の状態遷移におけるデフォルト遷移に着目した状態遷移タイミングチャート図であり、（ｄ）は、（ｂ）の状態遷移におけるイベント遷移に着目した状態遷移タイミングチャート図である。
【図３７】図３７は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第４の実施例を説明するための概略ブロック図である。
【図３８】図３８は、本発明のアレイ型プロセッサの実施形態における状態遷移テーブルメモリによる命令コードアドレス発行のタイミングの第１から第３の実施例における各サイクル毎の状態を比較するための図である。
【符号の説明】
１  アレイ型プロセッサ
１０１  状態遷移管理部
１０２  データパス部
１０３、７０１、２００３、２０１３、２０２３、２０３３−Ｖ１，２０３３−Ｖ２，…、２０３３−Ｈ１，２０３３−Ｈ２，…  演算制御バス
１０４  イベント通知バス
１０５  プロセッサエレメント
１０６  プログラマブルスイッチエレメント
１０７  外部イベントバス
１０８  データ入力
１０９  データ出力
２０１  シーケンサ部
２０２  状態遷移テーブルメモリ
２０３  制御情報メモリ
２０４  現状態番号
２０５、１１０６、１１０７、１１０９、１１２６、１１２７、１１２８、１１４６、１１４７、１１４８、１１６６、１１６８  次状態番号
２０６、１２０６、１２２６、１２４６  イベント識別コード
２０７  クロック
２０８  リセット
２０９  イベント
２１０、１２１６、１２３６、１２５６  強制イベント識別コード
４０１  遅延
４０２  状態遷移
４０３  状態遷移の直前の状態
４０４  状態遷移の直後の状態
６０１、７０３、８０１、９０１  データバス
７０２  接続制御バス
９０２、１９０１、１９０２  グループ
１００１  符号化器
１００２、１５０４、２２０７、３００１、３００２、３００３、３００４、３００５、３００６、３００７  レジスタ
１１０１、１１１１、１１２１、１１３１  イベント状態遷移テーブル
１１０２、１１１２、１１２２  デフォルト状態遷移テーブル
１１０３、１１１３、１１２３、１１３３  強制状態遷移テーブル
１１０４、１１１４、１１２４、１１３４  イベント一致信号
１１０５、１１１５、１１２５、１１３５  強制イベント一致信号
１１０８、１１１０、１１１８、１１１９、１１２０、１１３８、１１３９、１１４０、１１５８、１１５９、２００１、２０１１、２０２１、２２０６、３１０１、３１０２、３１０３、３１０４、３１０５  セレクタ
１２０７  動作（書き込み）キャンセル信号
１２１１、１２１２、１２２１、１２２２、１２３２  イベント発生判定回路
１３０１  通常状態遷移テーブル
１３４６、１３４７、１３４８、１５０５  命令コードアドレス
１４０１  状態番号
１４０２  演算制御情報メモリ
１５０１  命令コードメモリ
１５０２、１６０２  命令デコーダ
１５０３  演算部
１５０６  入力データ
１５０７  出力データ
１５０８  命令コード
１６０１  制御信号
１６０３、１６０４  プログラマブルスイッチ
１７０１  接続構成情報メモリ
１７０２  接続スイッチ
１７０３  接続構成情報
１７０４  接続線
２００２、２０１２、２０２２、３０２１、３０２２  メモリ
２２０１、２２１１  命令コードメモリ部
２２０２、２２０３、２２０４、２２０５、２２１２、２２１３、２２１４、２２１５、２２２３、２２２４、２２２５  マスク部
【図１】
0003674515.tif 000002
【図２】
0003674515.tif 000003
【図３】
0003674515.tif 000004
【図４】
0003674515.tif 000005
【図５】
0003674515.tif 000006
【図６】
0003674515.tif 000007
【図７】
0003674515.tif 000008
【図８】
0003674515.tif 000009
【図９】
0003674515.tif 000010
【図１０】
0003674515.tif 000011
【図１１】
0003674515.tif 000012
【図１２】
0003674515.tif 000013
【図１３】
0003674515.tif 000014
【図１４】
0003674515.tif 000015
【図１５】
0003674515.tif 000016
【図１６】
0003674515.tif 000017
【図１７】
0003674515.tif 000018
【図１８】
0003674515.tif 000019
【図１９】
0003674515.tif 000020
【図２０】
0003674515.tif 000021
【図２１】
0003674515.tif 000022
【図２２】
0003674515.tif 000023
【図２３】
0003674515.tif 000024
【図２４】
0003674515.tif 000025
【図２５】
0003674515.tif 000026
【図２６】
0003674515.tif 000027
【図２７】
0003674515.tif 000028
【図２８】
0003674515.tif 000029
【図２９】
0003674515.tif 000030
【図３０】
0003674515.tif 000031
【図３１】
0003674515.tif 000032
【図３２】
0003674515.tif 000033
【図３３】
0003674515.tif 000034
【図３４】
0003674515.tif 000035
【図３５】
0003674515.tif 000036
【図３６】
0003674515.tif 000037
【図３７】
0003674515.tif 000038
【図３８】
0003674515.tif 000039