(57)【要約】【課題】  複数の機能を変更可能なプロセッシングエレメント（ＰＥ）により構成されるデータパスを再構成する際の入力データの待ち時間を短縮する。【解決手段】  データパスを介して供給されるデータパケット９０に処理対象のデータ９１とトークン９２とを含め、トークン９２によりＰＥの個別機能が切り換えられるようにする。最終のデータと共に、あるいはその後に、エンドトークンを供給して、順番にＰＥの個別機能を変更してデータパスを再構成することにより、データ入力の待ち時間を短縮できる。【選択図】        図８
2006085574.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッシングエレメントを有し、個々のプロセッシングエレメントは、それぞれの処理機能、およびプロセッシングエレメント間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更可能であり、前記複数のプロセッシングエレメントにより少なくとも１つのデータパスを構成するデータ処理システムの制御方法であって、
前記個別機能を定める構成情報を前記個々のプロセッシングエレメントに対し供給する工程と、
構成済みの第１のデータパスを経由して、前記第１のデータパスの処理対象となる第１のデータとは区別される状態で、前記個々のプロセッシングエレメントの前記個別機能の変更の機会を示す第２のデータを、前記第１のデータパスを構成するプロセッシングエレメントに供給する工程と、
前記第２のデータに基づき、前記第１のデータパスを構成するプロセッシングエレメントの前記個別機能を変更する工程とを有する制御方法。
【請求項２】
請求項１において、前記第２のデータは、前記第１のデータの有効・無効も示し、
前記第２のデータに基づき、前記第１のデータパスを構成するプロセッシングエレメントが前記第１のデータを処理する工程をさらに有する制御方法。
【請求項３】
請求項１において、パケット化された前記第１のデータを前記第１のデータパスに供給し、最終のパケットと共にあるいはその後に前記第２のデータを前記第１のデータパスに供給する工程を有する制御方法。
【請求項４】
複数のプロセッシングエレメントを有し、個々のプロセッシングエレメントは、それぞれの処理機能、およびプロセッシングエレメント間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更可能であり、前記複数のプロセッシングエレメントにより少なくとも１つのデータパスを構成するデータ処理システムの制御方法であって、
将来の前記個別機能を定める構成情報を前記個々のプロセッシングエレメントに対し供給する工程と、
前記個々のプロセッシングエレメントは、現在の前記個別機能が不要になると、次の前記個別機能に切り替わる工程とを有する制御方法。
【請求項５】
複数のプロセッシングエレメントを具備し、個々のプロセッシングエレメントは、それぞれの処理機能、およびプロセッシングエレメント間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更可能であり、前記複数のプロセッシングエレメントにより少なくとも１つのデータパスを構成するためのデータ処理ユニットと、
前記個別機能を定める構成情報を前記個々のプロセッシングエレメントに対し供給するための構成情報供給手段と、
構成済みの第１のデータパスを経由して、前記第１のデータパスの処理対象となる第１のデータと、前記第１のデータとは区別される状態で、前記個々のプロセッシングエレメントの前記個別機能の変更の機会を示す第２のデータとを、前記第１のデータパスを構成するプロセッシングエレメントに供給するデータ供給手段とを有し、
前記個々のプロセッシングエレメントは、前記第２のデータに基づき、前記個別機能を変更する制御ユニットを備えているデータ処理システム。
【請求項６】
請求項５において、前記データ供給手段は、前記第２のデータに、前記第１のデータの有効・無効を示す情報を付加し、
前記個々のプロセッシングエレメントの前記制御ユニットは、前記第２のデータに基づき、前記第１のデータを処理する、データ処理システム。
【請求項７】
請求項５において、前記データ供給手段は、パケット化された前記第１のデータを前記第１のデータパスに供給し、最終のパケットと共にあるいはその後に前記第２のデータを前記第１のデータパスに供給する、データ処理システム。
【請求項８】
複数のプロセッシングエレメントを具備し、個々のプロセッシングエレメントは、それぞれの処理機能、およびプロセッシングエレメント間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更可能であり、前記複数のプロセッシングエレメントにより少なくとも１つのデータパスを構成するためのデータ処理ユニットと、
将来の前記個別機能を定める構成情報を前記個々のプロセッシングエレメントに対し供給するための構成情報供給手段とを有し、
前記個々のプロセッシングエレメントは、現在の前記個別機能が不要になると、次の前記個別機能に切り替える制御ユニットを備えているデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機能および相互間の接続を変更可能な複数のプロセッシングエレメントにより、異なる構成のデータパスを生成可能なデータ処理システムおよびその制御方法に関するものである。
【背景技術】
【０００２】
特開平８−１０１７６１号公報は、複数個の構成の間で迅速に切り替えできる再構成可能なアーキテクチャについて開示しており、その中では、内部に選択可能な機能を有する論理セルを含んだコアセルの構成が記載されている。このコアセルは、さらに、コンフィグレーションキャッシュと、インストラクションキャッシュとを備えており、コンフィグレーションキャッシュは、さらに、４つのビットデータ記憶部からなる。そして、命令キャッシュのデータによりコンフィグレーションキャッシュの４つのデータ記憶部の１つが選択されるようになっている。
【特許文献１】特開平８−１０１７６１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
例えばＡＬＵ（Arithmetic Logic Unit）のような程度の、適当な規模の演算機能、比較機能あるいは論理機能を備えた複数のプロセッシングエレメント（エレメント）の接続を切り替えることにより動的に種々のデータフロー（データパス）を再構成する技術が開発されている。エレメントをマトリクスあるいはツリーのように配置して、それらのエレメント間の接続を変えることができる配線群で接続してデータパスを生成したり、エレメントに接続機能を持たせて隣り合うエレメント同士を接続してデータパスを生成したりすることが可能である。
【０００４】
生成可能なデータパスを多様化するために、個々のエレメントの処理機能は変更可能であることが望ましく、加減乗除などの適当な算術演算のいずれか、または論理和、論理積などの適当な論理演算のいずれかを選択できるようになっていることが望ましい。データパスの構成を変更するためには、エレメントの接続を変えるだけではなく、個々のエレメントの処理機能の変更も必要になる。エレメントに対し処理機能を変更するため構成情報を提供する方法はいくつかある。１つは、エレメント間を接続する配線群を介して外部から供給する方法である。この方法は、ハードウェア資源は少なくて済むが、個々のエレメントを指定して構成情報を供給するのに膨大な時間を要する。したがって、データパスを動的に変更することは不可能である。個々のエレメントがマイクロコンピュータ並みの機能と資源とを備えていれば、事前にアプリケーションを実行するための情報を、データパス用の配線群を介して全てダウンロードさせておくことが可能かもしれない。しかしながら、アプリケーションの動的な変更に対するフレキシビリティーはなく、また、さまざまな例外に対応することもできない。そのような事態に対応するためには、エレメント間の通信配線が必要になり、ハードウェア資源は増加する。
【０００５】
他の方法の１つは、個々のエレメントに対して構成情報を供給するバスを、データパスを構成する配線群とは別に設けておくことである。このシステムは、適当な中央制御システムの制御の下で、個々のエレメントに対して適切なタイミングで構成情報を供給できる。したがって、アプリケーションの変更に対するフレキシビリティーは高く、また、中央制御システムが例外を検出できるようにすれば、例外にも対応できる。しかしながら、数十個あるいは数百個のエレメントの機能を並列に、そして、独立に管理する中央制御システムは、全てのエレメントの機能を１クロックあるいは数クロックで変更する能力が要求されるので、高い処理能力と、高い処理速度が要求される。したがって、エレメントを管理するための制御システムに、エレメントより高速動作し、処理能力も格段に高いプロセッサが必要になり、そのために、ＬＳＩのスペースとコストとが費やされることになる。このため、複数のエレメントにより再構成可能なデータパスを生成するＬＳＩを提供するメリットは薄れる。
【０００６】
エレメントの機能の切り替えを、クロック信号、あるいはクロック信号に基づくサイクリックな信号により行うことが可能であり、エレメントの機能を切り替えるタイミングの管理は不要になるので、エレメントの機能を管理するシステムの負荷は大幅に減り、管理のためのハードウェアも簡易になる。しかしながら、エレメントの機能はサイクリックに切り替わるだけなので、それにより構成可能なデータパスのフレキシビリティーはほとんどない。例えば、２つの機能をクロック信号に基づき切り替えると、動的にデータパスの変更ができないハードウェアと比較して、同じエレメント数で最大で２倍のデータパスを実装できるに過ぎない。その一方で、処理速度は一般に低下し、さらに、同期設計を確実なものとするためにＦＦなどのハードウェアが増加するといった様々な問題が発生する。
【０００７】
個々のエレメントに適当な容量のコンフィグレーションメモリと、小規模のプロセッサとを搭載し、プロセッサが小規模のプログラムに従ってコンフィグレーションメモリから適当な機能を選択してエレメントの機能を変更する方法がある。この方法は、エレメントの管理を分散できる点でメリットがあるかもしれない。しかしながら、構成情報を個々のエレメントに供給するバスに加えて、個々のエレメントを制御するためのプログラムを個々のエレメントに供給するバスが必要になり、ハードウェアは増加する。さらに、エレメント間で機能を変更するタイミングを同期したり、例外を処理するためには通信用のハードウェアが必要になる。
【０００８】
複数のエレメントを接続することにより所望の処理を実行するのに適した構成になったデータパスは、１つのパケット化されたデータを処理するだけではなく、大量のデータパケットに対して同一の処理を実行するために使用される。したがって、データパスを動的に変更するとしても、あるデータパスが生成されてから、そのデータパスを構成しているエレメントを用いて異なるデータパスを生成するまでにはある程度の時間がある。このため、次のデータパスを構成するための情報をクロック単位でエレメントに供給しなくても良いとすれば、エレメントに対して構成情報を提供するハードウェアは簡略化できる。そして、全てのエレメントに次のデータパスを構成するための構成情報が行き渡り、前のデータパスで処理するデータパケットが通過した後に、機能の変更が必要なエレメントはその機能を変更する命令を全てのエレメントに対してブロードキャストすれば、適切なタイミングで、クロック単位で、適切なエレメントの機能を変更し、次のデータパスを構成できる。このシステムでは、エレメントの機能を管理するためのハードウェアは簡略化でき、アプリケーションの変更に対するフレキシビリティーも高く、さらに、エレメント間でタイミングを合わせて機能を変更するための通信機能も不用である。
【０００９】
このシステムは、クロック単位でデータパスを再構成できるが、全てのエレメントに対して機能の変更を行う命令をブロードキャストするために、次のデータパスを構成するために機能の変更が要求される全てのエレメントにおいて処理が終了している必要がある。すなわち、再構成の対象となるデータパスは、その全てのエレメントで処理が終了している必要がある。したがって、データパスに着目すると、１クロックあるいは数クロックで再構成されるが、エレメント単位で見ると、パイプライン方式でデータパケットがデータパスを流れている場合、データパスの入力側のエレメントにおいては、最終のデータパケットの処理が終了してからデータパスのレイテンシー分だけ遅れて機能が変更になり、データパスの出力側のエレメントにおいては、機能が変更になってからデータパスのレイテンシー分だけ遅れて処理が開始される。データパスを再構成可能なＬＳＩなどのデータ処理システムにおいて、さらなる処理の高速化を図る場合、エレメントの処理の間隙を縮めることができることは重要であり、本発明の目的とするところである。
【課題を解決するための手段】
【００１０】
本発明においては、複数のプロセッシングエレメントを有し、個々のプロセッシングエレメントは、それぞれの処理機能、およびプロセッシングエレメント間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更可能であり、複数のプロセッシングエレメントにより少なくとも１つのデータパスを構成するデータ処理システムの制御方法であって、個別機能を定める構成情報を個々のプロセッシングエレメントに対し供給する工程と、構成済みの第１のデータパスを経由して、第１のデータパスの処理対象となる第１のデータとは区別される状態で、個々のプロセッシングエレメントの個別機能の変更の機会を示す第２のデータを、第１のデータパスを構成するプロセッシングエレメントに供給する工程と、第２のデータに基づき、第１のデータパスを構成するプロセッシングエレメントの個別機能を変更する工程とを有する制御方法を提供する。
【００１１】
この制御方法においては、データパスに沿って、そのデータパスを構成する個々のプロセッシングエレメントに対し、第２のデータが、処理対象となる第１のデータの順番で供給される。第２のデータは、第１のデータとは区別される状態で供給され、個々のプロセッシングエレメントの個別機能の変更の機会を示す情報である。したがって、第１のデータの処理とは独立して個々のプロセッシングエレメントにおいてデコードされ、プロセッシングエレメントに、その個別機能を変更するための構成情報が与えられていれば、第２のデータに基づき、第１のデータパスを構成するプロセッシングエレメントの個別機能が変更される。個々のプロセッシングエレメントに与えられた構成情報が、接続は変えずに、それぞれの処理機能、たとえば、パラメータを変更するような構成情報であれば、第２のデータが第１のデータパスを通過するのに連れて、個々のプロセッシングエレメントの個別機能が順番に変更され、第１のデータパスと構成の異なる第２のデータパスが生成される。したがって、第２のデータパスの全てが再構成されていなくても、第２のデータパスの処理対象となるデータパケットを、第２のデータパスを構成するために個別機能が変更されたプロセッシングエレメントに供給することが可能となる。すなわち、第２のデータパスによるパイプライン処理を、第２のデータパスが完全に構成するのを待たずに開始できる。したがって、各エレメントにおいて、第１のデータパスの処理が終了してから、第２のデータパスの処理が開始されるまでの時間的な間隙を最小限にすることが可能となり、データパスを再構成可能なＬＳＩなどのデータ処理システムにおいて、さらなる処理の高速化を図ることができる。
【００１２】
再構成される第２のデータパスが、第１のデータパスに含まれるプロセッシングエレメント以外の、たとえば第３のデータパスに含まれるプロセッシングエレメントも必要とする場合は、第３のデータパスに含まれるプロセッシングエレメントの個別機能が既に変更されていれば、第１のデータパスへ第２のデータを供給することにより、上記と同様に、第２のデータパスを再構成するのに連動して第２のデータパスのパイプライン処理を開始できる。一方、第３のデータパスに含まれるプロセッシングエレメントの個別機能が変更されていないのであれば、第３のデータパスに第２のデータが供給されるときに、第３のデータパスに含まれるプロセッシングエレメントの個別機能の変更と連動して第２のデータパスのパイプライン処理を開始できる。したがって、いずれの場合も、第２のデータパスの再構成が完了する前にパイプライン処理を開始できる。
【００１３】
第２のデータは、第１のデータパスを構成するプロセッシングエレメントが生成して、第１のデータと共に第１のデータパスに供給しても良い。たとえば、第１のデータパスの途中のプロセッシングエレメントにおいて例外が発生したときに、それ以降のデータパケットに対して、下流のプロセッシングエレメントを例外用の処理を行う個別機能に変更することができる。データパスの構成を変更する機会は、データパスの処理対象となる一群のデータパケットの終了により発生することが多い。したがって、本発明の制御方法は、さらに、パケット化された第１のデータを第１のデータパスに供給し、最終のパケットと共にあるいはその後に第２のデータを第１のデータパスに供給する工程を有することが望ましい。
【００１４】
本発明の制御方法を採用する本発明のデータ処理システムは、複数のプロセッシングエレメントを具備し、個々のプロセッシングエレメントは、それぞれの処理機能、およびプロセッシングエレメント間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更可能であり、複数のプロセッシングエレメントにより少なくとも１つのデータパスを構成するためのデータ処理ユニットを有する。データ処理システムは、さらに、個別機能を定める構成情報を個々のプロセッシングエレメントに対し供給するための構成情報供給手段と、構成済みの第１のデータパスを経由して、第１のデータパスの処理対象となる第１のデータと、第１のデータとは区別される状態で、個々のプロセッシングエレメントの個別機能の変更の機会を示す第２のデータとを、第１のデータパスを構成するプロセッシングエレメントに供給するデータ供給手段とを有する。そして、個々のプロセッシングエレメントは、第２のデータに基づき、個別機能を変更する制御ユニットを備えている。さらに、データ供給手段は、パケット化された第１のデータを第１のデータパスに供給し、最終のパケットと共にあるいはその後に第２のデータを第１のデータパスに供給できることが望ましい。このデータ処理システムでは、個々のプロセッシングエレメントに対して個別機能の変更を指示する信号を個別に供給するのではなく、データパスの単位で第２のデータを供給するので、データ供給手段の構成が著しく複雑になることはない。また、個々のプロセッシングエレメントの制御ユニットも、第２のデータをデコードして個別機能の変更を行う機能を含めば良いので、プログラムカウンタを用いて命令をフェッチするような汎用プロセッサとしての機能までは必要としない。
【００１５】
本発明の制御方法およびデータ処理システムは、データパスを再構成するタイミングを示唆する命令あるいは信号を、全てのプロセッシングエレメントに対してブロードキャストする工程および手段を有することを排除するものではない。データパスを構成していないプロセッシングエレメントを含めて、広範囲のプロセッシングエレメントの構成を変更する必要があるときは、タイミングを示唆する情報をブロードキャストする方法は有効である。しかしながら、ブロードキャストするための配線は必要となる。
【００１６】
本発明の制御方法において、第２のデータは、第１のデータの有効・無効も示し、第２のデータに基づき、第１のデータパスを構成するプロセッシングエレメントが第１のデータを処理する工程をさらに有することは有効である。また、本発明のデータ処理システムにおいて、データ供給手段は、第２のデータに、第１のデータの有効・無効を示す情報を付加し、個々のプロセッシングエレメントの制御ユニットは、第２のデータに基づき、第１のデータを処理することは有効である。第１のデータの有効・無効を示すデータとしてトークンを用いるデータ処理システムにおいては、トークンに、個々のプロセッシングエレメントの個別機能の変更の機会を示す情報を付加することが可能である。
【００１７】
このように、本発明のデータ処理システムおよびその制御方法においては、個々のプロセッシングエレメントが、個々のプロセッシングエレメントにおいて実現している現在の個別機能の必要性が終了した順番に個々に、独立して、自律的に再構成される。すなわち、再構成がエレメントという、データパスを構成する最小の単位で、前の処理、すなわち、現状の個別機能の処理対象のデータが通過したり、その処理が終了したり、処理対象のデータが消滅したりすることにより、現在の個別機能が不要になったタイミングで行われるという特徴を有する。
【００１８】
したがって、本発明のデータ処理システムの制御方法は、将来の個別機能を定める構成情報を個々のプロセッシングエレメントに対し供給する工程と、個々のプロセッシングエレメントは、現在の個別機能が不要になると、次の個別機能に切り替わる工程とを有するものである。また、本発明のデータ処理システムは、将来の個別機能を定める構成情報を個々のプロセッシングエレメントに対し供給するための構成情報供給手段を有し、個々のプロセッシングエレメントは、現在の個別機能が不要になると、次の個別機能に切り替える制御ユニットを備えている。このため、本発明のデータ処理システムにおいては、データ処理システムあるいは個々のデータパスの全体の処理が終了するまで次のデータパスのデータの入力を待つ必要はない。処理の終わったプロセッシングエレメントから次の処理用に再構成されるので、データを継続して入力することが可能になる。したがって今まであった待ち時間をなくして処理速度を上げることが可能になる。
【発明を実施するための最良の形態】
【００１９】
図１に、データ処理システムの一例を示してある。このデータ処理システム１は、チップ化されており、再構成可能なデータ処理領域（データ処理ユニット）１９と、この再構成可能なデータ処理領域１９を再構成する機能および入出力を制御する機能などをサポートする周辺領域１８とを備えている。
【００２０】
再構成可能な回路領域１９は、図１において複数のセグメント１０から１５に分かれて記載されているが、図２に示すように、複数のエレメントがアレイまたはマトリクス状に２次元に配置されており、マトリクスと称される構成である。本例のマトリクス１９は、縦横に２次元に配置された複数のプロセッシングエレメント（ＰＥ）２１と、それらの間に格子状に配置された配線２２と、配線２２の接続ポイントで縦横の配線２２の接続を自由に切り替えることができるスイッチングユニット２３とを備えている。個々のＰＥ２１は、処理機能と、配線群２２との接続とを変更可能な構成になっている。処理機能の変更にはルックアップテーブルなどにより、自在に機能を設定可能な構成を採用できる。本例では、算術論理演算用のエレメント、遅延用のエレメント、メモリ用のエレメント、データを入力または出力するためにアドレスを発生させるエレメント、データの入力または出力用のエレメントなど、ある程度の機能グループに分けて、それぞれの処理に適した内部構成のエレメントを配置することによりマトリクス１９のスペース効率を向上している。また、ある程度の機能グループに分けたエレメントを配置することにより冗長性が減少するのでＡＣ特性および処理速度も向上できるといったメリットを得ている。
【００２１】
図３および図４は、ＰＥ２１の一例である。ＰＥ２１は、機能を変更可能な内部データパス領域２９と、その内部データパス領域２９の機能を設定する制御ユニット６０とを備えている。図３に示したＰＥ２１ａの内部データパス領域２９ａは、カウンタなどからなるアドレス発生回路２８と、セレクタＳＥＬとを備えており、制御ユニット６０により設定された条件で生成されたアドレスが出力信号ｄｏとして配線２２に出力される。この出力信号ｄｏは、行配線および列配線を介して、そのまま、あるいは、他のＰＥ２１によって処理された後にデータパケット９０にされた入力信号ｄｉｘあるいはｄｉｙとしてＰＥ２１ａにフィードバックされる。そして、制御ユニット６０によりセットされた条件でセレクタＳＥＬが選択したアドレスがマトリクス１９からデータ入力あるいは出力用のアドレスとして出力される。ＰＥ２１ａは、配線２２のいずれかの配線から入力データを選択し、また、出力データを出力するためのセレクタ（不図示）も備えており、それらの設定も制御ユニット６０により行われる。
【００２２】
図４に示したＰＥ２１ｂは、算術演算および論理演算に適した構成である。内部データパス部２９ｂは、シフト回路ＳＨＩＦＴ、マスク回路ＭＡＳＫ、論理演算ユニットＡＬＵを備えている。そして、上記のＰＥ２１ａと同様に、設定部６０により、これらのシフト回路ＳＨＩＦＴ、マスク回路ＭＡＳＫ、論理演算ユニットＡＬＵの状態が設定される。したがって、データパケット９０で供給される入力データｄｉｘおよびｄｉｙを加算あるいは減算したり、比較したり、論理和あるいは論理積を演算することができ、その結果はデータパケット９０の形で出力信号ｄｏとして配線（バス）２２に出力される。
【００２３】
図２に示すように、ＰＵ１のマトリクス１９は、３６８個のＰＥ２１を備えており、それらに対して構成情報（コンフィグレーションデータ）を供給する転送路を分けて形成するために、図１に示すように６つのセグメント１０〜１５に形式上分割されている。しかしながら、複数のＰＥ２１を接続する配線群２２は、これらのセグメント１０〜１５に対して透過的にアレンジされており、セグメント１０〜１５の複数のＰＥ２１を接続して種々のデータパスを構成することができる。そのため、スイッチングユニット（ＳＵ）２３は、プロセッシングエレメントの１種類として構成情報を受け付け、ＰＥ間の接続を変更する。そのため、ＰＥ２１と同様に、配線群２２の配線の接続を切り替える機能を設定する制御ユニット６０を備えている。
【００２４】
マトリクス１９の複数のＰＥ２１により構成されるデータパスには、周辺領域１８の入力バッファ３３と出力バッファ３４とを用いてデータが入出力される。入力バッファ３３は４つの入力エレメントＬＤＢを備えており、バッファ３３の構成および制御を構成情報により設定できるようになっている。出力バッファ３４も同様であり、４つの出力エレメントＳＴＢを備えており、構成および制御を構成情報により設定できるようになっている。さらに、ダイレクト入力３１およびダイレクト出力３２が用意されており、１つのチップ（ＰＵ）１では回路要素が不足するようなアプリケーションの処理も複数のチップ１を連結することにより対処可能な構成となっている。
【００２５】
本例のデータ処理システム１においては、マトリクス１９のＰＥ２１およびＳＵ２３、および入出力バッファ３３および３４に対し、それぞれの処理機能およびＰＥ間の接続の少なくとも一部を変更する接続機能の少なくともいずれかを含む個別機能を変更するための構成情報は、シフトレジスタ方式の供給機構５０により供給される。構成情報の主な供給元は、周辺領域１８に配置されたＲＩＳＣなどのプロセッサ３５であり、プロセッサ３５により実行されるソフトウェアによりマトリクス１９の構成を制御することができる。構成情報を他のＰＵ１などから供給することも可能である。構成情報の供給機構５０は、転送コントロールユニット（ＴＣＵ）５９と、各セグメント１０〜１５、入力バッファ３３および出力バッファ３４のそれぞれに張り巡らされた転送路５１〜５８とを備えている。ＴＣＵ５９は、バススイッチングユニット（バスインターフェイス、ＢＳＵ）３６に接続されており、プロセッサ３５はＢＳＵ３６を介して構成情報をＴＣＵ５９に供給する。
【００２６】
図５に、構成情報の供給機構５０のさらに詳しい構成を示してある。供給機構５０は、夫々のセグメント１０〜１５に含まれるＰＥ２１を接続する転送路５１〜５６を備えている。転送路５１〜５６は、それぞれのＰＥ２１の制御ユニット６０の転送用レジスタ（ＦＦ）を直列に接続する。例えば、転送路５１では、１つのＰＥ２１の転送用ＦＦに伝送された１ワードのデータは、１クロックあるいは１サイクルの遅延で次のＰＥ２１の転送用ＦＦに伝送される。
【００２７】
ＴＣＵ５９は、データ領域管理部９１と、このデータ領域管理部９１によりセットされた構成情報を各転送路５１〜５８に集配する配送部９２とを備えている。データ領域管理部９１は、ＢＳＵ３６とのデータ交換を管理するバス制御部９５と、送信部９３と、受信部９４とを備えている。全ての転送路５１〜５８は閉じており、ＴＣＵ５９から送出したデータはＴＣＵ５９に戻るようになっており、転送路５１〜５８の途中の所望のＰＥ２１により構成情報がゲットされ、また、必要であればＰＥ２１から構成情報がＴＣＵ５９に戻される。
【００２８】
図６に、転送路５１に接続されたＰＥ２１の制御ユニット６０の構成を示している。制御ユニット６０は、転送路５１を構成する転送用ＦＦ６１と、その転送用ＦＦ６１に格納されたデータ７５をデコードするデコーダ６２と、データ７５を格納するためにバックグラウンドで動作するバックグランド動作部６３と、内部データパス領域２９の設定を行う構成情報が格納されるフォアグラウンド動作部６４とを備えている。バッググラウンド動作部６３は、将来の構成情報を格納することができる機構であり、３バンクのバッググラウンドメモリ６５と、転送用ＦＦ６１に格納されたデータ７５をバッググラウンドメモリ６５の各バンクと直に出力するラインに振り分けるセレクタ６６と、メモリ６５のバンクを選択してデータを出力できるセレクタ６７とを備えている。したがって、転送路５１により適当なタイミングで、個々のＰＥ２１に対し、少なくとも３つの将来の個別機能を決定する構成情報を提供することができる。フォアグラウンドで動作している構成情報も将来の構成情報として使用可能になるので、３バンク程度のメモリであっても、個別機能を切り換えて多種多様なデータパスを動的に再構成することができる。
【００２９】
このため、供給機構５０により各ＰＥ２１にデータ７５として供給される構成情報は、各ＰＥ２１の個別の機能を設定する情報であり、内部データパス領域２９の接続、個々の論理ゲートの機能あるいは構成などを決定する情報、内部データパス領域２９と配線群２２との接続を決定する情報、内部データパス領域２９において処理を開始したり、データパスとしての処理を開始したりするときの初期条件あるいは初期データなどを含む。さらには、次にロードされる構成情報を選択するための情報などを含めることも可能であり、制御ユニット６０の制御に関する情報を含めることも可能である。スイッチングユニット２３に供給される構成情報は、主に配線群２２の接続に関する情報を含む。
【００３０】
フォアグラウンド動作部６４は、現状の個別機能を実現するための構成情報を格納する機構であり、内部データパス領域２９に供給されている設定データ（構成情報）を格納することにより内部データパス領域２９の現状のコンフィグレーションを維持するフォアグラウンドメモリ６８と、フォアグラウンドメモリ６８に、バッグラウンドメモリ６５または転送用ＦＦ６１からのデータを選択して供給するセレクタ６９を備えている。フォアグラウンドメモリ６８にロードする構成情報を選択するセレクタ６７および６９は、デコーダ６２により制御される。また、第２のセレクタ７２および７０を切り替えることにより、転送用ＦＦ６１にセットされたデータおよびフォアグラウンドメモリ６８に設定された構成情報から制御することも可能である。
【００３１】
さらに、制御ユニット６０は、下流のＰＥ２１の転送用ＦＦ６１に供給するデータ７５を、自己のＰＥ２１のＦＦ６１のデータ、バッググラウンドメモリ６５のバンクのデータ、さらにフォアグラウンドメモリ６８のデータのいずれかから選択できる出力セレクタ７１を備えている。デコーダ６２は、自己の転送用ＦＦ６１に転送されたデータ７５を解析することにより、出力セレクタ７１を切り替えて下流のＰＥ２１の転送用ＦＦ６１に転送されるデータ７５を選択する。
【００３２】
制御ユニット６０は、さらに、内部データパス領域２９に供給するクロック信号７９をオンオフすることにより、内部データパス領域２９を稼動および停止できるクロック信号制御ユニット７７を備えている。クロック信号制御ユニット７７には、内部データパス領域２９の処理対象となる入力データ（第１のデータ）ｄｉｘおよびｄｉｙと共に配線群２２から供給されるトークン（第２のデータ）ｄｔｘおよびｄｔｙが入力されている。本例においては、入力データｄｉｘとトークンｄｔｘとが１つのデータパケット９０を構成し、複数のＰＥ２１とスイッチングユニット２３を含む配線群２２とにより構成されたデータパスを介して各ＰＥ２１に供給される。入力データｄｉｙとトークンｄｔｙについても同様である。トークンｄｔｘおよびｄｔｙは、それぞれの入力データｄｉｘおよびｄｉｙの有効・無効を示す。クロック信号制御ユニット７７では、トークンｄｔｘおよびｄｔｙが有効であると、クロック信号７９が内部データパス領域２９に供給され、フォアグラウンドメモリ６８の構成情報により所望の処理機能を果たすように設定された内部データパス領域２９により入力データｄｉｘおよびｄｉｙが処理され、内部データパス領域２９から出力データｄｏが出力される。したがって、内部データパス領域２９は、有効な入力データが供給されないときは動作しないので、ＰＥ２１の単位で消費電力をセーブすることができる。
【００３３】
内部データパス領域２９は、処理対象のデータである入力データｄｉｘおよびｄｉｙの処理結果として、出力データｄｏを出力するだけではなく、その出力データｄｏの有効・無効を示すトークンｔｏも合わせて、データパケット９０として出力する。内部データパス領域２９におけるデータ処理の状態が、データパスを構成する構造のＰＥ２１の処理を中断させる必要がない場合は、データの有効を示すトークンｔｏがデータパケット９０に含まれる。後続のＰＥ２１の処理を中断させることが好ましい場合は、データの無効を示すトークンｔｏを生成してデータパケット９０に含ませることが可能であり、トークンによりデータパスを介して他のＰＥ２１と通信することができる。
【００３４】
トークンｄｔｘおよびｄｔｙは、さらに、デコーダ６２にも入力されている。トークンｄｔｘおよびｄｔｙは、入力データの有効・無効だけではなく、ＰＥ２１の個別機能の変更の機会を示す情報（エンドトークン）が含まれている。このため、デコーダ６２は、トークンｄｔｘおよびｄｔｙの一方が内部データ領域２９の機能の変更を要求していると、バックグランド動作部６３およびフォアグラウンド動作部６４のセレクタ６６、６７および６９の少なくともいずれかを操作し、バッググラウンドメモリ６５または転送用ＦＦ６１に格納された構成情報のいずれかを選択してフォアグラウンドメモリ６８にセットする。これにより、内部データ領域２９の個別機能が変更され、また、配線群２２との接続も必要に応じて変更される。エンドトークンは、データの有効・無効と同様に、内部データパス領域２９を経由して出力データｄｏのトークンｔｏに反映してデータパケット９０に含められる。したがって、エンドトークンは入力データパケットから出力データパケットに承継され、複数のＰＥ２１により構成されるデータパスを介して後続のＰＥ２１に供給される。エンドトークンは後述するようにデータ入力バッファ３３により通常は生成され、データパケット９０に組み込まれる。さらに、内部データパス領域２９の構成を変えることにより、ＰＥ２１においてエンドトークンを発生させたり、消滅させたりすることが可能であり、ＰＥ２１で後続のＰＥ２１の個別機能の変更を制御することが可能である。
【００３５】
内部データパス部２９のコンフィギュレーションの切り替えは、最大のデータ滞在時間が経過した後に行われる。クロック信号制御ユニット７７は、エンドトークンを検出すると内部データパス部２９のデータ入力を停止し、デコーダ６２は、フォアグラウンドメモリ６８のデータを入れ替えて、コンフィギュレーションの切り替えを行う。そして、一定クロックウェイト後、データ入力が許可できる状態となり、データが有効であることを示すトークンｄｔｘおよびｄｔｙが得られると、クロック信号制御ユニット７７は、内部データパス領域２９を稼動にする。これにより、各々のＰＥ２１は、次のデータパスを構成する次の個別機能に切り替わり、処理を開始する。
【００３６】
図７に、各ＰＥ２１の制御ユニット６０における構成情報に関する制御を示してある。ステップ８１において、構成情報の供給機構５０により転送用ＦＦ６１に供給されたデータ７５が自己のＰＥ２１の構成情報であれば、ステップ８２において、それをバッググランドメモリ６５に格納する。ステップ８３において、データパスを構成する配線群２２から供給されたトークンｄｔｘまたはｄｔｙのいずれかがエンドトークンであれば、ステップ８４においてバッググランドメモリ６５の構成情報のいずれかをフォアグラウンドメモリ６８に格納して内部データパス部２９の構成を切り換える。次に、ステップ８５において、データパスを構成する配線群２２から供給されたトークンｄｔｘおよびｄｔｙによりＰＥ２１に供給されたデータが有効であることが判断されれば、ステップ８６において内部データパス部２９を稼動させて処理を行い、データを配線群２２により接続されたデータパスの次のＰＥ２１に送り出す。
【００３７】
図８（ａ）に、配線群２２により各ＰＥ２１の内部データパス部２９に供給されるデータパケット９０の概要を示してある。このデータパケット９０は、２ビットのトークン領域９２と、３２ビットのデータ領域９１を備えている。図８（ｂ）に、トークン領域９２の値と、その意味を示している。トークン領域９２の値が２または３のときがエンドトークンであり、バックグラウンドメモリ６５に次の構成情報があれば、それをフォアグラウンドメモリ６８に移動してＰＥ２１の機能を変更する。バックグラウンドメモリ６５に次の構成情報がなければ、内部データパス領域２９の構成は変わらず、同じ機能が維持される。あるいは、バックグラウンドメモリ６５に格納された次の構成情報が、フォアグラウンドメモリ６８と同じである場合も、内部データパス領域２９の構成は変わらず、同じ機能が維持される。エンドトークンは、データの有効・無効とは独立して供給することが可能であり、その個別機能で処理される最終のデータと共に、あるいは最終のデータの後にエンドトークンを供給することができる。
【００３８】
また、トークン（第２のデータ）９２は、処理対象のデータ（第１のデータ）９１と共にデータパケット９０に含まれるが、予め決まった異なるビット位置に格納されており、第１のデータ９１とは区別されている。したがって、各ＰＥ２１の制御ユニット６０は、第１のデータ９１とは独立に、区別して、あるいは第１のデータ９１は無視して、トークン９２をデコードすることができる。このため、上述したように、第１のデータ９１の有効・無効に関わらずエンドトークンを各ＰＥ２１は理解して、個別機能を変更する処理を進めることができる。また、個別機能の変更に関して、制御ユニット６０は、内部データパス領域２９とは独立して、並列に処理を行うことができる。
【００３９】
エンドトークンを設ける代わりに、内部データパス領域２９が処理対象のデータを解釈して、処理対象のデータの終了を判断し、現在の個別機能が不要になったことを判断しても良い。この場合は、制御ユニット６０は、内部データパス領域２９の判断を待って、次の構成情報をフォアグラウンドメモリに移動する処理を行う。この制御方法であっても、各ＰＥ２１は自律的に、自己の現在の個別機能が不要になったことを判断して、次の個別機能に移行するように構成情報を切り換えることが可能である。しかしながら、内部データパス領域２９に最終のデータであることを判断する機能を付加する必要があり、内部データパス領域２９において判断された後に構成を変更する一連の処理が開始されるので、構成情報の変更に、データがＰＥ２１に常駐するサイクルの遅れがでる。さらに、エンドトークンが処理対象のデータと異ならないので、処理対象のデータと同期させてＰＥ２１の構成を変更させるしかなく、また、ＰＥ２１におけるエンドトークンの発生・喪失は処理対象のデータの変更あるいは発生・喪失を意味し、エンドトークンを用いたケースに比較し、構成情報の変更に関わるＰＥ２１の間の通信のフレキシビリティーは制限される。
【００４０】
図９に、本例のデータ処理システム１の入力バッファ３３において、エンドトークン９２を備えたデータパケットを生成する部分の構成を示してある。このエンドトークン生成部３３ｔは、設定データの供給機構５７を介して読み取り対象のデータ数が設定され、ＢＳＵ３６を介してアクセスしている外部メモリから所望のデータを読み取り、３２ビットにパケット化してマトリクス１９のデータパスに入力する。そして、最終のデータパケット９０に、エンドトークン９２を付ける。
【００４１】
図１０（ａ）に、サンプルとして、１６個のＰＥ２１を備えた非常に簡易な構成のマトリクス１９を示してある。本図に示したように、ＩＮ−１、ＩＮ−２およびＩＮ−３の入力に対してＯＵＴ−１およびＯＵＴ−２を出力するデータパス１００において、１つのＰＥ２１における最大データ滞在時間（処理時間）を２０クロックとし、各ＰＥ２１の構成情報を切り換えて個別機能を変更する時間を１クロックとする。データパス１００の処理が終了してから、ブロードキャスト方式により、ＰＥ２１の個別機能を一括変えて、データパス１００を再構成する場合、データパス１００の最長は４つのＰＥ２１を経由するため、データパスの構成変更に、８１クロック＋αのコンフィギュレーション切り替え時間が必要となり、この間、データの入力が中断される。すなわち、切り替え前のコンフィギュレーションの最終データから切り替え後の先頭データの間に、８１クロック＋αの空白時間が生じることとなる。
【００４２】
これに対し、エンドトークンを用いてコンフィギュレーションの切り替えを行う場合は、個々のＰＥ２１がエンドトークンを検出したら、個々のＰＥ２１の構成情報を切り換えて個別機能を変更する。このため、コンフィギュレーションの切り替えに要する時間は２１クロック＋αとなり、理想的には１クロックの空白時間をおいて、次のデータパスにより処理するデータを入力することができる。したがって、コンフィグレーションの切り替えによる処理の遅れを数十分の一に短縮することができる。
【００４３】
実際には、機能の異なるＰＥ２１の処理時間は異なるので、図１０（ｂ）に示すように、時刻Ｔ０に、データＤ１およびＤ２が順番に入力され、時刻Ｔ１に「Ａ」で示されたＰＥ２１でデータが処理され、時刻Ｔ２に「Ｂ」で示されたＰＥ２１でデータが処理され、ＯＵＴ−１からはデータが出力され、時刻Ｔ３に、ＯＵＴ−１からはデータＤ２が出力され、「Ｃ」で示されたＯＵＴ−２のＰＥ２１からデータＤ１が出力され、時刻Ｔ４に、ＯＵＴ−２からデータＤ２が出力されたとする。ブロードキャスト方式でマトリクス１９のＰＥ２１の機能を一括して変更するのであれば、時刻Ｔ４の後の時刻Ｔ５で機能を変更してデータパスを再構成する。
【００４４】
エンドトークン方式であれば、時刻Ｔ２には「Ａ」で示したＰＥ２１およびそれより上流のＰＥ２１の個別機能の変更が許可され、時刻Ｔ３には「Ｂ」で示したＰＥ２１およびそれより上流のＰＥ２１の個別機能の変更が許可され、時刻Ｔ４には全てのＰＥ２１の個別機能の変更が許可される。このように、本発明のデータ処理システム１においては、データ処理システムあるいは個々のデータパス１００の全体の処理が終了するまで次のデータの入力を待つ必要はない。現在の個別機能の処理の終わったＰＥ２１から次の処理用の個別機能に再構成されるので、データを継続して入力することが可能になる。したがって今まであった待ち時間をなくして処理速度を上げることが可能になる。
【００４５】
なお、本例のデータ処理システム１においては、個々のＰＥ２１に対して、シフトレジスタ方式の供給機構５０により構成情報を提供しているが、個々のＰＥ２１をバスで接続したバス方式など、他の方式により構成情報を提供しても良い。また、本例のデータ処理システム１においては、個々のＰＥ２１とは別に配線資源２２および２３を用意して、データパスを構成するようにしているが、ＰＥ２１が配線資源として隣接するＰＥとの接続を変えてデータパスを構成するものであっても良い。さらに、全てのＰＥ２１が共通の構成を持った再構成可能なデータ処理システムにおいても本発明は適用できる。
【００４６】
本発明においては、個々のＰＥに対して構成情報を提供する手段と、個々のＰＥをネットワークで接続してデータパスを形成する手段とを備えたデータ処理システムにおいて、データパスを経由して構成の変更を許可する情報を提供し、ハードウェア資源の削減と、データパスの再構成に係る待ち時間の削減という効果を得ている。特に、本発明の制御方法は、現存のデータパスを構成しているＰＥの個別機能を変更して、新たな機能のデータパスを再構成する操作に適しており、異なるパラメータにより新たな機能を提供するデータパスを１クロックで再構成して、待ち時間をほとんどなくして、データを継続的に処理することができる。
【００４７】
有線あるいは無線により、データ処理システムを構成する全てのＰＥに対して、再構成の許可をブロードキャストする手段は、データパスに含まれないＰＥを含めて一括したデータパスの再構成には適している。したがって、本発明に対し、さらに、ブロードキャストする手段を設けることは有効である。ブロードキャスト方式においても、本発明のエンドトークンを利用した方式においても、個々の機器、すなわちＰＥに対して異なる設定を与えるために、個々の機器に対して個別にアクセスする必要は省かれており、そのための冗長なハードウェアは不要であり、また、そのために費やされる時間も不要である。
【００４８】
本発明のデータ処理システムおよびその制御方法は、様々なデータ処理を実行可能なシステムＬＳＩあるいはＡＳＩＣなどとして提供することが可能である。また、本発明のデータ処理システムは、電子回路に限定されることはなく、光回路あるいは光電子回路をベースとするデータ処理装置およびシステム、さらには、ネットワーク接続された分散処理システムにも適用できるものである。そして、本発明のデータ処理システムは、再構成可能なハードウェアによりデータ処理を高速に実行できるので、ネットワーク処理や、画像処理などの高速性およびリアルタイム性が要求されるデータ処理装置に好適なものである。
【図面の簡単な説明】
【００４９】
【図１】データ処理システムの概要を示す図である。
【図２】マトリクスの概要を示す図である。
【図３】プロセッシングエレメント（ＰＥ）の一例を示す図である。
【図４】ＰＥの他の例を示す図である。
【図５】ＰＥを転送路により接続した状態を示す図である。
【図６】ＰＥの制御ユニットの構成を示す図である。
【図７】ＰＥの制御ユニットの制御を示すフローチャートである。
【図８】図８（ａ）はデータパケットの構成を示し、図８（ｂ）はトークンの値および説明を示す図である。
【図９】入力バッファの構成を示す図である。
【図１０】図１０（ａ）は、簡易なマトリクスにより本発明を説明する図であり、図１０（ｂ）はタイムチャートである。
【符号の説明】
【００５０】
１    データ処理システム、  １０〜１５  セグメント
１９    マトリクス、  ２１    プロセッシングエレメント（ＰＥ）
２９    内部データパス領域
５０    データ伝送機構
６０    制御ユニット
【図１】
2006085574.tif 000003
【図２】
2006085574.tif 000004
【図３】
2006085574.tif 000005
【図４】
2006085574.tif 000006
【図５】
2006085574.tif 000007
【図６】
2006085574.tif 000008
【図７】
2006085574.tif 000009
【図８】
2006085574.tif 000010
【図９】
2006085574.tif 000011
【図１０】
2006085574.tif 000012