(57)【要約】【課題】複数の状態管理部にイベントデータを的確に分配できるアレイ型プロセッサを提供する。【解決手段】行列形状に配列されている多数のプロセッサエレメントが、個々にデータ設定される命令コードに対応してデータ処理を個々に実行し、イベントデータを出力する。状態管理部１０１は、多数のプロセッサエレメントの命令コードをコンピュータプログラムとイベントデータとに対応して順次切り換えるが、この状態管理部１０１が必要により相互通信して連携動作する複数からなる。そして、この相互通信して連携動作する複数の状態管理部１０１にイベント分配手段１４５がイベントデータを分配するので、大規模な状態遷移を複数の状態管理部１０１が連携して管理するようなことが実行される。【選択図】  図１
2004151951.tif 000002
【特許請求の範囲】
【請求項１】
個々にデータ設定される命令コードに対応してデータ処理を個々に実行してイベントデータを出力する多数のプロセッサエレメントが行列形状に配列されており、これら多数のプロセッサエレメントの前記命令コードを状態管理部が事前に実装されているコンピュータプログラムと前記イベントデータとに対応して順次切り換えるアレイ型プロセッサであって、
前記状態管理部が必要により相互通信して連携動作する複数からなり、
相互通信して連携動作する複数の前記状態管理部に前記イベントデータを分配するイベント分配手段を有しているアレイ型プロセッサ。
【請求項２】
複数の前記状態管理部を接続している専用のイベント通信配線で前記イベント分配手段が形成されている請求項１に記載のアレイ型プロセッサ。
【請求項３】
複数の前記状態管理部を接続している専用のイベント通信バスで前記イベント分配手段が形成されている請求項１に記載のアレイ型プロセッサ。
【請求項４】
複数の前記プロセッサエレメントの処理データを伝送するデータバスが行列形状に形成されており、
個々にデータ設定される命令コードに対応して前記データバスの配線構造を切換制御する複数のスイッチエレメントが前記プロセッサエレメントとともに行列形状に配列されており、
前記状態管理部が複数の前記プロセッサエレメントと複数の前記スイッチエレメントとの前記命令コードを順次切り換え、
前記スイッチエレメントに切換制御される前記データバスで前記イベント分配手段が形成される請求項１に記載のアレイ型プロセッサ。
【請求項５】
複数の前記状態管理部の全部が相互に前記イベント分配手段で接続されている請求項２ないし４の何れか一項に記載のアレイ型プロセッサ。
【請求項６】
複数の前記状態管理部が行列形状に配列されており、
前記状態管理部が近傍に位置する一部の前記状態管理部と前記イベント分配手段で接続されている請求項２ないし４の何れか一項に記載のアレイ型プロセッサ。
【請求項７】
複数の前記状態管理部が行列形状に配列されており、
前記状態管理部が周囲の八方に位置する前記状態管理部と前記イベント分配手段で接続されている請求項６に記載のアレイ型プロセッサ。
【請求項８】
複数の前記状態管理部が行列形状に配列されており、
前記状態管理部が行方向と列方向との四方に隣接する前記状態管理部と前記イベント分配手段で接続されている請求項６に記載のアレイ型プロセッサ。
【請求項９】
前記イベントデータを複数の前記状態管理部に分配する中央管理部が設けられており、
前記中央管理部が複数の前記状態管理部の全部と前記イベント分配手段で接続されている請求項１ないし８の何れか一項に記載のアレイ型プロセッサ。
【請求項１０】
前記イベント分配手段で並列に入力される複数の前記イベントデータから１つを選択する入力選択手段が前記状態管理部ごとに設けられている請求項１ないし９の何れか一項に記載のアレイ型プロセッサ。
【請求項１１】
前記入力選択手段が選択した１つの前記イベントデータを前記イベント分配手段に出力する請求項１０に記載のアレイ型プロセッサ。
【請求項１２】
前記イベント分配手段で並列に入力される複数の前記イベントデータから１つを選択して前記イベント分配手段に出力する出力選択手段が前記状態管理部ごとに設けられている請求項１０に記載のアレイ型プロセッサ。
【請求項１３】
多数の前記プロセッサエレメントが前記状態管理部に対応した個数のエレメント領域に区分されており、
複数の前記状態管理部が複数の前記エレメント領域ごとに前記プロセッサエレメントに接続されており、
前記イベント分配手段は、前記エレメント領域ごとに前記プロセッサエレメントが出力する前記イベントデータを前記状態管理部に伝送する請求項１ないし１２の何れか一項に記載のアレイ型プロセッサ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ処理を個々に実行するとともに相互の接続関係を切換制御する多数のプロセッサエレメントが行列形状に配列されており、これら多数のプロセッサエレメントを状態管理部で動作制御するアレイ型プロセッサに関する。
【０００２】
【従来の技術】
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）やＭＰＵ（Ｍｉｃｒｏ  Ｐｒｏｃｅｓｓｏｒ  Ｕｎｉｔ）と呼称される製品が実用化されている。
【０００３】
このようなプロセッサユニットを利用したデータ処理システムでは、複数の命令コードが記述された各種のアプリケーションプログラムと各種の処理データとがメモリデバイスに格納され、プロセッサユニットはメモリデバイスから命令コードや処理データを順番にデータ読出して複数の演算処理を逐次実行する。
【０００４】
このため、一個のプロセッサユニットで各種のデータ処理を実現できるが、そのデータ処理では複数の演算処理を順番に逐次実行する必要があり、その逐次処理ごとにプロセッサユニットがメモリデバイスから命令コードをデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。
【０００５】
一方、実行するデータ処理が１つに限定されている場合には、そのデータ処理を実行するように論理回路をハードウェアで形成すれば、プロセッサユニットがメモリデバイスから複数の命令コードを順番にデータ読出して複数の演算処理を順番に逐次実行するような必要はない。このため、複雑なデータ処理を高速に実行することが可能であるが、当然ながら１つのデータ処理しか実行することができない。
【０００６】
つまり、アプリケーションプログラムを切換自在としたデータ処理システムでは、各種のデータ処理を実行できるが、ハードウェアの構成が固定されているのでデータ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、アプリケーションプログラムを変更できないので１つのデータ処理しか実行できない。
【０００７】
このような課題を解決するため、本出願人はソフトウェアに対応してハードウェアの構成が変化するデータ処理装置として、アレイ型プロセッサを発明して出願した（例えば、特許文献１参照）。
【０００８】
【特許文献１】
特開２００１−３１２４８１号
【０００９】
このアレイ型プロセッサでは、小規模の多数のプロセッサエレメントが多数のスイッチエレメントとともにデータパス部に行列形状に配列されており、この１個のデータパス部に１個の状態管理部が並設されている。多数のプロセッサエレメントは、個々にデータ設定される命令コードに対応してデータ処理を個々に実行するとともに、個々に並設されている多数のスイッチエレメントに相互の接続関係を切換制御させる。
【００１０】
つまり、アレイ型プロセッサは、多数のプロセッサエレメントと多数のスイッチエレメントとの命令コードを切り換えることでデータパスの構成が変化するので、ソフトウェアに対応して各種のデータ処理を実行することができ、ハードウェアとして小規模の多数のプロセッサエレメントが簡単なデータ処理を並列に実行するので、データ処理を高速に実行することができる。
【００１１】
そして、上述のような多数のプロセッサエレメントと多数のスイッチエレメントとの命令コードからなるデータパス部のコンテキストを状態管理部がコンピュータプログラムとイベントデータとに対応して動作サイクルごとに順次切り換えるので、アレイ型プロセッサはコンピュータプログラムに対応して並列処理を連続的に実行することができる。
【００１２】
なお、上述のコンピュータプログラムは状態管理部に事前に実装されており、イベントデータはアレイ型プロセッサの外部から状態管理部に入力されたり、データパス部から状態管理部に入力される。
【００１３】
【発明が解決しようとする課題】
上述のアレイ型プロセッサは、多数のプロセッサエレメントにより高速なデータ処理を実行できるが、その多数のプロセッサエレメントの状態遷移を１個の状態管理部で管理している。このため、例えば、図１９に示すように、４状態と６状態との２つのループ遷移を一緒に実行する場合、最低でも４と６との最少公倍数である１２状態が必要となる。
【００１４】
このような状態数は組み合わせる状態遷移の個数や各遷移の状態数が増加すると膨大となり、アレイ型プロセッサの動作効率を阻害することになる。特に、状態遷移に条件分岐が存在する場合、管理すべき状態数が膨大となり、状態管理部で管理することが困難となる。
【００１５】
そこで、本発明者は上述の課題を解決するため、アレイ型プロセッサの状態管理部を複数とすることを発明し、特願２００２−２９９０２８号および特願２００２−２９９０２９号として出願した。これらのアレイ型プロセッサでは、状態管理部が複数なので、小規模な複数の状態遷移を複数の状態管理部で個別に管理するようなことができ、大規模な１つの状態遷移を複数の状態管理部で協調して管理するようなこともできる。
【００１６】
しかし、前述のように状態管理部はイベントデータに対応して多数のプロセッサエレメントの状態遷移を管理するので、状態管理部を複数としたアレイ型プロセッサでは、イベントデータを複数の状態管理部に的確に配布する機構を確立する必要がある。
【００１７】
本発明は上述のような課題に鑑みてなされたものであり、複数の状態管理部にイベントデータを的確に配布することができるアレイ型プロセッサを提供することを目的とする。
【００１８】
【課題を解決するための手段】
本発明のアレイ型プロセッサは、多数のプロセッサエレメント、複数の状態管理部、イベント分配手段、を有しており、多数のプロセッサエレメントが行列形状に配列されている。プロセッサエレメントは、個々にデータ設定される命令コードに対応してデータ処理を個々に実行し、イベントデータを出力する。状態管理部は、多数のプロセッサエレメントの命令コードをコンピュータプログラムとイベントデータとに対応して順次切り換えるが、この状態管理部が必要により相互通信して連携動作する複数からなる。そして、この相互通信して連携動作する複数の状態管理部にイベント分配手段がイベントデータを分配するので、大規模な状態遷移を複数の状態管理部が連携して管理するようなことが実行される。
【００１９】
なお、本発明で云う“複数”とは、“２”以上の任意の整数を意味しており、“多数”とは、上記の“複数”より以上の任意の整数を意味している。また、本発明で云うイベントデータとは、状態管理部が管理している現在の状態を遷移させるためのデータ、ある状態管理部が管理している現在の状態を他の状態管理部に通知するためのデータ、などからなる。
【００２０】
【発明の実施の形態】
［第１の形態の構成］
本発明の実施の第１の形態を、図１ないし図６を参照して以下に説明する。まず、本形態のアレイ型プロセッサ１００は、図４に示すように、状態管理部１０１、プロセッサエレメント１０２、メモリコントローラ１０３、リードマルチプレクサ１０４、等を主要構造として有している。
【００２１】
さらに、図１および図２に示すように、本形態のアレイ型プロセッサ１００では、状態管理部１０１が相互通信して連携動作する複数からなり、多数のプロセッサエレメント１０２が状態管理部１０１に対応した個数のエレメント領域１０５に区分されている。
【００２２】
そして、複数の状態管理部１０１が複数のエレメント領域１０５ごとにプロセッサエレメント１０２に接続されており、複数の状態管理部１０１が接続されているプロセッサエレメント１０２のエレメント領域１０５に個々に配置されている。
【００２３】
より詳細には、多数のプロセッサエレメント１０２が複数のエレメント領域１０５ごとに行列形状に配列されており、矩形に区分された複数のエレメント領域１０５も行列形状に配列されている。そして、状態管理部１０１がエレメント領域１０５でのプロセッサエレメント１０２の一行と同等な形状に形成されており、エレメント領域１０５の列方向の略中央に状態管理部１０１が配置されている。
【００２４】
なお、以下では説明を簡単とするため、図示するように、本形態のアレイ型プロセッサ１００には４個のエレメント領域１０５−１〜４が２行２列に配列されており、エレメント領域１０５の各々に１６個のプロセッサエレメント１０２が４行４列に配列されているとする。
【００２５】
さらに、図１の左右方向が行方向で上下方向が列方向とし、各行は列方向に配列されており、各列は行方向に配列されているとする。このため、状態管理部１０１は、エレメント領域１０５の一行の４個のプロセッサエレメント１０２と同等な形状に形成されており、エレメント領域１０５のプロセッサエレメント１０２の２行目と３行目との中間に配置されているとする。
【００２６】
図４に示すように、メモリコントローラ１０３は、外部入力される各種データをエレメント領域１０５の状態管理部１０１とプロセッサエレメント１０２とに伝送し、リードマルチプレクサ１０４は、プロセッサエレメント１０２から読み出された各種データを外部出力する。
【００２７】
プロセッサエレメント１０２は、メモリコントローラ１０３から入力される各種データでデータ処理を実行し、データ処理した各種データをリードマルチプレクサ１０４に出力する。状態管理部１０１は、そのエレメント領域１０５のプロセッサエレメント１０２の状態遷移を管理することにより、そのエレメント領域１０５のプロセッサエレメント１０２に各種のデータ処理を実行させる。
【００２８】
より詳細には、エレメント領域１０５には、図３および図４に示すように、多数のプロセッサエレメント１０２とともに、多数のスイッチエレメント１０８も行列形状に配列されており、そのスイッチエレメント１０８を介して多数のｍｂ（ｍ−ｂｉｔ）バス１０９と多数のｎｂ（ｎ−ｂｉｔ）バス１１０とで多数のプロセッサエレメント１０２がマトリクス接続されている。
【００２９】
また、図３（ｂ）に示すように、プロセッサエレメント１０２は、メモリ制御回路１１１、インストラクションメモリ１１２、インストラクションデコーダ１１３、ｍｂレジスタファイル１１５、ｎｂレジスタファイル１１６、ｍｂＡＬＵ（Ａｒｉｔｈｍｅｔｉｃ  ａｎｄ  Ｌｏｇｉｃａｌ  Ｕｎｉｔ）１１７、ｎｂＡＬＵ１１８、内部可変配線（図示せず）、等を各々有しており、スイッチエレメント１０８は、バスコネクタ１２１、入力制御回路１２２、出力制御回路１２３、等を各々有している。
【００３０】
また、複数の状態管理部１０１は、図４に示すように、インストラクションデコーダ１３８、遷移テーブルメモリ１３９、インストラクションメモリ１４０、を有しており、そのインストラクションデコーダ１３８とメモリコントローラ１０３とは命令バス１４１で接続されている。
【００３１】
また、メモリコントローラ１０３からリードマルチプレクサ１０４まで８行の命令バス１４２が並列に接続されており、これら８行の命令バス１４２が、１行ごとに８列のプロセッサエレメント１０２のメモリ制御回路１１１に接続されている。
【００３２】
また、状態管理部１０１の１個のインストラクションデコーダ１３８には２組の４列のアドレスバス１４３が接続されており、このアドレスバス１４３が１列ごとに２行のプロセッサエレメント１０２のメモリ制御回路１１１に接続されている。
【００３３】
なお、命令バス１４１は、例えば、“２０（ｂｉｔ）”のバス幅に形成されており、命令バス１４２およびアドレスバス１４３は、例えば、“８（ｂｉｔ）”のバス幅に形成されており、メモリコントローラ１０３は、４個の状態管理部１０１に命令バス１４１で接続されている。
【００３４】
ただし、本形態のアレイ型プロセッサ１００では、前述のようにエレメント領域１０５ごとに状態管理部１０１がプロセッサエレメント１０２に接続されているので、その状態管理部１０１は接続されているプロセッサエレメント１０２のみ状態管理を実行する。
【００３５】
また、本形態のアレイ型プロセッサ１００では、外部から供給されるコンピュータプログラムに、エレメント領域１０５の多数のプロセッサエレメント１０２と多数のスイッチエレメント１０８との命令コードが、順次切り換わるコンテキストとしてデータ設定されており、このコンテキストを動作サイクルごとに切り換える状態管理部１０１の命令コードが、順次遷移する動作状態としてデータ設定されている。
【００３６】
このため、状態管理部１０１は、図３に示すように、上述のような自身の命令コードがインストラクションメモリ１４０にデータ格納されており、複数の動作状態を順次遷移させる遷移ルールが遷移テーブルメモリ１３９にデータ格納されている。
【００３７】
状態管理部１０１は、遷移テーブルメモリ１３９の遷移ルールに対応して動作状態を順次遷移させ、インストラクションメモリ１４０の命令コードによりプロセッサエレメント１０２とスイッチエレメント１０８とのインストラクションポインタを発生する。
【００３８】
図２（ｂ）に示すように、スイッチエレメント１０８は、隣接するプロセッサエレメント１０２のインストラクションメモリ１１２を共用しているので、状態管理部１０１は、発生したプロセッサエレメント１０２とスイッチエレメント１０８とのインストラクションポインタを対応するプロセッサエレメント１０２のインストラクションメモリ１１２に供給する。
【００３９】
このインストラクションメモリ１１２には、プロセッサエレメント１０２とスイッチエレメント１０８との複数の命令コードがデータ格納されているので、状態管理部１０１から供給される１つのインストラクションポインタでプロセッサエレメント１０２とスイッチエレメント１０８との命令コードが指定される。インストラクションデコーダ１１３は、インストラクションポインタで指定された命令コードをデコードし、スイッチエレメント１０８、内部可変配線、ｍ／ｎｂＡＬＵ１１７，１１８、等の動作を制御する。
【００４０】
ｍｂバス１０９はｍｂである“８（ｂｉｔ）”の処理データを伝送し、ｎｂバス１１０はｎｂである“１（ｂｉｔ）”の処理データを伝送するので、スイッチエレメント１０８は、インストラクションデコーダ１１３の動作制御に対応してｍ／ｎｂバス１０９，１１０による多数のプロセッサエレメント１０２の接続関係を制御する。
【００４１】
より詳細には、スイッチエレメント１０８のバスコネクタ１２１は、ｍｂバス１０９とｎｂバス１１０とが四方から連通しており、このように連通している複数のｍｂバス１０９の互いの接続関係と連通する複数のｎｂバス１１０の互いの接続関係とを制御する。
【００４２】
このため、アレイ型プロセッサ１００は、外部から供給されるコンピュータプログラムに対応して、複数のエレメント領域１０５ごとに状態管理部１０１がプロセッサエレメント１０２のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに多数のプロセッサエレメント１０２は個々に設定自在なデータ処理で並列動作する。
【００４３】
入力制御回路１２２は、図２（ｂ）に示すように、ｍｂバス１０９からｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７へのデータ入力の接続関係と、ｎｂバス１１０からｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８へのデータ入力の接続関係とを制御する。
【００４４】
出力制御回路１２３は、ｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７からｍｂバス１０９へのデータ出力の接続関係と、ｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８からｎｂバス１１０へのデータ出力の接続関係とを制御する。
【００４５】
プロセッサエレメント１０２の内部可変配線は、インストラクションデコーダ１１３の動作制御に対応して、プロセッサエレメント１０２の内部でのｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７の接続関係とｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８の接続関係とを制御する。
【００４６】
ｍｂレジスタファイル１１５は、内部可変配線に制御される接続関係に対応して、ｍｂバス１０９などから入力されるｍｂの処理データを一時保持してｍｂＡＬＵ１１７などに出力する。ｎｂレジスタファイル１１６は、内部可変配線に制御される接続関係に対応して、ｎｂバス１１０などから入力されるｎｂの処理データを一時保持してｎｂＡＬＵ１１８などに出力する。
【００４７】
ｍｂＡＬＵ１１７は、インストラクションデコーダ１１３の動作制御に対応したデータ処理をｍｂの処理データで実行し、ｎｂＡＬＵ１１８は、インストラクションデコーダ１１３の動作制御に対応したデータ処理をｎｂの処理データで実行するので、処理データのビット数に対応してｍ／ｎｂのデータ処理が適宜実行される。
【００４８】
このエレメント領域１０５ごとのプロセッサエレメント１０２での処理結果は必要により状態管理部１０１にイベントデータとしてフィードバックされるので、この状態管理部１０１は入力されたイベントデータにより動作状態を次の動作状態に遷移させるとともにプロセッサエレメント１０２のコンテキストを次段のコンテキストに切り換える。
【００４９】
ただし、本形態のアレイ型プロセッサ１００では、前述のように８行８列のプロセッサエレメント１０２が２行２列のエレメント領域１０５に区分されており、その２行２列のエレメント領域１０５ごとに４個の状態管理部１０１が１個ずつ配置されている。
【００５０】
そして、そのエレメント領域１０５ごとに所定のプロセッサエレメント１０２がイベント分配手段である専用のイベント通信配線１４５で状態管理部１０１に接続されており、その複数の状態管理部１０１がイベント通信配線１４５で相互にも接続されている。
【００５１】
このイベント通信配線１４５は、図６に示すように、エレメント領域１０５ごとにプロセッサエレメント１０２から状態管理部１０１にイベントデータを伝送するとともに、図１に示すように、４個の状態管理部１０１の各々から他の３個の状態管理部１０１にもイベントデータを分配する。
【００５２】
このため、図５に示すように、状態管理部１０１ごとに入力選択手段である入力選択回路１４６が設けられており、この入力選択回路１４６がイベント通信配線１４５でプロセッサエレメント１０２と３個の状態管理部１０１から並列に入力される４つのイベントデータから１つを選択する。
【００５３】
この選択されたイベントデータは他の状態管理部１０１に出力されるので、これでイベント通信配線１４５により４個の状態管理部１０１の各々から他の３個の状態管理部１０１にイベントデータが分配される。なお、入力選択回路１４６は、接続されている状態管理部１０１により動作制御されるので、状態管理部１０１は、自身に入力されるイベントデータを自身で選択することになる。
【００５４】
なお、本形態のアレイ型プロセッサ１００では、上述のように２行２列の状態管理部１０１がイベント通信配線１４５により相互に接続されているので、イベント通信配線１４５で４個の状態管理部１０１の全部が相互に接続されているとともに、状態管理部１０１が周囲の八方に位置する状態管理部１０１と接続されていることになる。
【００５５】
［第１の形態の動作］
上述のような構成において、本実施の形態のアレイ型プロセッサ１００では、外部から供給されるコンピュータプログラムに対応して、外部入力される処理データでデータ処理を実行する場合、複数のエレメント領域１０５ごとに状態管理部１０１が動作状態を順次遷移させるとともにプロセッサエレメント１０２のコンテキストを動作サイクルごとに順次切り換える。
【００５６】
このため、その動作サイクルごとに多数のプロセッサエレメント１０２が個々に設定自在なデータ処理で並列動作し、その多数のプロセッサエレメント１０２の接続関係を多数のスイッチエレメント１０８が切換制御する。このとき、図６に示すように、エレメント領域１０５ごとに、プロセッサエレメント１０２での処理結果は必要により状態管理部１０１にイベントデータとしてイベント通信配線１４５でフィードバックされるが、同時に、他の全部の状態管理部１０１からもイベント通信配線１４５でイベントデータが伝送される。
【００５７】
そして、複数の状態管理部１０１の各々は、上述のようにプロセッサエレメント１０２と他の状態管理部１０１から並列に入力される複数のイベントデータから１つを入力選択回路１４６で選択し、その選択した１つのイベントデータにより動作状態を次段の動作状態に遷移させるとともにプロセッサエレメント１０２のコンテキストを次段のコンテキストに切り換える。
【００５８】
さらに、状態管理部１０１は上述のように選択した１つのイベントデータを他の全部の状態管理部１０１にイベント通信配線１４５で伝送するので、ある状態管理部１０１が選択したイベントデータは他の全部の状態管理部１０１に通達される。
【００５９】
このため、本形態のアレイ型プロセッサ１００は、複数のエレメント領域１０５ごとに状態管理部１０１が多数のプロセッサエレメント１０２を個別に状態管理するが、その複数の状態管理部１０１が相互通信して連携動作することができる。
【００６０】
従って、データ処理の１つの状態遷移を複数のエレメント領域１０５のプロセッサエレメント１０２の全部で実行することもでき、４つの状態遷移を４個のエレメント領域１０５−１〜４で個別に実行するようなこともでき、２つの状態遷移を４個のエレメント領域１０５−１〜４の特定の２個ずつで分担するようなこともできる。
【００６１】
例えば、本形態のアレイ型プロセッサ１００では、状態管理部１０１に管理される一対のエレメント領域１０５が列方向に配列されているので、処理データが行方向に転送される場合、一対の小容量の処理データを２行のエレメント領域１０５で同時に高効率にデータ処理するようなことができる。
【００６２】
［第１の形態の効果］
本実施の形態のアレイ型プロセッサ１００では、上述のように複数の状態管理部１０１にイベント通信配線１４５でイベントデータが分配されるので、大規模な１つの状態遷移を複数の状態管理部１０１で協調して管理するようなこともでき、小規模な複数の状態遷移を複数の状態管理部１０１で個別に管理するようなこともできる。
【００６３】
しかも、本形態のアレイ型プロセッサ１００では、イベントデータが専用のイベント通信配線１４５で伝送されるので、その伝送が高速に実行される。さらに、複数の状態管理部１０１の全部がイベント通信配線１４５で相互に接続されているので、複数の状態管理部１０１の全部がイベントデータを直接に相互通信することができる。
【００６４】
さらに、状態管理部１０１は、イベント通信配線１４５で並列に入力される複数のイベントデータから入力選択回路１４６で１つを選択するので、自身に必要なイベントデータを的確に入力することができる。しかも、入力選択回路１４６が選択した１つのイベントデータをイベント通信配線１４５に出力するので、ある状態管理部１０１が選択したイベントデータを他の状態管理部１０１に通達することができる。
【００６５】
［第１の形態の変形例］
本発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形が可能である。例えば、上記形態ではエレメント領域１０５やプロセッサエレメント１０２の個数や配列の数値を具体的に例示したが、当然ながら、その数値は各種に設定することが可能である。
【００６６】
また、図６に示すように、上記形態ではエレメント領域１０５ごとにプロセッサエレメント１０２から状態管理部１０１にイベント通信配線１４５でイベントデータを伝送するとともに、状態管理部１０１が他の状態管理部１０１にイベント通信配線１４５でイベントデータを伝送することを例示した。しかし、図７に示すように、専用のイベント通信配線１５１で複数の状態管理部１０１を接続しておき、そのイベント通信配線１５１にプロセッサエレメント１０２と状態管理部１０１とがイベントデータを入力することも可能である。
【００６７】
さらに、上記形態ではイベントデータを専用のイベント通信配線１４５で伝送することを例示したが、例えば、プロセッサエレメント１０２を接続しているｍ／ｎｂバス１０９，１１０でイベントデータを伝送することも可能である。イベントデータを専用のイベント通信配線１４５で伝送する場合、専用のハードウェアが必要となるがイベントデータを簡単に高速に伝送することができる。イベントデータをｍ／ｎｂバス１０９，１１０で伝送する場合、汎用であることによる負荷が大きいためにイベントデータを簡単に高速に伝送することは困難であるが、専用のハードウェアが無用である。
【００６８】
また、上記形態では複数の状態管理部１０１を専用のイベント通信配線１４５で相互に直接に接続していることを例示したが、図８に示すように、複数の状態管理部１０１をイベント分配手段である専用のイベント通信バス１５２で接続することも可能である。
【００６９】
その場合、状態管理部１０１がイベント通信バス１５２にイベントデータを出力する部分にバスコントローラ１５３を設け、状態管理部１０１が他の状態管理部１０１にイベントデータを出力するタイミングをバスコントローラ１５３で調節することが好適である。
【００７０】
専用のイベント通信配線１４５の場合、状態管理部１０１が多数であるとハードウェアが多量となるが、イベントデータを簡単に高速に伝送することができる。専用のイベント通信バスの場合、バス調停などの制御が必要でイベントデータを簡単に高速に伝送することは困難であるが、状態管理部１０１が多数となっても少量のハードウェアでイベントデータを自在に伝送することができる。
【００７１】
さらに、上記形態では状態管理部１０１が並列に入力される複数のイベントデータから入力選択回路１４６で１つを選択して入力し、その入力した１つのイベントデータを他の状態管理部１０１に伝送することを例示した。しかし、図９に示すように、状態管理部１０１が入力するイベントデータとは別個に出力選択回路１５４で１つのイベントデータを選択し、その選択した１つのイベントデータを他の状態管理部１０１に伝送することも可能である。
【００７２】
この場合、状態管理部１０１は、自身が入力するイベントデータと他へ出力するイベントデータとを別個に選択できるので、例えば、自身が入力したいイベントデータと他へ出力したいイベントデータとが相違する場合などに対応することができる。
【００７３】
なお、図面では並列な複数のイベント通信配線１４５の右側の１本が入力専用となっているが、これは後述する中央管理部からイベントデータが入力されるイベント通信配線１４５を想定しているためであり、中央管理部が存在しない場合には全部のイベント通信配線１４５を出力用にも選択可能とすることが好適である。中央管理部は全部の状態管理部１０１に共通のイベントデータを分配するので、これを状態管理部１０１が他の状態管理部１０１に出力する必要がない。
【００７４】
また、上記形態のアレイ型プロセッサ１００のように、全部の状態管理部１０１がイベント通信配線１４５で直接に相互に接続されている場合、ある状態管理部１０１から他の状態管理部１０１までイベントデータを伝送するときに第３の状態管理部１０１を介する必要がない。
【００７５】
このため、状態管理部１０１は他の状態管理部１０１から入力されたイベントデータを他の状態管理部１０１に出力する必要はなく、接続されているプロセッサエレメント１０２から入力されるイベントデータから１つを出力選択回路１５４で選択して他の状態管理部１０１に出力すれば良い。
【００７６】
また、上記形態では２行２列に配列されている４個の状態管理部１０１が、イベント通信配線１４５で周囲の八方の状態管理部１０１と接続されていることにより、結果的に状態管理部１０１の全部が相互に直接に接続されていることを例示した。
【００７７】
しかし、図１０に示すように、多数の状態管理部１０１が２行２列以上に配列されており、イベント通信配線１４５で周囲の八方の状態管理部１０１のみと接続されていることも可能であり、図１１に示すように、行列方向の四方の状態管理部１０１のみと接続されていることも可能である。
【００７８】
状態管理部１０１が多数となると全部をイベント通信配線１４５で相互に接続することは困難となるが、上述のように状態管理部１０１を近傍の一部の状態管理部１０１のみとイベント通信配線１４５で接続すれば、例えば、ある状態管理部１０１から四方に隣接していない状態管理部１０１までイベントデータを伝送するときなどにイベントデータの伝播速度がわずかに低下するが、ハードウェアを大幅に削減することができる。
【００７９】
また、上記形態のアレイ型プロセッサ１００では、ｍ／ｎｂレジスタファイル１１５，１１６やｍ／ｎｂＡＬＵ１１７，１１８を各々有しているプロセッサエレメント１０２がｍ／ｎｂバス１０９，１１０で接続されており、ｍ／ｎｂでデータ処理およびデータ通信を実行することを例示した。
【００８０】
しかし、三種類以上のビット数のハードウェアで三種類以上のビット数のデータ処理およびデータ通信を実行することも可能であり、一種類のビット数のハードウェアで一種類のビット数のデータ処理およびデータ通信を実行することも可能である。
【００８１】
また、上記形態のアレイ型プロセッサ１００では、隣接するプロセッサエレメント１０２とスイッチエレメント１０８とでインストラクションメモリ１１２を共用させ、プロセッサエレメント１０２とスイッチエレメント１０８との命令コードを１つのインストラクションポインタで発生させることを例示した。
【００８２】
しかし、プロセッサエレメント１０２とスイッチエレメント１０８とに専用のインストラクションメモリを個別に用意することも可能であり、プロセッサエレメント１０２とスイッチエレメント１０８との命令コードを各々専用のインストラクションポインタで個別に発生させることも可能である。
【００８３】
また、上記形態では図示と説明とを簡単とするため、プロセッサエレメント１０２の１個ごとにｍ／ｎｂバス１０９，１１０が行列方向に１本ずつ接続されていることを例示したが、実際にはプロセッサエレメント１０２の１個ごとにｍ／ｎｂバス１０９，１１０が数本ずつ接続されていることが好適である。
【００８４】
さらに、上記形態のアレイ型プロセッサ１００では、複数の状態管理部１０１が単純に同一レベルで相互通信して連携動作することを例示したが、例えば、複数の状態管理部１０１の１個を上位のマスタとして設定するとともに他を下位のスレーブとして設定することも可能であり、図１２に示すように、複数の状態管理部１０１の上位に専用の中央管理部１５５を設けることも可能である。
【００８５】
この場合、複数のエレメント領域１０５から個々に出力されるイベントデータの全部を中央管理部１５５に入力し、この中央管理部１５５が複数の状態管理部１０１にイベントデータを分配することが好適である。ただし、イベントデータの全部を中央管理部１５５に集約してから複数の状態管理部１０１に分配すると、隣接する状態管理部１０１が直接にイベントデータを伝送する場合などより速度が低下することがある。
【００８６】
また、中央管理部１５５から全部の状態管理部１０１にイベントデータを分配すると、全部の状態管理部１０１を一様に連携させることは容易であるが、多数の状態管理部１０１を複数に区分して連携させるようなことが困難となる。そこで、このような課題を解決するためには、図１３に示すように、イベント通信配線１４５で複数の状態管理部１０１を直接に接続するとともに、中央管理部１５５を複数の状態管理部１０１に接続することが好適である。
【００８７】
［第２の形態の構成］
ここで、上述のようなアレイ型プロセッサ２００を本発明の実施の第２の形態として図１３ないし図１５を参照して以下に説明する。なお、これより以下の説明では、それより以上の説明と同一の部分は、同一の名称および符号を使用して詳細な説明は省略する。
【００８８】
本形態のアレイ型プロセッサ２００では、図１３に示すように、８個の状態管理部１０１が２行４列に配列されており、その状態管理部１０１はイベント通信配線１４５で行列方向の四方の状態管理部１０１と直接に接続されている。また、８個の状態管理部１０１の中心には中央管理部１５５が配置されており、この中央管理部１５５がイベント通信配線１４５で８個の状態管理部１０１の全部に接続されている。
【００８９】
より詳細には、図１４に示すように、状態管理部１０１ごとにエレメント選択回路２０１と入力選択回路１４６とが設けられており、エレメント選択回路２０１は、そのエレメント領域１０５のプロセッサエレメント１０２から出力される複数のイベントデータから１つを選択する。
【００９０】
入力選択回路１４６は、エレメント選択回路２０１で選択されたイベントデータと、イベント通信配線１４５で他の状態管理部１０１から入力される複数のイベントデータから１つを選択し、その状態管理部１０１と他の状態管理部１０１とに出力する。
【００９１】
中央管理部１５５には第１／第２の入力選択回路２０３，２０４が設けられており、例えば、第１の入力選択回路２０３は、第１から第４のエレメント領域１０５−１〜４のプロセッサエレメント１０２から出力される複数のイベントデータから１つを選択し、第２の入力選択回路２０４は、第５から第８のエレメント領域１０５−５〜８のプロセッサエレメント１０２から出力される複数のイベントデータから１つを選択する。
【００９２】
［第２の形態の動作］
上述のような構成において、本実施の形態のアレイ型プロセッサ２００では、複数のエレメント領域１０５ごとにプロセッサエレメント１０２から出力されるイベントデータを中央管理部１５５に集約して複数の状態管理部１０１に一様に分配することができ、複数の状態管理部１０１が行列方向に隣接する状態管理部１０１にイベントデータを直接に伝送することもできる。
【００９３】
例えば、第４の状態管理部１０１−４や第６の状態管理部１０１−６が出力するイベントデータを全部の状態管理部１０１に分配する場合、図１５（ａ）に示すように、そのイベントデータを中央管理部１５５に伝送してから全部の状態管理部１０１に分配することもでき、図１５（ｂ）に示すように、中央管理部１５５を介することなく状態管理部１０１から隣接する状態管理部１０１に順次伝播させることもできる。
【００９４】
［第２の形態の変形例］
本発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形が可能である。例えば、上記形態では複数のエレメント領域１０５のプロセッサエレメント１０２から中央管理部１５５にイベントデータを入力することを例示したが、複数のエレメント領域１０５ごとにプロセッサエレメント１０２から状態管理部１０１を介して中央管理部１５５にイベントデータを入力することも可能である。
【００９５】
また、上記形態では中央管理部１５５が１つのイベントデータを全部の状態管理部１０１に一様に分配することを例示したが、例えば、中央管理部１５５が複数のイベントデータを多数の状態管理部１０１の複数組に区分して分配することも可能である。
【００９６】
例えば、中央管理部１５５を一度に２つのイベントデータを処理できるように形成し、１個の中央管理部１５５と多数の状態管理部１０１とを接続するイベント通信配線１４５の各々を２本としたり２ビット線とすれば、図１６に示すように、第４の状態管理部１０１−４と第６の状態管理部１０１−６とが並列に出力するイベントデータを、中央管理部１５５が第１行目の状態管理部１０１−１〜４と第２行目の状態管理部１０１−５〜８とに区分して分配し、第１行目と第２行目とのエレメントグループ１０５で相違するデータ処理を並列に実行することが可能である。
【００９７】
なお、このように多数の状態管理部１０１を複数に区分して動作させることは、図１７に示すように、中央管理部１５５を介することなくイベントデータを状態管理部１０１から隣接する状態管理部１０１に順次伝播させることでも可能である。
【００９８】
ただし、上述のようにイベントデータを複数の状態管理部１０１に順次伝播させることは速度の観点から好適ではないので、そのようなイベントデータは中央管理部１５５から分配することが好適である。しかし、このためには前述のように中央管理部１５５が一度に複数のイベントデータを管理できる必要があるので、本発明のアレイ型プロセッサを実施する場合には、各種条件を考慮して最適な方式を選択することが好適である。
【００９９】
さらに、例えば、第６の状態管理部１０１−６が出力するイベントデータを中央管理部１５５が第１から第６の状態管理部１０１−１〜６に分配するとともに、第８の状態管理部１０１−８が出力するイベントデータを隣接する第七の状態管理部１０１−７にイベント通信配線１４５で直接に伝送するようなことも可能である。この場合、中央管理部１５５が一度に１つのイベントデータしか管理しなくとも、エレメントグループ１０５を複数に区分して相違するデータ処理を並列に実行することが可能である。
【０１００】
【発明の効果】
本発明のアレイ型プロセッサでは、状態管理部が必要により相互通信して連携動作する複数からなり、この相互通信して連携動作する複数の状態管理部にイベント分配手段がイベントデータを分配することにより、大規模な状態遷移を複数の状態管理部が連携して管理するようなことを実行できる。
【図面の簡単な説明】
【図１】本発明の実施の第１の形態のアレイ型プロセッサでのイベントデータの通信経路を示す模式図である。
【図２】アレイ型プロセッサの物理構造を示す模式的なブロック図である。
【図３】アレイ型プロセッサのｍ／ｎｂバスなどの物理構造を示すブロック図である。
【図４】命令バスなどの物理構造を示すブロック図である。
【図５】入力選択手段である入力選択回路を示す回路図である。
【図６】アレイ型プロセッサでのイベントデータの通信経路を示す模式図である。
【図７】実施の第１の形態の第１の変形例のアレイ型プロセッサを示す模式図である。
【図８】第２の変形例の入力選択回路を示す回路図である。
【図９】第３の変形例の入力選択回路を示す回路図である。
【図１０】第４の変形例のアレイ型プロセッサを示す模式図である。
【図１１】第５の変形例のアレイ型プロセッサを示す模式図である。
【図１２】第６の変形例のアレイ型プロセッサを示す模式図である。
【図１３】実施の第２の形態のアレイ型プロセッサを示す模式図である。
【図１４】アレイ型プロセッサの要部を示す回路図である。
【図１５】アレイ型プロセッサの動作を示す模式図である。
【図１６】実施の第２の形態の変形例のアレイ型プロセッサの動作を示す模式図である。
【図１７】アレイ型プロセッサの動作を示す模式図である。
【図１８】アレイ型プロセッサの動作を示す模式図である。
【図１９】２つの状態遷移を１つに統合した状態を示す模式図である。
【符号の説明】
１００，２００    アレイ型プロセッサ
１０１    状態管理部
１０２    プロセッサエレメント
１０５    エレメント領域
１０８    スイッチエレメント
１０９    ｍｂデータバス
１１０    ｎｂデータバス
１４５，１５１    イベント分配手段であるイベント通信配線
１４６    入力選択手段である入力選択回路
１５２    イベント分配手段であるイベント通信バス
１５４    出力選択手段である出力選択回路
１５５    中央管理部
【図１】
2004151951.tif 000003
【図２】
2004151951.tif 000004
【図３】
2004151951.tif 000005
【図４】
2004151951.tif 000006
【図５】
2004151951.tif 000007
【図６】
2004151951.tif 000008
【図７】
2004151951.tif 000009
【図８】
2004151951.tif 000010
【図９】
2004151951.tif 000011
【図１０】
2004151951.tif 000012
【図１１】
2004151951.tif 000013
【図１２】
2004151951.tif 000014
【図１３】
2004151951.tif 000015
【図１４】
2004151951.tif 000016
【図１５】
2004151951.tif 000017
【図１６】
2004151951.tif 000018
【図１７】
2004151951.tif 000019
【図１８】
2004151951.tif 000020
【図１９】
2004151951.tif 000021