(57)【特許請求の範囲】
【請求項１】
複数の処理ユニットと、
それらの処理ユニットをネットワーク状に接続して第１のデータの受け渡しを行い、２以上の処理ユニットを接続することにより、再構成可能な少なくとも１つのデータフローを構成する第１のデータ転送手段と、
前記複数の処理ユニットに対し並列に第２のデータを供給する第２のデータ転送手段と、
前記複数の処理ユニットの各々に対し、前記第１のデータ転送手段を介して接続される他の前記処理ユニットを直接または間接的に変更し、および／または、当該処理ユニットの処理内容を変更することにより、異なる機能の前記データフローを設定する設定データを供給する第３のデータ転送手段とを有するデータ処理システム。
【請求項２】
前記第３のデータ転送手段により、前記設定データにより設定される前記データフローを示す識別情報が前記設定データと共に供給され、
前記第２のデータ転送手段により、前記識別情報が前記第２のデータと共に供給され、
前記処理ユニットは、前記第３のデータ転送手段を介して供給される、または供給された前記識別情報に基づき前記第２のデータを選択して処理する手段を備えている、請求項１のデータ処理システム。
【請求項３】
前記処理ユニットは、前記識別情報を記憶するメモリを備えている、請求項２のデータ処理システム。
【請求項４】
前記第２のデータは、前記処理ユニットの動作を制御する制御情報である、請求項２のデータ処理システム。
【請求項５】
前記処理ユニットは、前記第２のデータにより、前記設定データをロードする手段を備えている、請求項２のデータ処理システム。
【請求項６】
前記処理ユニットは、前記第２のデータにより動作を開始または停止する手段を備えている、請求項２のデータ処理システム。
【請求項７】
前記処理ユニットは、前記第２のデータにより動作を停止すると共に当該処理ユニットの内部情報を退避用メモリに格納し、前記退避用メモリに格納された内部情報をロードした後に動作を開始する退避手段を備えている、請求項２のデータ処理システム。
【請求項８】
前記退避手段は、前記内部情報と共に前記識別情報も前記退避用メモリに格納する、請求項７のデータ処理システム。
【請求項９】
前記処理ユニットは、複数の選択可能な内部データパスを備えており、前記設定データは、前記内部データパスを選択するデータを備えている、請求項２のデータ処理システム。
【請求項１０】
前記複数の処理ユニットは、回路基板上に配置されており、
前記第１のデータ転送手段は、前記複数の処理ユニットを接続する回路網であり、
前記第２のデータ転送手段は、前記第２のデータの供給源と前記複数の処理ユニットを接続する回路であり、
前記第３のデータ転送手段は、前記設定データを前記処理ユニット毎に記憶したネットワーク設定メモリと前記複数の処理ユニットとを接続する回路である、請求項１のデータ処理システム。
【請求項１１】
前記第３のデータ転送手段は前記設定データにより設定される前記データフローを示す識別情報を前記設定データと共に供給し、
前記第２のデータ転送手段は、前記識別情報を前記第２のデータと共に供給し、
前記処理ユニットは、前記第３のデータ転送手段を介して供給される、または供給された前記識別情報に基づき前記第２のデータを選択して処理する手段を備えている、請求項１０のデータ処理システム。
【請求項１２】
前記供給源は、前記識別情報と共に前記処理ユニットの動作を制御する制御情報を前記第２のデータとして発行する制御装置である、請求項１１のデータ処理システム。
【請求項１３】
前記ネットワーク設定メモリは、前記処理ユニット毎に複数の設定データを格納可能であり、
前記制御装置は、前記複数の処理ユニットの少なくともいずれかに同時に設定する前記設定データを前記複数の設定データから選択して前記ネットワーク設定メモリから出力させ、前記制御情報として前記設定データをロードするコマンドを発行する、請求項１２のデータ処理システム。
【請求項１４】
前記ネットワーク設定メモリは、前記処理ユニット毎に複数の設定データを格納可能であり、
前記制御装置は、前記制御情報として前記ネットワーク設定メモリの前記複数の設定データから前記設定データを選択してロードするコマンドを発行する、請求項１２のデータ処理システム。
【請求項１５】
前記制御装置は、前記ネットワーク設定メモリの前記複数の設定データを変更可能である、請求項１２のデータ処理システム。
【請求項１６】
前記回路基板は半導体基板である、請求項１０のデータ処理システム。
【請求項１７】
複数の処理ユニットと、それらの処理ユニットをネットワーク状に接続して第１のデータの受け渡しを行い、２以上の処理ユニットを接続することにより再構成可能な少なくとも１つのデータフローを構成する第１のデータ転送手段と、前記複数の処理ユニットに対し並列に第２のデータを供給する第２のデータ転送手段と、前記複数の処理ユニットの各々に対し、前記第１のデータ転送手段を介して接続される他の前記処理ユニットを直接または間接的に変更し、および／または、当該処理ユニットの処理内容を変更することにより、異なる機能の前記データフローを設定する設定データを供給する第３のデータ転送手段とを有するデータ処理システムの制御方法であって、
前記第３のデータ転送手段を介して、前記設定データにより設定される前記データフローを示す識別情報を前記設定データと共に供給する第１の工程と、
前記第２のデータ転送手段を介して、前記識別情報を前記第２のデータと共に供給すると、前記第３のデータ転送手段を介して供給される、または供給された前記識別情報に基づき前記処理ユニットが前記第２のデータを選択して処理する第２の工程とを有するデータ処理システムの制御方法。
【請求項１８】
前記第２の工程では、前記処理ユニットに記憶された前記識別情報に基づき前記第２のデータを選択する、請求項１７のデータ処理システムの制御方法。
【請求項１９】
前記第２の工程で供給される第２のデータは、前記処理ユニットの動作を制御する制御情報である、請求項１７のデータ処理システムの制御方法。
【請求項２０】
前記制御情報は、前記設定データを前記処理ユニットにロードする第１のコマンドである、請求項１９のデータ処理システムの制御方法。
【請求項２１】
前記制御情報は、前記処理ユニットの動作の開始または停止する第２のコマンドである、請求項１９のデータ処理システムの制御方法。
【請求項２２】
前記制御情報は、前記処理ユニットの処理を停止すると共に前記処理ユニットの内部情報を退避用メモリに格納する第３のコマンドと、前記退避用メモリに格納された内部情報をロードしてから前記処理ユニットの処理を開始する第４のコマンドとを含む、請求項１９のデータ処理システムの制御方法。
【請求項２３】
前記第２の工程では、前記第３のコマンドにより、内部情報と共に前記識別情報が前記退避用メモリに格納され、その退避用メモリに格納された前記識別情報に基づき、前記第４のコマンドが選択される、請求項２２のデータ処理システムの制御方法。
【請求項２４】
前記第１の工程では、前記処理ユニット毎に複数の設定データを記憶可能なネットワーク設定メモリに記憶された前記複数の設定データの中から、前記複数の処理ユニットの少なくともいずれかに同時に設定される前記設定データが供給され、
前記第２の工程では、前記第２のデータとして、前記設定データをロードするコマンドが供給される、請求項１７のデータ処理システムの制御方法。
【請求項２５】
前記第１の工程では、前記処理ユニット毎に複数の設定データを記憶可能なネットワーク設定メモリに記憶された前記複数の設定データが供給され、
前記第２の工程では、前記第２のデータとして、前記複数の設定データから前記設定データを選択してロードするコマンドが供給される、請求項１７のデータ処理システムの制御方法。
【請求項２６】
前記第１の工程では、前記処理ユニット毎に設定データを記憶可能なネットワーク設定メモリに記憶された前記設定データが供給され、
前記第１の工程の前に、前記ネットワーク設定メモリの設定データを書き換える工程を有する、請求項１７のデータ処理システムの制御方法。
【請求項２７】
複数の処理ユニットと、それらの処理ユニットをネットワーク状に接続して第１のデータの受け渡しを行い、２以上の処理ユニットを接続することにより再構成可能な少なくとも１つのデータフローを構成する第１のデータ転送手段と、前記複数の処理ユニットに対し並列に第２のデータを供給する第２のデータ転送手段と、前記複数の処理ユニットの各々に対し、前記第１のデータ転送手段を介して接続される他の前記処理ユニットを直接または間接的に変更し、および／または、当該処理ユニットの処理内容を変更することにより、異なる機能の前記データフローを設定する設定データを供給する第３のデータ転送手段とを有するデータ処理システムを制御するプログラムであって、
前記第３のデータ転送手段を介して前記設定データと、その設定データにより設定される前記データフローを示す識別情報と供給し、前記第２のデータ転送手段を介して、前記設定データをロードする制御情報を、少なくとも１つの前記識別情報を付して供給する処理を実行する命令を有するプログラム。
【請求項２８】
前記第２のデータ転送手段を介して、前記処理ユニットの開始または停止を指示する制御情報を、少なくとも１つの前記識別情報を付して供給する処理を実行する命令をさらに有する、請求項２７のプログラム。
【請求項２９】
前記第２のデータ転送手段を介して、前記処理ユニットが動作を停止したときの状態を退避用メモリに格納する制御情報、または、前記処理ユニットが動作を開始する前に、前記退避用メモリに格納された状態をロードする制御情報を、少なくとも１つの前記識別情報を付して供給する処理を実行する命令をさらに有する、請求項２７のプログラム。
【発明の詳細な説明】
技術分野
本発明は、複数の処理ユニットを接続してデータフローを形成するデータ処理システムに関するものである。
背景技術
複数の処理エレメントをネットワークで接続して処理を行う技術が米国特許第６１０８７６０号に開示されている。しかしながら、処理エレメントに新しい機能を設定しようとすると、ネットワークにより処理エレメントにデータを供給する必要があるので、処理エレメントにより形成されるデータパスあるいはデータフローを一時的に開放し、ネットワークを処理エレメントに対して設定用のデータを供給するために利用可能にする必要がある。したがって、処理エレメントに対して外から設定用のデータを供給して異なる機能のデータパスを構成するために時間がかかり、その間はデータフローが形成されず、稼動しないので処理速度は低下する。短時間に異なる機能のデータパスに再構成しようとすると、事前にすべての設定データを処理エレメント内に予め記憶させておく必要があるので、膨大なメモリ容量が必要となり現実的であるとは言えない。
米国特許第６１０８７６０号には、さらに、個々の処理エレメントに対し、独立に、物理的な識別番号と、仮想的な識別番号とを付し、いずれかの識別番号の一部をマスクすることにより、ある機能を実現するための処理エレメントの物理的な位置により決定される任意の形状のグループを定義し、その単位で設定用のデータを供給したり、制御データを供給することが記載されている。しかしながら、データフローを再構成する際に、異なる機能を実現する処理エレメントが含まれる形状は大きく変化する可能性が高い。したがって、一部をマスクすることによりそれぞれの機能に対応した形状を表現できるような独立した識別番号を各々の処理エレメントに付与しようとすると識別番号は冗長となり、その識別番号を見出し、識別番号を利用したプログラミングを行うには膨大な時間がかかる。したがって、高コストの要因になり、さらに、システムのフレキシビリティーを減ずる要因ともなる。
また、物理的な位置により決定される任意の形状のグループに含まれる処理エレメントに対しデータを供給する方法は、配置が集中した複数の処理エレメントに対して同一の設定用のデータを供給する場合には、時間の短縮になる可能性がある。しかしながら、個々の処理エレメントの機能が異なっている場合には、結局、データフローを形成する各々の処理エレメントあるいは処理ユニットに対して個別に設定用のデータを供給する必要があり、外側から設定用のデータを短時間でロードさせることはできず、処理速度の改善という根本的な問題は解決されていない。
さらに、ネットワークを介して各々の処理エレメントに対して個別に設定用のデータを供給するためには、それぞれの処理エレメントを識別する必要がある。このため、それぞれの処理エレメントには独立した識別番号を付す必要があり、それらの独立した識別番号を処理することにより任意の形状のグループも形成しようとすると複雑な体系の識別番号が必要となり、それを認識する制御方法およびハードウェアも複雑なものとなる。したがって、経済的であるとは言えず、処理速度も向上し難い。
そこで、本発明においては、複数の処理エレメントまたは処理ユニットがネットワークで接続されるデータ処理システムにおいて、設定用のデータを各処理ユニットに供給すると共に、動的に、あるいはクロック単位で、異なる機能のデータパスあるいはデータフローを設定することが可能なデータ処理システムを提供することを目的としている。さらに、処理ユニットに対して複雑な体系の仮想アドレスを割り当ててマスクするなどの複雑な処理をする必要がなく、簡単な方法で、設定データを供給したり制御情報を供給する処理ユニットを適切に識別することができ、プログラミングの自由度も高いデータ処理システムを提供することを目的としている。
発明の開示
このため、本発明においては、複数の処理ユニットを有するデータ処理システムであって、第１、第２および第３のデータ転送手段を有するデータ処理システムを提供する。第１のデータ転送手段は、複数の処理ユニットをネットワーク状に接続して第１のデータの受け渡しを行い、複数の処理ユニットのうち、２以上の処理ユニットを接続することにより、再構成可能な少なくとも１つのデータフローを構成する。第２のデータ転送手段は、複数の処理ユニットに対し並列に第２のデータを供給する。そして、第３のデータ転送手段は、複数の処理ユニットの各々に対して設定データを供給する。この設定データは、第１のデータ転送手段を介して接続される他の処理ユニットを直接または間接的に変更し、および／または、当該処理ユニットの処理内容を変更することにより、異なる機能のデータフローを設定するデータである。
このデータ処理システムであれば、ネットワーク状の第１のデータ転送手段あるいはブロードキャスト型の第２のデータ転送手段ではなく、各々の処理ユニットに対して個別にデータを供給できる専用バス型の第３のデータ転送手段により設定データを供給することができる。したがって、個々の処理ユニットのアドレスを指定して、順番に設定データを転送しなくても良いので、短時間に、たとえば、１クロックで複数の処理ユニットに対して設定データを供給できる。さらに、設定データを配布するために各々の処理ユニットに対してアドレスを設定する必要がないので、仮想アドレスは不要であり、マスキングなどの面倒な処理を行わなくても、データフローを単純に示す識別情報で、そのデータフローに属する処理ユニットを指定することが可能となる。
本発明におけるデータフローは、ネットワークとなる第１のデータ転送手段で接続可能な全処理ユニットあるいは一部の処理ユニット（以降では機器あるいはエレメントと称することもある）を占有して実現される「機能」と表現することも可能なものであり、その機能の内部でデータを受け渡し、処理し、その機能の末端ではネットワークの外部からデータを受け取り、ネットワークの外へデータを渡す。そして、データフローは、自律的もしくは他律的に制御され、例えば、データの出口が詰まったら、それ全体の動作が一時停止されるような制御が行われる。また、データフロー同士の間では、データフローの内部で積極的な情報のやりとりは行われず、基本的には、互いに独立した存在として機能する。
本発明のデータ処理装置を制御する際は、第３のデータ転送手段を介して、設定データにより設定されるデータフローを示す識別情報を設定データと共に供給する第１の工程により、データフローを構成する処理ユニットに、そのデータフローを構成していることを示す識別情報を付すことができる。したがって、第２のデータ転送手段を介して、識別情報を第２のデータと共に供給すると、第３のデータ転送手段を介して供給される、または供給された識別情報に基づき第２のデータを選択して処理する第２の工程により、複数の処理ユニットに対しデータフローの単位で第２のデータを選択して処理させることが可能となる。このために、処理ユニットは、第３のデータ転送手段を介して供給される識別情報に基づき第２のデータを選択して処理する手段を備えていることが望ましい。
第２のデータを選択するために用いられる識別情報は、第２のデータが供給されるタイミングで、第３のデータ転送手段により供給されている識別情報であっても良い。この場合は、たとえば、処理ユニットにロードする設定データを、その設定データと共に供給されている識別情報、すなわち、次に処理ユニットが属するデータフローの識別情報により制御できる。
一方、第２の工程では、第３のデータ転送手段により供給された識別情報に基づき第２のデータを選択することも可能である。供給された識別情報を記憶するためには、処理ユニットに識別情報を記憶する手段、すなわちメモリを設けることが望ましい。この場合は、処理ユニットにロードする設定データを、それ以前に設定データと共に処理ユニットに記憶されている識別情報、すなわち、処理ユニットが現在属しているデータフローの識別情報により制御できる。
本発明において、第２のデータとして重要なものは、処理ユニットの動作を制御する制御情報（コマンド）である。特に、制御情報として、設定データをロードする第１のコマンドを第２のデータ伝達手段を介して供給することにより複数の処理ユニットのいずれかに対し、設定データを同時に適用すると共に、データフローの識別情報を適用することができる。これにより、処理ユニットは、自己が属するデータフローを識別情報により認識し、以降では、識別情報が付された制御情報に基づき動作することができる。識別情報は、個々の処理ユニットを特定可能な情報である必要はなく、むしろデータフローを識別できるだけの簡単な情報でよく、小さなデータで数多くのデータフローを識別することが可能となる。
また、第２のデータ転送手段を介して設定データをロードする制御情報が供給されることにより、複数の処理ユニットに設定データが同時に適用され、データフローの構成あるいは機能を瞬時に切り替えることができる。したがって、特定の１または複数のデータフローを構成する処理ユニットに、動的に新しい設定データをロードさせて新しいデータフローを構成させることができる。
したがって、本発明のデータ処理システムを制御するプログラムまたはプログラム製品は、第３のデータ転送手段を介して設定データと、その設定データにより設定されるデータフローを示す識別情報とを供給し、第２のデータ転送手段を介して、設定データをロードする制御情報を、少なくとも１つの識別情報を付して供給する処理を実行する命令を有している。このプログラムまたはプログラム製品は、適当な記録媒体に記録して提供できるし、あるいは、コンピュータネットワークなどの通信手段を介して提供することも可能である。
設定データは、データフローを構成するための様々な情報を含む。たとえば、第１のデータ転送手段が接続相手の処理ユニットのアドレスを指定することにより第１のデータを転送するネットワークであれば、接続相手先のアドレスを含む。あるいは、第１のデータ転送手段を構成する配線を選択したり、切り替えることにより接続先の処理ユニットを指定できるのであれば、配線の選択あるいは接続情報を含む。さらに、処理ユニットが自己の処理内容を変更できるのであれば、データパスを成立させるための処理内容を示す情報も含む。自己の処理内容を変更可能な処理ユニットとしてはプログラミング可能なプロセッサがある。また、処理ユニットに、複数の選択可能な内部データパスを設け、設定データにより内部データパスを選択できるようにしても良い。
汎用型のプロセッサはフレキシブルな処理が可能であるが、その分、処理速度が遅くなるか、処理速度を向上しようとすると大型で高コストになる。それに対して、複数の内部データパスを備えた処理ユニットはコンパクトで低コストであり、高速処理が可能であり、さらにある程度のフレキシビリティーがある。したがって、内部データパスの種類の異なる複数の処理ユニットを配置し、それらをネットワーク型の第１のデータ転送手段により接続することにより、高速に様々な処理が可能なデータ処理システムを構築することが可能である。そして、本発明を適用することにより動的にデータパスの構成あるいは機能を変更することが可能となる。
本発明のデータ処理システムにおいて、第２のデータ転送手段を介して識別情報と共に供給される第２のデータは、複数の処理ユニットに対して特定のデータフローを指定して供給する必要のある同じデータであれば種類を問わない。第２のデータとして重要なものの１つは、処理ユニットの動作を制御する制御情報であり、設定データをロードする第１のコマンドもその１つである。さらに、制御情報を、データフローを示す識別情報を付して第２のデータ転送手段を介して供給することにより、複数の処理ユニットをデータフローの単位で制御できる。したがって、データ処理システムは、第２のデータ転送手段を介して、データフローを示す識別情報と、処理ユニットの動作を制御する制御情報とを供給し、処理ユニットは、自己が属する識別情報の制御情報に基づき動作する手段を備えていることが望ましい。また、データ処理システムの制御方法は、第２のデータ転送手段を介して、データフローを示す識別情報と、処理ユニットの動作を制御する制御情報とが供給されると、処理ユニットは、自己が属する識別情報の制御情報に基づき動作する工程を備えていることが望ましい。さらに、このデータ処理システムを制御するプログラム（プログラム製品）は、制御コマンドなどの制御情報を、少なくとも１つのデータフローを示す識別情報を付して第２のデータ転送手段を介して供給する処理を実行できることが望ましい。
ネットワークで接続され所定の演算処理を実行する機能を持ったデータパスまたはデータフローを構成する複数の処理ユニットに対して制御情報を並列に供給することにより、複数の処理ユニットが分散している場合でも、それらにより構成されるデータフローを精度良く、たとえば１クロックで制御することが可能である。したがって、データフローを構成する複数の処理ユニットを同期して制御したり、制御用のプロセッサにより集中管理したりすることが容易となる。そして、データフローを識別する情報は、上述したように、個々の処理ユニットを特定可能な情報である必要はないので、簡単なデータとなり、その処理のために必要なハードウェアも小さくなる。したがって、経済的で処理速度の速いデータ処理システムを実現でき、その中で、処理ユニットが備えている複数の機能を１クロックで切り換えて異なる機能のデータフローを構成するような処理も容易に実現できる。
制御情報は、設定データをロードするコマンド（第１のコマンド）に限らず、たとえば、処理ユニットの開始または停止を指示するスタートコマンドまたはフリーズコマンド（ストップコマンド）（第２のコマンド）がある。スタートコマンドにより設定データをロードするようにしても良い。処理ユニットの停止を指示するフリーズコマンドを第２のデータ転送手段を介して識別情報と共に供給することにより、その識別情報で指示されるデータフローを構成する処理ユニットの処理を同期して停止することができる。構成していたデータフローの処理の終了を待たずに、他の機能のデータフローにより処理を開始する必要があり、処理ユニットが不足しているときに、処理ユニットを開放してデータフローを再構築するのに有効である。
さらに、制御情報としては、処理ユニットが動作を停止したときの状態をメモリに格納するストアコマンド（第３のコマンド）、または、処理ユニットが動作を開始する前に、メモリに格納された状態をロードするロードコマンド（第４のコマンド）を供給することも有効である。再構築されたデータフローの処理が終了して、元のデータフローを構成したときに、停止した状態を再現できる。このため、限られた処理ユニットを利用して異なるデータフローを動的に再構築してもデータ処理システムの信頼性を保持できる。
このようなコマンドあるいは制御情報に対応した処理を行えるように、処理ユニットは、第２のデータにより設定データをロードする手段、第２のデータにより動作を開始または停止する手段、第２のデータにより動作を停止すると共に当該処理ユニットの内部情報をメモリに格納し、メモリに格納された内部情報をロードした後に動作を開始する退避手段を備えていることが望ましい。これらの手段は、ロジック回路あるいはマイクロプログラムなどにより実現される。さらに、処理ユニットの状態と共に識別情報をメモリに格納することにより、メモリに格納された識別情報に基づき、動作を開始する制御情報を選択して、データフローを再構築することも可能である。
これらの処理ユニットは距離的に離れていても良い。そのようなデータ処理システムでは、処理ユニットはインターネットなどのコンピュータネットワークを第１のデータ転送手段として使用し、無線あるいは有線による放送する手段を第２のデータ転送手段として使用し、電話網などの個別通信可能な手段を第３のデータ転送手段として使用することになる。一方、処理ユニットを半導体基板などの回路基板に配置して１つのプロセッサとして提供することも可能である。この場合は、第１のデータ転送手段は、複数の処理ユニットを接続する回路網であり、第２のデータ転送手段は、第２のデータの供給源と複数の処理ユニットを接続する回路であり、第３のデータ転送手段は、設定データを処理ユニット毎に記憶した記憶手段と複数の処理ユニットを接続する回路となる。そして、第２のデータとして制御情報を供給する場合は、供給源は制御装置となる。
異なる設定データを第３のデータ転送手段を介して処理ユニットに供給する方法はいくつかある。第１の方法は、処理ユニット毎に複数の設定データを記憶可能なネットワーク設定メモリを用意し、制御方法の第１の工程で、制御装置の制御により、ネットワーク設定メモリに記憶された複数の設定データの中から、複数の処理ユニットの少なくともいずれかに同時に設定される設定データを選択して供給し、第２の工程ではロードするコマンドを供給する方法である。第３のデータ転送手段を介して供給される設定データは選択されたものに限定できるので、第３のデータ転送手段のバス幅は小さくて良いが、制御装置によりネットワーク設定メモリも制御する必要がある。
第２の方法は、第１の工程では、ネットワーク設定メモリに記憶された複数の設定データを供給し、第２の工程で、複数の設定データから１つの設定データを選択してロードするコマンドを供給する方法である。この方法であると、制御装置によりネットワーク設定メモリを制御する必要はないが、処理ユニット側で設定データを選択できるように第３のデータ転送手段のバス幅を大きくする必要がある。第３のデータ転送手段のバス幅が狭い場合でも、処理ユニット側に十分なメモリ容量があり、転送する時間の余裕があるのであれば、事前に複数の設定データと識別情報の組み合わせを処理ユニットの側に転送しておき、第２の工程で供給されるロードするコマンドで処理ユニットの機能を設定するということも可能である。
第３の方法は、第１の工程では、ネットワーク設定メモリに記憶された設定データを供給し、第１の工程の前に、ネットワーク設定メモリの設定データを制御装置などにより書き換える工程を設ける方法である。ネットワーク設定メモリの記憶容量を小さくすることができるが、事前にネットワーク設定メモリに設定データをロードする処理が必要となる。これらの第１から第３の方法は、完全に異なるものではなく、適宜、混ぜ合わせて利用することも可能である。たとえば、膨大な設定データを記憶したＲＯＭ、ＲＡＭあるいは記録ディスクなどの外部メモリから、適当な量の設定データをデータ処理システムの適当なメモリにいったんロードし、その中から選択された設定データを処理ユニットに供給するようにしても良い。さらに、第３のデータ転送手段のバス幅を２つあるいは限られた設定データが処理ユニット側で選択できるようにして、頻繁にデータパスを構築しなおす必要のある設定データは、第２のデータ転送手段からのコマンドだけで選択できるようにするという方法もある。
発明を実施するための最良の形態
以下に図面を参照しながら、本発明についてさらに説明する。図１に、本発明に係るシステムＬＳＩ１０の概略構成を示してある。このＬＳＩ１０は、プログラムなどによって与えられる命令セットに基づきエラー処理を含めた汎用的な処理を行う汎用な構成のプロセッサ部１１と、マトリクス状に配置された演算あるいは論理エレメントにより特定のアプリケーションのデータ処理に適合したデータフローあるいは擬似データフローが動的に形成されるＡＡＰ（Ａｄｏｐｔｉｖｅ  Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｃｅｓｓｏｒ）ユニット２０と、このＡＡＰユニット２０からの割り込み処理を制御する割り込み制御部１２と、ＡＡＰユニット２０に作動用のクロック信号を供給するクロック発生部１３と、このＬＳＩ１０で提供可能な演算回路のフレキシビリティーをさらに向上するためのＦＰＧＡ部１４と、外部に対するデータの入出力を制御するバス制御部１５とを備えたデータ処理装置である。ＡＡＰユニット２０は、データ処理に適合したデータフローあるいは擬似データフローが動的に形成されるリコンフィグラブルあるいはコンフィグラブルなユニットである。
ＡＡＰユニット２０とＦＰＧＡ部１４との間はデータバス１７により接続されており、ＡＡＰユニット２０からＦＰＧＡ部１４にデータを供給して処理を行い、その結果をＡＡＰユニット２０に返せるようになっている。また、ＡＡＰユニット２０は、入出力バス１８によってバス制御ユニット１５と接続されており、ＬＳＩ１０の外部のデータバスとの間でデータを交換できるようになっている。したがって、ＡＡＰユニット２０は、外部のＤＲＡＭ２やその他のデバイスからデータを入力でき、そのデータをＡＡＰユニット２０で処理した結果を再び外部のデバイスに出力できる。基本プロセッサ部（プロセッサユニットあるいはプロセッサ）１１もデータバス１１ａを介してバス制御ユニット１５を介して外部のデバイスとデータを入出力することが可能である。
プロセッサ１１とＡＡＰユニット２０は、プロセッサ１１とＡＡＰユニット２０との間でデータを交換可能なデータバス２１と、プロセッサ１１からＡＡＰユニット２０の構成および動作を制御するための命令を供給する命令バス５２とにより接続されている。また、ＡＡＰユニット２０から割り込み制御部１２に信号線１９を介して割り込み信号が供給され、ＡＡＰユニット２０における処理が終了したり、処理中にエラーが発生したときはＡＡＰユニット２０の状態をプロセッサ１１にフィードバックできるようになっている。
図２にＡＡＰユニット２０の概要を示してある。本例のＡＡＰユニット２０は、複数の算術および／または論理演算を行う処理ユニット（以降ではエレメント）３０がマトリクス状に配置されたマトリクス部２３と、そのマトリクス部２３に対し、ネットワークを形成する設定データ５７を供給するネットワーク設定メモリ２４と、ネットワークの状態を一時的に格納可能な退避用メモリ２５とを備えている。
マトリクス部２３は、複数の処理ユニット、すなわち、エレメント３０をそなえており、エレメント３０が縦方向と横方向にアレイ状あるいはマトリクス状に配置されている。マトリクス部３０は、これらのエレメント３０をネットワーク状に接続する第１の配線群５１ａおよび５１ｂを備えており、これらの配線群５１ａおよび５１ｂが第１のデータ転送手段としてエレメント３０の間に配置されている。配線群５１ａは、横方向に延びた行配線群であり、配線群５１ｂは、縦方向に延びた列配線群である。列配線群５１ｂは、さらに、列方向に並んだ演算ユニット３０の左右に分かれて配置された配線群５１ｂｘおよび５１ｂｙが１対の構成となっており、これら配線群５１ｂｘおよび５１ｂｙを総称して配線群５１ｂと呼び、実際には、配線群５１ｂｘおよび５１ｂｙからデータが各々のエレメント３０に供給される。行配線群５１ａおよび列配線群５１ｂとの交点にはスイッチングユニット５１ｃが配置されており、行配線群５１ａの任意のチャンネルを、列配線群５１ｂの任意のチャンネルに切り替えて接続できる。各々のスイッチングユニット５１ｃは、設定データを記憶するコンフィグレイションＲＡＭを備えており、基本的には、以下において説明するエレメント３０と同様に設定データを受信し、プロセッサ部１１から供給されるコマンドにより制御される。
このため、本例のマトリクス部２３においては、複数のエレメント３０の全部あるいは一部を配線群５１ａおよび５１ｂにより接続し、物理的に離れたエレメント３０にもクロックを消費せずにデータ（第１のデータ）をルーティングできる。したがって、複数のエレメント３０を用いて任意の処理を行う１つまたは複数のデータフローを任意のタイミングで動的に構成し、それらを任意のタイミングで動的に変更することができる。
マトリクス部２３は、さらに、プロセッサ部１１からの制御信号（コマンド）５５を各々のエレメント３０に供給する第２の配線群５２を備えている。したがって、本例では、配線群５２が第２のデータ転送手段となる。この配線群５２は、各エレメント３０に対し、制御装置であるプロセッサ部１１からの制御データ（第２のデータ）５５を並列に送信できるものである。このため、第２の配線群５２は、プロセッサ部１１からの制御データ５５をマトリクス部２３の内部のエレメント３０にブロードキャストする機能を有する。この際、本例のデータ処理装置１０においては、プロセッサ部１１は、制御データ５５にデータフローを識別する情報であるデータフローＩＤ（以降ではＤＦＩＤ）５６を付加して送信する。
また、マトリクス部２３は、ネットワーク設定メモリ２４と各々のエレメント３０を接続し、設定データを供給する第３の配線群５３を備えている。したがって、本例では、第３の配線群５３が第３のデータ転送手段となる。ネットワーク設定用メモリ２４としては２ポートＲＡＭが使用されており、プロセッサ部１１に接続される第１のポート２４ａと、マトリクス部２３に接続される第２のポート２４ｂとを備えている。プロセッサ部１１からは第１のポート２４ａにより、通常のＲＡＭなどのメモリとして制御できる。一方、第２のポート２４ｂには第３の配線群５３が接続されているので、ネットワーク設定メモリ２４とマトリクス部２３のエレメント３０のそれぞれと専用に接続されたデータバスが形成されている。したがって、ネットワークメモリ２４は全体として広大なバス幅を有するメモリとなっている。
図３に拡大して示すように、ネットワーク設定メモリ２４の１つのバンク２４．１には、各々のエレメント３０に対応するエリア２８が設けられている。たとえば、０行０列のエレメント３０に対応するエリア（０，０）、１行０列のエレメント３０に対応するエリア（１，０）などがある。エリア２８は物理的に規定されていても良いし、メモリ内のアドレスで規定されていても良い。そして、各々のエリア２８に、ＤＦＩＤ５８と、設定データ５７とが記憶されている。このように各々のエレメント毎に記憶されたＤＦＩＤ５８と設定データ５７との組み合わせが、第３の配線群５３を介して、各エレメント３０に個別に供給される。
設定メモリ２４は、複数のバンク２４．１〜２４．ｎを備えており、それぞれのバンク２４．１〜２４．ｎには異なる設定番号（設定Ｎｏ）２９が付され、異なる設定データ５７が記憶されている。したがって、マトリクス部２３の制御装置であるプロセッサ部１１から設定番号２９が指定されると、その設定番号２９に対応するＤＦＩＤ５８と設定データ５７とが各々のエレメント３０に供給される。そして、第２の配線群５２から供給されているＤＦＩＤ５６と制御データ５５により、複数のエレメント３０において、エレメント毎に個別に用意され、供給された設定データ５７が同時に選択されて利用される。
ネットワーク設定メモリ２４の内容は、プロセッサ１１の制御によりＤＲＡＭ２などの外部メモリからロードして変更または更新することができる。設定メモリ２４に格納可能な設定データ５７の数が多ければ、設定メモリ２４を更新する頻度は少なくて済み、それにかかるオーバーヘッドな処理時間を省くことができる。一方、設定メモリ２４に格納可能な設定データ５７の数が少なければ、設定メモリ２４を更新することにより、エレメント３０に供給する設定データ５７の内容を制御することができる。
マトリクス部２３は、さらに、退避用メモリ２５と各々のエレメント３０を接続し、各エレメント３０の状態を退避用メモリ２５に入出力する第４の配線群５４を備えている。本例の退避用メモリ２５は、第４の配線群５４によりマトリクス部２３のエレメント３０のそれぞれと専用に接続されている。したがって、バス幅の広いデータバスを形成できるメモリが採用されている。したがって、各々のエレメント３０の状態を１クロックまたは非常に少ないクロックでストアおよびロードできる。一方、各々のエレメント３０の状態のストアおよびロードに数クロックを割けるのであれば、中継用のセレクタを設置することによりバス幅の狭いメモリを用いることができる。
マトリクス部２３に配置されている各エレメント３０は、１組の列配線群５１ｂｘおよび５１ｂｙのそれぞれから入力データを選択するための１組のセレクタ３１と、選択された入力データｄｉｘおよびｄｉｙに特定の算術および／または論理演算処理を施し、出力データｄｏとして行配線群５１ａに出力する内部データパス部３２を備えている。なお、以降では、様々な機能を備えた内部データパス部３２を示すが、それらを総称して内部データパス部３２と称する。本例のマトリクス部２３には、ほぼ行単位で異なる処理を行うための内部データパス部３２を備えたエレメント３０が並んで配置されている。さらに、これらの配線群５１ａおよび５１ｂには、キャリー信号を伝送する配線も用意されている。キャリー信号は、桁上げ用の信号や真偽を示す信号として使用することが可能であり、本例のマトリクス部２３では、各エレメント３０において算術演算および論理演算を制御したり、結果を他のエレメント３０に伝達するためなどに利用される。
たとえば、図面上部の第１行目に配列されたエレメント３０は、バス制御部１５の入力バッファからのデータを受信する処理に適した構成となっている。現状のマトリクス部２３に配置されたロード用のデータパス部ＬＤは、ロードバス１８からデータを受信して、行配線群５１ａに出力する。
第２行目および第３行目に配置されたエレメント３０は、外部ＲＡＭ２からデータを読み込むためのエレメントであり、データをロードするために必要なアドレスを発生するのに適した内部データパス部３２ａを備えている。
図４は、データパス部３２ａの一例である。このデータパス部３２ａは、カウンタなどからなるアドレス発生回路３８を備えており、アドレスが出力信号ｄｏとして出力される。この出力信号ｄｏは、行配線群５１ａおよび列配線群５１ｂを介して、そのまま、あるいは、他のエレメント３０によって処理された後に入力信号ｄｉｘあるいはｄｉｙとしてデータパス部３２ａに供給される。供給されたアドレスは、セレクタＳＥＬで選択されてフリップフロップＦＦを介してマトリクス部２３からデータ入力用のアドレスとして出力される。
エレメント３０は、内部データパス部３２ａを制御する制御部６０を備えており、その制御部６０が第３の配線群５３を介してロードした設定データ５７に基づき内部データパス部３２ａの機能を設定する。アドレスを発生する内部データパス部３２ａでは、アドレス発生回路３８の初期値や固定値、セレクタＳＥＬの選択状態などが設定データ５７によりセットされる。
さらに、エレメント３０は、列配線群５１ｂｘおよび５１ｂｙのそれぞれから入力データを選択するためのセレクタ３１を備えているが、その設定なども制御部６０が設定データ５７に基づき行う。さらに、行配線群５１ａおよび列配線群５１ｂの接続を行う各スイッチングユニット５１ｃの設定も各スイッチングユニット５１ｃの制御部６０が設定データ５７に基づき行う。したがって、本例のマトリクス部２３においては、第１の配線群５１ａおよび５１ｂを介して接続されるエレメント３０を設定データ５７により選択することができるので、自由にデータフローを構成できる。さらに、設定データ５７により内部データパス部３２の機能を変える、または選択することにより、内部データパス部３２が予めサポートできる範囲内で各エレメント３０の処理内容も変えることが可能であり、いっそうフレキシブルにデータフローを構成できる。
第４行目および第５行目に配列されたエレメント３０は、算術演算および論理演算に適したデータパス部（ＳＭＡ）３２ｂを備えている。このデータパス部３２ｂは、図５に示すように、シフト回路ＳＨＩＦＴ、マスク回路ＭＡＳＫ、論理演算ユニットＡＬＵを備えている。そして、上記のエレメントと同様に、制御部６０により、設定データ５７に基づき、これらのシフト回路ＳＨＩＦＴ、マスク回路ＭＡＳＫ、論理演算ユニットＡＬＵの状態が設定される。したがって、入力データｄｉｘおよびｄｉｙを加算あるいは減算したり、比較したり、論理和あるいは論理積を演算することができ、その結果が出力信号ｄｏとして出力することができる。
エレメント３０は、マトリクス部２３で処理する内容により様々なものを用意することが可能であり、たとえば、下の行に配列されたエレメント３０は、データが伝送されるタイミングを遅延する処理に適したデータパス部（ＤＥＬ）３２ｃを備えている。このデータパス部３２ｃには、たとえば、複数のセレクタとフリップフロップＦＦとの組み合わせで構成でき、入力信号を任意のクロック数だけ遅延して出力することができる。また、乗算器などを含む乗算処理に適したデータパス部、マトリクス部２３の外部に用意されたＦＰＧＡ１４とのインターフェイス用のデータパス部、データ出力用のアドレスを発生するのに適したデータパス部などを提供することが可能である。
これらのエレメント３０は、上述したようにいずれも、アドレスを発生させるなどの特定の処理あるいは機能に適したデータパスを備えていると共に、その構成あるいは機能を設定データ５７に基づき制御部６０で変更できる。そして、第１の配線群５１ａおよび５１ｂによるマトリクス部２３の他のエレメント３０との接続環境も変更できる。したがって、本例のマトリクス部２３は、各々のエレメント３０が、特定の処理に特化したデータパスあるいは専用回路を備えているので、ハードウェア的に高速処理が可能であり、その一方で、エレメント３０の接続を変えたり、エレメント３０の機能を限られた範囲で変えることにより、マトリクス部２３における処理内容をフレキシブルに変更することができる。
ＦＰＧＡも、トランジスタ間の接続を変更することによりフレキシブルな構成を実現できるアーキテクチャであり、製造した後に機能を自由に変更することが可能な集積回路装置である。しかしながら、ＦＰＧＡには、ＡＮＤやＯＲなどの論理ゲートそのものが内蔵されているわけではないので、専用演算回路としての機能を実現できるといっても面積効率は低く、演算速度もそれほど高くはならない。さらに、ＦＰＧＡ自体は、ハードウェアをダイナミックに変更するには時間がかかり、また、その時間を短縮するためのハードウェアが必要となる。このため、アプリケーションの実行中にハードウェアを動的に制御することは難しく、経済的でもない。
これに対し、本例のマトリクス部２３を採用した本例のデータ処理装置１０は、適当な、あるいは特定の処理に適したデータパスを予め備えた複数種類のエレメントが用意されているので、ＦＰＧＡのように各トランジスタ間の接続をすべて変更する必要がない。したがって、短時間でハードウェアを再構成することができ、さらに、ＦＰＧＡのようにトランジスタレベルでの汎用性を要求するアーキテクチャではないので、実装密度も向上でき、コンパクトで経済的なシステムとなっている。さらに、冗長な構成を削減することができるので、処理速度も高速化でき、ＡＣ特性も良好である。
図６に、エレメント３０の制御部６０の概略構成を示してある。制御部６０は、第２の配線群５２を介して提供される制御コマンドなどの情報を解釈するデコード部６１と、データパス部３２の設定データを記憶するコンフィグレイションＲＡＭ６２とを備えている。コンフィグレイションＲＡＭ６２には、ＤＦＩＤ６３と、内部設定および内部状態を示す内部情報６４が記憶される。内部情報６４は、第３の配線群５３を介して供給される設定データ５７に加えて、データパス部３２の稼動状態（ステータス）などのデータパス部３２における処理をトレースできる情報が含まれる。たとえば、設定データ５７としては、データパス部３２の演算器の制御情報、初期値や固定値などのパラメータ、データパス部内のパスの選択情報、エレメント間の配線、すなわち、第１の配線網５１ａおよび５１ｂの選択情報を含む。コンフィグレイションＲＡＭ６２は書き換え可能なメモリであれば良く、レジスタ、ＥＥＰＲＯＭなどであってももちろん良い。
デコード部６１は、第３の配線群５３から供給されるＤＦＩＤ５８と、第３の配線群５３から既に供給され、ＲＡＭ６２に記憶されているＤＦＩＤ６３と、後述する退避メモリ２５から供給されるＤＦＩＤ７１のいずれかを選択するセレクタ６５と、このセレクタ６５により選択されたＤＦＩＤと、第２の配線群５２から供給されるＤＦＩＤ５６とを比較するコンパレータ６６と、コンパレータ６６でＤＦＩＤが一致したときに第２の配線群５２から供給される制御情報（コマンド）５５をデコードし実行するコマンドデコーダ６７を備えている。
図７に、このデータ処理装置１０においてマトリクス部２３のデータフローを設定したり、データフローを制御する処理の概要を、プロセッサ１１の処理と、エレメント３０の制御部６０の処理とで示してある。データ処理装置１０においてデータフローの制御方法は、第３の配線群５３を介してＤＦＩＤ５８と設定データ５７を供給する第１の工程１０１と、第２の配線群５２を介してＤＦＩＤ５６とコマンド５５とを供給する第２の工程１０２とを備えている。
プロセッサ１１が、ステップ１０９でコードＲＡＭ１１ｃに記憶されたプログラム１１ｐから命令をフェッチし、フェッチした命令がマトリクス部２３のデータフローの構成を制御する命令であると、第１の工程１０１および第２の工程１０２を実行する。フェッチした命令が、既に構成済みのデータフローを制御する命令であると、第２の工程１０２を実行することになる。第１の工程１０１においては、プロセッサ１１が、プログラム１１ｐに基づき、ステップ１１１で、新しい設定データ５７を供給する必要があると判断すると、ステップ１１４でネットワーク設定メモリ２４から第３の配線群５３を介して、エレメント３０のそれぞれに対しＤＦＩＤ５８および設定データ５７を供給する。この際、ネットワーク設定メモリ２４の内容を更新する必要があれば（ステップ１１２）、ＤＲＡＭ２などに格納されている設定データ５７を読み込んで更新する（ステップ１１３）。ネットワーク設定メモリ５４の書き換えは、バンク単位でも良いし、設定番号（設定Ｎｏ）単位でも良いし、メモリ５４の全内容を更新することも可能である。
ステップ１１４において、異なる設定データ５７を第３の配線群５３を介して所望のエレメント３０に供給する方法はいくつかある。第１の方法は、ステップ１１４において、ネットワーク設定メモリ２４に記憶された複数の設定データ５７の中からエレメント３０にロードされる設定データ５７が選択して出力され、以下の第２の工程１０２では、その設定データ５７がロードされる方法である。ネットワーク設定メモリ２４の容量が少なく、１つの設定Ｎｏしかストアできないような場合は、ステップ１１３で更新された設定データがエレメント３０に供給されることになる。これは上述した第３の方法に該当する。
第２の方法は、ステップ１１４では、ネットワーク設定メモリ２４に記憶された複数の設定データ５７がエレメント３０から選択できる状態で供給し、第２の工程１０２では、エレメント３０がコマンドに基づいて複数の設定データ５７から１つの設定データを選択してロードする方法である。この第２の方法は、プロセッサ１１により設定メモリ２４を操作する手順が少なくなるのでプロセッサ１１の負荷は減るが、第３の配線群５３のバス幅を大きくする必要がある。事前に複数の設定データ５７と識別情報５８との組み合わせをエレメント３０の制御部６０のコンフィグレイションＲＡＭ６２などにダウンロードしておくことも可能であるが、エレメント３０に十分なメモリ容量を設ける必要があり、また、転送するための時間を確保する必要がある。
これらの方法を混合した制御方法も可能である。たとえば、第３の配線群５３のバス幅を２つ程度の限られた設定データ５７がエレメント３０で選択できるようにして、頻繁にデータパスを構築しなおす必要のある設定データは、第２の配線群５２からのコマンドだけで選択できるようにするということも可能である。
第２の工程１０２においては、プロセッサ１１が、プログラム１１ｐに基づき、ステップ１１５で第２の配線群５２を介して、マトリクス２３のエレメント３０の全体にＤＦＩＤ５６とコマンド５５を供給する。各エレメント３０の制御部６０においては、ステップ１１６で、第２の配線群５２を介して、ＤＦＩＤ５６とコマンド５５を受けると、ステップ１１７で、第２の配線群５２を介して供給されたＤＦＩＤ５６と比較するＤＦＩＤ、すなわち処理ユニットが属するとするＤＦＩＤを選択する。本例では、上述したように、セレクタ６５により、第３の配線群５３を介して供給されているＤＦＩＤ５８と、制御部６０に記憶されているＤＦＩＤ６３と、退避用メモリ２５に格納されているＤＦＩＤ７１のいずれかを選択することができる。ステップ１１８で、比較対象のＤＦＩＤと、第２の配線群５２を介して供給されたＤＦＩＤ５６が一致すると、ステップ１１９でコマンド５５を実行する。
このデータ処理装置１０において、プロセッサ１１のコードＲＡＭ１１ｃに記憶されたプログラム１１ｐに、ネットワーク設定用メモリ２４の設定Ｎｏ１の設定データを用いて、ＤＦＩＤ１、２および３のデータフローをマトリクス部２３に構成する処理を実行する命令Ｉｎｓ１があると、プロセッサ１１は、ステップ１１４で、ネットワーク設定用メモリ２４に対しバンク２４．１を選択する制御信号φ１を出力する。さらに、プロセッサ１１は、ステップ１１５で、第２の配線群５２を介してデータフローを形成するスタートコマンド５５ａをエレメント３０に供給する。スタートコマンド５５ａはたとえば以下のようになる。
ｓｔａｒｔ  ＤＦＩＤ，ＯＰ      ・・・（１）
エレメント３０の制御部６０のデコーダ６７は、ステップ１１８で、コマンドと共に供給されたＤＦＩＤ５６がセレクタ６５で選択されたＤＦＩＤと一致していると、ステップ１１９で、スタートコマンド５５ａを解釈して実行する。本例では、コンフィグレイションＲＡＭ６２に対して第３の配線群５３から供給されている設定データ５７を記憶する制御信号を出力する。コマンド５５と共に発行するＤＦＩＤは、上記のように複数でも良く、また、単数であっても良い。
スタートコマンド５５ａのＯＰは、オプションのパラメータである。パラメータの１つは、設定Ｎｏを選択する情報である。第３の配線群５３のバス幅が広く、第３の配線群５３を介して設定用メモリ２４の複数のバンク、すなわち、複数の設定Ｎｏの設定データ５７を提供できる場合は、パラメータにより、それらのいずれかの設定Ｎｏの設定データをＲＡＭ６２に記憶させるようにすることができる。したがって、プロセッサ１１は、ネットワーク設定メモリ２４から出力される設定データを選択しなくて良いか、あるいは、ブロック単位などの大きな単位で選択する程度で良い。したがって、ネットワーク設定メモリ２４の制御が容易になり、処理速度は向上する。しかしながら、第３の配線群５３のバス幅を確保する必要があるので、データ処理装置１０は大きくなる。
ステップ１１７において設定されるセレクタ６５の状態は、コンフィグレイションＲＡＭ６２に記憶される設定データ５７により定義しても良く、あるいは、セレクタ６５の状態を設定するコマンド５５を第２の配線群５２を介して供給しても良い。また、デコーダ６７で先行してコマンド５５をデコードし、コマンド自身、あるいはコマンドに付加されたパラメータによってセレクタ６５の状態を設定することも可能である。いずれの場合もセレクタ６５で選択されたＤＦＩＤとＤＦＩＤ５６が一致した場合のみ、デコード結果を実行する。
ステップ１１７において、セレクタ６５により、第３の配線群５３により設定データ５７と共に供給されるＤＦＩＤ５８が選択されると、そのＤＦＩＤ５８と、スタートコマンド５５ａにより指定されたＤＦＩＤ５６が一致するエレメント３０で設定データ５７が更新される。したがって、スタートコマンド５５ａと共に供給されるＤＦＩＤ５６は、マトリクス部２３に新たに構築されるデータフローを示すＤＦＩＤとなる。
一方、セレクタ６５により、コンフィグレイションＲＡＭ６２に記憶されたＤＦＩＤ６３、すなわち、エレメント３０が現在属しているデータフローを識別するＤＦＩＤを選択することも可能である。この場合は、スタートコマンド５５ａと共に供給されるＤＦＩＤ５６は、マトリクス部２３で更新されるデータフローを示すＤＦＩＤとなる。
いずれの場合も、ネットワーク設定用メモリ２４から第３の配線群５３を介して複数のエレメント３０に供給されている設定データ５７を、スタートコマンド５５ａにより、コマンドと共に供給されたＤＦＩＤ５６で識別される複数のエレメント３０に同時に設定できる。したがって、各々のエレメント毎に設定データを提供する必要はなく、高速に、たとえば、１クロックで新しいデータフローを構築することができる。さらに、そのために使用されるＤＦＩＤは、各々のエレメント３０を識別する情報を一切含まなくて良いので、本例に示すような非常に簡単な、情報量の少ないデータで済む。したがって、データフローの切り換えを高速で、極めて簡単に行うことができるデータ処理装置１０を提供できる。
本例のデータ処理システム１０においては、第３の配線群５３によりネットワーク設定用メモリ２４の各エレメント３０に対応したアドレス領域２８と各エレメント３０の制御部６０とを個別にダイレクトに接続している。したがって、第３の配線群５３のバス幅が十分であり、距離的な遅延が無視できる程度の動作周波数であれば、ネットワーク設定用メモリ２４の設定データ５７をエレメント３０の制御部のコンフィグレイションＲＡＭ６２にロードしなくても、設定用メモリ２４の各エレメント３０に対応したアドレス領域２８をコンフィグレイションＲＡＭ６２として利用することも可能である。
以下では、本例のデータ処理装置１０において、ＤＦＩＤを用いたコマンドの幾つかの例を示す。まず、データフローの動作を停止する停止コマンド５５ｂは以下のようになる。
ｆｒｅｅｚｅ  ＤＦＩＤ・・・（２）
データフローの動作を停止させずに、データフローを切替えようとすると、切替え中または切替え後に誤動作する可能性がある。たとえば、切替え前に、クロック毎にメモリアクセスしていたハードウェア資源が切替え中に動作していると、想定外のアドレスにアクセスを行うことになる。仮にそのアクセスが致命的な結果を引き起こさなくとも、外部バスサイクルを発生させ、少なくとも性能低下の要因となる。また、マトリクス部２３のデータフローを動的に切替える際に再現性がなくなる可能性がある。たとえば、データフローを停止させずに切替えると、切替え中にもデータフローが動作してしまう。すると、次回に設定データを戻してデータフローを再起動して処理を継続したときに、切替えを行わなかった場合と異なる結果になり得る。すなわち、データフローを再起動するためにデータフローを構成する各エレメントに戻された内部情報は、切替え前の値と、切替え中に書き換わった値が混在する可能性がある。
したがって、プロセッサ１１においては、プログラム１１ｐにデータフローを切替える命令Ｉｎｓ２があると、ステップ１１５で、対象となるデータフローをＤＦＩＤで指定して動作を停止させる停止コマンド（フリーズ命令）５５ｂを第２の配線群５２を介して発行する。エレメント３０の制御部６０においては、ＤＦＩＤが一致するフリーズ命令５５ｂを受けると、エレメント３０の動作を停止する。このフリーズ命令５５ｂに、データフローの機能を停止するだけではなく、いったん機能を停止しているデータフローを動作させる機能を持たせても良い。そして、本例のデータ処理システム１０においては、各エレメント３０が属するデータフローを識別する情報はＤＦＩＤとして予め割り付けられているので、停止コマンド５５ｂと共にＤＦＩＤを発行することにより、エレメント内部から参照する際にはアドレス生成の必要は無い。
このように、停止コマンド５５ｂを用意することにより、動作中のデータフローを指定してその機能を停止させることにより、余計なバスアクセスを抑制できる。また、データフローを動的に切替える際、再現性が確実に得られることになる。したがって、このようにデータフローを識別する情報ＤＦＩＤを付して第２の配線群５２を介して停止コマンド５５ｂを供給し、それによりデータフローを停止し、さらにはデータフローを動作する制御方法は、本例のように第３の配線群５３を介してデータフロー毎にＤＦＩＤをエレメントに付すデータ処理装置に限らず、ネットワークを介して、本例であると第１の配線群５１ａおよび５１ｂを介してＤＦＩＤを付すようなデータ処理装置においても有効である。
データフローを動的に再構成する際に、稼動中のデータフローを一時的に退避して、再稼動させるストアコマンド５５ｃおよびロードコマンド５５ｄは以下のようになる。
ｓｔｏｒｅｖ  ＤＦＩＤ
ｌｏａｄｖ    ＤＦＩＤ      ・・・（３）
マトリクス部２３で実行したい処理が複数ある場合に、現在、マトリクス部２３のエレメント３０を占有している処理の終了を待ってから、次の処理を実行することも可能である。しかしながら、そのときに要求されている処理がリアルタイム性を要求されている優先度の高い処理であると、そのような制御方法では対処できない。また、マトリクス部２３において、たまたま現在使用されていないエレメントを寄せ集めて、次の処理を実現するとなると、エレメント３０が空いていなければそれまでである。さらに、空いているエレメント３０を寄せ集める際には、空いているエレメント３０が事前に予測できないので、その都度、エレメント３０を繋ぐ配線資源、すなわち、第１の配線網５１ａおよび５１ｂの配線方法を演算する必要があり、時間がかかる。したがって、この場合もリアルタイム性が要求されているケースには対応できない。
現在実行中の処理を中断して、優先度の高い処理を実行し、優先度の処理が終わったら、中断された処理を最初からやり直すという方法もある。しかしながら、明らかに処理時間が無駄であるし、中断された処理がやり直し不可能な場合には実現すら不可能となる。
これに対し、本例のデータ処理システム１０では、プログラム１１ｐに優先度の高い処理を実行する命令Ｉｎｓ３があると、プロセッサ部１１は、ステップ１１５において、優先度の高いデータフローを示すＤＦＩＤを付してストアコマンド５５ｃを発行し、そのデータフローに属することになるエレメント３０の内部情報６４を退避メモリ２５に格納した後、所望のエレメント３０を解放する。これにより、次に、プログラム１１ｐに基づき、ステップ１１５において、スタートコマンド５５ａを供給することにより、優先度の高い処理を実行するデータフローを構築して処理を行うことができる。その後、ステップ１１５において、再現するデータフローのＤＦＩＤを付してロードコマンド５５ｄを発行することにより、退避メモリ２５から内部情報６４をロードし、退避したデータフローを再構築して処理を継続することができる。
したがって、リアルタイム性が要求されるような優先度の高い処理が要求されたときに、その処理を優先してマトリクス部２３で実行することが可能となる。さらに、優先度の高い処理が終了すると、中断されたデータフローを再構築し、中断された状態を再現して中断された状態から処理を継続することができる。このため、処理時間が無駄になることもない。
このため、ストアコマンド５５ｃが発行されると、各エレメント３０の制御部６０においては、第３の配線群５３を介して供給されるＤＦＩＤ５８と、コマンド５５ｃと共に第２の配線群５２を介して供給されるＤＦＩＤ５６とを比較し、該当する場合は、ステップ１１９において、処理を停止し、コンフィグレイションＲＡＭ６２の内部情報６４と、ＤＦＩＤ６３とを第４の配線群５４を介して退避メモリ２５に書き込む。書き込む時間が確保できるのであれば、セレクタやスイッチング回路により構成された転送回路７５によりパラレル−シリアル変換を行い、配線群のバス幅を縮小したり、退避メモリ２５のインターフェイスのバス幅を縮小することができる。
さらに、各エレメント３０の制御部６０のコンフィグレイションＲＡＭ６２の容量が確保でき、退避すべき内部情報とＤＦＩＤを記憶できるのであれば、コンフィグレイションＲＡＭ６２を退避メモリとして利用することも可能である。この場合、エレメント３０で通常に処理を行っているときに、退避メモリあるいはレジスタとして利用するビット領域にも内部情報６４をミラー状態で書き込んでおけば、ストア命令５５ｃにより内部情報６４を退避する処理は不要となる。
また、ストア命令５５ｃによりデータフローの機能を停止するようにしているが、ストア命令５５ｃに先立ってフリーズ命令５５ｂを発行して事前にデータフローの機能を停止させても良い。さらに、優先処理するデータフローを構成するために必要なエレメント３０の配列と、退避するデータフローを構成していたエレメント３０の配列とが一致しない場合は、退避するデータフローのＤＦＩＤを指定してストア命令５５ｃあるいはフリーズ命令５５ｂを発行することが望ましい。この場合は、各エレメント３０のコンフィグレイションＲＡＭ６２に記憶されているＤＦＩＤ６３と比較することにより、適切なエレメント３０の内部情報６４を退避することができる。
復帰するデータフローのＤＦＩＤ５６と共にロードコマンド５５ｄが発行されると、各エレメント３０の制御部６０では、ステップ１１８において、退避メモリ２５の各エレメントに対応したアドレス領域７３に記録されているＤＦＩＤ７１とＤＦＩＤ５６とを比較する。ＤＦＩＤが一致すると、ステップ１１９において、退避メモリ２５に退避されていた内部情報（コンディションデータ）７２をコンフィグレイションＲＡＭ６２にロードする。指定されているＤＦＩＤ５６を構成する全エレメント３０に内部情報６４が復帰すると、中断されていた処理を継続して実行する。
データフローを動的に再構成する際に、稼動中のデータフローを一時的に退避して、再稼動させるストアコマンド５５ｃおよびロードコマンド５５ｄを、上記のようにデータフローを識別する情報ＤＦＩＤを付して第２の配線群５２を介して供給する制御方法は、本例のように第３の配線群５３を介してデータフロー毎にＤＦＩＤをエレメントに付すデータ処理装置に限らず、たとえば、ネットワークを構成する第１の配線群５１ａおよび５１ｂを介してＤＦＩＤを付すようなデータ処理装置においても有効である。
図８に、プロセッサ１１からネットワーク設定用メモリ２４に対し設定Ｎｏ１を指定するコマンドφ１が発行され、さらに、マトリクス部２３に対し第２の配線群５２を介してＤＦＩＤ５６として「１、２、３」を指定してスタートコマンド５５ａが発行された状態を示してある。これにより、各エレメント３０においては、第３の配線群５３を介してネットワーク設定用メモリ２４から供給されているＤＦＩＤ５８が「１」、「２」または「３」となる設定データ５７が、対応する複数のエレメント３０のコンフィグレイションＲＡＭ６２にラッチあるいは格納される。必要であれば、第１の配線群に属するスイッチングユニット５１ｃにも第２の配線群５２および第３の配線群５３が接続されており、第１の配線群５１ａおよび５１ｂの接続情報が供給される。これにより、スタートコマンド５５ａが発行された後、短期間、たとえば、１クロックで、エレメント３０が第１の配線群５１ａおよび５１ｂにより接続され、ＤＦＩＤが「１」のデータフロー８１と、ＤＦＩＤが「２」のデータフロー８２と、ＤＦＩＤが「３」のデータフロー８３が構築され、処理が開始される。
次に、プロセッサ１１から、ＤＦＩＤ５６として「１、２」を指定してフリーズコマンド５５ｂが発行されると、該当するデータフロー８１および８２に属するエレメント３０は動作を停止し、データフロー８１および８２における処理は中断する。しかしながら、ＤＦＩＤ５６で指定されていないデータフロー８３に属するエレメント３０では処理を継続される。
その後、プロセッサ１１から、ネットワーク設定用メモリ２４に対し設定番号２を指定するコマンドφ１が発行され、さらに、マトリクス部２３に対しＤＦＩＤ５６として「４、５」を指定してストアコマンド５５ｃが発行される。これにより、第３の配線群５３を介して供給されているＤＦＩＤ５８に基づき、そのデータフローを構築するために必要となるエレメント３０、すなわち、現在のデータフロー８１および８２を構成していたエレメント３０の内部状態が第４の配線群５４を介して退避メモリ２５に格納される。また、必要であれば、第１の配線群に属するスイッチングユニット５１ｃの状態も退避メモリ２５に格納される。さらに、第３の配線群５３を介してネットワーク設定用メモリ２４から供給されているＤＦＩＤ５８が「４」または「５」の設定データ５７が、対応する複数のエレメント３０のコンフィグレイションＲＡＭ６２に格納される。これにより、図９に示すように、ＤＦＩＤが「４」のデータフロー８４と、ＤＦＩＤが「５」のデータフロー８５が構築され、処理が開始される。
したがって、ストアコマンド５５ｃが発行された後、数クロックでマトリクス部２３の構成は切替えられ、新しいデータフローによる処理が開始される。さらに、この間、データフロー８３では処理が継続して行われており、中断されることはない。
データフロー８４および８５の処理が終了すると、プロセッサ１１から、マトリクス部２３に対しＤＦＩＤ５６として「１、２」を指定してロードコマンド５５ｄが発行される。これにより、第４の配線群５４を介して退避メモリ２５に格納されていたＤＦＩＤ７１に対応するエレメント３０の内部情報７２がコンフィグレイションＲＡＭ６２に格納され、図８に示すように、データフロー８１および８２が再構築される。各々のデータフロー８１および８２に属するエレメント３０の内部状態は、処理が中断されたときと同じになっているので、これらのデータフロー８１および８２で処理を開始することにより、中断された時点から処理を継続して行うことができる。
このように、本例のデータ処理装置１０においては、複数のエレメント３０が第１の配線群５１によりネットワークに接続可能となったマトリクス部２３で複数の機能を容易に実現できるものである。そして、ネットワークを構成する機器であるエレメントを動作させるかどうかについては、そのエレメント３０に付されるＤＦＩＤが実行可能かどうかを調べるだけで良い。したがって、プロセッサ１１あるいはその他のマトリクス部２３の外部にある制御装置から、マトリクス部２３の中のエレメント３０に対して処理を要求することが容易になる。すなわち、外部からネットワーク内のある機能、すなわち、データフローに対して要求する際にはその「機能」の識別情報であるＤＦＩＤを指定しさえすれば良い。
そして、マトリクス部２３のネットワーク（データフロー）の構成を変え、また、データフローの制御を行うためには、プロセッサ１１から上記のようなコマンドを発行させる処理を実行する命令を備えたプログラムまたはプログラム製品１１ｐを供給するだけで良い。そして、プログラム１１ｐの命令の内容あるいは順番を変えることにより、システムＬＳＩなどとして実現されるデータ処理装置１０で実行される処理をハードウェアの段階から変更することができる。また、ネットワーク設定メモリ２４の内容を変えることによってもデータ処理装置１０で実行される処理をハードウェアの段階から変更することができる。したがって、本発明により、ハードウェア資源としては同一の構成を備えたデータ処理装置であっても、処理を実行する段階でのデータパスが異なり、異なるデータフローで処理を実行可能なデータ処理装置を提供することができる。
また、ＤＦＩＤの利用方法は上記に限定されるものではない。たとえば、ＤＦＩＤ「０」は全てのエレメント３０を指定するものであるとして、第３の配線群５３から供給されるＤＦＩＤ５８や内部に記憶されているＤＦＩＤ６３に影響されずに、全てのエレメント３０に対してコマンドを供給したり、全てのエレメント３０の設定データを更新することも可能である。また、ＤＦＩＤ「−１」は、エレメント３０に無関係なデータであるとして、第２の配線群５２をエレメントの制御とは無関係な制御に用いることも可能である。
さらに、第２の配線群５２から提供されるデータは制御コマンドに限定されるものではない。ネットワーク状に配置されたエレメントにより構成されるデータフローでは、同様な演算を繰り返すことが多いが、その際に演算の係数のみを変更することも多い。したがって、本システム１０では、設定用メモリ２４の内容は変えずに、すなわち、設定データ５７は変えずに、第２の配線群５２から提供されるデータにより係数を変更することができる。また、設定用メモリ２４の設定データ５７を再利用し、変更が必要な個所のみプロセッサ部１１で修正し、第２の配線群５２からスタートコマンド５５ａを供給することにより何度でもエレメント３０に設定データ５７を設定することが可能である。
また、ネットワーク設定用メモリ２４は制御装置であるプロセッサ部１１からは通常のメモリと同様に直接書き換えが可能である。このため、プログラマの自由度が大きい。これに相当するものが各エレメントに隠され、プロセッサ部１１から直接書き換えができないとするならば、各エレメントを個別に示す識別情報、たとえば、アドレスと共に設定情報を全エレメントに個別に渡す方法を採用することになる。これでは、データフローを構成する全エレメントについて同様の操作をエレメントの数だけ繰り返さざるを得ず、時間が非常にかかる。また、無駄に回路が作動するので、電力も消費する。エレメントを樹状に接続し、目的のエレメントを示すアドレスと共に設定情報をその根に注入する方法でも可能であるが、これでは時間もかかるし、部分的な修正もしがたい。
これに対し、本例のネットワーク設定用メモリ２４は第３の配線群５３により全体としては広大なバス幅で各エレメント３０と直に接続されている。これにより、１クロックでの高速設定が可能である。そして、第２の配線群５２により、全エレメント３０に対して制御要求（一時停止・再開）と制御対象であるＤＦＩＤを通知あるいは放送するので、これらの制御も１クロックで完結する。
さらに、ネットワーク設定用メモリ２４に記憶されている設定データ５７などは、プロセッサ部１１によりどのタイミングで生成されても良い。また、予め作成され、外部ＤＲＡＭ２などに記憶されている設定データの一部を、プロセッサ部１１がネットワーク設定用メモリ２４にダウンロードして利用することも可能である。
また、上記に示した各配線群の構成は例示であり、これに限定されるものではない。第１のデータ転送手段として機能する第１の配線群５１ａおよび５１ｂは、エレメント同士をより柔軟にルーティング可能な配線あるいはデータ転送手段であれば良い。たとえば、入力用のセレクタの数、すなわち入力の数を増やすことにより、各機器はより複雑な演算が可能となり、また、出力用のセレクタの数、すなわち、出力の数を増やすことによっても、より複雑な演算が可能になる。さらに、出力のセレクタは出力と１対１である必要は無く、１出力に複数セレクタ、または複数出力に１セレクタを用いても良い。また、エレメント間の通信時間によってエレメントのアドレスを指定してデータを送受信可能なネットワークであっても良い。
第２のデータ転送手段として機能する第２の配線群５２では、ＤＦＩＤの取り得る種類だけ信号線を用意し、各配線が各ＤＦＩＤを示すものとして利用することも可能である。第３の配線群５３においても同様である。
また、上記のデータ処理装置１０は、半導体基板上にエレメント３０が作り込まれ、プロセッサ装置あるいはＬＳＩ装置として本発明が実現された例を示している。したがって、アプリケーションの処理に適したデータフローを動的に再構築可能であり、ハードウェア資源を最も効率よく利用することが可能で、ＡＣ特性も良く、リアルタイム処理も可能なＬＳＩあるいはＡＳＩＣを本発明により提供することができる。
さらに、本例のＬＳＩ装置１０は、プログラム１１ｐおよび／または設定データ５７を変えることにより、同一のハードウェア資源を備えたＬＳＩを様々な用途あるいはアプリケーションに用いることができるという特徴も備えている。また、プログラム１１ｐおよび／または設定データ５７は、データ処理装置とは別に、適当な記録媒体、たとえば、単体で流通するＲＯＭに格納して提供したり、コンピュータネットワークなどの通信手段により提供することも可能である。このため、プログラム１１ｐおよび／または設定データ５７を変更する、または更新することにより、ＬＳＩや、そのＬＳＩが使用されている情報処理端末などの処理性能を向上したり、新たな機能を付加したりすることも可能である。このため、本来、いったん開発が終了するとフィックスされてしまうＬＳＩの機能を、ファームウェアをバージョンアップするのと同じ感覚で更新することも可能となり、設計および製造におけるメーカ側の負荷も大幅に軽減でき、ユーザには常にベストな状態で使用可能なＬＳＩ装置を提供することができる。
また、本発明にかかる、複数の処理ユニットがネットワークで接続されてある機能を実現するような処理ユニット（上記の例のエレメントに相当する）は、異なる半導体装置、基板、さらには、離れて配置される機器などであっても良い。そして、この発明におけるデータフローでは、次のような機能を実現することができる。まず、ネットワークで接続可能な全機器もしくは一部の機器を占有して実現されるものであり、その内部でデータを受け渡し、処理し、その末端ではネットワークの外部からデータを受け取り、ネットワークの外へデータを渡すものである。そして、データフローの内部では自律的もしくは他律的に制御され、例えば、データの出口が詰まったら、それ全体の動作が一時停止されるような制御が行われる。また、データフロー間では、データフローの内部で積極的に情報をやりとりはせず、基本的には、互いに独立した存在として機能するものである。
上述したように、本発明により、このような「機能」を対象とした処理（設定・制御・動作）が容易に実現できる。設定とはその「機能」の定義付けであり、「機能」を構成する機器を選択し、各機器の役割を割り付けるものである。そして、この設定の要求を「機能」の外部から発行できる。制御とはその「機能」の動作開始・停止であり、これも「機能」の外部から発行できる。
動作とはその「機能」の自律的動作であり、「機能」が動作中に生じるであろう同期制御などを意味する。これには以下の内容が考えられる。第一に入力データの同期である。一般に機器が演算を行う際には入力データは二個以上であることが多い。この場合、全入力データは同時に機器に入力されることが望ましい。ネットワークに対する入力が「機能」に関係付けられていれば、ネットワークへの入力を受けつける際にこのフロー制御を行うことで、「機能」に複数の入力データを容易に同期して入力することができる。第二に出力データのフロー制御である。ネットワークの出力がつまってしまった場合（ネットワークの出力はもちろん緩衝装置を持っている場合が多いだろうが、その緩衝装置の能力一杯になってしまった場合）、「機能」が出力しつづければ出力データが失われてしまうことになる。しかしながら、もしネットワークの出力が「機能」に関係付けられていれば、ネットワークはこの「機能」にその旨を通知し、「機能」は出力が可能になるまでその動作を自律的に停止することができる。本発明は、ネットワーク中の制御装置による集中管理の可能性を排除するものではなく、「機能」を示す識別情報（ＤＦＩＤ）を使用して集中管理しても良い。つまり、上述の現象を中央の監視装置が検出し、各「機能」に動作の一時停止及び再開を命ずることも可能となる。
これは、従来の機器をネットワーク状に配置し稼動させるシステム、特にＬＳＩアーキテクチャにおける識別方法とは全く異なるものである。ネットワーク構成機器それぞれに固定的な、または動的な識別情報（ＩＤあるいはアドレス）を付与することができる。しかしながら、機器間のネットワーク構築及びデータ転送を行う場合、各機器に１対１で対応する固定的または動的なＩＤを付与したのでは、その機器の物理的位置を使用して操作対象を特定できるのならば、ＩＤ自体は冗長な情報に過ぎない。さらに、機器毎に個別なＩＤでは、ネットワーク内に複数の「機能」が存在する場合、ある「機能」全体に対する操作が容易ではない。個別の機器を全て指定して操作するのは明らかに冗長であり、機器指定のために配線または時間を浪費する。
全ての機器を合わせて１個の機能を実現することにより、制御する上で機器を識別する必要を排除することも可能であるが、複数の「機能」を同時に実現することができないので、ハードウェア資源の浪費になる。各機器のＩＤの中の一部を残し、他をマスクする方法などの、ある特殊なルール付けのもとに異なるＩＤを同一なものとみなすことも可能であるが、機器毎に個別なＩＤを指定しないと、個々の機器に対して異なる設定を外部から与えることができないという問題を解決するための折衷案に過ぎず、根本的な解決になっていない。このため、各機器毎のＩＤは冗長にならざるを得ず、プログラミングの簡明さとフレキシビリティーを犠牲にすることになる。さらに、個々の機器に対して異なる設定を与えるためには、個々の機器にアクセスする必要があるという問題は解決されておらず、短時間で動的に機能を切替えることは不可能である。
これに対し、本発明においては、個々の機器に対して設定データを個別に並列配信可能な第３のデータ転送手段を導入することにより、ネットワーク中に動的定義される「機能」そのものに識別情報を付与しており、冗長性を排除し、プログラミングが容易であり、「機能」の設定・制御・動作に必要十分な簡便な機構となっている。
産業上の利用可能性
本発明のデータ処理装置およびその制御方法は、様々なデータ処理を実行可能なシステムＬＳＩあるいはＡＳＩＣなどとして提供することが可能である。また、本発明のデータ処理装置、電子回路に限定されることはなく、光回路あるいは光電子回路をベースとするデータ処理装置にも適用できるものである。そして、本発明のデータ処理装置は、再構成可能なハードウェアによりデータ処理を高速に実行できるので、ネットワーク処理や、画像処理などの高速性およびリアルタイム性が要求されるデータ処理装置に好適なものである。
【図面の簡単な説明】
図１は、本発明の実施の形態に係る集積回路装置の概略構成を示すブロック図である。
図２は、ＡＡＰユニットの概略構成を示す図である。
図３は、ネットワーク設定用メモリの概要を示す図である。
図４は、アドレスを出力する処理に適したデータパス部の例である。
図５は、演算処理に適したデータパス部の例である。
図６は、エレメントの制御部の概略構成を示す図である。
図７は、データ処理装置の制御方法を示すフローチャートである。
図８は、マトリクス部にデータフローを構成した例である。
図９は、マトリクス部に異なるデータフローを構成した例である。
【図１】
0004152319.tif 000002
【図２】
0004152319.tif 000003
【図３】
0004152319.tif 000004
【図４】
0004152319.tif 000005
【図５】
0004152319.tif 000006
【図６】
0004152319.tif 000007
【図７】
0004152319.tif 000008
【図８】
0004152319.tif 000009
【図９】
0004152319.tif 000010