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