(57)【要約】【課題】  データ処理装置における内部構成の変更に要する時間を短縮し、装置の性能を向上させる。【解決手段】  データを処理する単位処理部が複数構成されたデータ処理部１０１に実行させるデータ処理の内容と複数の単位処理部の間の接続経路とを規定するデータ１０３をコンフィギュレーション制御部１０２に記憶しておき、記憶したデータ１０３に基づいてデータ処理部１０１が実行するデータ処理の内容と接続経路とを再構成する。【選択図】      図１
2006236106.tif 000002
【特許請求の範囲】
【請求項１】
複数のデータ処理手段と、
前記複数のデータ処理手段に実行させるデータ処理の内容と前記複数のデータ処理手段間の接続経路とを規定するデータを記憶する記憶手段と、
前記記憶手段に記憶されたデータに基づいて前記データ処理の内容と前記接続経路とを再構成する再構成手段とを有することを特徴とするデータ処理装置。
【請求項２】
前記記憶手段は、複数のプレーンで構成され、各プレーンに異なるデータ処理の内容と異なる接続経路とをそれぞれ規定するデータを記憶することを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記再構成手段は、前記複数のプレーンの何れか１つを選択する選択手段を含み、当該選択されたプレーンに記憶されたデータに基づいて前記データ処理の内容と前記接続経路とを再構成することを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記選択手段は、所定のトリガ入力に基づいて前記複数のプレーンの何れか１つを選択することを特徴とする請求項３記載のデータ処理装置。
【請求項５】
前記再構成手段は、前記データ処理の処理単位毎に前記記憶手段に記憶されたデータに基づいて前記データ処理の内容と前記接続経路とを再構成することを特徴とする請求項１乃至請求項４の何れか一項に記載のデータ処理装置。
【請求項６】
複数のデータ処理手段と、前記複数のデータ処理手段に実行させるデータ処理の内容と前記複数のデータ処理手段間の接続経路とを規定するデータを記憶する記憶手段と、前記記憶手段に記憶されたデータに基づいて前記データ処理の内容と前記接続経路とを再構成する再構成手段とを有するデータ処理装置におけるデータ処理方法であって、
前記記憶手段に前記データ処理の内容を規定するデータと、異なるデータ処理の内容とを規定するデータとをそれぞれ記憶させる記憶工程と、
前記データ処理を実行中に、異なるデータ処理を実行させる際に、前記記憶工程で記憶された前記異なるデータ処理の内容を規定するデータを選択し、前記異なるデータ処理を実行させるように前記再構成手段を制御する制御工程とを有することを特徴とするデータ処理方法。
【請求項７】
請求項６記載のデータ処理方法をコンピュータに実行させるためのプログラム。
【請求項８】
請求項７記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、再構成（リコンフィギュレーション）可能なデータ処理装置及びデータ処理方法に関する。
【背景技術】
【０００２】
リコンフィギュレーション可能なリコンフィギュラブル処理デバイスの中には、ＬＵＴ（ルックアップテーブル）、ＡＮＤ−ＯＲ論理素子及び小規模なメモリで処理単位を構成し、処理単位の間をスイッチを介して接続し、メモリとは別のコンフィギュレーションのためのメモリを有し、そのコンフィギュレーションのためのメモリに記憶されたデータに従ってＬＵＴ、論理素子などで構成される演算素子及び小規模なメモリからなる処理単位の構成を規定している。
【０００３】
また、スイッチの選択状態を規定することで処理単位の接続状態を規定し、リコンフィギュラブル処理デバイスの動作を規定する、所謂「ＦＰＧＡ：Field programmable gate array」と呼ばれるようなリコンフィギュラブル処理デバイスや、ＬＵＴ、ＡＮＤ−ＯＲ論理素子の代わりに算術論理演算器（ＡＬＵ：Arithmetic logical unit）などを備えている。
【０００４】
更に、ＡＬＵや小規模メモリを時系列的に制御するための制御部と、時系列的な制御を規定するためのプログラムメモリとを備えるプロセッサタイプの処理単位を有するリコンフィギュラブル処理デバイスがある。
【０００５】
そして、これらのリコンフィギュラブル処理デバイスでは、コンフィギュレーションのためのメモリや、プログラムメモリの内容を更新することにより、リコンフィギュラブル処理デバイスの再構成が実施される。
【０００６】
また、コンフィギュレーションのためのメモリを複数個有し、予め、各メモリに異なるコンフィギュレーション情報を記憶しておき、何れかのコンフィグレーション情報を選択することによりコンフィギュレーションの更新を実現しているものもある。
【０００７】
例えば、特許文献１には、コンフィギュレーション用のメモリを複数コンフィギュレーション分有することで、コンフィギュレーション時間のオーバーヘッドを削減し、メモリをリング状に結合することにより、コンフィギュレーションデータの再利用を可能とすることが記載されている。
【特許文献１】特開２００２−２１５３８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、リコンフィギュラブル処理デバイスのコンフィギュレーションを動作中に実施し、リコンフィギュラブル処理デバイスの適用範囲を拡大したり、有効度を高めようという技術がある。
【０００９】
これが、所謂「ダイナミックリコンフィギュレーション（動的再構成）技術」である。このダイナミックリコンフィギュレーションにおいては、コンフィギュレーションの更新の間、所望の動作を行うことができなくなるため、総合的な処理性能が低下する、という問題が発生する。
【００１０】
或いは、リアルタイム性が要求される処理においては、被処理データが供給される前にコンフィギュレーションの更新が完了していなければならないといった制限があるため、コンフィギュレーションの更新に要する時間が短いことが望ましい。
【００１１】
また、ダイナミックリコンフィギュレーションにおいては、コンフィギュレーション用のデータが短時間で切り替わる必要があるため、複数種類分のコンフィギュレーション用のメモリ領域が必要となり、ハードウェアが増加するという問題も生じる。
【００１２】
本発明は上記課題を解決するためになされたもので、データ処理装置における内部構成の変更に要する時間を短縮し、装置の性能を向上させることを目的とする。
【課題を解決するための手段】
【００１３】
本発明のデータ処理装置は、複数のデータ処理手段と、前記複数のデータ処理手段に実行させるデータ処理の内容と前記複数のデータ処理手段間の接続経路とを規定するデータを記憶する記憶手段と、前記記憶手段に記憶されたデータに基づいて前記データ処理の内容と前記接続経路とを再構成する再構成手段とを有することを特徴とする。
【００１４】
また、本発明は、複数のデータ処理手段と、前記複数のデータ処理手段に実行させるデータ処理の内容と前記複数のデータ処理手段間の接続経路とを規定するデータを記憶する記憶手段と、前記記憶手段に記憶されたデータに基づいて前記データ処理の内容と前記接続経路とを再構成する再構成手段とを有するデータ処理装置におけるデータ処理方法であって、前記記憶手段に前記データ処理の内容を規定するデータと、異なるデータ処理の内容とを規定するデータとをそれぞれ記憶させる記憶工程と、前記データ処理を実行中に、異なるデータ処理を実行させる際に、前記記憶工程で記憶された前記異なるデータ処理の内容を規定するデータを選択し、前記異なるデータ処理を実行させるように前記再構成手段を制御する制御工程とを有することを特徴とする。
【発明の効果】
【００１５】
本発明によれば、データ処理装置における内部構成の変更に要する時間を短縮し、装置の性能を向上させることができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照しながら発明を実施するための最良の形態について詳細に説明する。尚、本実施形態では、再構成可能なデータ処理装置として、パイプライン、完全並列処理、ｎ並列パイプラインなどの構造がデバイス内部に構成されるリコンフィギュラブル処理デバイスを例に説明する。
【００１７】
図１は、本実施形態におけるリコンフィギュラブル処理デバイスの全体構成を表す図である。図１に示すように、リコンフィギュラブル処理デバイスは、データ処理部１０１とコンフィギュレーション制御部１０２とから構成されている。そして、このコンフィギュレーション制御部１０２からデータ処理部１０１へコンフィギュレーションデータ１０３が供給される。
【００１８】
図２は、リコンフィギュラブル処理デバイスにおけるデータ処理部１０１の詳細な構成を表す図である。図２において、単位処理部２０１はデータ入力部２０５から供給されるデータを処理し、データ出力部２０６から処理データを出力する。尚、単位処理部２０１は、それぞれ不図示の選択・組み合わせ論理演算モジュール、算術演算素子モジュール、メモリモジュールなどを構成要素とするものである。
【００１９】
データ入力部２０５及びデータ出力部２０６は、第１のスイッチ２０４を介してデータ伝送部２０３に接続されている。また、データ伝送部２０３は、第２のスイッチ２０２を介して他のデータ伝送部２０３とも接続されている。尚、第２のスイッチ２０２の一部は、外部データ入出力部２０７にも接続されている。
【００２０】
図２では、一部、図示を省略しているが、リコンフィギュラブル処理デバイスのデータ処理部１０１における単位処理部２０１、第１のスイッチ２０４、第２のスイッチ２０２の全てにコンフィギュレーションデータ１０３が供給されており、このコンフィギュレーションデータ１０３に従って単位処理部２０１の構成、動作や、第１及び第２のスイッチ２０４、２０２の接続先などが規定され、所望のデータ処理を実現するように構成されている。
【００２１】
図３は、リコンフィギュラブル処理デバイスのコンフィギュレーション制御部１０２の構成を表す図である。図３において、３０１ａ、３０１ｂ、３０１ｃはコンフィギュレーションの内容を記憶するためのコンフィギュレーションデータ記憶部であり、本実施形態ではａ、ｂ、ｃの合計３つのプレーンを有する構成となっている。
【００２２】
コンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃの各プレーンは、コンフィギュレーションデータ入力から供給されるコンフィギュレーションデータ３１０を、コンフィギュレーションデータ入力制御入力から供給されるコンフィギュレーションデータ入力制御データ３１１に応じてコンフィギュレーションデータ分配部３０４を介して記憶するように構成されている。
【００２３】
そして、コンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃは、記憶素子のそれぞれに対して記憶データ出力を有しており、各々の記憶データ出力はセレクタ３０２に供給されている。
【００２４】
上述のセレクタ３０２は、コンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃのプレーン数以上を有し、複数のセレクタ３０２には、各プレーンの記憶素子の記憶データ出力がそれぞれ入力されている。
【００２５】
複数のセレクタ３０２からの出力は、それぞれコンフィギュレーションデータ１０３として、１つのセレクタ３０２の出力が単位処理部２０１、第１のスイッチ２０４、第２のスイッチ２０２の何れか１つに接続されている。
【００２６】
３０３はシーケンシャルセレクタ制御部であり、セレクタ３０２へ選択制御を供給している。シーケンシャルセレクタ制御部３０３は、更にコンフィギュレーション手順データ３１２と、コンフィギュレーション手順データ入力制御データ３１３と、シーケンシャルトリガ３１４とを入力する。
【００２７】
尚、シーケンシャルセレクタ制御部３０３及びセレクタ３０２は、単位処理部２０１、第１のスイッチ２０４、第２のスイッチ２０２の数以上で構成されているが、図３に示す例では省略している。
【００２８】
シーケンシャルセレクタ制御部３０３は、コンフィギュレーション手順データ入力制御データ３１３に応じてコンフィギュレーション手順データ３１２を入力し、各シーケンシャルセレクタ制御部３０３にコンフィギュレーション手順データ３１２を設定するように構成されている。
【００２９】
また、本実施形態では、コンフィギュレーション手順データ３１２及びコンフィギュレーション手順データ入力制御データ３１３は、シーケンシャル制御部３０３を介して別のシーケンシャルセレクタ制御部３０３へ供給されるように構成されている。
【００３０】
そして、シーケンシャルセレクタ制御部３０３は、コンフィギュレーション手順データ３１２の内容に従ってシーケンシャルトリガ３１４の入力タイミングでセレクタ３０２への出力を制御するように構成されている。
【００３１】
シーケンシャルセレクタ制御部３０３から出力される制御信号により、セレクタ３０２でコンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃの１つのプレーンのデータがコンフィギュレーションデータ１０３として選択される。
【００３２】
選択されたコンフィギュレーションデータ１０３の内容に応じて、単位処理部２０１のデータ処理、第１及び第２のスイッチ２０４、２０２で規定されるリコンフィギュラブル処理デバイスへの入出力、単位処理部２０１の間の接続、単位処理部２０１の処理内容が規定されて所望の処理が実行される。    
尚、上述のコンフィギュレーションデータ３１０、コンフィギュレーションデータ入力制御データ３１１、コンフィギュレーション手順データ３１２、コンフィギュレーション手順データ入力制御データ３１３、及びシーケンシャルトリガ３１４は、リコンフィギュラブル処理デバイスを制御する不図示のＣＰＵ等から供給されるものである。
【００３３】
ここで、図２に示す９個の単位処理部２０１を、３段パイプライン処理を実行する形態にコンフィギュレーションして適用し、そのコンフィギュレーションをある処理Ａから別の処理Ｂへ変更する場合の手順について説明する。
【００３４】
尚、データ転送部２０３、第１及び第２のスイッチ２０４、２０２のコンフィギュレーションに関しては、単位処理部２０１のコンフィギュレーション手順と同一であり、その詳細は割愛する。
【００３５】
図４及び図５は、単位処理部２０１のコンフィギュレーション手順を説明するための図である。処理Ａ，Ｂの実行に先立って、コンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃには、コンフィギュレーションデータ分配部３０４を介してコンフィギュレーションデータ３１０が記憶される。
【００３６】
尚、このコンフィギュレーションの例では、処理は２種類であるので、例えばプレーンａに処理Ａを実行するためのコンフィグレーションデータが記憶され、プレーンｂに処理Ｂを実行するためのコンフィギュレーションデータが記憶されれば良い。
【００３７】
最初のコンフィギュレーション状態では、９個の単位処理部２０１ａ、２０１ｂ、…、２０１ｉの全てが処理Ａを実行するように設定されており、Config Aa、Config Ab、…、Config Aiに、また第１及び第２のスイッチ２０４、２０２は図４及び図５に示すように、（２０１ａ，２０１ｄ，２０１ｇ）、（２０１ｂ，２０１ｅ，２０１ｈ）、（２０１ｃ，２０１ｆ，２０１ｉ）というように３つの単位処理部２０１でパイプラインステージを構成する３段パイプライン構成のデータフローを実現するようにコンフィギュレーションされているものとする。
【００３８】
また、外部データ入出力部２０７が図４及び図５の外部データ入力DataIn、外部データ出力DataOut になるようにコンフィギュレーションが設定されている。
【００３９】
処理Ａから処理Ｂへのリコンフィギュレーションが終了した状態が図５であり、データフローを規定するスイッチのコンフィギュレーションは処理Ａの時と同一で、単位処理部２０１ａ、２０１ｂ、…、２０１ｉのコンフィギュレーションはConfig Ba、Config Bb、…、Config Biに設定される。
【００４０】
図６は、本実施形態における構成例において、異なった処理Ａ，Ｂを実施するデータが連続的に入力され、DA0〜DA3の処理Ａ，DB0〜DB3の処理Ｂと各々のデータに所望の処理を実施するためにコンフィギュレーションを動的に遷移させていく様子を表す図である。
【００４１】
図６に示す例では、処理Ａ，処理Ｂを１パイプラインステージ当たり３つの単位処理部を用いて３つのパイプラインステージで実現しているため、データの入力が処理Ａから処理Ｂを実施するものに変化するタイミングに応じて３処理単位ずつ、３サイクルに分けて実施される必要がある。
【００４２】
即ち、時刻ｔ0において、DataInに入力される処理データがＡ（DA3）からＢ（DB0）へ変化する場合、時刻ｔ0で単位処理部２０１ａ、２０１ｄ、２０１ｇのコンフィギュレーションをＡからＢへ変更する。次に、DataInに入力されるデータがDB0からDB1へ遷移する時刻ｔ1（時刻ｔ0から１サイクル後）において、単位処理部２０１ｂ、２０１ｅ、２０１ｈのコンフィギュレーションをＡからＢへ変更する。そして、DataInに入力されるデータがDB1からDB2へ遷移する時刻ｔ2（時刻ｔ1から１サイクル後）において、単位処理部２０１ｃ、２０１ｆ、２０１ｉのコンフィギュレーションをＡからＢへ変更し、リコンフィギュレーションを終了する。
【００４３】
上述のリコンフィギュレーションを実施するために、本実施形態では、DataInに入力されるデータに応じて、コンフィギュレーショントリガ３１４に従ってシーケンシャルセレクタ制御部３０３がセレクタ３０２を制御し、単位処理部２０１、第１及び第２のスイッチ２０４、２０２に供給されるコンフィギュレーションデータ１０３をコンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃの各プレーン（この例ではプレーンａ又はプレーンｂ）から選択するように構成されている。
【００４４】
また、処理Ａ，Ｂの実行に先立ち、セレクタ３０２を制御するシーケンシャルセレクタ制御部３０３には、コンフィギュレーション手順データ入力制御データ３１３に応じて、コンフィギュレーション手順データ３１２が入力され、設定されるように構成されている。
【００４５】
上述したようなリコンフィギュレーションを実現するためには、コンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃのプレーンａに処理Ａのコンフィギュレーションを記憶し、コンフィギュレーションデータ記憶部３０１ａ、３０１ｂ、３０１ｃのプレーンｂに処理Ｂのコンフィギュレーションを記憶する。そして、シーケンシャルセレクタ制御部３０３が、セレクタ３０２が以下のようにプレーンを選択するように制御することにより、コンフィギュレーションの遷移順が上述したように設定される。
【００４６】
単位処理部２０１ａ、２０１ｄ、２０１ｇへのコンフィギュレーションデータ１０３を設定する場合、セレクタ３０２に、時刻ｔ0でプレーンｂを選択させ、時刻ｔ1でプレーンｂを選択させ、時刻ｔ2でプレーンｂを選択させるように制御する。
【００４７】
単位処理部２０１ｂ、２０１ｅ、２０１ｈへのコンフィギュレーションデータ１０３を設定する場合、セレクタ３０２に、時刻ｔ0でプレーンａを選択させ、時刻ｔ1でプレーンｂを選択させ、時刻ｔ2でプレーンｂを選択させるように制御する。
【００４８】
単位処理部２０１ｃ、２０１ｆ、２０１ｉへのコンフィギュレーションデータ１０３を設定する場合、セレクタ３０２に、時刻ｔ0でプレーンａを選択させ、時刻ｔ1でプレーンａを選択させ、時刻ｔ2でプレーンｂを選択させるように制御する。
【００４９】
以上説明したように、本実施形態によれば、リコンフィギュラブルデータ処理において、異なった複数の処理をシーケンシャルに実行する際にリコンフィギュレーションの手順をコンフィギュレーション可能とすることにより、リコンフィギュレーションに伴う所望の処理の動作停止時間を削減することが可能になる。
【００５０】
また、ダイナミックリコンフィギュレーションの際に、複数の処理が混在する場合でも、混在時のコンフィギュレーション状態を規定するためのコンフィギュレーションメモリを必要としないため、コンフィギュレーションメモリを削減することが可能になる。
【００５１】
尚、本発明は複数の機器（例えば、ホストコンピュータ，インターフェース機器，リーダ，プリンタなど）から構成されるシステムに適用しても、１つの機器からなる装置（例えば、複写機，ファクシミリ装置など）に適用しても良い。
【００５２】
また、本発明の目的は、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記録媒体を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（ＣＰＵ若しくはＭＰＵ）が記録媒体に格納されたプログラムコードを読出し実行することによっても、達成されることは言うまでもない。
【００５３】
この場合、記録媒体から読出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記録媒体は本発明を構成することになる。
【００５４】
このプログラムコードを供給するための記録媒体としては、例えばフロッピー（登録商標）ディスク，ハードディスク，光ディスク，光磁気ディスク，ＣＤ−ＲＯＭ，ＣＤ−Ｒ，磁気テープ，不揮発性のメモリカード，ＲＯＭなどを用いることができる。
【００５５】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼働しているＯＳ（オペレーティングシステム）などが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【００５６】
更に、記録媒体から読出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部又は全部を行い、その処理によって前述した実施形態の機能が実現される場合も含まれることは言うまでもない。
【図面の簡単な説明】
【００５７】
【図１】本実施形態におけるリコンフィギュラブル処理デバイスの全体構成を表す図である。
【図２】リコンフィギュラブル処理デバイスにおけるデータ処理部１０１の詳細な構成を表す図である。
【図３】リコンフィギュラブル処理デバイスのコンフィギュレーション制御部１０２の構成を表す図である。
【図４】単位処理部２０１のコンフィギュレーション手順を説明するための図である。
【図５】単位処理部２０１のコンフィギュレーション手順を説明するための図である。
【図６】本実施形態における構成例において、異なった処理Ａ，Ｂを実施するデータが連続的に入力され、DA0〜DA3の処理Ａ，DB0〜DB3の処理Ｂと各々のデータに所望の処理を実施するためにコンフィギュレーションを動的に遷移させていく様子を表す図である。
【符号の説明】
【００５８】
１０１  データ処理部
１０２  コンフィギュレーション制御部
１０３  コンフィギュレーションデータ
２０１  単位処理部
２０２  第２のスイッチ
２０３  データ伝送部
２０４  第１のスイッチ
２０５  データ入力部
２０６  データ出力部
２０７  外部データ入出力部
３０１  コンフィギュレーションデータ記憶部
３０２  セレクタ
３０３  シーケンシャルセレクタ制御部
３０４  コンフィギュレーションデータ分配部
３１０  コンフィギュレーションデータ
３１１  コンフィギュレーションデータ入力制御データ
３１２  コンフィギュレーション手順データ
３１３  コンフィギュレーション手順データ入力制御データ
３１４  シーケンシャルトリガ
【図１】
2006236106.tif 000003
【図２】
2006236106.tif 000004
【図３】
2006236106.tif 000005
【図４】
2006236106.tif 000006
【図５】
2006236106.tif 000007
【図６】
2006236106.tif 000008