"要求された情報処理サービスを提供するデータ処理システムであって、情報処理サービスの提供の要求を受け付け、該情報処理サービスの提供に必要な機能をソフトウェア機能とハードウェア機能とに分けるリソースマネージャ装置と、前記リソースマネージャ装置から前記ソフトウェア機能を割り当てられ、割り当てられたソフトウェア機能をソフトウェアプログラムにしたがって実行可能な1以上のサーバコンピュータと、再構成可能なハードウェア回路を有し、前記リソースマネージャ装置から前記ハードウェア機能を割り当てられ、割り当てられたハードウェア機能に応じて前記ハードウェア回路を再構成して該ハードウェア回路により前記ハードウェア機能を実行可能な1以上のアクセラレータ装置と、前記リソースマネージャ装置と前記サーバコンピュータと前記アクセラレータ装置とを接続して相互にデータの入出力を可能とする第1の接続部と、を備え、前記リソースマネージャ装置は、前記ソフトウェア機能を前記サーバコンピュータに実行させ、前記ハードウェア機能を前記アクセラレータ装置に実行させる、データ処理システム。複数の前記アクセラレータ装置を備え、さらに、前記複数のアクセラレータ装置間を接続して前記第1の接続部を介することなく前記複数のアクセラレータ装置間でデータの通信を可能とする第2の接続部を有する、請求項1に記載のデータ処理システム。前記アクセラレータ装置は、前記第1の接続部に接続して前記サーバコンピュータとのデータの入出力を制御する内部データ入出力制御部と、外部とのデータの入出力を制御する外部データ入出力制御部と、再構成可能なハードウェアデバイスとして構成されるタイルブロック部を1または複数備え、前記内部データ入出力制御部及び外部データ入出力制御部に接続する再構成ハードウェア処理部と、を有し、前記タイルブロック部は、再構成可能なハードウェアにおける単位処理回路である1または複数のタイル処理部と、前記タイル処理部間で再構成可能な接続を形成し前記タイル処理部に対するデータの入出力を制御するタイル制御部と、を有する、請求項1または2に記載のデータ処理システム。複数の前記タイル処理部を備え、要求に応じて前記複数のタイル処理部の再構成と前記複数のタイル処理部間の接続とを行うように構成され、少なくとも1つの前記タイル処理部は、入力画像または入力映像に対して特徴抽出処理を行って特徴量情報を出力するタイル処理部であり、少なくとも1つの前記タイル処理部は、前記特徴量情報を入力として物体識別処理を行って識別結果を出力するタイル処理部であり、前記入力画像または入力映像から物体認識を行う、請求項3に記載のデータ処理システム。要求された情報処理サービスを提供するデータ処理方法であって、情報処理サービスの提供の要求を受け付けたリソースマネージャ装置が、該情報処理サービスの提供に必要な機能をソフトウェア機能とハードウェア機能とに分ける段階と、前記リソースマネージャ装置が、前記ソフトウェア機能をサーバコンピュータに割り当てて、前記ソフトウェア機能をソフトウェアプログラムにしたがって前記サーバコンピュータに実行させる段階と、前記リソースマネージャ装置が、再構成可能なハードウェア回路を有するアクセラレータ装置に前記ハードウェア機能を割り当て、割り当てたハードウェア機能に応じて前記アクセラレータ装置の前記ハードウェア回路を再構成し、前記アクセラレータ装置に前記ハードウェア回路によって前記ハードウェア機能を実行させる段階と、を有するデータ処理方法。情報処理サービスの提供の要求を受け付けて1以上のサーバコンピュータと再構成可能なハードウェア回路を有する1以上のアクセラレータ装置とに処理を実行させるリソースマネージャ装置であって、要求された情報処理サービスの提供に必要な機能をソフトウェア機能とハードウェア機能に分けて該ソフトウェア機能及び該ハードウェア機能の処理フローを構成して進捗管理を行う処理フロー制御部と、前記ソフトウェア機能を前記サーバコンピュータに割り当てて実行させ、前記サーバコンピュータのリソースを管理するソフトウェア処理管理部と、前記ハードウェア機能を前記アクセラレータ装置に割り当てて実行させ、前記アクセラレータ装置のリソースを管理するハードウェア処理管理部と、を有するリソースマネージャ装置。ハードウェア回路によりデータ処理を実行するアクセラレータ装置であって、サーバコンピュータとのデータの入出力を制御する内部データ入出力制御部と、外部とのデータの入出力を制御する外部データ入出力制御部と、再構成可能なハードウェアデバイスとして構成されるタイルブロック部を1または複数備え、前記内部データ入出力制御部及び外部データ入出力制御部に接続する再構成ハードウェア処理部と、を有し、前記タイルブロック部は、再構成可能なハードウェアにおける単位処理回路である1または複数のタイル処理部と、前記タイル処理部間で再構成可能な接続を形成し前記タイル処理部に対するデータの入出力を制御するタイル制御部と、を有する、アクセラレータ装置。請求項6に記載のリソースマネージャ装置としてコンピュータを機能させるコンピュータプログラム。大量のデータを高速に処理し、短時間で大量の演算を行うことが可能なデータ処理システムとして、ソフトウェア処理によってデータ処理を行うサーバコンピュータに、専用ハードウェアによる演算処理を可能とするアクセラレータを組み合わせたものがある。しかしながら、これまでのハードウェアによるアクセラレータは特定の処理の実行に特化したものであって汎用性に欠けるという問題点がある。特に、多数のユーザ端末からデータ処理要求を受け付けるデータセンタなどにおいては、サーバコンピュータにアクセラレータを組み合わせて処理能力の向上を図ったとしても、ユーザが要求する処理内容が多種多様であるため、全体としてみたときにアクセラレータでは処理できないデータ処理が増えることとなって、サーバコンピュータの処理負荷軽減につながらないことになる。画像処理などを行うデータ処理システムにおいても、何を検出するかなどの画像処理の目的や入力画像の性質の違いに応じて、実行しなければならない演算処理が異なってくるので、サーバコンピュータに単にハードウェアアクセラレータを組み合わせだけでは、意図したようには処理能力は向上しない。本発明の目的は、複雑な画像処理などもリアルタイムで実行可能であって、多数のユーザからの大容量な処理を高速に実行できる、高い汎用性と柔軟性とを有するデータ処理システム及び方法を提供することにある。本発明の別の目的は、上述したような高い汎用性と柔軟性とを有するデータ処理システムを構成するために用いられるリソースマネージャ装置及びアクセラレレータ装置を提供することにある。本発明では、製造後においても任意の時点でその回路構成を変更することができる再構成可能なリコンフィギャラブルなデバイスをハードウェア構成のアクセラレータとして使用し、このアクセラレータとサーバコンピュータとを組み合わせることにより、高度の汎用性と柔軟性とを備えつつ、多数のユーザからの要求に応じて大容量のデータ処理を高速に実行できるデータ処理システムを構成する。再構成可能なデバイスとしては、例えば、異なる種類の多数の回路ブロックを備え、回路ブロック間の布線接続関係を外部からの制御信号によって変更可能であって、制御信号に応じて回路ブロック間の接続を構成することによってユーザから要求された処理に適合したハードウェア機能回路として再構成できるものが使用できる。そのような再構成可能なデバイスには、再構成可能なLSI大規模集積回路あるいは再構成可能なプロセッサなどが含まれる。すなわち本発明のデータ処理システムは、要求された情報処理サービスを提供するデータ処理システムであって、情報処理サービスの提供の要求を受け付け、その情報処理サービスの提供に必要な機能をソフトウェア機能とハードウェア機能とに分けるリソースマネージャ装置と、リソースマネージャ装置からソフトウェア機能を割り当てられ、割り当てられたソフトウェア機能をソフトウェアプログラムにしたがって実行可能な1以上のサーバコンピュータと、再構成可能なハードウェア回路を有し、リソースマネージャ装置からハードウェア機能を割り当てられ、割り当てられたハードウェア機能に応じてハードウェア回路を再構成してそのハードウェア回路によりハードウェア機能を実行可能な1以上のアクセラレータ装置と、リソースマネージャ装置とサーバコンピュータとアクセラレータ装置とを接続して相互にデータの入出力を可能とする第1の接続部と、を備え、リソースマネージャ装置は、ソフトウェア機能をサーバコンピュータに実行させ、ハードウェア機能をアクセラレータ装置に実行させる。本発明のデータ処理方法は、要求された情報処理サービスを提供するデータ処理方法であって、情報処理サービスの提供の要求を受け付けたリソースマネージャ装置が、その情報処理サービスの提供に必要な機能をソフトウェア機能とハードウェア機能とに分ける段階と、リソースマネージャ装置が、ソフトウェア機能をサーバコンピュータに割り当てて、ソフトウェア機能をソフトウェアプログラムにしたがってサーバコンピュータに実行させる段階と、リソースマネージャ装置が、再構成可能なハードウェア回路を有するアクセラレータ装置にハードウェア機能を割り当て、割り当てたハードウェア機能に応じてアクセラレータ装置のハードウェア回路を再構成し、アクセラレータ装置にハードウェア回路によってハードウェア機能を実行させる段階と、を有する。本発明のリソースマネージャ装置は、情報処理サービスの提供の要求を受け付けて1以上のサーバコンピュータと再構成可能なハードウェア回路を有する1以上のアクセラレータ装置とに処理を実行させるリソースマネージャ装置であって、要求された情報処理サービスの提供に必要な機能をソフトウェア機能とハードウェア機能に分けてソフトウェア機能及びハードウェア機能の処理フローを構成して進捗管理を行う処理フロー制御部と、ソフトウェア機能をサーバコンピュータに割り当てて実行させ、サーバコンピュータのリソースを管理するソフトウェア処理管理部と、ハードウェア機能をアクセラレータ装置に割り当てて実行させ、アクセラレータ装置のリソースを管理するハードウェア処理管理部と、を有する。本発明のアクセラレータ装置は、ハードウェア回路によりデータ処理を実行するアクセラレータ装置であって、サーバコンピュータとのデータの入出力を制御する内部データ入出力制御部と、外部とのデータの入出力を制御する外部データ入出力制御部と、再構成可能なハードウェアデバイスとして構成されるタイルブロック部を1または複数備え、内部データ入出力制御部及び外部データ入出力制御部に接続する再構成ハードウェア処理部と、を有し、タイルブロック部は、再構成可能なハードウェアにおける単位処理回路である1または複数のタイル処理部と、タイル処理部間で再構成可能な接続を形成しタイル処理部に対するデータの入出力を制御するタイル制御部と、を有する。本発明では、サーバコンピュータによるソフトウェア処理と、再構成可能なハードウェア回路を用いたアクセラレータによるハードウェア処理を組み合わせることにより、負荷の大きい処理はアクセラレータに割り当てることができるため、多数のユーザからの大容量かつリアルタイム処理が必要な処理に対して対応できるようになる。特に、ハードウェアのアクセラレータとして、従来のような機能が固定されたアクセラレータではなく、再構成可能なハードウェアFPGA等を用いたものを用いているので、高速での処理が可能であるとともに、高い汎用性柔軟性を有するデータ処理システムを実現することができる。また、アクセラレータとして、サービス動作中に異なる機能回路をハードウェア上に再構成できるようにすることにより、複数のユーザからの異なる要求に対しても、サービスを止めることなく、高速な処理を並列かつ機能を変更して処理を実行することができるようになる。次に、本発明の好ましい実施形態について、図面を参照して説明する。《第1の実施形態》図1に示す本発明の第1の実施形態のデータ処理システム20は、ネットワーク12に接続するものであって、ユーザ端末11からネットワーク12を介して入力するサービス要求に応じてデータ処理を行い、その処理結果をユーザ端末11に返送するものである。ネットワーク12には1または複数のユーザ端末11が接続しており、各ユーザは、それぞれのユーザ端末11から、同時または別々のタイミングでデータ処理システム20に対してサービスを要求できるようになっている。このデータ処理システム20は、ユーザから要求された処理をソフトウェアにより処理する1または複数のサーバコンピュータ21と、ユーザから要求された処理をハードウェア回路により処理する1または複数のアクセラレータ22と、ユーザから要求された処理をサーバコンピュータ21とアクセラレータ22とに振り分け、サーバコンピュータ21及びアクセラレータ22での処理の実行を制御するリソースマネージャ23と、サーバコンピュータ21とアクセラレータ22とリソースマネージャ23との間を相互にデータの入出力が可能になるように接続するサーバアクセラレータ間接続部24と、を備えている。アクセラレータ22はアクセラレータ装置であり、リソースマネージャ23はリソースマネージャ装置である。サーバコンピュータ21がソフトウェアを実行することによる処理リソース処理資源をソフトウェアSWリソースと呼び、ハードウェア回路として構成されるアクセラレータ22が有する処理リソースのことをハードウェアHWリソースと呼ぶ。アクセラレータ22は、再構成可能なデバイスを用いたものであり、ユーザ要求に応じてそのハードウェア機能回路を再構成可能なものである。したがって、データ処理システム20は、ユーザ端末11からのサービス要求に対して、サーバコンピュータ21が有するSWリソース及び再構成可能なアクセラレータ22が有するHWリソースを用いて、ユーザに要求されたサービスを提供するシステムである。アクセラレータ22は、図2に示すように、内部データ入出力制御部25、外部データ入出力制御部26及び再構成ハードウェア処理部27から構成されるハードウェアであり、再構成ハードウェア処理部27は、その処理回路の再構成が可能なことを特徴とする。再構成ハードウェア処理部27は、それぞれが再構成可能なデバイスに相当する1または複数のタイルブロック部31と、タイルブロック部31間の接続を行うタイル間接続部32とを備えている。アクセラレータ22の詳細については後述する。次に、リソースマネージャ23について説明する。リソースマネージャ23は、ユーザ端末11からネットワーク12を介したサービス要求を受け取り、要求されたサービスの提供に必要な機能を、ソフトウェアSW機能とハードウェアHW機能に分け、それら機能の処理フローを構成し、SW機能についてはサーバコンピュータ21上に割り当てて実行させ、HW機能についてはアクセラレータ22上に割り当てて実行させ、それらの機能の実行を制御するものである。このようなリソースマネージャ23は、要求されたサービスの提供に必要な機能をSW機能とHW機能に分けてそれら機能の処理フローを構成する処理フロー制御部41と、処理フロー制御部41によって処理フローの管理のために用いられる処理フロー管理DBデータベース42と、外部とのデータ及び情報の入出力を管理する外部データ入出力管理部43と、SW機能をサーバコンピュータ21に割り当てサーバコンピュータ21でのSW処理を制御するSW処理管理部44と、SW処理管理部44によりサーバコンピュータ21のSWリソースの管理のために用いられるSWリソース管理DB45と、HW機能をアクセラレータ22に割り当てアクセラレータ22でのHW処理を制御するHW処理管理部46と、HW処理管理部46によりアクセラレータ22のHWリソースの管理のために用いられるSWリソース管理DB45と、を備えている。データ処理システム20に、外部からの入力データ例えばカメラ画像等が入力されている場合には、その外部データに関する情報は、外部データ入出力管理部43を介して処理フロー制御部41に入力し、処理フロー制御部41において、処理フローを構築する際に用いることができる。リソースマネージャ23での動作について説明する。処理フロー制御部41は、要求されたサービスの提供に必要な機能をSW機能とHW機能とに分けて処理フローを構築し、処理フロー管理DB42を用いて、処理フローの進捗状況をリアルタイムに保持管理する。このとき、SW機能は、SW処理管理部44を介してサーバコンピュータ21に割り当てられ、HW機能は、HW処理管理部46を介してアクセラレータ22に割り当てられる。SW処理管理部44は、サーバコンピュータ21でのSWリソースの利用状況を保持するSWリソース管理DB45を参照しながら、サーバコンピュータ21上で空いている最適なSWリソースを選出した上で、当該SW機能をサーバコンピュータ21上で処理するようにすなわちSW処理、サーバコンピュータ21に指示する。同様にHW処理管理部46は、アクセラレータ22でのHWリソースの利用状況を保持するHWリソース管理DB47を参照しながら、アクセラレータ22上で空いている最適なHWリソースを選出した上で、当該HW機能をアクセラレータ上で処理するようにすなわちHW処理、アクセラレータ22に指示する。サーバコンピュータ21上で指示されたSW処理が完了したら、そのサーバコンピュータ21はSW処理管理部44に報告し、アクセラレータ22上で指示されたHW処理が完了したら、そのアクセラレータ22はHW処理管理部46に報告する。このとき、各々の処理結果や処理条件などに関する情報をそれらの管理部44,46へ返信することができる。SW処理管理部44は、返信された情報に基づきSWリソース管理DB45を更新するとともに、処理フロー制御部41に報告する。HW処理管理部36も、返信された情報に基づきHWリソース管理DB47を更新するとともに、処理フロー制御部41に報告する。処理フロー制御部41は、返信された情報に基づき、処理フロー管理DB42を更新するとともに、処理を次へ進めて再び処理を継続していく。このデータ処理システムにおいては、リソースマネージャ23の処理フロー制御にしたがって、サーバコンピュータ21上でのSW処理結果や処理条件の情報は、そのままサーバコンピュータ21内で次のSW処理に使うこともできるし、次の処理がHW処理であればアクセラレータ22に送信してアクセラレータ22上でのHW処理に使うこともできる。同様に、リソースマネージャ23の処理フロー制御にしたがって、アクセラレータ22上でのHW処理結果や処理条件の情報は、そのままアクセラレータ22内で次のHW処理に使うこともできるし、次の処理がSW処理であればサーバコンピュータ21に送信しサーバコンピュータ21上でSW処理に使うこともできる。サーバコンピュータ21とアクセラレータ22間で処理を接続する場合には、サーバアクセラレータ間接続部24を介して必要な情報をサーバコンピュータ21とアクセラレータ22間で送受信することができる。リソースマネージャ23は、SWリソースおよびHWリソースの割り当て状況の情報と処理フローの情報とを用いて管理を行うことにより、サーバコンピュータ21上ではどこのSWリソースがどの程度利用されているかを把握でき、またアクセラレータ上22ではどこのHWリソースがどの程度利用されているかを把握できる。したがってリソースマネージャ23は、ユーザ要求を実行するための機能に関して、一括して効率的な機能の割り当て管理と処理の制御を行うことができる。図4は、リソースマネージャ23内における具体的な処理手順を示すフローチャートである。ユーザ要求があると、まずステップ51において、そのユーザ要求がリソースマネージャ23に入力され、ステップ52において、処理フロー制御部41が、そのユーザ要求によって要求されたサービスの提供に必要な機能をSW機能とHW機能に分け、処理フローを構成する。次に、ステップ53において、処理フロー制御部41は、処理フローにしたがい、処理する機能を選定し、SW機能についてはSW処理管理部44がサーバコンピュータ21に割り当て、HW機能についてはHW処理管理部46がアクセラレータ22に割り当てる。その後、SW機能に関して、SW処理管理部44は、ステップ54において、その割り当てたSW機能をサーバコンピュータ21に実行させ、ステップ55において、全てのSW機能の実行が終了したかどうかを判定する。ここで終了している場合には、ステップ58に移行し、そうでない場合には、ステップ53に戻る。同様にHW機能に関し、HW処理管理部44は、ステップ56において、その割り当てたHW機能をアクセラレータ22に実行させ、ステップ57において、全てのHW機能の実行が終了したかどうかを判定する。ステップ57において終了している場合には、ステップ58に移行し、そうでない場合には、ステップ53に戻る。ステップ58では、すべてのSW機能及びHW機能について実行が終了したかどうかは判定され、終了している場合には、ステップ59において終了処理を実行し、そうでない場合にはステップ53に戻る。ユーザ要求に対して処理フローを構成する場合、ユーザ要求の内容や条件によっては、すべてをSW機能で実行する場合もあるし、すべてをHW機能で実行する場合もあるし、両方が混在する場合も考えられる。また、混在する場合であっても、複数のSW機能と複数のHW機能が代わる代わる組み合わさる場合もあるし、部分的にSW機能またHW機能のいくつかが並列に処理されたり、少しずれてパイプライン処理されたりすることも容易に考えられる。そこで処理フロー制御部23は、これらの要件を考慮して、ユーザ要求に対して効率よく処理を実行できるような処理フローを構成する。以上説明したリソースマネージャ23は、リソースマネージャ23に専用のコンピュータを用い、そのコンピュータ上で、コンピュータを上述のようなリソースマネージャとして機能させるためのソフトウェアリソースマネージャ用ソフトウェアを実行させることによって実現することができる。あるいは、ユーザ要求の処理を行うサーバコンピュータ上で、リソースマネージャ用ソフトウェアを実行させることによっても実現することができる。サーバコンピュータ21は、例えば、ソフトウェア制御による一般的なコンピュータとして実現されるものであり、リソースマネージャ23によって割り当てられたSW機能を実現可能なソフトウェアプログラムを実行するものである。ソフトウェアによって処理を実行するものであるので、ユーザによる要求サービスの種類や条件に応じて、柔軟にプログラムの内容およびパラメータを変更することができ、これにより、多様な処理の実行が可能である。サーバコンピュータ21が複数設けられる場合には、それらはサーバアクセラレータ間接続部24を介していずれもリソースマネージャ23と接続している。その場合、リソースマネージャ23は、必要なSW機能を複数のサーバコンピュータ21に対して割り当てる。リソースマネージャ23は、サーバアクセラレータ間接続部24を介して各サーバコンピュータ21での処理状況情報を収集しそれを管理しておくことにより、処理に余裕のあるサーバコンピュータに優先してSW機能を割り当てることもできる。次に、アクセラレータ22について説明する。アクセラレータ22は、割り当てられたHW機能を実行可能なハードウェア回路が構築され、その構築されたハードウェア回路によってHW機能を実行するものであり、上述したように、内部データ入出力制御部25と、外部データ入出力制御部26と、再構成可能なデバイスとして構成される再構成ハードウェア処理部27と、を備えている。従来のデータ処理システムにおいては、ハードウェア回路で処理を行う装置すなわちアクセラレータは、一定の予め定められている機能しか実行できなかった。しかしながらこのデータ処理システムでのアクセラレータ22は、再構成可能なリコンフィギャラブルなハードウェアデバイスを搭載しており、要求に応じて毎回異なる機能を実行するように、ハードウェア回路を書き換えて利用することができるようになっている。また、複数のサービス要求に応じて、各々異なる回路をアクセラレータ22に構成して利用できるとともに、利用しない回路は消去できるので、ハードウェアリソースを効率よく利用することができる。アクセラレータ22における書き換えられたハードウェア上で処理を行う際の各種設定パラメータについては、回路自体の変更でも設定変更できる。あるいは、回路の書き換えをせずに、回路上に設定するレジスタ値やメモリ値をリソースマネージャ23からの制御信号により変更することで、そのパラメータ値の変更をすることもできる。また、アクセラレータ22を構成する回路上に、物理的なディップスイッチのような変更スイッチを物体として設け、このスイッチにより手動でパラメータを変更することも可能である。内部データ入出力制御部25は、サーバコンピュータ21もしくは他のアクセラレータ22からのデータを受信したり、また自アクセラレータの再構成ハードウェア処理部27での処理による結果データを、サーバコンピュータ21もしくは他のアクセラレータ22へ送信したりするための入出力を制御する。また内部データ入出力制御部25は、アクセラレータ22内の処理パラメータ等を制御するためにリソースマネージャ23から送信される制御データをアクセラレータ22内に取り込み、再構成ハードウェア処理部27を制御し、さらに、介して再構成ハードウェア処理部27の処理結果に関する情報をサーバアクセラレータ間接続部24をユーザ端末11側へ送信するために必要な入出力制御も実行する。このようなアクセラレータ22を用いることにより、例えば、サーバコンピュータ21でソフトウェア処理された結果データをアクセラレータ22に入力してハードウエア処理させたり、アクセラレータ22でハードウェア処理された結果データをサーバコンピュータ21へ送ってソフトウェア処理させたり、ユーザからの要求内容パラメータ条件などをそのアクセラレータ22に入力してハードウェアの再構成時に用いたり、アクセラレータ22からの結果データをユーザ端末に送信したりすることができる。これは、リソースマネージャ23が構築する処理フローにおいて、ユーザ要求に対して細分化されたSW処理機能とHW処理機能を実行する際にそれらの機能間で入出力の接続関係がある場合には、サーバアクセラレータ間接続部24を介してデータをサーバコンピュータ21とアクセラレータ22との間で送受信することを意味する。具体的には、あるSW機能の出力を別のSW機能で入力として用いる場合、あるHW機能の出力を別のHW機能で入力として用いる場合、あるSW機能の出力を別のHW機能で入力として用いる場合、あるHW機能の出力を別のSW機能で入力として用いる場合が考えられる。このようなときにアクセラレータ22上においてサーバアクセラレータ間接続部24に対してデータを送信受信するために、内部データ入出力制御部25を利用する。サーバコンピュータ21とアクセラレータ22間のデータ通信については、リソースマネージャ23が管理して実行することができる。外部データ入出力制御部26は、外部から直接このデータ処理システムのアクセラレータ21に入力する外部データ例えばカメラ映像データ、音声データ、各種センサデータ等について、リソースマネージャ23の指示に基づいて、サーバアクセラレータ間接続部24を介してサーバコンピュータ21に送ったり、サーバアクセラレータ間接続部24を介して他のアクセラレータ22に送ったり、自アクセラレータ内の再構成ハードウェア処理部27に送ったりするための入出力制御を行う。また外部データ入出力制御部26は、再構成ハードウェア処理部27で処理された結果データについて、リソースマネージャ23の指示に基づき、直接外部へ送ったりする場合の入出力制御を行う。外部データの入出力制御の機能は、すべてのアクセラレータ22が装備していてもよいし、複数のアクセラレータのうち任意の1個または複数個のアクセラレータに装備されていてもよいし、すべてのアクセラレータに装備されていなくてもよく、これらは、実行すべきサービスの内容に応じて変えることができる。外部からの入力や外部へ出力するデータの例としては、カメラ映像や音声が挙げられる。例えば複数のカメラ映像がこのデータ処理システムに入力する際に、1つまたは複数のアクセラレータ22に直接接続して入力されることが考えられる。例えば、ユーザが要求する物体人物、車両などの物体を入力画像からリアルタイムに検出するような画像認識処理を行う場合を考えると、リソースマネージャ23がその処理の機能を分割してサーバコンピュータ21及びアクセラレータ22に割り振り、サーバコンピュータ21とアクセラレータ22内のタイル処理部とにおいてそれぞれ割り当てられた処理を実行し、対象の物体をリアルタイムに検出することが可能になる。検出された結果データは、ユーザ端末11やネットワーク12上の他の装置に送ることも可能であるし、また外部データ入出力制御部26を通して、外部の装置ディスプレイ、他の処理装置等へ送ることも可能である。再構成ハードウェア処理部27は、図2に示したように、その内部に、1つまたは複数のタイルブロック部31を有し、各タイルブロック部31は、タイル間接続部32を介し、内部データ入出力制御部25及び外部データ入出力制御部26に接続している。タイルブロック部31は、1つまたは複数のタイル処理部34と、これらのタイル処理部34をタイルブロック部31の外部と接続するタイル制御部33とから構成されている。具体的な例として、タイルブロック部31は、再構成可能なLSI、FPGAFieldProgrammableGateArrayなどによって構成できる。また、タイル処理部34は、FPGA内に実装する単位処理回路すなわち個々の処理回路であり、既存のIPIntellectualPropertyコアや、事前に作成した専用の論理回路ブロックや、メモリ回路ブロックなどとして構成される。またこのとき、アクセラレータ22は、1個または複数のFPGAを搭載した1枚のボードハードウェア基板として構成することができ、これらのFPGAとこれらのFPGAの相互間を接続する配線部分とが、再構成ハードウェア処理部27に相当することになる。FPGAを搭載したボード上におけるFPGA間配線が、タイルブロック部31を接続するタイル間接続部32に相当する。タイル間接続部32は、再構成ハードウェア処理部27上のすべてのタイルブロック部31間を任意のネットワークトポロジメッシュ結合、リング結合、全結合、バス結合などで接続できる。あるいは、再構成ハードウェア処理部27上のすべてのタイル処理部34の間を任意のネットワークトポロジメッシュ結合、リング結合、全結合、バス結合等で接続してもよい。これらのタイル処理部34の接続関係は、リソースマネージャ23の指示に基づいて再構成できる。《第2の実施形態》図5に示す本発明の第2の実施形態のデータ処理システムは、図1に示した第1の実施形態のデータ処理システムと同様のものであるが、第1の実施形態のデータ処理システムに対し、アクセラレータ22の相互間を接続する専用のアクセラレータ間接続部28を設けたものである。アクセラレータ間接続部28を設けたことに対応して、各アクセラレータ内22には、このアクセラレータ間接続部28と再構成ハードウェア処理部27との間をつなぐアクセラレータ間接続入出力制御部29が設けられている。図6に示すように、再構成ハードウェア処理部27内の各タイルブロック部31は、タイル間接続部32を介し、内部データ入出力制御部25及び外部データ入出力制御部26に加えてアクセラレータ間接続入出力制御部29に接続している。図1に示したシステムにおいても、サーバアクセラレータ間接続部24を経由することにより、異なるアクセラレータ22上のタイル処理部34どうしでデータの受け渡しを行うことは可能であるが、このサーバアクセラレータ間接続部24は、複数のサーバコンピュータ21、リソースマネージャ23及び複数の外部データ入出力制御部26が接続され、さらにはネットワーク12を介して複数のユーザ端末11が接続されることも可能であり、映像等の高速大容量のデータの大量の通信に利用され得るものでもあるので、通信のボトルネックになる可能性がある。そこで、第2の実施形態のデータ処理システムでは、アクセラレータ22間のみを接続する専用のアクセラレータ間接続部28すなわち専用のネットワークを設けることによって、特に映像等の大容量データの高速処理を行わせる可能性の高いアクセラレータ22に関し、異なるアクセラレータ22上のタイル処理部34間で自由に高速通信接続を行えるようにしている。アクセラレータ間接続部28での接続方式としては、任意のネットワークトポロジメッシュ結合、リング結合、全結合、ハイパーキューブ、または一般的なバス結合等を用いることができる。アクセラレータ22間のこれらの接続関係は、リソースマネージャの指示に基づいて構築される。これにより、複数のアクセラレータ22間にまたがるタイル処理部34の相互間でも常に高速な通信を保障でき、これらタイル処理部34間で処理を結合して実行することが可能になる。《第3の実施形態》次に、本発明の第3の実施形態を説明する。この第3の実施形態は、第1の実施形態または第2の実施形態のデータ処理システムを用い、外部からの入力データが画像または映像カメラ映像やストリーミング映像などであって、映像を画像処理した結果を取得することをユーザから要求された場合の処理に関するものである。画像処理は、サーバコンピュータ21上のソフトウェアでも実行することは可能であるが、例えば必要演算量が膨大であるなどの理由によって、ソフトウェアでの処理が困難な場合がある。そのような場合には、ハードウェアのアクセラレータ22で処理を実行させることにより、目的とする処理を可能にすることができる。ソフトウェアでの処理が困難である具体的な場合としては、例えば、処理対象とする画像の解像度が大きい場合や、要求される画像処理のアルゴリズムが複雑で処理量が大きい場合や、要求される処理時間の制限が短い場合などが挙げられる。アクセラレータ22の再構成ハードウェア処理部27によりこのような画像処理を実行する方法について説明する。再構成ハードウェア処理部27内の1個のタイル処理部34を用いて、図7に示すように、例えば画像を入力し、特徴抽出処理と物体識別処理とを行い、認識された物体情報データを出力することができる。再構成ハードウェア処理部27内ではタイル処理部34を相互に接続することが可能であることから、例えば、2つのタイル処理部34を接続して用い、図8に示すように、前段のタイル処理部特徴抽出処理タイル処理では、画像を入力して特徴抽出処理を行い、抽出された特徴量情報を出力する処理を行い、後段のタイル処理部物体識別処理タイル処理では、得られた特徴量情報を入力し、物体識別処理を行い、認識された物体情報データを出力することもできる。図8に示した例において、後段のタイル処理部物体識別処理タイルにおいて、物体識別処理のアルゴリズムとして学習に基づく識別処理SVMサポートベクタマシン:SupportVectorMachine、AdaBoostエイダブースト、部分空間法などを用いる場合には、事前に学習した学習データが必要になるが、この学習データは物体識別処理タイル内部に保持することが可能である。この場合は、識別処理を効率化高速化できる可能性があるという利点がある。あるいは図9に示すように、物体識別処理タイルとは別個に、学習データ用のタイル処理部学習データタイルを設けてこのタイル処理部内に学習データを保持することも可能である。この場合は、同一の学習データタイルを他の処理に対しても同時に利用可能とすることができるという利点がある。一般に画像処理では、画像を入力し各種フィルタ処理などの前処理を行うことができる。例えば、特徴抽出処理の前に、入力画像に対してフィルタ処理先鋭化、平滑化、エッジ抽出、FFT高速フーリエ変換;FastFourierTransform等による周波数変換などの処理を行い、その結果の画像を特徴抽出処理に入力することもできる。これにより、特徴抽出処理や物体識別処理における抽出性能や識別性能を上げることができる可能性がある。また、特徴抽出処理を行うために前処理が必要な場合もある。このような前処理をタイル処理部に実装し、特徴抽出処理タイルの前に接続することにより、処理を連結して実行することができる。また、画像認識処理物体識別処理を行った後、クラスタリング等の後処理を行うことができる。例えば、物体識別処理の後に得られた物体情報データ物体の座標位置情報などを入力として、後処理例えば、物体個数のカウント処理、クラスタリング処理統合処理、時間平均処理などを行うことにより、さらに追加の物体情報データ物体個数等を得たり、クラスタリング処理統合処理により得られたデータからよりもっともらしい物体情報データ座標位置を取得したり、時間平均処理により誤認識した可能性のある物体情報データを減らしたりすることなどが可能であり、これにより物体認識性能を向上させることができる。このような後処理をタイル処理部に実装し、物体識別処理を行うタイル処理部の後に接続することにより、処理を連結して実行できる。図10は、上述した前処理タイルを特徴抽出処理タイルの入力側に配置し、後処理タイルを物体識別処理タイルの出力側に配置したものを示している。もちろん、前処理タイルと後処理タイルの一方を設けない構成とすることも可能である。タイル処理部に各々異なる処理を実装し、それらを連結させることにより、様々な組み合わせの画像処理を行うことが可能である。このようなタイル処理部の連結方法としては、リソースマネージャ23が、要求されている処理内容に基づいて、タイル処理部間の接続を切り替えたり、新規にタイル処理部を生成したり、不要なタイル処理部を消去または休眠させたりする処理を実行するというものがある。タイル間の接続を切り替える処理は、タイルブロック部31内のタイル制御部33や、タイルブロック部31間のタイル間接続部32の設定を変更させることによって行うことができ、これによって、アクセラレータ22内の任意のタイル間で複数のタイルを接続することができる。アクセラレータ間接続部28を介すれば、アクセラレータ22間にまたがる複数の任意のタイル処理部を接続することができるようになる。タイル処理部を新規生成する処理は、タイルブロック部として例えば再構成可能なデバイスであるFPGAを用いている場合であれば、FPGAが通常備える書き換え機能を用いて、FPGA単位もしくはFPGA内の一部の領域を書き換える書き込むことにより容易に行うことができる。不要なタイルを消去させたり休眠させたりすることも、FPGA単位もしくはFPGA内の一部の領域を書き換える書き込むことにより容易に行うことができる。図11は、具体的に処理を行う例を示している。ここでは、複数の異なる入力映像入力映像1~4をそれぞれ入力入力1~4とし、それぞれの入力映像ごとにアクセラレータ22上に必要な複数のタイル処理部34を生成し、画像認識の処理を行う例を説明する。入力1~3に対しては、入力映像から人物を検出する処理を、入力4に対しては、入力映像から車両自動車を検出する処理を行っている。図11では、各アクセラレータ22内の複数のタイル処理部34の各々ごとに、どのような処理を実行するタイルとして用いられているかが示されてる。例えば、図示1番上のアクセラレータ22では、8個のタイル処理部34のうち、1個が物体識別処理に、2個が特徴抽出処理に、残りの5個が学習データの保持用に用いられている。そして、入力1に対しては、図示1番上のアクセラレータ内の5個のタイル処理部34内訳として特徴抽出が1個、物体識別が1個、学習データが3個を用いて処理が実行されている。入力2に対しては、図示1番上のアクセラレータと2番目のアクセラレータにまたがって5個のタイル処理部34が用いられている。同様に入力3,4についても、それぞれ、アクセラレータ間をまたがって複数のタイル処理部を利用することができる。また入力1,2のように入力映像における背景部分が異なっている場合であれば、それぞれの背景すなわち映像の撮影場所に応じた設定を該当のタイル処理部のパラメータに対して予め行っておくことにより、それぞれの背景に特化して識別性能が高く、かつハードウェアによる高速な認識処理を実行できる。入力映像3では、他の入力映像と比べ、多数の人物がいずれも相対的に小さなサイズで映っている。そこで入力3では、人物を抽出した結果からさらにカウンタ処理により、人物の数を求めて出力したり、人物の大きさが小さいことを認識してその情報を出力したりしている出力3を参照。また、ここに示した例では、ハードウェアであるアクセラレータ22を使用して並列処理を行っているので、入力1~3に対して人物の検出処理をしているときに、同時に、入力4に対しては自動車を検出する処理を行うことができる。また統合処理やカウンタ処理など、処理の一部をサーバ側で処理させることも可能である。このときは、アクセラレータ22での処理による結果データ物体情報データ等をサーバコンピュータ21に送信し、サーバコンピュータ21上でソフトウェアによる処理を行い、結果を出力すればよい。ソフトウェアによる処理はハードウェアによる処理よりも実行時間がかかることから、高速に処理が必要な部分はハードウェアであるアクセラレータ22に割り当て、処理が遅くても問題にならない場合やソフトウエアでも十分に高速に処理できる簡易な処理などの部分はサーバコンピュータ21に割り当てることも可能である。《第4の実施形態》次に、本発明の第4の実施形態を説明する。この第4の実施形態は、第3の実施形態と同様に、第1の実施形態あるいは第2の実施形態のデータ処理システムを用い、外部からの入力データが画像または映像カメラ映像やストリーミング映像などであって、映像を画像処理した結果を取得することをユーザから要求された場合の処理に関するものである。ここでは、入力映像に対して特徴抽出処理と物体識別処理を行うものとし、特徴抽出処理としてHOG特徴量を抽出する処理を用い、また物体識別処理としてAdaBoost識別処理RealAdaBoost識別処理を含むを行うものとする。すなわち第4の実施形態は、第3の実施形態における特徴抽出処理及び物体識別処理として、それぞれHOG特徴抽出処理及びAdaBoost識別処理RealAdaBoost識別処理を含むを用いるものに相当する。HOG特徴抽出は、入力画像映像の各画素位置における画素値の勾配方向と勾配強度をベースとした局所特徴量を抽出するものである。HOG特徴量は背景、色、照明条件等に対して頑健であるという利点を有し、人物抽出等の物体認識のために使うことができることが知られている。またAdaBoostは、各々異なる特徴に着目した多数の弱い識別器を用意し、それらの多数決または総和等により、強い識別器を構成するという手法であり、検出したい物体の形状変化に頑健な学習方式の物体識別処理として使えることが知られている。一般的なAdaBoostアルゴリズムは、多数の弱識別器の出力から多数決により強識別器を作るものであるが、これを改良して、弱識別器の出力を実数値にしてそれらの総和を求めることにより強識別器を作ることにより性能向上を図ったRealAdaBoostアルゴリズム等もある。第4の実施形態においても、第3の実施形態の場合と同様に、アクセラレータ22の再構成ハードウェア処理部27によってこのような画像処理を行うことになる。例えば図12に示すように、1個のタイル処理部を用いてHOG特徴抽出処理とAdaBoost識別処理とをまとめてを実行することとして、HOGAdaBoost処理タイルを生成し、これに入力画像を入力し、この処理タイルから物体情報データを出力するようにすることができる。図13に示すように、HOG特徴抽出処理を実行するHOG処理タイルとAdaBoost識別処理を実行するAdaBoost処理タイルとを別個に用意し、それらを連結して処理を行わせることもできる。また図14に示すように、複数の同じ設定もしくは異なる設定のAdaBoost処理タイルを用意し、HOG処理タイルから出力されるHOG特徴抽出処理結果をこれら複数のAdaBoost処理タイルに並列に入力させて並列処理を行わせることもできる。反対に、図15に示すように、HOG処理タイルを複数用意してこれたのHOG処理タイルでHOG特徴抽出処理を並列に実行させ、それらの結果を単一のAdaBoost処理タイルに入力させることもできる。図14及び図15に示した例に関し、HOG特徴抽出処理の負荷が大きい場合に図15のようにHOG処理タイルを複数並列に設けてそれらを利用したり、AdaBoost識別処理の負荷が大きい場合に図14のようにAdaBoost処理タイルを複数並列に設けてそれらを利用したりすることができる。リソースマネージャ23が、処理負荷のバランスを考慮してこれらの処理タイルを効率よく組み合わせることにより、無駄の少ない効率的なハードウェア処理を実行できる。なお、第3の実施形態の場合であっても、特徴抽出処理タイルを複数並列に設けてそれらを利用したり、あるいは、物体識別処理タイルを複数並列に設けてそれらを利用したりすることによって、ここで述べたものと同様に、効率的な並列処理を行うことができる。第4の実施形態においても、第3の実施形態の場合と同様に、画像を入力し各種フィルタ処理などの前処理を行うことができる。例えば、HOG特徴処理の前に、入力画像に対してフィルタ処理先鋭化、平滑化、エッジ抽出、FFT等による周波数変換などの処理を行い、その結果の画像をHOG特徴抽出処理に入力することもできる。これにより、HOG特徴抽出処理やAdaBoost物体識別処理における抽出性能や識別性能を向上できる可能性がある。このような前処理をタイル処理部に実装して前処理タイルとし、HOG処理タイルの前に接続することにより、処理を連結して実行することもできる。また、AdaBoost物体識別処理を行った後、クラスタリング等の後処理を行うことができる。例えば、AdaBoost物体識別処理により得られた物体情報データ物体の座標位置情報などを入力として、後処理例えば、物体個数のカウント処理、クラスタリング処理統合処理、時間平均処理などを行うことにより、さらに追加の物体情報データ物体個数等を得たり、クラスタリング処理統合処理により得られたデータからよりもっともらしい物体情報データ座標位置を取得したり、時間平均処理により誤認識した可能性のある物体情報データを減らしたりすることなどが可能であり、これにより、物体認識性能を向上させることができる。このような後処理をタイル処理部に実装して後処理タイルとし、AdaBoost処理タイルの後に接続することにより、処理を連結して実行することができる。もちろんこれら前処理タイルと後処理タイルを両方利用することも容易に可能である。第4の実施形態でも第3の実施形態と同様に、タイル処理部に各々異なる処理を実装し、それらを連結させることにより、様々な組み合わせの画像処理を行うことが可能であり、タイル処理部の連結方法などに関しても第3の実施形態の場合と同様である。第4の実施形態での具体的に処理を行う例としては、図11に示した処理例において特徴抽出処理としてHOG特徴抽出処理を実行し、物体識別処理としてAdaBoost物体識別処理を実行するようにしたものが挙げられる。この場合、図11において特徴抽出及び物体識別とラベル付けされたタイル処理部34については、それぞれ、HOG特徴抽出処理タイル及びAdaBoost物体識別処理タイルとして構成することになる。第4の実施形態によれば、アクセラレータ22内の再構成可能な単位処理回路タイル処理部34に、HOG特徴抽出処理とRealAdaBoost識別処理の機能を実装することにより、複数の映像入力かつ膨大な計算量であっても、リアルタイム処理ができるようになる。"