(57)【要約】【課題】  コンピュータプログラムのデータ容量が記憶容量を超過していても、そのコンピュータプログラムに対応した動作を実行できるアレイ型プロセッサを提供する。【解決手段】  アレイ型プロセッサが、コンピュータプログラムをデータ記憶している外部のプログラムメモリから所定個数の連携する一部の命令コードをデータ取得し、データ取得された所定個数の命令コードのみを一時保持して動作する。そして、一時保持した命令コードでの動作を完了するごとに継続する命令コードをデータ取得するので、コンピュータプログラムのデータ容量が記憶容量を超過していても、そのコンピュータプログラムに対応した動作が実行される。【選択図】  図１
2005222142.tif 000002
【特許請求の範囲】
【請求項１】
データパス部と状態管理部とを有しており、前記データパス部には複数のプロセッサエレメントおよび複数のスイッチエレメントがマトリクス配列されており、前記プロセッサエレメントは、順次遷移される複数の動作状態ごとにコンピュータプログラムにデータ記述されている命令コードに対応してデータ処理を個々に実行し、前記スイッチエレメントは、前記命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御し、前記状態管理部は、前記データパス部の前記動作状態ごとの前記命令コードからなるコンテキストを前記命令コードと適宜入力されるイベントデータとに対応して前記動作状態ごとに順次遷移させるアレイ型プロセッサであって、
前記コンピュータプログラムをデータ記憶している外部のプログラムメモリから所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得するコード取得手段も有しており、
前記状態管理部がデータ取得された所定個数の前記動作状態の命令コードのみを一時保持して動作するとともに前記データパス部がデータ取得された所定個数の前記コンテキストの命令コードのみを一時保持して動作し、
前記状態管理部と前記データパス部とが一時保持した前記命令コードでの動作を完了するごとに前記コード取得手段は継続する前記動作状態および前記コンテキストの前記命令コードをデータ取得するアレイ型プロセッサ。
【請求項２】
前記状態管理部は前記動作完了または初期状態を検出して継続不可のイベントデータを前記コード取得手段に出力し、
前記コード取得手段は、
前記継続不可のイベントデータが入力されるイベント入力手段と、
前記継続不可のイベントデータが入力されると前記状態管理部から現在の前記動作状態をデータ取得するとともに前記データパス部から次段の前記動作状態を指定する前記イベントデータを取得する状態取得手段と、
データ取得された前記動作状態と入力された前記イベントデータとに対応して継続する所定個数の前記動作状態の命令コードを前記プログラムメモリからデータ取得する動作取得手段と、
データ取得された前記命令コードの動作状態に対応する所定個数の前記コンテキストをデータ検出するコンテキスト検出手段と、
データ検出された前記コンテキストの命令コードを前記プログラムメモリからデータ取得するコンテキスト取得手段と、
データ取得された前記動作状態と前記コンテキストとの前記命令コードを前記状態管理部と前記データパス部とにデータ設定するコード設定手段と、
前記命令コードのデータ設定が完了すると動作開始のイベントデータを前記状態管理部に出力するイベント出力手段と、
を有しており、
前記状態管理部は前記動作開始のイベントデータが入力されると前記動作状態の順次遷移を開始する請求項１に記載のアレイ型プロセッサ。
【請求項３】
前記コード取得手段は、
前記コンテキスト検出手段でデータ検出された前記コンテキストと前記動作状態との対応関係をデータ生成する関係生成手段と、
データ生成された前記対応関係も前記状態管理部にデータ設定する関係設定手段と、
も有しており、
前記状態管理部はデータ設定された前記対応関係に対応して順次遷移させる前記動作状態ごとに前記データパス部の前記コンテキストを順次遷移させる請求項２に記載のアレイ型プロセッサ。
【請求項４】
前記コード取得手段は、
前回の複数の前記コンテキストと今回の複数の前記コンテキストとの重複を検出する重複検出手段と、
重複が検出された前記コンテキストの命令コードの前記プログラムメモリからのデータ取得と前記データパス部へのデータ設定とを無用とする更新制御手段と、
も有している請求項３に記載のアレイ型プロセッサ。
【請求項５】
前記コード取得手段は、
前記コンテキストの複数種類の更新手法が更新コストとともにデータ登録されている更新記憶手段と、
前回の複数の前記コンテキストと今回の複数の前記コンテキストとの組み合わせから前記更新コストの合計が最少となる前記更新手法をデータ検出する手法検出手段と、
データ検出された前記更新手法で前記データパス部の前記コンテキストのデータ更新を実行させる更新制御手段と、
も有している請求項３または４に記載のアレイ型プロセッサ。
【請求項６】
前記更新制御手段は、前記更新記憶手段にデータ登録されていて前記手法検出手段にデータ検出される前記更新手法として前回と今回との前記コンテキストで相違する前記命令コードのみ前記コンテキスト取得手段にデータ取得させて今回の前記命令コードを前回との差分のみ前記コード設定手段にデータ設定させる請求項５に記載のアレイ型プロセッサ。
【請求項７】
前記更新制御手段は、前回と今回との前記コンテキストで相違する前記命令コードが複数の場合に前記差分の前記更新コストの合計が最少となる組み合わせを選択する請求項６に記載のアレイ型プロセッサ。
【請求項８】
前記データパス部は、所定個数の前記コンテキストごとに前記命令コードを一時保持するコンテキスト記憶手段と、一時保持されている前記命令コードを前記コンテキストごとに一括に初期化するコード初期化手段と、を有しており、
前記更新制御手段は、前記更新記憶手段にデータ登録されていて前記手法検出手段にデータ検出される前記更新手法として前回と今回との前記コンテキストの所定の組み合わせでは前回の前記コンテキストを前記コード初期化手段に初期化させてから今回の前記コンテキストを前記コード設定手段にデータ設定させる請求項５ないし７の何れか一項に記載のアレイ型プロセッサ。
【請求項９】
前記データパス部は、所定個数の前記コンテキストごとに前記命令コードを一時保持するコンテキスト記憶手段と、前記コンテキスト記憶手段に一時保持されている任意の前記コンテキストの命令コードを任意の前記コンテキストの命令コードに一括に上書きするコード上書手段と、を有しており、
前記更新制御手段は、前記更新記憶手段にデータ登録されていて前記手法検出手段にデータ検出される前記更新手法として前回と今回との複数の前記コンテキストの所定の組み合わせでは対応する前回の前記コンテキストを前回の他の前記コンテキストで前記コード上書手段に上書きさせてから今回の前記コンテキストと相違する前記命令コードのみ前記コンテキスト取得手段にデータ取得させて前記コード設定手段にデータ設定させる請求項５ないし８の何れか一項に記載のアレイ型プロセッサ。
【請求項１０】
前記プログラムメモリに複数の前記コンピュータプログラムがデータ格納されており、
前記状態管理部は複数の前記動作状態ごとに前記命令コードを一時保持する状態記憶手段を有しており、
前記データパス部は複数の前記コンテキストごとに前記命令コードを一時保持するコンテキスト記憶手段を有しており、
複数の前記コンピュータプログラムの対応する前記動作状態と前記コンテキストとの前記命令コードが前記状態記憶手段と前記コンテキスト記憶手段とで一時保持され、
一時保持された複数の前記コンピュータプログラムの１つで前記状態管理部と前記データパス部とが動作しているときに前記コード取得手段が他の前記コンピュータプログラムの所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得する請求項１ないし９の何れか一項に記載のアレイ型プロセッサ。
【請求項１１】
前記イベント入力手段にプログラム切換の前記イベントデータが入力されると前記状態管理部と前記データパス部との動作を停止させる動作停止手段と、
停止した前記状態管理部の前記動作状態と前記データパス部の前記処理データとをデータ取得する停止取得手段と、
データ取得された前記動作状態と前記処理データとを複数の前記コンピュータプログラムごとに一時保持する停止保持手段と、
前記一時保持が完了すると他の前記コンピュータプログラムの前記動作状態と前記処理データとを前記停止保持手段からデータ読出して前記状態管理部と前記データパス部とにデータ設定する切換設定手段と、
も有しており、
前記イベント出力手段は前記データ設定が完了すると動作開始のイベントデータを前記状態管理部に出力し、
前記状態管理部は前記動作開始のイベントデータが入力されると前記動作状態の順次遷移を開始する請求項１０に記載のアレイ型プロセッサ。
【請求項１２】
前記状態記憶手段と前記コンテキスト記憶手段とで前記命令コードが一部のみ一時保持されている複数の前記コンピュータプログラムの優先度を検出する優先検出手段と、
前記状態記憶手段と前記コンテキスト記憶手段とで一部のみ一時保持される前記命令コードの個数を前記優先度に対応して複数の前記コンピュータプログラムで相互に増減させるコード増減手段も有している請求項１０または１１に記載のアレイ型プロセッサ。
【請求項１３】
前記優先検出手段は、前記状態記憶手段と前記コンテキスト記憶手段とで一時保持されている複数の前記コンピュータプログラムの一部の前記命令コードごとに使用頻度を前記優先度として積算し、
前記コード増減手段は、前記使用頻度が低い前記命令コードを優先的に削減させる請求項１２に記載のアレイ型プロセッサ。
【請求項１４】
データ処理装置とプログラムメモリとが接続されているデータ処理システムであって、
前記データ処理装置が請求項１ないし１３の何れか一項に記載のアレイ型プロセッサからなり、
このアレイ型プロセッサの前記コンピュータプログラムを前記プログラムメモリがデータ記憶しているデータ処理システム。
【請求項１５】
コンピュータプログラムとイベントデータとに対応して各種のデータ処理を各々実行する複数のデータ処理装置が並列に接続されており、
複数の前記データ処理装置の少なくとも１個がアレイ型プロセッサからなり、
このアレイ型プロセッサの前記コンピュータプログラムをデータ記憶しているプログラムメモリも有しており、
前記アレイ型プロセッサが、データパス部と状態管理部とを有しており、前記データパス部には複数のプロセッサエレメントおよび複数のスイッチエレメントがマトリクス配列されており、前記プロセッサエレメントは、順次遷移される複数の動作状態ごとに前記コンピュータプログラムにデータ記述されている命令コードに対応してデータ処理を個々に実行し、前記スイッチエレメントは、前記命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御し、前記状態管理部は、前記データパス部の前記動作状態ごとの前記命令コードからなるコンテキストを前記命令コードと適宜入力されるイベントデータとに対応して前記動作状態ごとに順次遷移させる、データ処理システムであって、
複数の前記データ処理装置の少なくとも１個が、前記プログラムメモリから所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得するコード取得手段を有しており、
前記アレイ型プロセッサの前記状態管理部がデータ取得された所定個数の前記動作状態の命令コードのみを一時保持して動作するとともに前記データパス部がデータ取得された所定個数の前記コンテキストの命令コードのみを一時保持して動作し、
前記状態管理部と前記データパス部とが一時保持した前記命令コードでの動作を完了するごとに前記コード取得手段は継続する前記動作状態および前記コンテキストの前記命令コードをデータ取得するデータ処理システム。
【請求項１６】
請求項１５に記載のデータ処理システムの前記アレイ型プロセッサではない前記データ処理装置であって、
前記プログラムメモリから所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得するコード取得手段を有しているデータ処理装置。
【請求項１７】
請求項１６に記載のデータ処理装置のためのコンピュータプログラムであって、
前記アレイ型プロセッサの前記コンピュータプログラムをデータ記憶している外部のプログラムメモリから所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得することを前記データ処理装置に実行させるためのコンピュータプログラム。
【請求項１８】
アレイ型プロセッサと、前記アレイ型プロセッサのコンピュータプログラムをデータ記憶しているプログラムメモリと、が接続されており、
前記アレイ型プロセッサが、データパス部と状態管理部とを有しており、前記データパス部には複数のプロセッサエレメントおよび複数のスイッチエレメントがマトリクス配列されており、前記プロセッサエレメントは、順次遷移される複数の動作状態ごとに前記コンピュータプログラムにデータ記述されている命令コードに対応してデータ処理を個々に実行し、前記スイッチエレメントは、前記命令コードに対応して複数の前記プロセッサエレメントの接続関係を個々に切換制御し、前記状態管理部は、前記データパス部の前記動作状態ごとの前記命令コードからなるコンテキストを前記命令コードと適宜入力されるイベントデータとに対応して前記動作状態ごとに順次遷移させる、データ処理システムであって、
前記プログラムメモリから所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得するコード取得回路も前記アレイ型プロセッサに接続されており、
このアレイ型プロセッサの前記状態管理部がデータ取得された所定個数の前記動作状態の命令コードのみを一時保持して動作するとともに前記データパス部がデータ取得された所定個数の前記コンテキストの命令コードのみを一時保持して動作し、
前記状態管理部と前記データパス部とが一時保持した前記命令コードでの動作を完了するごとに前記コード取得回路は継続する前記動作状態および前記コンテキストの前記命令コードをデータ取得するデータ処理システム。
【請求項１９】
請求項１８に記載のデータ処理システムのコード取得回路であって、
前記プログラムメモリから所定個数の連携する一部の前記動作状態の命令コードを対応する一部の前記コンテキストの命令コードとともにデータ取得するコード取得回路。
【請求項２０】
前記プログラムメモリと一体に形成されている請求項１９に記載のコード取得回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、状態管理部とデータパス部とを有しており、データパス部に複数のプロセッサエレメントと複数のスイッチエレメントとがマトリクス配列されているアレイ型プロセッサに関する。
【背景技術】
【０００２】
現在、各種のデータ処理を自在に実行できるプロセッサユニットとしては、いわゆるＣＰＵ(Central Processing Unit)やＭＰＵ(Micro Processor Unit)と呼称される製品が実用化されている。
【０００３】
このようなプロセッサユニットを利用したデータ処理システムでは、複数の動作命令が記述された各種のオブジェクトコードと各種の処理データとがメモリデバイスに格納され、プロセッサユニットはメモリデバイスから動作命令や処理データを順番にデータ読出して複数のデータ処理を逐次実行する。
【０００４】
このため、一個のプロセッサユニットで各種のデータ処理を実現できるが、そのデータ処理では複数のデータ処理を順番に逐次実行する必要があり、その逐次処理ごとにプロセッサユニットがメモリデバイスから動作命令をデータ読出する必要があるので、複雑なデータ処理を高速に実行することは困難である。
【０００５】
一方、実行するデータ処理が１つに限定されている場合には、そのデータ処理を実行するように論理回路をハードウェアで形成すれば、プロセッサユニットがメモリデバイスから複数の動作命令を順番にデータ読出して複数のデータ処理を順番に逐次実行するような必要はない。このため、複雑なデータ処理を高速に実行することが可能であるが、当然ながら１つのデータ処理しか実行することができない。
【０００６】
つまり、オブジェクトコードを切換自在としたデータ処理システムでは、各種のデータ処理を実行できるが、ハードウェアの構成が固定されているのでデータ処理を高速に実行することが困難である。一方、ハードウェアからなる論理回路では、データ処理を高速に実行することが可能であるが、オブジェクトコードを変更できないので１つのデータ処理しか実行できない。
【０００７】
このような課題を解決するため、本出願人はソフトウェアに対応してハードウェアの構成が変化するプロセッサユニットとしてアレイ型プロセッサを創案した。このアレイ型プロセッサでは、小規模の多数のプロセッサエレメントとスイッチエレメントとがマトリクス配列されており、このデータパス部に状態管理部が並設されている。
【０００８】
複数のプロセッサエレメントは、個々にデータ設定される動作命令に対応してデータ処理を個々に実行し、複数のスイッチエレメントは、個々にデータ設定される動作命令に対応して複数のプロセッサエレメントの接続関係を個々に切換制御する。
【０００９】
つまり、アレイ型プロセッサは複数のプロセッサエレメントと複数のスイッチエレメントとの動作命令を切り換えることでハードウェアの構成が変化するので、各種のデータ処理を実行することができ、ハードウェアとして小規模の多数のプロセッサエレメントが簡単なデータ処理を並列に実行するので、全体では複雑なデータ処理を高速に実行することができる。
【００１０】
そして、上述のような複数のプロセッサエレメントと複数のスイッチエレメントとの動作命令からなるコンテキストを状態管理部がオブジェクトコードに対応して動作サイクルごとに順次切り換えるので、アレイ型プロセッサはオブジェクトコードに対応して並列処理を連続的に実行することができる(例えば、特許文献１〜７、非特許文献１参照)。
【００１１】
さらに、複数のデータ処理装置を並列に接続して煩雑なデータ処理を分担するデータ処理システムも実用化されており、このようなデータ処理システムとしては、同一構造の複数のデータ処理装置を接続した同種結合タイプと、構造が相違する複数のデータ処理装置を接続した異種結合タイプとがある。
【００１２】
同種結合タイプのデータ処理システムでは、１つのデータ処理を同一構造の複数のデータ処理装置で分担するので、高い並列度でデータ処理を実行することができる。異種結合タイプのデータ処理システムでは、１つのデータ処理を複数種類のデータ処理装置で分担するので、データ処理装置ごとに得意のデータ処理を実行することができる。そして、上述のような異種結合タイプのデータ処理システムとして、一般的なＭＰＵとアレイ型プロセッサとを混載したものも、本出願人は提案した(例えば、特許文献８参照)。
。
【特許文献１】特許３２６９５２６号
【特許文献２】特開２０００−１３８５７９号
【特許文献３】特開２０００−２２４０２５号
【特許文献４】特開２０００−２３２３５４号
【特許文献５】特開２０００−２３２１６２号
【特許文献６】特開２００３−０７６６６８号
【特許文献７】特開２００３−０９９４０９号
【特許文献８】特開２００３−１９６２４８号
【非特許文献１】“Introduction to the Configurable, Highly Parallel Computer”、Lawrence Snyder著、Purdue University、“IEEE Computer, vol.15, No.1, Jan. 1982, pp47-56”
【発明の開示】
【発明が解決しようとする課題】
【００１３】
上述のようなアレイ型プロセッサを実際に使用する場合、そのオブジェクトコードであるコンピュータプログラムをプログラムメモリにデータ格納し、そのプログラムメモリをアレイ型プロセッサにシステムバスなどで接続することになる。そして、アレイ型プロセッサは、外部のプログラムメモリからコンピュータプログラムをデータ取得してデータ保持し、そのデータ保持したコンピュータプログラムに対応して動作する。
【００１４】
しかし、アレイ型プロセッサがコンピュータプログラムをデータ記憶する記憶容量は有限であるが、そのコンピュータプログラムはアレイ型プロセッサの利用者が自由に作成するため、コンピュータプログラムのデータ容量がアレイ型プロセッサの記憶容量を超過する可能性がある。
【００１５】
これを防止するためには、アレイ型プロセッサの記憶容量を充分に確保しておくことが想定できるが、それではアレイ型プロセッサの回路規模が増大して回路サイズと製造コストも増加することになり、コンピュータプログラムが小容量の場合にはアレイ型プロセッサの記憶容量が無駄となる。
【００１６】
本発明は上述のような課題に鑑みてなされたものであり、コンピュータプログラムのデータ容量が記憶容量を超過していても、そのコンピュータプログラムに対応した動作を実行できるアレイ型プロセッサを提供することを目的とする。
【課題を解決するための手段】
【００１７】
本発明のアレイ型プロセッサは、データパス部、状態管理部、コード取得手段、を有しており、データパス部には、複数のプロセッサエレメントと複数のスイッチエレメントとがマトリクス配列されている。複数のプロセッサエレメントは、順次遷移される複数の動作状態ごとにコンピュータプログラムにデータ記述されている命令コードに対応してデータ処理を個々に実行し、複数のスイッチエレメントは、命令コードに対応して複数のプロセッサエレメントの接続関係を個々に切換制御し、状態管理部は、データパス部の動作状態ごとの命令コードからなるコンテキストを命令コードと適宜入力されるイベントデータとに対応して動作状態ごとに順次遷移させる。
【００１８】
ただし、コード取得手段は、コンピュータプログラムをデータ記憶している外部のプログラムメモリから所定個数の連携する一部の動作状態の命令コードを対応する一部のコンテキストの命令コードとともにデータ取得するので、状態管理部は、データ取得された所定個数の動作状態の命令コードのみを一時保持して動作するとともにデータパス部がデータ取得された所定個数のコンテキストの命令コードのみを一時保持して動作する。そして、状態管理部とデータパス部とが一時保持した命令コードでの動作を完了するごとにコード取得手段は継続する動作状態およびコンテキストの命令コードをデータ取得するので、コンピュータプログラムのデータ容量が記憶容量を超過していても、そのコンピュータプログラムに対応した動作が実行される。
【００１９】
なお、本発明で云う各種手段は、その機能を実現するように形成されていれば良く、例えば、所定の機能を発揮する専用のハードウェア、所定の機能がコンピュータプログラムにより付与されたデータ処理装置、コンピュータプログラムによりデータ処理装置に実現された所定の機能、これらの組み合わせ、等として実現することができる。
【００２０】
また、本発明で云う各種手段は、かならずしも個々に独立した存在である必要はなく、複数の手段が１個の部材として形成されていること、ある手段が他の手段の一部であること、ある手段の一部と他の手段の一部とが重複していること、等も可能である。
【００２１】
また、本発明で云うデータ処理装置とは、コンピュータプログラムをデータ読取して対応するデータ処理を実行できるハードウェアであれば良く、例えば、ＭＰＵを主体として、これに、ＲＯＭ、ＲＡＭ(Random Access Memory)、Ｉ／Ｆ(Interface)ユニット、等の各種デバイスが接続されたハードウェアなどで良い。
【００２２】
また、本発明で云うイベントデータとは、状態管理部やデータパス部などが各種動作を実行するために各種情報を相互に通達するもので、例えば、データパス部が状態管理部に動作状態を次段に遷移させることを通達する所定コード、状態管理部が初期状態や現在の動作状態や動作遷移の継続不可をコード取得手段に通達する所定コード、コード取得手段が状態管理部に動作開始を通達する所定コード、等からなる。
【発明の効果】
【００２３】
本発明のアレイ型プロセッサは、コンピュータプログラムのデータ容量が記憶容量を超過していても、そのコンピュータプログラムに対応した動作を実行することができるので、無為に回路規模を増大させることなく各種容量のコンピュータプログラムに対応することができる。
【発明を実施するための最良の形態】
【００２４】
［実施の形態の構成］
本発明の実施の一形態を図面を参照して以下に説明する。本実施の形態のデータ処理システム１０００は、図１に示すように、複数のデータ処理装置として１個のアレイ型プロセッサ１００と１個のＭＰＵ２００とを有しており、これらのアレイ型プロセッサ１００とＭＰＵ２００とが外部バス３００とデータライン３０１とで互いに接続されている。
【００２５】
また、データ処理システム１０００では、アレイ型プロセッサ１００のコンピュータプログラムが格納されているプログラムメモリ３０２と、ＭＰＵ２００のコンピュータプログラムが格納されているプログラムメモリ３０３と、が各々専用に設けられており、これらが外部バス３００に接続されている。
【００２６】
アレイ型プロセッサ１００は、自身のコンピュータプログラムをプログラムメモリ３０２からデータ読出し、そのコンピュータプログラムに対応してデータ処理を実行する。そのとき、入力される処理データがデータパス部１０６でデータ処理されて出力され、そのデータ処理に対応してデータパス部１０６でイベントデータが発行される。
【００２７】
また、ＭＰＵ２００は、Ｉ／Ｆ回路、プロセッサコア、内部レジスタ、等のハードウェアを有しており（図示せず）、プログラムメモリ３０３に格納されているコンピュータプログラムに対応して動作することにより、データ入力手段、データ処理手段、データ記憶手段、データ出力手段、等の各種手段が各種機能として論理的に形成されている。
【００２８】
データ入力手段は、コンピュータプログラムに対応してプロセッサコアがＩ／Ｆ回路の入力データを認識する機能に相当し、処理データとイベントデータとが入力される。データ処理手段は、プロセッサコアがデータ処理を実行する機能に相当し、入力される処理データをコンピュータプログラムとイベントデータとに対応してデータ処理する。
【００２９】
データ記憶手段は、プロセッサコアが処理データを内部レジスタに格納する機能に相当し、処理データなどの各種データを一時記憶する。データ出力手段は、プロセッサコアがＩ／Ｆ回路のデータ出力を制御する機能に相当し、処理された処理データとイベントデータとを出力する。
【００３０】
ただし、データ処理システム１０００のＭＰＵ２００は、処理データの少なくとも一部とイベントデータとをアレイ型プロセッサ１００から入力し、データ処理の少なくとも一部に対応して新規のイベントデータを発行し、処理データの少なくとも一部と新規に発行されたイベントデータとをアレイ型プロセッサ１００に出力する。
【００３１】
アレイ型プロセッサ１００は、Ｉ／Ｆ回路１０１、プロセッサコア１０２、仮想認識手段でありアドレス発行回路であるメモリコントローラ１０３、データ読出回路であるリードマルチプレクサ１０４、等を有しており、プロセッサコア１０２は、図１および図３に示すように、状態管理部１０５とデータパス部１０６とを有している。
【００３２】
データパス部１０６は、図２および図３に示すように、複数のプロセッサエレメント１０７、複数のスイッチエレメント１０８、データバスの一部である多数のｍｂ(ｍ-bit)バス１０９、データバスの一部である多数のｎｂ(ｎ-bit)バス１１０、等を有しており、複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８とがマトリクス配列されて多数のｍ／ｎｂバス１０９，１１０によりマトリクス接続されている。
【００３３】
また、図２(ｂ)に示すように、プロセッサエレメント１０７は、メモリ制御回路１１１、コンテキスト記憶手段であるインストラクションメモリ１１２、インストラクションデコーダ１１３、ｍｂレジスタファイル１１５、ｎｂレジスタファイル１１６、ｍｂＡＬＵ(Arithmetic and Logical Unit)１１７、ｎｂＡＬＵ１１８、内部可変配線（図示せず）、等を各々有しており、スイッチエレメント１０８は、バスコネクタ１２１、入力制御回路１２２、出力制御回路１２３、等を各々有している。
【００３４】
Ｉ／Ｆユニット１０１は、図１に示すように、プロトコル制御部１３１、コード取得手段であるコード取得回路１５０、メモリアクセス部１３２、同期制御回路１３３、を有しており、これらが順番に接続されている。プロトコル制御部１３１は、外部バス３００に接続されており、メモリアクセス部１３２は、メモリコントローラ１０３とリードマルチプレクサ１０４とに接続されており、同期制御回路１３３は、プロセッサコア１０２の状態管理部１０５とデータパス部１０６とに接続されている。
【００３５】
プロトコル制御部１３１は、外部バス３００と共通のバスプロトコルがデータ設定されており、このバスプロトコルに対応して外部バス３００と各種データを通信するとともに、より単純な手法でコード取得回路１５０を介してメモリアクセス部１３２と各種データを通信する。
【００３６】
このメモリアクセス部１３２は、図１に示すように、ＭＰＵ２００から外部バス３００を介してプロトコル制御部１３１に入力される各種データをメモリコントローラ１０３とデータパス部１０６と同期制御回路１３３とに伝送し、これらから伝送される各種データをプロトコル制御部１３１から外部バス３００を介してＭＰＵ２００に出力する。
【００３７】
同期制御回路１３３は、ＭＰＵ２００から外部バス３００を介してプロトコル制御部１３１に入力されるイベントデータを一時保持するとともに、状態管理部１０５から入力されるイベントデータを一時保持する。
【００３８】
図１に示すように、ＭＰＵ２００から同期制御回路１３３に入力されて一時保持されたイベントデータはデータパス部１０６を介して状態管理部１０５に取得され、状態管理部１０５から同期制御回路１３３に入力されて一時保持されたイベントデータはＭＰＵ２００に取得される。
【００３９】
メモリコントローラ１０３は、Ｉ／Ｆユニット１０１のメモリアクセス部１３２から伝送される各種データをプロセッサコア１０２の状態管理部１０５とデータパス部１０６とに伝送し、リードマルチプレクサ１０４は、状態管理部１０５やデータパス部１０６の保持データを読み出してメモリアクセス部１３２に伝送する。
【００４０】
より詳細には、図３に示すように、状態管理部１０５は、インストラクションデコーダ１３８、遷移テーブルメモリ１３９、状態記憶手段であるインストラクションメモリ１４０、ステートメモリ１４１、を有しており、そのインストラクションデコーダ１３８は命令バス１４２でメモリコントローラ１０３に接続されている。
【００４１】
さらに、インストラクションデコーダ１３８は遷移テーブルメモリ１３９とインストラクションメモリ１４０とに接続されており、その遷移テーブルメモリ１３９はステートメモリ１４１に接続されている。
【００４２】
また、前述のようにリードマルチプレクサ１０４は状態管理部１０５やデータパス部１０６の保持データを読み出すので、状態管理部１０５の各種メモリ１３９〜１４１がデータバス１４３で接続されており、データパス部１０６のプロセッサ／スイッチエレメント１０７、１０８がｍ／ｎｂデータバス１０９，１１０で接続されている。
【００４３】
また、プロセッサエレメント１０７は、図３および図６に示すように、Ｘ行Ｙ列(ＸとＹとは“２”以上の自然数)に配列されており、メモリコントローラ１０３からリードマルチプレクサ１０４まで並列に接続されたＸ行の命令バス１４２が１行ごとにＹ列のプロセッサエレメント１０７のメモリ制御回路１１１に接続されている。
【００４４】
さらに、状態管理部１０５の１個のインストラクションデコーダ１３８にはＹ列のアドレスバス１４４が接続されており、このアドレスバス１４４が１列ごとにＸ行のプロセッサエレメント１０７のメモリ制御回路１１１に接続されている。
【００４５】
プログラムメモリ３０２にデータ格納されているアレイ型プロセッサ１００のコンピュータプログラムは、データパス部１０６にマトリクス配列された複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８との命令コードが、順次切り換わるコンテキストとしてデータ記述されており、このコンテキストを動作サイクルごとに切り換える状態管理部１０５の命令コードが、順次遷移する動作状態としてデータ記述されており、順次遷移される複数の動作状態の相対関係が遷移ルールとしてデータ記述されている。
【００４６】
このため、状態管理部１０５では、詳細には後述するが、コード取得回路１５０によりプログラムメモリ３０２からデータ読出されるコンピュータプログラムがインストラクションデコーダ１３８でデコードされ、その命令コードがインストラクションメモリ１４０にデータ格納されるとともに、複数の動作状態の遷移ルールが遷移テーブルメモリ１３９にデータ格納される。
【００４７】
状態管理部１０５は、遷移テーブルメモリ１３９の遷移ルールに対応して動作状態を順次遷移させ、インストラクションメモリ１４０の命令コードに対応して複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８とのインストラクションポインタを各々発生する。
【００４８】
なお、遷移テーブルメモリ１３９で一時保持されている遷移ルールにより現在の動作状態が判明するので、この現在の動作状態がステートメモリ１４１に一時保持される。さらに、インストラクションメモリ１４０には複数の動作状態に対応した複数の命令コードがデータ格納されるので、その複数のアドレスデータもメモリコントローラ１０３から状態管理部１０５に伝送される。
【００４９】
また、状態管理部１０５に命令バス１４２で伝送される命令コードには、命令コードがデータ格納されるプロセッサエレメント１０７のアドレスデータもエンコードされてデータ設定されているので、これがインストラクションデコーダ１３８でデコードされ、Ｙ列のアドレスバス１４４から選択された１つで一列のプロセッサエレメント１０７に伝送される。
【００５０】
同時に、プロセッサエレメント１０７のインストラクションメモリ１１２に命令コードがデータ格納されるとき、メモリコントローラ１０３によりＸ行の命令バス１４２から１つが選択されて命令コードが伝送される。これで１個のプロセッサエレメント１０７に命令コードとアドレスデータとが伝送されるので、そのアドレスデータに対応したインストラクションメモリ１１２の１つのアドレス空間に命令コードがデータ格納される。
【００５１】
図２(ｂ)に示すように、スイッチエレメント１０８は、隣接するプロセッサエレメント１０７のインストラクションメモリ１１２を共用しているので、状態管理部１０５は、発生したプロセッサエレメント１０７とスイッチエレメント１０８との１組のインストラクションポインタを対応するプロセッサエレメント１０７のインストラクションメモリ１１２に供給する。
【００５２】
このインストラクションメモリ１１２は、プログラムメモリ３０２からデータ読出されるプロセッサエレメント１０７とスイッチエレメント１０８との命令コードを一時保持するので、状態管理部１０５から供給されるインストラクションポインタでプロセッサエレメント１０７とスイッチエレメント１０８との命令コードが指定される。インストラクションデコーダ１１３は、インストラクションポインタで指定された命令コードをデコードし、スイッチエレメント１０８、内部可変配線、ｍ／ｎｂＡＬＵ１１７，１１８、等の動作を制御する。
【００５３】
ｍｂバス１０９はｍｂである“８(bit)”の処理データを伝送し、ｎｂバス１１０はｎｂである“１(bit)”の処理データを伝送するので、スイッチエレメント１０８は、インストラクションデコーダ１１３の動作制御に対応してｍ／ｎｂバス１０９，１１０による複数のプロセッサエレメント１０７の接続関係を制御する。
【００５４】
より詳細には、スイッチエレメント１０８のバスコネクタ１２１は、ｍｂバス１０９とｎｂバス１１０とが四方から連通しており、このように連通している複数のｍｂバス１０９の互いの接続関係と連通する複数のｎｂバス１１０の互いの接続関係とを制御する。
【００５５】
このため、アレイ型プロセッサ１００は、プログラムメモリ３０２にデータ設定されたコンピュータプログラムに対応して状態管理部１０５がデータパス部１０６のコンテキストを動作サイクルごとに順次切り換え、その段階ごとに複数のプロセッサエレメント１０７は個々に設定自在なデータ処理で並列動作する。
【００５６】
入力制御回路１２２は、図２(ｂ)に示すように、ｍｂバス１０９からｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７へのデータ入力の接続関係と、ｎｂバス１１０からｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８へのデータ入力の接続関係とを制御する。
【００５７】
出力制御回路１２３は、ｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７からｍｂバス１０９へのデータ出力の接続関係と、ｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８からｎｂバス１１０へのデータ出力の接続関係とを制御する。
【００５８】
プロセッサエレメント１０７の内部可変配線は、インストラクションデコーダ１１３の動作制御に対応して、プロセッサエレメント１０７の内部でのｍｂレジスタファイル１１５およびｍｂＡＬＵ１１７の接続関係とｎｂレジスタファイル１１６およびｎｂＡＬＵ１１８の接続関係とを制御する。
【００５９】
ｍｂレジスタファイル１１５は、内部可変配線に制御される接続関係に対応して、ｍｂバス１０９などから入力されるｍｂの処理データを一時保持してｍｂＡＬＵ１１７などに出力する。ｎｂレジスタファイル１１６は、内部可変配線に制御される接続関係に対応して、ｎｂバス１１０などから入力されるｎｂの処理データを一時保持してｎｂＡＬＵ１１８などに出力する。
【００６０】
ｍｂＡＬＵ１１７は、インストラクションデコーダ１１３の動作制御に対応したデータ処理をｍｂの処理データで実行し、ｎｂＡＬＵ１１８は、インストラクションデコーダ１１３の動作制御に対応したデータ処理をｎｂの処理データで実行するので、処理データのビット数に対応してｍ／ｎｂのデータ処理が適宜実行される。
【００６１】
このデータパス部１０６での処理結果は必要により状態管理部１０５にイベントデータとしてフィードバックされるので、この状態管理部１０５は入力されたイベントデータにより動作状態を次段の動作状態に遷移させるとともにデータパス部１０６のコンテキストを次段のコンテキストに切り換える。
【００６２】
本形態のアレイ型プロセッサ１００は、基本的に上述のようにプログラムメモリ３０２から命令コードをデータ読出して状態管理部１０５とデータパス部１０６とに一時保持させることで、その状態管理部１０５とデータパス部１０６とが命令コードに対応して動作する。
【００６３】
しかし、状態管理部１０５とデータパス部１０６とは命令コードを所定個数ずつしか一時保持できないので、プログラムメモリ３０２にコンピュータプログラムとしてデータ格納されている一連の命令コードを状態管理部１０５とデータパス部１０６とが全部は一時保持できないこともある。
【００６４】
このような場合、Ｉ／Ｆユニット１０１のコード取得回路１５０が、プログラムメモリ３０２から所定個数の連携する一部の動作状態の命令コードを対応する一部のコンテキストの命令コードとともにデータ取得するので、状態管理部１０５は、データ取得された所定個数の動作状態の命令コードのみを一時保持して動作し、データパス部１０６は、データ取得された所定個数のコンテキストの命令コードのみを一時保持して動作する。
【００６５】
そして、状態管理部１０５とデータパス部１０６とが一時保持した命令コードでの動作を完了するごとにコード取得回路１５０は継続する動作状態およびコンテキストの命令コードをデータ取得するので、アレイ型プロセッサ１００はコンピュータプログラムを一部しか保持できなくとも一連の動作を実行することができる。
【００６６】
より具体的には、コード取得回路１５０は、例えば、ＡＳＩＣ(Application Specific Integrated Circuit)からなり、図４に示すように、イベント入力手段であるイベント入力回路１５１、状態取得手段である状態取得回路１５２、動作取得手段である動作取得回路１５３、コンテキスト検出手段であるコンテキスト検出回路１５４、コンテキスト取得手段であるコンテキスト取得回路１５６、コード設定手段であるコード設定回路１５７、イベント出力手段であるイベント出力回路１５８、関係生成手段である関係生成回路１５９、関係設定手段である関係設定回路１６１、重複検出手段である重複検出回路１６２、更新制御手段である更新制御回路１６３、等をハードウェアとして有している。
【００６７】
状態管理部１０５は、命令コードを一時保持していない初期状態か、所定個数だけ一時保持した命令コードでの動作完了か、を検出すると継続不可のイベントデータをコード取得回路１５０に出力する。このコード取得回路１５０のイベント入力回路１５１は、例えば、Ｉ／Ｏ(Input／Output)ポートなどに相当し、状態管理部１０５から入力される継続不可のイベントデータを受け付ける。
【００６８】
状態取得回路１５２は、イベント入力回路１５１に継続不可のイベントデータが入力されると状態管理部１０５のステートメモリ１４１から現在の動作状態をデータ取得するとともに、データパス部１０６から次段の動作状態を指定するイベントデータを取得する。動作取得回路１５３は、状態取得回路１５２でデータ取得された動作状態とイベントデータとに対応して継続する所定個数の動作状態の命令コードを所定のアルゴリズムによりプログラムメモリ３０２からデータ取得する。
【００６９】
つまり、本形態のアレイ型プロセッサ１００は、前述のように状態管理部１０５が動作状態を次段に遷移させるとともに、データパス部１０６のコンテキストを次段に遷移させることで動作するが、その場合、データパス部１０６は、データ設定されたコンテキストでデータ処理を実行すると、次段のコンテキストに移行するために次段の動作状態を指定するイベントデータを状態管理部１０５に出力する。
【００７０】
そこで、この状態管理部１０５は入力されたイベントデータに対応して自身の動作状態を次段に遷移させるとともに、データパス部１０６のコンテキストを次段に遷移させる。このため、アレイ型プロセッサ１００が動作を停止したとき、その状態管理部１０５の現在の動作状態とデータパス部１０６のイベントデータとが取得されると、次段の動作状態が判明することになる。
【００７１】
例えば、図５(ａ)に示すように、アレイ型プロセッサ１００のコンピュータプログラムが８つの状態およびコンテキスト“０〜７”の命令コードからなり、状態管理部１０５とデータパス部１０６とのインストラクションメモリ１４１，１１２は４つの命令コードのみ一時保持できるとする。
【００７２】
そして、アレイ型プロセッサ１００の電源が投入された直後の初期状態では、当然ながら状態管理部１０５のステートメモリ１４１には現在の動作状態がデータ保持されていないので、状態取得回路１５２は動作状態がデータ保持されていないことをデータ検出する。
【００７３】
すると、動作取得回路１５３は、自動的に“０”から継続する４つの命令コードをプログラムメモリ３０２からデータ取得する。この場合、図示するように、４つの命令コードを“０→１→(２，３)”なるパターンでデータ取得する他、“０→１→２→４”“０→１→２→５”“０→１→３→５”なるパターンでもデータ取得が可能であるが、例えば、動作取得回路１５３は、公知の幅優先探索法などのアルゴリズムにより適正なパターンで命令コードをデータ取得する。
【００７４】
コンテキスト検出回路１５４は、動作取得回路１５３でデータ取得された命令コードの動作状態に対応する所定個数のコンテキストをデータ検出し、コンテキスト取得回路１５６は、コンテキスト検出回路１５４でデータ検出されたコンテキストの命令コードをプログラムメモリ３０２からデータ取得する。
【００７５】
コード設定回路１５７は、動作取得回路１５３とコンテキスト取得回路１５６とでデータ取得された動作状態とコンテキストとの命令コードを状態管理部１０５とデータパス部１０６とにデータ設定し、イベント出力回路１５８は、コード設定回路１５７による命令コードのデータ設定が完了すると動作開始のイベントデータを状態管理部１０５に出力する。
【００７６】
関係生成回路１５９は、コンテキスト検出回路１５４でデータ検出されたコンテキストと動作状態との対応関係をデータ生成し、関係設定回路１６１は、関係生成回路１５９でデータ生成された対応関係も状態管理部１０５にデータ設定する。つまり、プロセッサエレメント１０７のインストラクションメモリ１１２では複数のコンテキストごとに命令コードが一時保持されるが、その命令コードとメモリアドレスとの関係は任意である。
【００７７】
一方、状態管理部１０５はインストラクションメモリ１１２のメモリアドレスでコンテキストの命令コードを指定するので、この指定に必要なコンテキストと動作状態との対応関係が関係生成回路１５９でデータ生成されて関係設定回路１６１により状態管理部１０５にデータ設定される。
【００７８】
そこで、この状態管理部１０５は、動作開始のイベントデータが入力されると、データ格納された命令コードと遷移ルールとに対応して動作状態の順次遷移を開始し、データ設定された対応関係に対応して順次遷移させる動作状態ごとにデータパス部１０６のコンテキストを順次遷移させる。
【００７９】
また、重複検出回路１６２は、コンテキスト検出回路１５４でデータ検出された前回の複数のコンテキストと今回の複数のコンテキストとの重複を検出し、更新制御回路１６３は、重複検出回路１６２で重複が検出されたコンテキストの命令コードのコンテキスト取得回路１５６によるプログラムメモリ３０２からのデータ取得とコード設定回路１５７によるデータパス部１０６へのデータ設定とを無用とする。
【００８０】
例えば、図５(ｂ)に示すように、前回が“０→１→(２，３)”なる４つのコンテキストからなり、図５(ｃ)に示すように、今回が“４→７→１→３”なる４つのコンテキストからなる場合、これらでは“１，３”なる２つのコンテキストが重複している。そこで、このようなコンテキストの重複を重複検出回路１６２が検出すると、そのデータ取得とデータ設定とが実行されないように更新制御回路１６３がコンテキスト取得回路１５６とコード設定回路１５７とを動作制御する。
【００８１】
なお、図４では図示を簡単とするため、コード取得回路１５０に状態管理部１０５とデータパス部１０６とプログラムメモリ３０２とが直接に接続されている構造を例示しているが、図１に示すように、実際にはコード取得回路１５０はメモリアクセス部１３２を介して状態管理部１０５とデータパス部１０６とに接続されているとともにプロトコル制御部１３１を介してプログラムメモリ３０２に接続されている。このため、上述のようなコード取得回路１５０と各部とのデータ通信も、実際にはメモリアクセス部１３２やプロトコル制御部１３１などを介して実行される。
【００８２】
［実施の形態の動作］
上述のような構成において、本実施の形態のデータ処理システム１０００では、ＭＰＵ２００がメインプロセッサとして機能するとともにアレイ型プロセッサ１００がコプロセッサとして機能することにより、そのアレイ型プロセッサ１００とＭＰＵ２００とのデータ処理が連動する。
【００８３】
その場合、アレイ型プロセッサ１００およびＭＰＵ２００は、プログラムメモリ３０２，３０３から自身のコンピュータプログラムをデータ読出して対応する処理動作を実行することにより、データライン３０１から入力される処理データでデータ処理を実行し、データ処理を実行した処理データをデータライン３０１に出力する。
【００８４】
アレイ型プロセッサ１００のコンピュータプログラムは、複数のプロセッサエレメント１０７と複数のスイッチエレメント１０８との命令コードが順次切り換わるコンテキストとしてデータ記述されており、このコンテキストを動作サイクルごとに切り換える状態管理部１０５の命令コードが順次遷移する動作状態としてデータ記述されている。
【００８５】
このようなコンピュータプログラムに対応して動作するアレイ型プロセッサ１００では、状態管理部１０５が動作状態を順次遷移させるとともに、データパス部１０６のコンテキストを動作サイクルごとに順次遷移させる。このため、その動作サイクルごとに複数のプロセッサエレメント１０７が個々に設定自在なデータ処理で並列動作し、その複数のプロセッサエレメント１０７の接続関係を複数のスイッチエレメント１０８が切換制御する。
【００８６】
このとき、データパス部１０６での処理結果は必要により状態管理部１０５にイベントデータとしてフィードバックされるので、この状態管理部１０５は入力されたイベントデータにより動作状態を次段の動作状態に遷移させるとともにデータパス部１０６のコンテキストを次段のコンテキストに切り換える。
【００８７】
本形態のアレイ型プロセッサ１００は、上述のようにプログラムメモリ３０２から命令コードをデータ読出して状態管理部１０５とデータパス部１０６とに一時保持させることで、その状態管理部１０５とデータパス部１０６とが命令コードに対応して動作する。
【００８８】
しかし、本形態のアレイ型プロセッサ１００では、状態管理部１０５とデータパス部１０６とが命令コードを所定個数ずつしか一時保持しないので、プログラムメモリ３０２にコンピュータプログラムとしてデータ格納されている一連の命令コードを全部は一時保持できないこともある。
【００８９】
このような場合、Ｉ／Ｆユニット１０１のコード取得回路１５０が、プログラムメモリ３０２から所定個数の連携する一部の動作状態の命令コードを対応する一部のコンテキストの命令コードとともにデータ取得するので、状態管理部１０５は、データ取得された所定個数の動作状態の命令コードのみを一時保持して動作し、データパス部１０６は、データ取得された所定個数のコンテキストの命令コードのみを一時保持して動作する。
【００９０】
そして、状態管理部１０５とデータパス部１０６とが一時保持した命令コードでの動作を完了するごとにコード取得回路１５０は継続する動作状態およびコンテキストの命令コードをデータ取得するので、アレイ型プロセッサ１００はコンピュータプログラムを一部しか保持できなくとも一連の動作を実行する。
【００９１】
より詳細には、本形態のアレイ型プロセッサ１００が起動されると、当然ながら状態管理部１０５の各種メモリ１３９〜１４１には保持データが存在しないので、状態管理部１０５は命令コードを一時保持していない初期状態を検出して継続不可のイベントデータをＩ／Ｆ回路１０１のコード取得回路１５０に出力する。
【００９２】
すると、図４に示すように、このコード取得回路１５０はイベント入力回路１５１で継続不可のイベントデータを受け付け、この入力に対応して状態取得回路１５２で状態管理部１０５のステートメモリ１４１から現在の動作状態をデータ取得する。前述のようにアレイ型プロセッサ１００の起動直後の初期状態では、状態管理部１０５のステートメモリ１４１にも動作状態がデータ保持されていないので、これにより状態取得回路１５２は状態管理部１０５が初期状態であることを検出する。
【００９３】
すると、この検出された初期状態と入力されたイベントデータとに対応して動作取得回路１５３が継続する所定個数の動作状態の命令コードをプログラムメモリ３０２からデータ取得するので、初期状態の場合には第１番目の動作状態を起点とする所定個数の命令コードがデータ取得される。
【００９４】
つぎに、このデータ取得された命令コードの動作状態に対応する所定個数のコンテキストがコンテキスト検出回路１５４でデータ検出され、このデータ検出されたコンテキストの命令コードがコンテキスト取得回路１５６でプログラムメモリ３０２からデータ取得される。
【００９５】
例えば、図５(ａ)に示すように、アレイ型プロセッサ１００のコンピュータプログラムが８つの状態およびコンテキスト“０〜７”の命令コードからなり、状態管理部１０５とデータパス部１０６とのインストラクションメモリ１４１，１１２が４つの命令コードのみ一時保持する場合、図５(ｂ)に示すように、初期状態の場合には４つの命令コードが“０→１→(２，３)”などのパターンでデータ取得される。
【００９６】
そして、上述のように動作状態とコンテキストとの命令コードがデータ取得されると、これがコード設定回路１５７により状態管理部１０５とデータパス部１０６とにデータ設定される。また、データ検出されたコンテキストと動作状態との対応関係が関係生成回路１５９でデータ生成されるので、このデータ生成された対応関係も関係設定回路１６１により状態管理部１０５にデータ設定される。
【００９７】
そして、上述のような命令コードと対応関係とのデータ設定が完了すると、動作開始のイベントデータがイベント出力回路１５８により状態管理部１０５に出力されるので、この状態管理部１０５は、データ格納された命令コードと遷移ルールとに対応して動作状態の順次遷移を開始し、データ設定された対応関係に対応して順次遷移させる動作状態ごとにデータパス部１０６のコンテキストを順次遷移させる。なお、状態管理部１０５は、上述のように動作状態を順次遷移させるとき、その現在の動作状態をステートメモリ１４１でデータ保持する。
【００９８】
上述のようにアレイ型プロセッサ１００が動作するとき、前述のように状態管理部１０５とデータパス部１０６とにはコンピュータプログラムの多数の命令コードが所定個数しかデータ保持されていないと、その命令コードに対応した動作を継続できない状態となることがある。
【００９９】
その場合も、状態管理部１０５は、継続不可のイベントデータをコード取得回路１５０に出力するので、このコード取得回路１５０は継続不可のイベントデータが入力されると、状態管理部１０５のステートメモリ１４１から現在の動作状態をデータ取得するとともに、データパス部１０６から次段の動作状態を指定するイベントデータを取得する。
【０１００】
前述のように、状態管理部１０５の次段の動作状態はデータパス部１０６のイベントデータにより指定されるので、コード取得回路１５０は、このイベントデータと状態管理部１０５の現在の動作状態から次段の動作状態を特定し、この動作状態を起点とする所定個数の命令コードをプログラムメモリ３０２からデータ取得する。
【０１０１】
例えば、図５(ａ)に示すように、コンピュータプログラムの８つの命令コード“０〜７”のうち、図５(ｂ)に示すように、４つの命令コード“０→１→(２，３)”でアレイ型プロセッサ１００が動作し、命令コード“２”から命令コード“４”に移行する時点で停止した場合、現在の動作状態は“２”となり、これから動作状態“４”に移行することがイベントデータにより指定されるので、コード取得回路１５０は、“４”を起点として４つの命令コードをデータ取得する。
【０１０２】
ただし、このコード取得回路１５０は、上述のように継続する命令コードをデータ取得するとき、前回と複数のコンテキストと今回の複数のコンテキストとの重複を検出し、重複が検出されたコンテキストの命令コードのデータ取得とデータパス部１０６へのデータ設定とを無用とする。
【０１０３】
例えば、図５(ｂ)に示すように、前回が“０→１→(２，３)”なる４つのコンテキストからなり、図５(ｃ)に示すように、今回が“４→７→１→３”なる４つのコンテキストからなる場合、これらでは“１，３”なる２つのコンテキストが重複している。そこで、このようなコンテキストの重複が検出されると、今回は“４，７”なるコンテキストのみデータ取得される。
【０１０４】
そして、コード取得回路１５０は、上述のように動作状態とコンテキストとの命令コードをデータ取得すると、その命令コードを状態管理部１０５とデータパス部１０６とにデータ設定する。ただし、前述のように重複を検出した命令コードのデータ設定は省略され、新規の命令コードは前回の無用な命令コードの位置に上書きされる。
【０１０５】
例えば、図５(ｂ)(ｃ)に示すように、前回の“０→１→(２，３)”なる４つのコンテキストを今回の“４→７→１→３”なる４つのコンテキストに更新する場合、その“０，２”なるコンテキストに“４，７”なるコンテキストが上書きされる。
【０１０６】
また、コード取得回路１５０は、データ検出したコンテキストと動作状態との対応関係もデータ生成して状態管理部１０５にデータ設定し、上述のような命令コードと対応関係とのデータ設定が完了すると、動作開始のイベントデータを状態管理部１０５に出力する。
【０１０７】
そこで、この状態管理部１０５は、データ格納された命令コードと遷移ルールとに対応して動作状態の順次遷移を開始し、データ設定された対応関係に対応して順次遷移させる動作状態ごとにデータパス部１０６のコンテキストを順次遷移させる。本形態のアレイ型プロセッサ１００では、データ設定された命令コードでの状態管理部１０５とデータパス部１０６との動作が停止するごとに、上述のようなコード取得回路１５０の動作が繰り返される。
【０１０８】
［本実施の形態の効果］
本形態のアレイ型プロセッサ１００は、データ設定された命令コードでの状態管理部１０５とデータパス部１０６との動作が停止するごとに上述のようなコード取得回路１５０の動作が繰り返されるので、状態管理部１０５とデータパス部１０６とがコンピュータプログラムの多数の命令コードを一部しかデータ保持できなくとも、そのコンピュータプログラムに対応した一連の処理動作を実行することができる。
【０１０９】
しかも、コード取得回路１５０が所定個数の動作状態およびコンテキストの命令コードのみ更新するとき、前回の複数のコンテキストと今回の複数のコンテキストとの重複が検出され、重複が検出されたコンテキストの命令コードのプログラムメモリ３０２からのデータ取得とデータパス部１０６へのデータ設定とが無用とされる。このため、命令コードのデータ更新の処理負担と所要時間を削減することができ、アレイ型プロセッサ１００の消費電力を低減するとともに処理速度を向上させることができる。
【０１１０】
さらに、本形態のアレイ型プロセッサ１００は、上述のようにプログラムメモリ３０２から一連の多数の命令コードを一部ずつデータ取得して状態管理部１０５とデータパス部１０６とにデータ設定する処理動作を実現するコード取得回路１５０がハードウェアとして内蔵されているので、上記動作を単独で高速に実行することができる。
【０１１１】
［本実施の形態の変形例］
本発明は上述の実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で各種の変形が可能である。例えば、上記形態ではアレイ型プロセッサ１００とＭＰＵ２００とプログラムメモリ３０２，３０３とが外部バス３００で接続されているデータ処理システム１０００を例示したが、アレイ型プロセッサ１００とプログラムメモリ３０２のみからなるデータ処理システム(図示せず)なども実施可能である。
【０１１２】
また、上記形態ではコード取得回路１５０がプロトコル制御部１３１とメモリアクセス部１３２との中間に位置することを例示したが、このコード取得回路１５０は機能が実現される範囲で各種の位置に配置することが可能である。さらに、上記形態ではコード取得回路１５０に各種手段が各種回路１５１〜１６３としてハードウェアで形成されていることを例示したが、例えば、その一部ないし全部がマイクロプロセッサとソフトウェアとの組み合わせでコード取得回路１５０に形成されていることも可能である。
【０１１３】
同様に、コード取得回路１５０の各種回路１５１〜１６３の一部ないし全部が、ソフトウェアによりＭＰＵ２００に実現されていることも可能である。このようにコード取得回路１５０の機能がＭＰＵ２００で実現される場合、速度の観点では不利となるが、プログラムメモリ３０３にデータ格納するＭＰＵ２００のコンピュータプログラムによりコード取得回路１５０の機能が実現されるので、アレイ型プロセッサ１００の構造を変更する必要がなく、その実現が容易である。
【０１１４】
例えば、コード取得回路１５０の全部の機能をＭＰＵ２００により実現する場合、そのコンピュータプログラムは、アレイ型プロセッサ１００の状態管理部１０５から入力される継続不可のイベントデータを受け付けること、継続不可のイベントデータが入力されると状態管理部１０５から現在の動作状態をデータ取得するとともに、データパス部１０６から次段の動作状態を指定するイベントデータを取得すること、データ取得された動作状態とイベントデータとに対応して継続する所定個数の動作状態の命令コードを所定のアルゴリズムによりプログラムメモリ３０２からデータ取得すること、データ取得された命令コードの動作状態に対応する所定個数のコンテキストをデータ検出すること、データ検出されたコンテキストの命令コードをプログラムメモリ３０２からデータ取得すること、データ取得された動作状態とコンテキストとの命令コードを状態管理部１０５とデータパス部１０６とにデータ設定すること、データ検出された前回の複数のコンテキストと今回の複数のコンテキストとの重複を検出すること、重複が検出されたコンテキストの命令コードのデータ取得とデータ設定とを無用とすること、データ検出されたコンテキストと動作状態との対応関係をデータ生成すること、データ生成された対応関係も状態管理部１０５にデータ設定すること、命令コードと対応関係とのデータ設定が完了すると動作開始のイベントデータを状態管理部１０５に出力すること、等をＭＰＵ２００に実行させるコンピュータプログラムとしてプログラムメモリ３０３にデータ格納される。
【０１１５】
さらに、コード取得回路１５０の各種回路１５１〜１６３の一部ないし全部の機能を、アレイ型プロセッサ１００に外部バス３００などで接続されるＡＳＩＣなどの専用回路により実現することも可能であり(図示せず)、このような専用回路をアレイ型プロセッサ１００のプログラムメモリ３０２と一体に形成しておくことも可能である(図示せず)。
【０１１６】
また、上記形態ではコード取得回路１５０が状態管理部１０５とデータパス部１０６との命令コードをデータ更新するとき、前回と今回とで重複するコンテキストの命令コードはデータ取得とデータ設定とが省略されることを例示した。しかし、このような重複の検出と処理動作の省略とを実行することなく、毎回全部の命令コードをデータ更新することも可能である。
【０１１７】
この場合、命令コードのデータ更新の処理負担と所要時間を削減することはできないが、命令コードの重複の検出と動作省略の制御とが無用となるので、重複検出回路１６２と更新制御回路１６３との形成が無用となり、その処理負担と所要時間とを削減することができる。
【０１１８】
換言すると、所定個数ずつデータ更新する命令コードに多数の重複が発生することが予測される場合には、重複検出回路１６２と更新制御回路１６３とを形成しておくことが好適であり、所定個数ずつデータ更新する命令コードにほとんど重複が発生しないことが予測される場合には、重複検出回路１６２と更新制御回路１６３とを形成しておかないことが好適である。
【０１１９】
また、上記形態ではコンテキストのデータ更新の処理負担を軽減して所要時間を削減するため、コード取得回路１５０に重複検出回路１６２と更新制御回路１６３とを形成し、今回と前回とのコンテキストの重複のみ検出して命令コードのデータ取得とデータ設定とを省略することを例示した。
【０１２０】
しかし、コード取得回路１５０に、コンテキストの複数種類の更新手法が更新コストとともにデータ登録されている更新記憶手段と、前回の複数のコンテキストと今回の複数のコンテキストとの組み合わせから更新コストの合計が最少となる更新手法をデータ検出する手法検出手段とを形成し(図示せず)、更新制御回路１６３の動作制御によりコード設定回路１５７にデータ検出された更新手法でデータパス部１０６のコンテキストのデータ更新を実行させることも可能である。
【０１２１】
上述のような更新記憶手段は、例えば、複数種類の更新手法がコンピュータプログラムとしてデータ格納されたメモリ回路で形成することができ、手法検出手段は、例えば、実装されているコンピュータプログラムに対応してメモリ回路から所定のコンピュータプログラムをデータ読出して処理動作を実行するマイクロプロセッサで形成することができる(ともに図示せず)。
【０１２２】
また、第１の更新手法としては、例えば、前回と今回とのコンテキストで相違する命令コードのみコンテキスト取得回路１５６にデータ取得させ、今回の命令コードを前回との差分のみコード設定回路１５７にデータ設定させることが可能である。さらに、このような更新手法において、前回と今回とのコンテキストで相違する命令コードが複数の場合、差分の更新コストの合計が最少となる組み合わせを選択することも可能である。
【０１２３】
また、第２の更新手法としては、前回と今回とのコンテキストの所定の組み合わせでは、データパス部１０６の前回のコンテキストを初期化してから今回のコンテキストをコード設定回路１５７にデータ設定させることが可能である。
【０１２４】
さらに、第３の更新手法としては、前回と今回との複数のコンテキストの所定の組み合わせでは対応する前回のコンテキストを前回の他のコンテキストで上書きしてから今回のコンテキストと相違する命令コードのみコンテキスト取得回路１５６にデータ取得させてコード設定回路１５７にデータ設定させることも可能である。
【０１２５】
より具体的には、図５(ｂ)に示すように、前回が“０→１→(２，３)”なる４つのコンテキストからなり、図５(ｃ)に示すように、今回が“４→７→１→３”なる４つのコンテキストからなる場合、重複している“１，３”なる２つのコンテキストはデータ更新されず、“０，２”なるコンテキストが“４，７”なるコンテキストにデータ更新されることになる。
【０１２６】
しかし、コンテキストはＸ行Ｙ列のプロセッサエレメント１０７の命令コードからなるので、例えば、“０”なるコンテキストと“４”なるコンテキストでは大部分のプロセッサエレメント１０７で命令コードが共通していることもある。このような場合、第１の更新手法として、“０”なるコンテキストを“４”なるコンテキストにデータ更新するため、差分の命令コードのみデータ取得してデータ格納すれば、その処理負担を軽減して動作速度を向上させることが可能である。
【０１２７】
さらに、上述のように“０，２”なるコンテキストが“４，７”なるコンテキストに差分の命令コードのみデータ更新される場合、“０→４，２→７”と“０→７，２→４”との更新コストの合計を比較して最少の一方を選択すれば、さらに処理負担を軽減して動作速度を向上させることが可能である。
【０１２８】
また、前述のように“０”なるコンテキストを“４”なるコンテキストにデータ更新するとき、“０”なるコンテキストではＸ行Ｙ列のプロセッサエレメント１０７の全部に命令コードがデータ設定されるが、“４”なるコンテキストではＸ行Ｙ列のプロセッサエレメント１０７の一部しか命令コードがデータ設定されないこともある。
【０１２９】
しかし、このような場合には、今回の“４”なるコンテキストで命令コードをデータ設定しないプロセッサエレメント１０７に前回の命令コードが残存するため、これを初期化する必要がある。命令コードの初期化は命令コードのデータ格納と同様に、Ｘ行Ｙ列のプロセッサエレメント１０７を１個ずつ順番に選択して実行するため、その更新コストは命令コードのデータ格納と同一である。
【０１３０】
そこで、Ｘ行Ｙ列のプロセッサエレメント１０７の全部の命令コードを一括に初期化できるように形成しておけば、第２の更新手法として“０”なるコンテキストを初期化してから“４”なるコンテキストを新規にデータ格納することで、更新コストを低減することが可能となる。
【０１３１】
さらに、“０→１→(２，３)”の“０”なるコンテキストを“４→７→１→３”の“４”なるコンテキストにデータ更新する場合、例えば、“０”と“４”とでは大部分の命令コードが相違しており、データ更新しない“１”とデータ更新する“４”とで大部分の命令コードが共通していることもある。
【０１３２】
このような場合、“０→１→(２，３)”の“１”なるコンテキストで“０”なるコンテキストを一括に上書きしてから、その“１”なるコンテキストを“４”なるコンテキストに差分の命令コードのみデータ更新すれば、その処理負担を軽減して動作速度を向上させることが可能である。
【０１３３】
なお、既存のアレイ型プロセッサ１００では、上述のように保持しているコンテキストを他のコンテキストに一括に上書きする機能はない。また、命令コードの初期化は命令コードのデータ格納と同様に、Ｘ行Ｙ列のプロセッサエレメント１０７を１個ずつ順番に選択して実行するため、上述のようにコンテキストをデータ更新する過程で全部のプロセッサエレメント１０７を初期化しても更新コストは増加することになる。
【０１３４】
このため、上述のような更新手法で更新コストを低減するためには、Ｘ行Ｙ列のプロセッサエレメント１０７の命令コードを一括に初期化する機能や、保持しているコンテキストを他のコンテキストに一括に上書きする機能が必要である。そこで、このようなコンテキストの初期化や上書きを簡単に迅速に実行するハードウェアの構造を以下に具体的に説明する。
【０１３５】
まず、図６に示すように、プロセッサエレメント１０７のインストラクションメモリ１１２を、コンテキストごとの命令コードを一層ごとにデータ保持するＺ(Ｚは“２”以上の自然数)層の多段構造に形成しておき、そのＺ層のアドレスデータ“ｚ”も状態管理部１０５のインストラクションデコーダ１３８でデコードされる命令コードに設定しておく。
【０１３６】
さらに、Ｘ行Ｙ列のプロセッサエレメント１０７を１個ずつ選択するアドレスデータ“ｘ，ｙ”を無効としてＸ行Ｙ列のプロセッサエレメント１０７の全部を同時に選択するセット信号“set”、データパス部１０６に命令コードとして一時保持されているＺ個のコンテキストから１つを選択するセレクト信号“sel”、も発行するように状態管理部１０５を形成しておく。
【０１３７】
そして、図７に示すように、コード初期化手段およびコード上書手段となる一括設定回路１７０をプロセッサエレメント１０７ごとに形成しておき、その一括設定回路１７０をインストラクションメモリ１１２の各層に接続しておく。
【０１３８】
この一括設定回路１７０は、アンドゲート１７１，１７２、オアゲート１７３、セレクタ回路１７４〜１７６、等で形成された論理回路からなり、従来と同様に外部入力されるコンテキストごとの命令コード“data”をインストラクションメモリ１１２の一層にデータ格納する他、インストラクションメモリ１１２に一時保持されている命令コードをコンテキストごとに初期化すること、インストラクションメモリ１１２に一時保持されている任意のコンテキストの命令コードを任意のコンテキストの命令コードに一括に上書きすること、も実行する。
【０１３９】
つまり、アンドゲート１７１は、Ｘ行Ｙ列のプロセッサエレメント１０７を１個ずつ選択するアドレスデータ“ｘ，ｙ”が入力されており、Ｚ個のアンドゲート１７２は、アンドゲート１７１の出力信号とインストラクションメモリ１１２の各層のアドレスデータ“ｚ”とが入力されている。
【０１４０】
このアンドゲート１７２の出力信号はインストラクションメモリ１１２の各層に入力されているので、Ｘ行Ｙ列のプロセッサエレメント１０７から１個がアドレスデータ“ｘ，ｙ”により選択され、そのプロセッサエレメント１０７のインストラクションメモリ１１２のＺ層から一層がアドレスデータ“ｚ”により選択される。
【０１４１】
ただし、アンドゲート１７１の出力信号は前述のセット信号“set”とともにオアゲート１７３に入力されているので、セット信号“set”が発行された場合にはアドレスデータ“ｘ，ｙ”は無効となって全部のプロセッサエレメント１０７でアドレスデータ“ｚ”に対応したインストラクションメモリ１１２の一層が選択される。
【０１４２】
また、Ｚ個のセレクタ回路１７４は、一方の入力端子にインストラクションメモリ１１２の各層が個々に接続されており、他方の入力端子には接地などにより初期値“def”が入力されている。セレクタ回路１７４は、前述のアドレスデータ“ｚ”が制御信号として外部入力されるので、通常は自身に接続されているインストラクションメモリ１１２の一層の命令コードをデータ出力するが、自身に接続されているインストラクションメモリ１１２の一層のアドレスデータ“ｚ”が外部入力されると、初期値“def”をデータ出力する。
【０１４３】
これらＺ個のセレクタ回路１７４の出力信号はセレクタ回路１７５に入力されており、このセレクタ回路１７５にはセレクト信号“sel”が外部入力されている。このセレクタ回路１７５は、外部入力されるセレクト信号“sel”によりインストラクションメモリ１１２のＺ層から一層を選択する。
【０１４４】
このセレクタ回路１７５の出力信号は命令コード“data”とともにセレクタ回路１７６に入力されており、このセレクタ回路１７６には前述のセット信号“set”が外部入力されている。このセレクタ回路１７６は、セット信号“set”により外部入力される命令コード“data”かセレクタ回路１７５からデータ出力される命令コードかを選択するので、その選択された命令コードが前述のように選択されたインストラクションメモリ１１２の一層にデータ格納される。
【０１４５】
例えば、全部のプロセッサエレメント１０７で複数のコンテキストの１つを一括に初期化する場合は、セット信号“set”により全部のプロセッサエレメント１０７が選択された状態で、アドレスデータ“ｚ”によりインストラクションメモリ１１２の一層が選択される。
【０１４６】
すると、そのアドレスデータ“ｚ”によりセレクタ回路１７４は初期値“def”をデータ出力するので、上述のインストラクションメモリ１１２の一層がセレクト信号“sel”により選択されると、セレクタ回路１７５は初期値“def”を選択することになる。
【０１４７】
この初期値“def”はセット信号“set”によりセレクタ回路１７６でも選択され、上述の選択されたインストラクションメモリ１１２の一層にデータ格納されるので、これで全部のプロセッサエレメント１０７で特定のコンテキストの命令コードが一括に初期化されることになる。
【０１４８】
また、前回の所定のコンテキストで前回の他のコンテキストを一括に上書きする場合は、セット信号“set”により全部のプロセッサエレメント１０７が選択された状態で、上書きされるインストラクションメモリ１１２の一層がアドレスデータ“ｚ”により選択される。
【０１４９】
このような状態で上書きするインストラクションメモリ１１２の一層がセレクト信号“sel”により選択されるので、これで選択されたコンテキストの命令コードがセット信号“set”によりセレクタ回路１７６でも選択される。この選択された命令コードがアドレスデータ“ｚ”により選択されているインストラクションメモリ１１２の一層にデータ格納されるので、これで全部のプロセッサエレメント１０７で前回の所定のコンテキストで前回の他のコンテキストが一括に上書きされることになる。
【０１５０】
なお、上述のような一括設定回路１７０において、セット信号“set”によりセレクタ回路１７５が選択されたときには外部入力される命令コード“data”は無効となるので、この命令コード“data”をセレクタ回路１７５の制御信号として専用のセレクト信号“sel”の発行を無用とすることも可能である。
【０１５１】
また、上記形態ではプログラムメモリ３０２にアレイ型プロセッサ１００のコンピュータプログラムが１つのみデータ格納されており、アレイ型プロセッサ１００がプログラムメモリ３０２から１つのコンピュータプログラムのみをデータ取得して１つの処理動作のみを実行することを例示した。
【０１５２】
しかし、プログラムメモリ３０２にアレイ型プロセッサ１００の複数のコンピュータプログラムがデータ格納されており、アレイ型プロセッサ１００がプログラムメモリ３０２から複数のコンピュータプログラムを時分割にデータ取得して複数の処理動作を時分割に並列実行することも可能である。
【０１５３】
その場合、複数のコンピュータプログラムの対応する動作状態とコンテキストとの命令コードを状態管理部１０５とデータパス部１０６とのインストラクションメモリ１４０，１１２とに一時保持させ、一時保持された複数のコンピュータプログラムの１つで状態管理部１０５とデータパス部１０６とが動作しているときに、コード取得回路１５０に他のコンピュータプログラムの所定個数の連携する一部の動作状態の命令コードを対応する一部のコンテキストの命令コードとともにデータ取得させる。
【０１５４】
例えば、“Ａ”なるコンピュータプログラムが“a1〜a4”なるコンテキストおよび動作状態からなり、“Ｂ”なるコンピュータプログラムが“b1〜b4”なるコンテキストおよび動作状態からなり、状態管理部１０５とデータパス部１０６とのインストラクションメモリ１４０，１１２とが動作状態およびコンテキストを４つずつ一時保持するならば、最初にインストラクションメモリ１４０，１１２に“a1，a2”を一時保持させて状態管理部１０５とデータパス部１０６とに処理動作を実行させる。
【０１５５】
この“a1，a2”の実行中にインストラクションメモリ１４０，１１２の空き領域に“b1，b2”を一時保持させ、“a1，a2”の実行が完了すると“b1，b2”の実行を開始する。この“b1，b2”の実行中にインストラクションメモリ１４０，１１２の“a1，a2”を“a3，a4”にデータ更新し、“b1，b2”の実行が完了すると“a3，a4”の実行を開始する。
【０１５６】
この“a3，a4”の実行中にインストラクションメモリ１４０，１１２の“b1，b2”を“b3，b4”にデータ更新し、“a3，a4”の実行が完了すると“b3，b4”の実行を開始する。このようにすることで、アレイ型プロセッサ１００が複数のコンピュータプログラムでの処理動作を時分割に連続的に実行できるので、複数のコンピュータプログラムの処理動作を全体的に高効率に実行することができる。
【０１５７】
なお、上述のような複数のコンピュータプログラムでの並列動作を実現する場合、より具体的には、コード取得回路１５０に、動作停止手段である動作停止回路、停止取得手段である停止取得回路、停止保持手段である停止保持回路、切換設定手段である切換設定回路、を形成しておく(図示せず)。
【０１５８】
動作停止回路は、イベント入力回路１５１にプログラム切換のイベントデータが入力されると状態管理部１０５とデータパス部１０６との動作を停止させ、停止取得回路は、停止した状態管理部１０５の動作状態とデータパス部１０６の処理データとをデータ取得する。
【０１５９】
停止保持回路は、データ取得された動作状態と処理データとを複数のコンピュータプログラムごとに一時保持し、切換設定回路は、一時保持が完了すると他のコンピュータプログラムの動作状態と処理データとを停止保持回路からデータ読出して状態管理部１０５とデータパス部１０６とにデータ設定する。
【０１６０】
そして、イベント出力回路１５８はデータ設定が完了すると動作開始のイベントデータを状態管理部１０５に出力し、この状態管理部１０５は動作開始のイベントデータが入力されると動作状態の順次遷移を開始する。なお、上述のようなプログラム切換のイベントデータは、例えば、前述の継続不可のイベントデータと兼用することが可能である。
【０１６１】
上述のような各種回路をコード取得回路１５０に形成しておくことで、アレイ型プロセッサ１００は、複数のコンピュータプログラムでの処理動作を時分割に並列実行することができる。なお、当然ながら、上述のような各種回路の一部ないし全部をマイクロプロセッサとコンピュータプログラムとの組み合わせで実現することも可能であり、外部のＭＰＵ２００や専用回路で実現することも可能である。
【０１６２】
さらに、上述のように複数のコンピュータプログラムでの処理動作を時分割に並列実行する場合、その複数のコンピュータプログラムに優先度を設定することも可能である。より具体的には、上述のような場合、コード取得回路１５０に、優先検出手段である優先検出回路、コード増減手段であるコード増減回路、を形成しておく(図示せず)。
【０１６３】
優先検出回路は、インストラクションメモリ１４０とインストラクションメモリ１１２とで一時保持されている複数のコンピュータプログラムの一部の命令コードごとに使用頻度を優先度として積算することにより、インストラクションメモリ１４０とインストラクションメモリ１１２とで命令コードが一部のみ一時保持されている複数のコンピュータプログラムの優先度を検出する。
【０１６４】
コード増減回路は、例えば、使用頻度が低い命令コードを優先的に削減させるように、ンストラクションメモリ１４０とインストラクションメモリ１１２とで一部のみ一時保持される命令コードの個数を優先度に対応して複数のコンピュータプログラムで相互に増減させる。
【０１６５】
例えば、前述のようにコンピュータプログラム“Ａ”と“Ｂ”とがあり、状態管理部１０５とデータパス部１０６とのインストラクションメモリ１４０，１１２とが動作状態およびコンテキストを４つずつ一時保持する場合、インストラクションメモリ１４０，１１２が優先度に対応してコンピュータプログラム“Ａ”のコンテキストおよび動作状態を３つ一時保持するとともに“Ｂ”のコンテキストおよび動作状態は１つのみ一時保持するようなことが可能である。このようにすることで、アレイ型プロセッサ１００での複数のコンピュータプログラムの並列実行の効率を、さらに向上させることが可能となる。
【図面の簡単な説明】
【０１６６】
【図１】本発明の実施の形態のデータ処理システムの回路構造を示すブロック図である。
【図２】アレイ型プロセッサのｍ／ｎｂバスなどの回路構造を示すブロック図である。
【図３】命令バスなどの回路構造を示すブロック図である。
【図４】コード取得手段であるコード取得回路の回路構造を示すブロック図である。
【図５】コンピュータプログラムの論理構造を示す模式図である。
【図６】変形例のアレイ型プロセッサの要部を示す模式図である。
【図７】プロセッサエレメントの内部回路を示すブロック図である。
【符号の説明】
【０１６７】
１００    アレイ型プロセッサ
１０５    状態管理部
１０６    データパス部
１０７    プロセッサエレメント
１０８    スイッチエレメント
１１２    コンテキスト記憶手段であるインストラクションメモリ
１４０    状態記憶手段であるインストラクションメモリ
１５０    コード取得手段であるコード取得回路
１５１    イベント入力手段であるイベント入力回路
１５２    状態取得手段である状態取得回路
１５３    動作取得手段である動作取得回路
１５４    コンテキスト検出手段であるコンテキスト検出回路
１５６    コンテキスト取得手段であるコンテキスト取得回路
１５７    コード設定手段であるコード設定回路
１５８    イベント出力手段であるイベント出力回路
１５９    関係生成手段である関係生成回路
１６１    関係設定手段である関係設定回路
１６２    重複検出手段である重複検出回路
１６３    更新制御手段である更新制御回路
２００    データ処理装置であるＭＰＵ
３０２，３０３    情報記憶媒体であるプログラムメモリ
【図１】
2005222142.tif 000003
【図２】
2005222142.tif 000004
【図３】
2005222142.tif 000005
【図４】
2005222142.tif 000006
【図５】
2005222142.tif 000007
【図６】
2005222142.tif 000008
【図７】
2005222142.tif 000009