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