(57)【要約】【課題】柔軟で効率的な演算部間の処理経路や演算部の実行内容を変更することができる分散処理システム等を提供すること。【解決手段】制御部と複数の演算部とを有する分散処理システムであって、制御部と演算部との間で制御情報を送受信する制御ラインと、制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御ラインと独立したデータラインと、を有し、演算部は、モニタされた演算部に関する処理コンテキストと、制御ラインから受信した処理内容変更条件と、が合致したときに、制御ラインから受信した処理内容変更情報を用いて演算部の処理内容を変更する処理内容変更部を備えることを特徴とする。【選択図】図３
2011203935.tif 000002
【特許請求の範囲】
【請求項１】
制御部と複数の演算部とを有する分散処理システムであって、
前記制御部と前記演算部との間で制御情報を送受信する制御ラインと、
前記制御部及び前記演算部のうち少なくとも一方から、それらに接続された前記演算部に処理対象データを送信する、前記制御ラインと独立したデータラインと、を有し、
前記演算部は、
モニタされた前記演算部に関する処理コンテキストと、前記制御ラインから受信した処理内容変更条件と、が合致したときに、前記制御ラインから受信した処理内容変更情報を用いて前記演算部の処理内容を変更する処理内容変更部を備えることを特徴とする分散処理システム。
【請求項２】
前記処理内容変更情報は演算パラメータであり、
前記処理内容変更条件は前記演算パラメータの変更に関する演算パラメータ変更条件であって、
前記処理内容変更部は、前記処理コンテキストと前記演算パラメータ変更条件とが合致したときに、前記処理内容変更部が保持する演算パラメータを変更することを特徴とする請求項１に記載の分散処理システム。
【請求項３】
前記制御部は、前記演算部から受信した前記制御情報に基づいて、前記演算パラメータと前記演算パラメータ変更条件を生成および／または選択することを特徴とする請求項２に記載の分散処理システム。
【請求項４】
前記制御部は、前記演算部から演算実行中に変更される可能性のある動的制御情報を受信することを特徴とする請求項３に記載の分散処理システム。
【請求項５】
前記制御部は、前記演算部から演算実行中に変更されることのない静的制御情報を受信することを特徴とする請求項３に記載の分散処理システム。
【請求項６】
前記制御部は、前記演算部の処理状態によって決定される前記演算パラメータ変更条件を生成および／または選択することを特徴とする請求項２から請求項５のいずれか一項に記載の分散処理システム。
【請求項７】
前記演算部はさらに、
前記データラインとデータ処理部の入出力を選択的に接続するデータ受信部およびデータ送信部の少なくともいずれか一方を備えており、
前記処理内容変更情報はデータライン情報であり、
前記処理内容変更条件は前記データライン情報の変更に関するデータライン変更条件であって、
前記処理内容変更部は前記処理コンテキストが前記データライン変更条件と合致したときに、前記データライン情報を用いて、前記データラインと前記データ処理部の入出力の接続を変更することを特徴とする請求項１に記載の分散処理システム。
【請求項８】
前記制御部は、前記演算部の入力元および／または出力先の前記演算部を、他の異なる前記演算部へ変更するデータライン情報を生成および／または選択し、
前記処理内容変更部は前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて入力元および／または出力先を変更することを特徴とする請求項７に記載の分散処理システム。
【請求項９】
前記制御部は、前記演算部の出力先として、他の異なる演算部を追加するデータライン情報を生成および／または選択し、
前記処理内容変更部は、前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて出力先に前記演算部を追加し、
前記複数の演算部に演算結果を出力するデータ送信部を備えることを特徴とする請求項７に記載の分散処理システム。
【請求項１０】
前記制御部は、前記演算部の入力元として、他の異なる演算部を追加するデータライン情報を生成および／または選択し、
前記処理内容変更部は、前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて入力元に前記演算部を追加し、
前記複数の演算部からの入力を統合するデータ受信部を備えることを特徴とする請求項７に記載の分散処理システム。
【請求項１１】
前記制御部は、前記演算部の入力元および／または出力先の演算部の少なくともひとつを削除するデータライン情報を生成および／または選択し、
前記処理内容変更部は、前記処理コンテキストと前記データライン変更条件と合致したときに、前記データライン情報に基づいて入力元および／または出力先を削除することを特徴とする請求項７に記載の分散処理システム。
【請求項１２】
前記制御部は、前記演算部から受信した前記制御情報に基づいて、前記データライン情報と前記データライン変更条件を生成および／または選択することを特徴とする請求項７から請求項１１のいずれか一項に記載の分散処理システム。
【請求項１３】
前記制御部は、前記演算部から演算実行中に変更される可能性のある動的制御情報を受信し、  
前記制御部は、前記動的制御情報に基づいて、前記データライン情報と前記データライン変更条件を生成および／または選択することを特徴とする請求項１２に記載の分散処理システム。
【請求項１４】
前記制御部は、前記演算部から演算実行中に変更されることのない静的制御情報を受信し、前記制御部は前記静的制御情報に基づいて、前記データライン情報と前記データライン変更条件を生成および／または選択することを特徴とする請求項１２に記載の分散処理システム。
【請求項１５】
前記制御部は、前記演算部の入力元によって出力先を決定するデータライン変更条件を生成および／または選択することを特徴とする請求項７から請求項１４のいずれか一項に記載の分散処理システム。
【請求項１６】
前記制御部は、前記演算部の演算結果によって出力先を決定するデータライン変更条件を生成および／または選択することを特徴とする請求項７から請求項１４のいずれか一項に記載の分散処理システム。
【請求項１７】
前記制御部は、前記演算部の入力元、出力先、入力元と出力先の接続関係の少なくとも一つをデータライン情報として送信し、
前記演算部は、前記データライン情報に基づいて入力元、出力先、入力元と出力先の接続関係の少なくとも一つを変更することを特徴とする請求項７から請求項１６に記載の分散処理システム。
【請求項１８】
前記処理コンテキストは前記演算部に関する情報であることを特徴とする請求項１に記載の分散処理システム。
【請求項１９】
前記処理コンテキストは前記演算部と異なる他の演算部に関する情報であることを特徴とする請求項１に記載の分散処理システム。
【請求項２０】
前記制御部は、前記制御情報の一部または全部を保持しており、制御情報を選択し、前記演算部に制御情報を送信することを特徴とする請求項１に記載の分散処理システム。
【請求項２１】
前記制御部は、ユーザから制御情報の一部または全部に関する情報を受信し、
前記制御部は、前記ユーザからの情報に基づいて、前記演算部に制御情報を送信することを特徴とする請求項１に記載の分散処理システム。
【請求項２２】
２つ以上の演算部を制御して分散処理を行わせる、前記演算部に接続された制御部であって、
前記演算部との間で制御情報を送受信する制御ラインと、
前記制御部に接続された前記演算部に処理対象データを送信する、前記制御ラインと独立したデータラインと、を有し、
前記演算部は、
前記制御ラインを介して前記演算部へ処理内容変更条件と処理内容変更情報を送信することを特徴とする制御部。
【請求項２３】
２つ以上の演算部に接続され、分散処理を行なう演算部であって、
前記制御部との間で制御情報を送受信する制御ラインと、
前記制御部及び前記演算部のうち少なくとも一方から処理対象データを送信される、前記制御ラインと独立したデータラインと、を有し、
前記演算部は、
入力されたデータを処理して出力するデータ処理部と、
前記制御ラインを介して、処理内容変更条件と処理内容変更情報を受信し、処理に関する情報コンテキストをモニタしており、
前記処理に関する情報と前記処理内容変更条件とが合致したときに、前記処理内容変更情報を用いて、前記演算部の処理内容を変更する処理内容変更部と、を備えることを特徴とする演算部。
【請求項２４】
制御部と複数の演算部とを有する分散処理方法であって、
前記制御部と前記演算部との間で制御情報を送受信する制御情報送受信工程と、
前記制御部及び前記演算部のうち少なくとも一方から、それらに接続された前記演算部に処理対象データを送信する、前記制御情報送受信工程と独立した処理対象データ送信工程と、を有し、
前記演算部において、入力されたデータを処理して出力するデータ処理工程と、
前記制御情報送受信工程により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする工程と、
前記処理コンテキストと前記処理内容変更条件とが合致したときに、前記処理内容変更情報を用いて、前記演算部の処理内容を変更する処理内容変更工程と、を備えることを特徴とする分散処理方法。
【請求項２５】
制御部と複数の演算部とを有する分散処理方法をコンピュータに実行させるプログラムであって、
前記制御部と前記演算部との間で制御情報を送受信する制御情報送受信機能と、
前記制御部及び前記演算部のうち少なくとも一方から、それらに接続された前記演算部に処理対象データを送信する、前記制御情報送受信機能と独立した処理対象データ送信機能と、を有し、
前記演算部において、入力されたデータを処理して出力するデータ処理機能と、
前記制御情報送受信機能により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする機能と、
前記処理コンテキストと前記処理内容変更条件とが合致したときに、前記処理内容変更情報を用いて、前記演算部の処理内容を変更する処理内容変更機能と、をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散処理システム、このシステムのための制御部、演算部、分散処理方法、及びプログラムに関するものである。
【背景技術】
【０００２】
マルチプロセッサシステム、特にｎ個（ｎは整数）の演算部をリング状等につないだデータフロー型マルチプロセッサシステムにおいては、データは単一方向に流れ、各演算部で処理される。
【０００３】
図４２は、従来のリング状につないだデータフロー型マルチプロセッサシステムの構成を示している。制御部（コントロール・ユニット）ＣＵとｎ個の演算部（プロセッシング・エレメント）ＰＥ１、ＰＥ２・・・ＰＥｎとがリング状に接続されている。データは、制御部ＣＵから演算部ＰＥ１へ送信された後、演算部ＰＥ１で処理される。加工後のデータは、演算部ＰＥ２に送られる。演算部ＰＥ２以降についても演算部ＰＥ１と同様にデータ処理が行われる。そして、最後の演算部ＰＥｎから制御部ＣＵにデータが送信される。
【０００４】
例えば、特許文献１には、処理ユニット自身が接続経路を分岐するための判断を行うプロセッサー装置が開示されている。
また、特許文献２には、第３のデータ転送手段を通して処理ユニットの各々に対して設定データを供給することにより、処理ユニットの接続状態や処理内容を変更させるシステムが示されている。このシステムによれば、処理ユニットがデータ処理をするのと独立して、処理ユニットの接続経路や処理内容を変更させることができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平６−１６２２２８号公報
【特許文献２】国際公開第ＷＯ０３／０２３６０２号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
特許文献１に提案されているシステムにおいては、分岐制御パラメータレジスタ群のネットワーク分岐制御情報がデータパケット自身に含まれている。このため、処理すべきデータと処理ユニットの処理経路が独立していない。この結果、データの処理途中に経路を変更するといった柔軟な経路変更ができない。
【０００７】
特許文献２に提案されているシステムにおいては、制御部が、予め用意した接続経路や処理内容を供給する。そして、処理ユニットは、それに沿った接続情報や実行内容へと変更するに過ぎない。すなわち、経路変更は、制御部が決定するものであり、演算部自身が決定することができない。そのため、経路変更には演算部から制御部への割り込みをかけることで実現する必要がある。この結果、経路変更を効率的に行えない問題がある。
【０００８】
本発明は、上記に鑑みてなされたものであって、柔軟で効率的な演算部間の処理経路や演算部の実行内容を変更することができる分散処理システム、この分散処理システムのための制御部、演算部、分散処理方法およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するために、本発明の分散処理システムは、制御部と複数の演算部とを有する分散処理システムであって、
制御部と演算部との間で制御情報を送受信する制御ラインと、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御ラインと独立したデータラインと、を有し、
演算部は、
モニタされた演算部に関する処理コンテキストと、制御ラインから受信した処理内容変更条件と、が合致したときに、制御ラインから受信した処理内容変更情報を用いて演算部の処理内容を変更する処理内容変更部を備えることを特徴とする。
【００１０】
また、本発明の好ましい態様によれば、処理内容変更情報は演算パラメータであり、
処理内容変更条件は演算パラメータの変更に関する演算パラメータ変更条件であって、
処理内容変更部は、処理コンテキストと演算パラメータ変更条件とが合致したときに、処理内容変更部が保持する演算パラメータを変更することが望ましい。
【００１１】
また、本発明の好ましい態様によれば、制御部は、演算部から受信した制御情報に基づいて、演算パラメータと演算パラメータ変更条件を生成および／または選択することが望ましい。
【００１２】
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更される可能性のある動的制御情報を受信することが望ましい。
【００１３】
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更されることのない静的制御情報を受信することが望ましい。
【００１４】
また、本発明の好ましい態様によれば、制御部は、演算部の処理状態によって決定される演算パラメータ変更条件を生成および／または選択することが望ましい。
【００１５】
また、本発明の好ましい態様によれば、演算部はさらに、
データラインとデータ処理部の入出力を選択的に接続するデータ受信部およびデータ送信部の少なくともいずれか一方を備えており、
処理内容変更情報はデータライン情報であり、
処理内容変更条件はデータライン情報の変更に関するデータライン変更条件であって、
処理内容変更部は処理コンテキストがデータライン変更条件と合致したときに、データライン情報を用いて、データラインとデータ処理部の入出力の接続を変更することが望ましい。
【００１６】
また、本発明の好ましい態様によれば、制御部は、演算部の入力元および／または出力先の演算部を、他の異なる演算部へ変更するデータライン情報を生成および／または選択し、
処理内容変更部は処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて入力元および／または出力先を変更することが望ましい。
【００１７】
また、本発明の好ましい態様によれば、制御部は、演算部の出力先として、他の異なる演算部を追加するデータライン情報を生成および／または選択し、
処理内容変更部は、処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて出力先に演算部を追加し、
複数の演算部に演算結果を出力するデータ送信部を備えることが望ましい。
【００１８】
また、本発明の好ましい態様によれば、制御部は、演算部の入力元として、他の異なる演算部を追加するデータライン情報を生成および／または選択し、
処理内容変更部は、処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて入力元に演算部を追加し、
複数の演算部からの入力を統合するデータ受信部を備えることが望ましい。
【００１９】
また、本発明の好ましい態様によれば、制御部は、演算部の入力元および／または出力先の演算部の少なくともひとつを削除するデータライン情報を生成および／または選択し、
処理内容変更部は、処理コンテキストとデータライン変更条件と合致したときに、データライン情報に基づいて入力元および／または出力先を削除することが望ましい。
【００２０】
また、本発明の好ましい態様によれば、制御部は、演算部から受信した制御情報に基づいて、データライン情報とデータライン変更条件を生成および／または選択することが望ましい。
【００２１】
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更される可能性のある動的制御情報を受信し、  
制御部は、動的制御情報に基づいて、データライン情報とデータライン変更条件を生成および／または選択することが望ましい。
【００２２】
また、本発明の好ましい態様によれば、制御部は、演算部から演算実行中に変更されることのない静的制御情報を受信し、制御部は静的制御情報に基づいて、データライン情報とデータライン変更条件を生成および／または選択することが望ましい。
【００２３】
また、本発明の好ましい態様によれば、制御部は、演算部の入力元によって出力先を決定するデータライン変更条件を生成および／または選択することが望ましい。
【００２４】
また、本発明の好ましい態様によれば、制御部は、演算部の演算結果によって出力先を決定するデータライン変更条件を生成および／または選択することが望ましい。
【００２５】
また、本発明の好ましい態様によれば、制御部は、演算部の入力元、出力先、入力元と出力先の接続関係の少なくとも一つをデータライン情報として送信し、
演算部は、データライン情報に基づいて入力元、出力先、入力元と出力先の接続関係の少なくとも一つを変更することが望ましい。
【００２６】
また、本発明の好ましい態様によれば、処理コンテキストは演算部に関する情報であることが望ましい。
【００２７】
また、本発明の好ましい態様によれば、処理コンテキストは演算部と異なる他の演算部に関する情報であることが望ましい。
【００２８】
また、本発明の好ましい態様によれば、制御部は、制御情報の一部または全部を保持しており、制御情報を選択し、演算部に制御情報を送信することが望ましい。
【００２９】
また、本発明の好ましい態様によれば、制御部は、ユーザから制御情報の一部または全部に関する情報を受信し、
制御部は、ユーザからの情報に基づいて、演算部に制御情報を送信することが望ましい。
【００３０】
また、本発明の制御部は、２つ以上の演算部を制御して分散処理を行わせる、演算部に接続された制御部であって、
演算部との間で制御情報を送受信する制御ラインと、
制御部に接続された演算部に処理対象データを送信する、制御ラインと独立したデータラインと、を有し、
演算部は、
制御ラインを介して演算部へ処理内容変更条件と処理内容変更情報を送信することを特徴とする。
【００３１】
また、本発明の演算部は、２つ以上の演算部に接続され、分散処理を行なう演算部であって、
制御部との間で制御情報を送受信する制御ラインと、
制御部及び演算部のうち少なくとも一方から処理対象データを送信される、制御ラインと独立したデータラインと、を有し、
演算部は、
入力されたデータを処理して出力するデータ処理部と、
制御ラインを介して、処理内容変更条件と処理内容変更情報を受信し、処理に関する情報コンテキストをモニタしており、
処理に関する情報と処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更部と、を備えることを特徴とする。
【００３２】
また、本発明の分散処理方法は、
制御部と複数の演算部とを有する分散処理方法であって、
制御部と演算部との間で制御情報を送受信する制御情報送受信工程と、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御情報送受信工程と独立した処理対象データ送信工程と、を有し、
演算部において、入力されたデータを処理して出力するデータ処理工程と、
制御情報送受信工程により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする工程と、
処理コンテキストと処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更工程と、を備えることを特徴とする。
【００３３】
また、本発明のプログラムは、
制御部と複数の演算部とを有する分散処理方法をコンピュータに実行させるプログラムであって、
制御部と演算部との間で制御情報を送受信する制御情報送受信機能と、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御情報送受信機能と独立した処理対象データ送信機能と、を有し、
演算部において、入力されたデータを処理して出力するデータ処理機能と、
制御情報送受信機能により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする機能と、
処理コンテキストと処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更機能と、をコンピュータに実行させる。
【発明の効果】
【００３４】
本発明によれば、柔軟で効率的な演算部間の処理経路や演算部の実行内容を変更することができる分散処理システム、この分散処理システムのための制御部、演算部、分散処理方法およびプログラムを提供できるという効果を奏する。
【図面の簡単な説明】
【００３５】
【図１】（ａ）は制御部と演算部間との制御ラインをリング型でつなぐ構成を示す図である。（ｂ）は制御部と演算部間との制御ラインをバス型でつなぐ構成を示す図である。（ｃ）は制御部と演算部間の制御ラインをスター型でつなぐ構成を示す図である。
【図２】（ａ）は本実施例においてデータラインと制御ラインを分けた構成を示す図である。（ｂ）はデータと制御情報を共用のラインで演算部へ送る従来の構成を示す図である。
【図３】分散処理システムの機能ブロック図である。
【図４】演算部ＰＥにおけるデータの処理フローを示すフローチャートである。
【図５】制御情報に対する処理の流れを示すフローチャートである。
【図６】制御情報の構造を示す図である。
【図７】演算部に受信ポートを作成するシーケンスを示す図である。
【図８】（ａ）は、演算部ＰＥが受信ポート作成コマンドを受信する前の状態を示す図である。（ｂ）は、演算部ＰＥが受信ポート作成コマンドを受信した後の状態を示す図である。
【図９】演算部に送信ポートを作成するシーケンスを示す図である。
【図１０】（ａ）は、演算部ＰＥが送信ポート作成コマンドを受信する前の状態を示す図である。（ｂ）は、演算部ＰＥが送信ポート作成コマンドを受信した後の状態を示す図である。
【図１１】データラインの生成を説明する図である。
【図１２】一つの演算部ＰＥに着目したとき、受信ポートと送信ポートとの関連付けができていない状態を示す図である。
【図１３】送信ポートと受信ポートとを関連付けるシーケンスを説明する図である。
【図１４】（ａ）は演算部ＰＥが送受信関連付けコマンドを受信する前の状態を示す図である。（ｂ）は、演算部ＰＥが送受信関連付けコマンドを受信した後の状態を示す図である。
【図１５】送信ポート変更について説明する図である。
【図１６】演算部設定コマンドのシーケンスを説明する図である。
【図１７】演算部情報取得コマンドのシーケンスを説明する図である。
【図１８】実施例１にかかる分散処理システムの構成を示す図である。
【図１９】実施例１のデータライン構成手順を示す図である。
【図２０】実施例１のデータライン構成手順を示す他の図である。
【図２１】実施例１のデータライン構成手順を示すさらに他の図である。
【図２２】演算部ＰＥ０における、データ処理の手順を示すフローチャートである。
【図２３】実施例２にかかる分散処理システムの概略構成を示す図である。
【図２４】実施例２において、カメラ画像から３並列で物体検出を行うときのシステム構築例を示す図である。
【図２５】実施例２において、制御コマンド実行後の構成を示す図である。
【図２６】実施例２において、制御コマンド実行後の構成を示す図である。
【図２７】実施例２において、制御コマンド実行後の構成を示す図である。
【図２８】実施例２において、制御コマンド実行後の構成を示す図である。
【図２９】実施例２において、制御コマンド実行後の構成を示す図である。
【図３０】実施例２において、データラインを動的変更するための制御コマンド実行後の構成を示す図である。
【図３１】実施例２の変形例１において、制御コマンド実行後の構成を示す図である。
【図３２】実施例２の変形例１において、制御コマンド実行後の構成を示す図である。
【図３３】実施例２の変形例１において、制御コマンド実行後の構成を示す図である。
【図３４】実施例２の変形例２において、制御コマンド実行後の構成を示す図である。
【図３５】実施例２の変形例２において、制御コマンド実行後の構成を示す図である。
【図３６】実施例２の変形例３において、負荷の大きい処理を前処理と本処理に分けて迂回するデータラインを構築する例を説明する図である。
【図３７】実施例３において、特定の演算部ＰＥ３に制御情報ＣＴＩＮＦを送ることを説明する図である。
【図３８】（ａ）は、演算部ＰＥからの制御情報を基に、制御部ＣＵを介して演算部ＰＥの演算パラメータを変更する例を説明する図である。（ｂ）は、送信ビットレートと係数ｋとの関係を示す図である。
【図３９】制御部から演算部に演算パラメータ変更条件を送信して、処理する時のフローチャートである。
【図４０】ＤＣＴと量子化用の演算部ＰＥ３のデータ処理の手順を示すフローチャートである。
【図４１】演算部ＰＥ間で制御情報を送り、制御部ＣＵを介さないで演算パラメータを変更する構成を説明する図である。
【図４２】従来のデータフロー型の分散処理システムの構成を示す図である。
【発明を実施するための形態】
【００３６】
以下に、本発明にかかる分散処理システム、この分散処理システムのための制御部、演算部、分散処理方法およびプログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。
【００３７】
まず、本実施形態にかかる分散処理システムの基本的な形態について説明する。分散処理システムの詳細は、図３を用いて詳述する。図１（ａ）、（ｂ）、（ｃ）は、本発明にかかる分散処理システムの基本形態の例を示している。
【００３８】
分散処理システムを構成する制御部ＣＵと複数の演算部、例えば１０個の演算部ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、ＰＥ８、ＰＥ９（以下、適宜、「ＰＥ０〜ＰＥ９」、「ＰＥ０等」、「ＰＥ」という）とが制御ラインで接続されている。接続の形態は、図１（ａ）で示すようなリング型、図１（ｂ）に示すバス型、図１（ｃ）に示すスター型のいずれの形態でも良い。
【００３９】
図１（ａ）〜（ｃ）に示す状態では、演算部ＰＥ０〜ＰＥ９間を結ぶデータ送受信用のラインは構築されていない。そこで、制御部ＣＵから制御ラインを通じて以下に掲げる制御情報により演算部ＰＥ０〜ＰＥ９間のデータラインを構築する。
【００４０】
制御ラインを流れる情報を制御情報と呼ぶ。制御部ＣＵから演算部ＰＥ０等へ送る制御情報には、（１）データライン構築コマンド、（２）演算部設定コマンド、（３）演算部情報取得コマンドがある。
【００４１】
上述の（１）データライン構築コマンドは、さらに以下のコマンドに分類できる。
（１−１）受信ポート作成コマンド；
（１−２）送信ポート作成コマンド；
（１−３）送受信ポート関連付けコマンド；
（１−４）受信ポート削除コマンド；
（１−５）送信ポート変更コマンド；
（１−６）送信ポート削除コマンド．
【００４２】
データライン構築コマンドの内容がデータライン情報である。それらが演算部で実行され、演算部で生成された送受信ポート、送受信ポート関連付けもデータライン情報である。これら（１）データライン構築コマンド、（２）演算部設定コマンド、（３）演算部情報取得コマンドを組み合わせることで、複数の演算部ＰＥ０〜ＰＥ９へデータを送信すること、複数の演算部ＰＥ０〜ＰＥ９から処理結果を受信することを可能かつ動的に変更可能とすることができる。
【００４３】
制御部ＣＵは、上記コマンドを制御ラインで各演算部ＰＥ０〜ＰＥ９に向けて送信して、データを流すラインを作成していく。演算部ＰＥ０〜ＰＥ９には、一意となるＩＤ番号が割り当てられている。制御情報は、ＩＤ番号とともに、各演算部ＰＥ０〜ＰＥ９へ送られる。
以下、例えば、演算部ＰＥ０とは、ＩＤ＝０の演算部ＰＥを指すこととする。
【００４４】
例えば、制御ラインが図１（ｃ）で示したリング型のとき、演算部ＰＥ０〜ＰＥ９は、自分宛のコマンドのみ受理する。また、演算部ＰＥ０〜ＰＥ９は、自分宛てではないコマンドは、次の演算部ＰＥへ転送する。
【００４５】
受信ポート作成コマンドを受信した演算部ＰＥは、データ受信用のポートを作成する。演算部ＰＥは作成した受信ポートの識別子である受信ポート番号を制御部ＣＵへ返す。
送信ポート作成コマンドを受信した演算部ＰＥは、データ送信用のポートを作成する。演算部ＰＥは作成した送信ポートの識別子である送信ポート番号を制御部ＣＵへ返す。
【００４６】
送信ポート作成コマンドは、パラメータとして、このポートから送られたデータを受信する演算部ＰＥのＩＤと受信ポート識別子を含んでいる。また、送信ポート作成コマンドは、ブロードキャストで送信すること、ユニキャストで送信することも指定する。
【００４７】
送受信ポート関連付けコマンドは、対象となる演算部ＰＥの作成済みの受信ポート識別子と送信ポート識別子を指定する。これにより、対象となる演算部ＰＥのどの受信ポートからデータが入って、演算部ＰＥで処理して、どの送信ポートから送信するかを関連付ける。
そして、上述のコマンドを、制御部ＣＵから各演算部ＰＥに適切に送信することで任意のデータラインを構築することができる。
【００４８】
図２（ａ）は、本実施形態にかかる分散処理システムにおいて、データラインと制御ラインを分けた構成を示している。データＤＴは、データラインＤＴＬＮにより、演算部ＰＥ０から演算部ＰＥ１へ送られる。制御情報ＣＴＩＮＦは、制御ラインＣＴＬＮにより、演算部ＰＥ０から演算部ＰＥ１へ送られる。データラインＤＴＬＮと制御ラインＣＴＬＮとは相互の独立した別個のラインである。
【００４９】
図２（ｂ）は、データＤＴと制御情報ＣＴＩＮＦとを演算部ＰＥへ送る従来の構成を示している。データＤＴと制御情報ＣＴＩＮＦとは、データラインＤＴＬＮと制御ラインＣＴＬＮとが共用のラインにより、演算部ＰＥ０から演算部ＰＥ１へ送られる。
【００５０】
本実施例の構成により、演算部ＰＥ０から演算部ＰＥ１へデータＤＴが連続して送られるとき、演算部ＰＥ０のデータ処理の負荷とは無関係に、即ち独立して制御ラインＣＴＬＮを通して制御情報ＣＴＩＮＦを特定の演算部ＰＥ１に届けることができる。
制御部ＣＵは、データラインＤＴＬＮを流れているデータ量や負荷の大きさに応じてデータ処理中に新たなデータラインＤＴＬＮを生成できる。後述の演算部設定コマンドと演算部情報取得コマンドと併用することでより最適なデータラインで処理することができる。
【００５１】
演算部設定コマンドは、演算部ＰＥの動作を変更するために使用する。例えば、処理のアルゴリズムやパラメータの動的変更、データの内容や処理結果によって送信先を切り替える条件を設定できる。これにより、処理内容に応じて演算部ＰＥがデータの送信先を変更できる。
【００５２】
ここで、処理のアルゴリズムの動的変更の例は、高速で低精度のアルゴリズムと、低速で高精度のアルゴリズムとの切り替えることなどである。また、パラメータの動的変更の例は、計算式の係数を変更することなどである。
【００５３】
演算部情報取得コマンドは、制御部ＣＵが演算部ＰＥの情報を取得するために使う。制御部ＣＵから指定した演算部ＰＥに対して演算部情報取得コマンドを送る。次に、その送信した演算部ＰＥの情報が制御部ＣＵに返る。
【００５４】
演算部ＰＥの情報の例、即ち処理コンテキストの例としては、最大受信レート[Bytes/sec]、受信レート、最大送信レート、送信レート、最大消費電力、消費電力、最大処理能力、処理負荷などがある。
制御部ＣＵは、演算部情報取得コマンドにより、上述の例のような演算部ＰＥの通信の状態または処理状態をモニタすることができる。制御部ＣＵから演算部ＰＥに対して演算部設定コマンドを送信し、それを受信した演算部ＰＥがその演算部設定コマンドに従って処理コンテキストを送信するようにしてもよい。この場合、演算部ＰＥが取得した自分自身の処理コンテキストを他の演算部ＰＥに送信することで、演算部ＰＥ間でそれぞれの処理コンテキストをモニタすることができる。つまり、この演算部設定コマンドを用いれば、演算部ＰＥは制御部ＣＵによらず、演算部ＰＥ間で能動的に処理コンテキストをモニタすることができる。
また、制御部ＣＵは、必要な場合、情報を取得した演算部ＰＥとは異なる別の演算部ＰＥを使うようにデータラインＤＴＬＮを切り替えることができる。
【００５５】
図３は、分散処理システムの機能ブロック図である。制御部ＣＵと、複数の演算部ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４とは、スター型の実線で示す制御ラインＣＴＬＮで接続されている。また、破線でデータの流れを示している。
【００５６】
演算部ＰＥの参照符号の数値、例えば演算部ＰＥ０の「０」は、演算部ＰＥを識別するＩＤである。つまり、演算部ＰＥ０とは、ＩＤ＝０の演算部を示している。同様に、演算部ＰＥ１とは、ＩＤ＝１の演算部を示している。
【００５７】
図中左側の２つの演算部ＰＥ０、ＰＥ１から、中央の演算部ＰＥ３にデータが送信される。データは、中央の演算部ＰＥ２で処理され、右側の２つの演算部ＰＥ３、ＰＥ４に送信される。
ここで、データラインＤＴＬＮは、制御部ＣＵから、各演算部ＰＥ０〜ＰＥ４に送る制御情報に基づいて構築される。このため、初期状態では、データラインＤＴＬＮは、接続されていない。
【００５８】
本発明の効果を得るためには、データＤＴと制御情報ＣＴＩＮＦの受信、処理は独立に行えることが望ましい。
データＤＴと制御情報ＣＴＩＮＦを同時に受信する可能性があり、データ処理の流れと制御情報処理の流れで同じ処理ブロックにアクセスすることも発生するため排他制御されなければならない。
【００５９】
処理内容変更部は、制御ラインＣＴＬＮから受信した制御情報を処理する。処理の内容は受信した制御情報により異なる。処理内容変更部は、制御情報の内容により、処理変更部自身が持つ設定を保持する領域、データ受信部、データ送信部を設定する。
【００６０】
また、処理内容変更部は、データ処理の際に必要なパラメータを提供する。処理内容変更部は、制御情報に応答するだけでなく、演算部ＰＥの処理状態などを能動的に制御ラインＣＴＬＮに送信して、制御部ＣＵや他の演算部ＰＥに演算部ＰＥ自身の情報を送ることもできる。
【００６１】
データ受信部は、データラインＤＴＬＮを介してデータを受信する。データ受信部は、受信したデータを、受信ポート番号とともにデータ処理部に引き渡す。また、データ受信部は、処理内容変更部からの指示に基づいて、受信ポートＲＰを設定する。データ受信部は、受信ポートＲＰに到着するデータのバイト数、最近の受信レート[Bytes/sec]などの統計情報もモニタし、処理内容変更部の要求に応じて、処理内容変更部へこれらの収集した情報を提供する。
【００６２】
データ処理部は、受け取ったデータに対して処理を行い、データ送信部へ結果を引き渡す。その際、処理内容変更部を参照して、処理に必要なパラメータなどを取得する。データ処理時にかかわる情報が処理内容変更情報である。処理内容変更情報は、データライン情報（例えばどの受信ポートから受けてどの送信ポートへ送るか）や演算パラメータ（例えば演算時の計算式の係数、閾値）である。データ処理部は、処理を行った後、送信ポート番号と共に処理結果をデータ送信部に引き渡す。データ処理部は、データ処理時には処理に関する情報をモニタし、処理内容変更部の要求に応じて、これらモニタした情報を提供する。ここで、処理に関する情報とは、例えば、負荷、演算回数/secなどである。
【００６３】
データ送信部は、指定された送信ポートＴＰを通してデータを送信する。また、データ送信部は、処理内容変更部からの指示に基づいて、送信ポートＴＰを設定する。データ送信部は、送信ポートＴＰから送信するデータのバイト数、最近の送信レート[Bytes/sec]などの統計情報もモニタし、処理内容変更部の要求に応じて、処理内容変更部へこれらのモニタした情報を提供する。
【００６４】
図４は、演算部ＰＥにおけるデータの処理フローを示すフローチャートである。
まず、ステップＳ１００において、データ受信部は、受信待ち状態にある。
ステップＳ１０１において、データがデータ受信部の受信ポートに届くと、データ受信部はデータを受信する。
ステップＳ１０３において、データ処理部は、データ処理を行う前に、処理内容変更部を参照し処理のパラメータやアルゴリズムを決定する。ここで、処理のパラメータとは、例えば計算式の係数などその他のものをいう。
【００６５】
ステップＳ１０２において、処理内容の決定後、データが処理される。
ステップＳ１０４において、データ処理部が処理結果を送信する前に、処理内容変更部は送信先を決定する。例えば、演算結果が所定の閾値以上のときは送信ポート番号０へ送信すること、演算結果が所定の閾値以下のときは送信ポート番号１へ送信することということが決定される。
【００６６】
ステップＳ１０５において、送信先が決まると、データ処理部は、データ送信部に送信ポート番号とデータを送り、データが送信される。
【００６７】
図５は、制御情報に対する処理の流れを示すフローチャートである。
ステップＳ１１０において、処理内容変更部は、制御情報の受信待ち状態にある。
ステップＳ１１１において、処理内容変更部は、制御情報が届くと制御情報を受信する。
【００６８】
ステップＳ１１２において、処理内容変更部は、制御情報処理では、制御情報の内容を解析し、いずれの制御コマンドであるかを判定する。
処理内容変更部は、判定した結果に基づいて、コマンドに応じた処理を行う。
ステップＳ１１３において、制御情報処理が終わると、処理内容変更部は、結果を制御ラインＣＴＬＮを通じて制御部ＣＵに返す。
【００６９】
次に、各制御コマンドを説明する。
図６は、制御情報の構造を示している。制御部ＣＵが演算部ＰＥに送る制御情報は、宛先と、制御コマンドと、パラメータとから成る。
【００７０】
宛先には、この制御情報を届けたい相手となる演算部ＰＥのＩＤが入っている。制御コマンドは、数値で識別される。パラメータの内容は、制御コマンドに依存する。
【００７１】
処理結果を送信された次の演算部ＰＥから最後の演算部ＰＥにいたるまで、処理結果が転送される。そして、最後の演算部ＰＥは、処理結果を制御部ＣＵに返す。
なお、制御部ＣＵと演算部ＰＥとの制御ラインの接続は、上述したようにリング型に限定されることなく、バス型、スター型でも良い。さらに、図３では、５つの演算部ＰＥ０〜ＰＥ４で説明しているが、演算部の数量も制限されるものではない。
【００７２】
このように、制御情報ＣＴＩＮＦを流す制御ラインＣＴＬＮを通して、制御部ＣＵから以下に詳述する制御情報を適切なパラメータを与えて演算部ＰＥに送信する。これにより、上記のようなデータを流すデータラインＤＴＬＮを構築する。
【００７３】
次に、受信ポート作成について説明する。
図７は、演算部ＰＥに受信ポートを作成するシーケンスを示す図である。
シーケンス１２０において、制御部ＣＵは受信ポートを作成したい演算部ＰＥへ受信ポート作成コマンドを送信する。受信ポート作成コマンドは制御ラインを通じて送られる。
【００７４】
演算部ＰＥの処理内容変更部は、制御ラインから受信ポート作成コマンドが送られてくるのを待ち受けている。そして、シーケンス１２１において、演算部ＰＥの処理内容変更部は、制御部ＣＵからのコマンドを受信する。
【００７５】
シーケンス１２２において、演算部ＰＥの処理内容変更部は、受信ポート作成コマンドの内容に基づいて、データ受信部に作用し、受信ポートを作成させる。
シーケンス１２３において、受信ポートの作成に成功したとき、処理内容変更部は、作成された受信ポート番号を結果として制御部ＣＵに送信する。受信ポートの作成に失敗したとき、処理内容変更部は、エラーを示す数値を制御部ＣＵに送信する。
【００７６】
制御部ＣＵは、受信ポート作成コマンドを送信した後は、演算部ＰＥからの結果待ち受け状態にある。そして、シーケンス１２４において、制御部ＣＵは、演算部ＰＥからの結果を受信する。
【００７７】
表１に受信ポート作成コマンドの内容を掲げる。
（表１）
パラメータ：作成するポート数
返り値：成功時、作成された受信ポート番号
失敗時、エラーを表す数値（番号）
【００７８】
受信ポート番号は、演算部ＰＥ内で一意な値である。例えばＴＣＰ（Transmission  Control  Protocol）で通信するときはポート番号が割り当てられ、ハードウェアのときは空いているＩ／Ｏポートのアドレスなどが割り当てられる。または、それらを抽象化した数値でもよい。ここでは０から付番される数値とする。
【００７９】
図８（ａ）、（ｂ）は、３個の受信ポートを作成する過程を説明する図である。図８（ａ）は、演算部ＰＥが受信ポート作成コマンドを受信する前の状態を示す図である。図８（ｂ）は、演算部ＰＥが受信ポート作成コマンドを受信した後の状態を示す図である。
【００８０】
受信ポート作成が成功すると、図８（ｂ）に示すように、演算部ＰＥに３個の受信ポートＲＰ０、ＲＰ１、ＲＰ２が作成される。 
【００８１】
なお、以下全ての実施例を説明する図面において、演算部ＰＥの受信ポートは、白い丸で示している。また、受信ポートの近傍に受信ポート番号を併記している場合もある。例えば、図８（ｂ）の受信ポートＲＰ０の近傍に記載されている数値「０」は、受信ポート番号を示している。
【００８２】
次に、送信ポート作成について説明する。
図９は、演算部ＰＥに送信ポートを作成するシーケンスを示す図である。
シーケンス１３０において、制御部ＣＵは送信ポートを作成したい演算部ＰＥへ送信ポート作成コマンドを送信する。
【００８３】
シーケンス１３１において、演算部ＰＥの処理内容変更部は、送信ポート作成コマンドを受信する。
シーケンス１３２において、演算部ＰＥの処理内容変更部は、送信ポート作成コマンドの内容に基づいてデータ送信部に作用し、送信ポートを作成させる。
シーケンス１３３において、送信ポートの作成に成功したとき、処理内容変更部は、作成された送信ポート番号を結果として制御部ＣＵに送信する。送信ポートの作成に失敗したとき、処理内容変更部は、エラーを制御部ＣＵに送信する。
シーケンス１３４において、制御部ＣＵは演算部ＰＥからの結果を受信する。
【００８４】
表２に送信ポート作成コマンドの内容を掲げる。
（表２）
パラメータ：送信先演算部ＰＥのＩＤ、受信側の受信ポート番号、ブロードキャストで送信するかを表すフラグ
返り値：成功時、作成された送信ポート番号
失敗時、エラーを表す番号
【００８５】
図１０（ａ）、（ｂ）は、２個の送信ポートを作成する過程を説明する図である。図１０（ａ）は、演算部ＰＥが送信ポート作成コマンドを受信する前の状態を示す図である。図１０（ｂ）は、演算部ＰＥが送信ポート作成コマンドを受信した後の状態を示す図である。
【００８６】
送信ポート作成が成功すると、図１０（ｂ）に示すように、演算部ＰＥに２個の送信ポートＴＰ０、ＴＰ１が作成される。 
【００８７】
なお、以下全ての実施例を説明する図面において、演算部ＰＥの送信ポートは、黒い丸で示している。また、送信ポートの近傍に送信ポート番号を併記している場合もある。例えば、図１０（ｂ）の送信ポートＴＰ０の近傍に記載されている数値「０」は、送信ポート番号を示している。
【００８８】
送信ポート作成時には、作成された送信ポートからの送信を受信する演算部ＰＥのＩＤと受信ポート番号も指定する。これにより、作成された送信ポートからのデータを受信する演算部ＰＥと受信ポート番号とが決まる。また、ブロードキャストを指定すると、複数の演算部ＰＥへ同時にデータを送ることができる。
【００８９】
図１１は、データラインの生成を説明する図である。ＩＤ＝１の演算部ＰＥの送信ポート番号０の送信ポートＴＰ０から、ＩＤ＝２の演算部ＰＥの受信ポート番号０の受信ポートＲＰ０に対してデータを送信する例である。この場合、送信ポートＴＰ０から、受信ポートＲＰ０へデータラインＤＴＬＮが結ばれる。
【００９０】
次に、送受信ポート関連付けについて説明する。
上述したように、ある演算部ＰＥ１の送信ポートと、他の演算部ＰＥ２の受信ポートをつなげただけの状態では、一つの演算部ＰＥに着目したいとき、どの受信ポートのデータがどの送信ポートから出て行くのかは決まっていない状態である。したがって、この状態では、まだデータを流すことはできない。
【００９１】
図１２は、一つの演算部ＰＥに着目したいとき、どの受信ポートのデータがどの送信ポートから出て行くのかは決まっていない状態を示している。具体的には、受信ポートＰ０で受信したデータが処理された後、送信ポートＴＰ０、ＴＰ１、ＴＰ２のいずれに対して送られるかの関連付けは未定義の状態である。
したがって、ある受信ポートから入ってきたデータが処理され、どの送信ポートから送信されるか、すなわち、受信ポート番号と送信ポート番号を関連付ける必要がある。
【００９２】
図１３は、送信ポートと受信ポートとを関連付けるシーケンスを説明する図である。
シーケンス１４０において、制御部ＣＵは、送受信ポート関連付けをしたい演算部ＰＥへ送受信ポート関連付けコマンドを送信する。送受信ポート関連付けコマンドは制御ラインＣＴＬＮを通じて送られる。
【００９３】
演算部ＰＥの処理内容変更部は、制御ラインからコマンドが送られてくるのを待ち受けている。シーケンス１４１において、演算部ＰＥの処理内容変更部は、制御部ＣＵからのコマンドを受信する。
シーケンス１４２において、演算部ＰＥの処理内容変更部は、送受信ポート関連付けコマンドの内容に基づいて、パラメータが正しいか否かなどを確認し、関連付けを設定する。
【００９４】
シーケンス１４３において、演算部ＰＥの処理内容変更部は、受信ポートと送信ポートとの関連付けに成功したとき、または失敗したとき、それぞれの結果を表すコードを制御部ＣＵに送信する。
制御部ＣＵは、送受信ポート関連付けコマンド送信後は演算部ＰＥからの結果待ち受け状態にある。シーケンス１４４において、制御部ＣＵは、演算部ＰＥからの結果を受信する。
【００９５】
表３に送受信ポート関連付けコマンドの内容を掲げる。
（表３）
パラメータ：受信ポート番号、送信ポート番号（複数可）
返り値：成否（数値で表現したエラーコードなど）
【００９６】
図１４（ａ）、（ｂ）は、送受信関連付けの例を説明する図である。図１４（ａ）は、演算部ＰＥが送受信関連付けコマンドを受信する前の状態を示す図である。図１４（ｂ）は、演算部ＰＥが送受信関連付けコマンドを受信した後の状態を示す図である。
【００９７】
図１４（ａ）に示すように、演算部ＰＥは、受信ポート番号ＰＥ０、ＰＥ１と、送信ポート番号ＴＰ０、ＴＰ１、ＴＰ２と、を有する。この状態では、受信ポートと送信ポートの間の関連付けは未定義である。
【００９８】
ここで、送受信ポート関連付けコマンドにより、受信ポート番号ＲＰ０から送信ポート番号ＴＰ１へ入出力を関連付ける、また、送受信ポート関連付けコマンドにより、受信ポート番号ＲＰ１から送信ポート番号ＴＰ２へ入出力を関連付ける。
【００９９】
この結果、図１４（ｂ）に示すように、受信ポートＲＰ０から入力され、処理されたデータは、送信ポートＴＰ１へ送られる。また、受信ポートＲＰ１から入力され、処理されたデータは、送信ポートＴＰ２へ送られる。このようにして、演算部ＰＥ内の受信ポートと送信ポートとが関連付けられる。
【０１００】
また、すでに関連付けを設定してある受信ポート番号を指定すると上書きされる。さらに、受信ポート番号に送信ポート番号が関連付けられていないときは何も送信しない。
【０１０１】
次に、受信ポート削除について説明する。
受信ポート削除コマンドを受信した演算部ＰＥは、演算部ＰＥに作成した受信ポートを削除する。また、受信ポートを削除すると、削除された受信ポートに設定されていた送受信ポート関連付けも削除される。
【０１０２】
表４に受信ポート削除コマンドの内容を掲げる。
（表４）
パラメータ：受信ポート番号（複数可）
返り値：成否（数値で表現したエラーコードなど）
【０１０３】
次に、送信ポート変更について説明する。
図１５は、送信ポート変更について説明する図である。ＩＤ＝１の演算部ＰＥの送信ポート番号０の送信ポートＴＰ０の送信先を、ＩＤ＝２の演算部ＰＥの受信ポート番号０の受信ポートＲＰ０から、ＩＤ＝３の演算部ＰＥの受信ポート番号０の受信ポートＲＰ０に変更する例である。
このように、送信ポート変更コマンドは、既存の送信ポートの送信先を変更するために用いる。
【０１０４】
送信ポート変更コマンドの内容を表５に掲げる。
（表５）
パラメータ：既存の送信ポート番号、変更後の送信先演算部ＰＥのＩＤ、受信側の受信ポート番号、ブロードキャストで送信するかを表すフラグ、
返り値：成功時、変更された送信ポート番号（パラメータで与えた送信ポート番号と同じ）
失敗時、エラーを表す番号
【０１０５】
次に、送信ポート削除について説明する。
送信ポート削除コマンドは、演算部ＰＥに作成した送信ポートを削除するときに用いる。送信ポートを削除すると、削除された送信ポートに設定されていた送受信ポート関連付けも削除される。
【０１０６】
送信ポート削除コマンドの内容を表６に掲げる。
（表６）
パラメータ：送信ポート番号（複数可）
返り値：成否（数値で表現したエラーコードなど）
【０１０７】
次に、演算部設定について説明する。
演算部ＰＥ設定コマンドは、演算部ＰＥの動作を変更するために用いる。パラメータの内容は演算部ＰＥに依存する。例えばＤＣＴ（Discrete Cosine Transform、離散コサイン変換）を行う演算部ＰＥには、高速で低精度なアルゴリズムと、低速で高精度なアルゴリズムとが実装されている。この２つのアルゴリズムを状況に合わせて切り替えられるように構成されているとする。
【０１０８】
演算部設定コマンドにより、いずれのアルゴリズムを使用するかを設定できる。そして、いずれのアルゴリズムを使用するかを設定するために演算部ＰＥ設定コマンドが使われる。また、量子化を行う演算部ＰＥでは、制御部から量子化テーブルを与えられるように構成されている。各演算部ＰＥにおいて、どのような種類の設定が可能であるかは各演算部ＰＥの仕様書に記述されている。制御部ＣＵは、各演算部ＰＥの仕様書の記述を認識した状態で、演算部設定コマンドで設定する。
【０１０９】
図１６は、演算部設定コマンドのシーケンスを説明する図である。
シーケンス１５０において、制御部ＣＵは、演算部（ＰＥ）設定コマンドを、演算部ＰＥに対して送信する。
シーケンス１５１において、演算部ＰＥは、演算部（ＰＥ）設定コマンドを受信する。
シーケンス１５２において、演算部ＰＥの処理内容変更部は、受信した演算部設定コマンドが処理可能であれば処理する。
【０１１０】
シーケンス１５３において、演算部ＰＥは、結果を表す返り値を制御部ＣＵに送信する。
制御部ＣＵは、演算部設定コマンド送信後は演算部ＰＥからの結果待ち受け状態にある。シーケンス１５４において、制御部ＣＵは、演算部ＰＥからの結果を受信する。
【０１１１】
表７に演算部設定コマンドの内容を掲げる。
（表７）
パラメータ：演算部ＰＥ依存
返り値：演算部ＰＥ依存
【０１１２】
例えば、量子化を実行する演算部ＰＥにおいては、演算部設定コマンドとして、量子化テーブル、テーブルに乗算する係数、テーブル値を決定するための基準値などが送られてくる。処理内容変更部は、これらをメモリに記録しておき、データ処理時に利用できるようにする。演算部ＰＥは、処理結果を制御部ＣＵへ送信する。
【０１１３】
次に、演算部情報取得について説明する。
演算部情報取得コマンドは、制御部ＣＵが演算部ＰＥの状態を取得するために用いる。制御部ＣＵは、取得した演算部ＰＥの情報に基づいて、データラインＤＴＬＮを変更することができる。制御部ＣＵは、演算部情報取得コマンドにより、以下の表８に掲げる情報を取得できる。
【０１１４】
【表８】
2011203935.tif 000003
【０１１５】
図１７は、演算部情報取得コマンドのシーケンスを説明する図である。
シーケンス１６０において、制御部ＣＵは、演算部情報取得コマンドを、演算部ＰＥに対して送信する。
シーケンス１６１において、演算部ＰＥは、演算部情報取得コマンドを受信する。シーケンス１６２において、演算部ＰＥの処理内容変更部は、受信した演算部情報取得コマンドが処理可能であれば処理する。
【０１１６】
シーケンス１６３において、演算部ＰＥは、返り値である情報を制御部ＣＵに送信する。
制御部ＣＵは、演算部情報取得コマンド送信後は演算部ＰＥからの結果待ち受け状態にある。シーケンス１６４において、制御部ＣＵは、演算部ＰＥからの結果、すなわち演算部情報を受信する。
【０１１７】
表９に演算部情報取得コマンドの内容を掲げる。
（表９）
パラメータ：なし
返り値：情報
【０１１８】
ここで、処理能力の単位は、演算部ＰＥに依存する。例えば、ＤＣＴを実行する演算部ＰＥの場合の処理能力の単位は、１秒間に何回ＤＣＴを実行できるかを表すＤＣＴ／ｓｅｃになる。
【０１１９】
また、制御部ＣＵは、演算部情報取得コマンドで取得した情報に基づいてデータラインＤＴＬＮを変更することができる。
また、同じ処理をする演算部ＰＥが複数設けられており、処理開始後に、より最大処理能力が高い演算部ＰＥが利用できるようになった場合、制御部ＣＵはデータラインＤＴＬＮを変更する。これにより、より最大処理能力が高い演算部ＰＥを利用するようにさせることもできる。
【０１２０】
また、処理開始後に、より低消費電力の演算部ＰＥが追加された場合は、消費電力が少なくなるように、より低消費電力の演算部ＰＥを使用することもできる。
演算部情報取得コマンドに対する応答がない場合、制御部ＣＵは、応答しない演算部ＰＥは故障したと判断する。そして、制御部ＣＵは、別の演算部ＰＥを使うようにデータラインＤＴＬＮを変更することもできる。
【０１２１】
ここでは、制御部ＣＵが能動的に演算部情報取得コマンドを演算部ＰＥへ送って演算部ＰＥの情報を取得することを示した。これに限られず、演算部ＰＥが能動的に制御ラインＩＦＬＮに自分の情報を流すようにすることもできる。
【０１２２】
制御部ＣＵは、演算部設定コマンドにより、演算部ＰＥにおいて、定期的あるいは変化が生じたときに、演算部ＰＥの情報を制御ラインＣＴＬＮに送信するように設定しておくことできる。これにより、演算部ＰＥは能動的に自分の情報を制御ラインＣＴＬＮに送信するようになる。
【０１２３】
（実施例１）
次に、本発明の実施例１にかかる分散処理システムについて説明する。本実施例は、静止画像を表示するためのデータライン構成例である。
図１８は、実施例１にかかる分散処理システムの構成を示す図である。図に示すような演算部ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４の構成を構築するために、データライン構築コマンドを使いデータラインを構築する手順を説明する。
【０１２４】
表１０に各演算部ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４の仕様を掲げる。
【０１２５】
【表１０】
2011203935.tif 000004
【０１２６】
表１０に仕様を掲げる演算部ＰＥ０〜ＰＥ４を、図１８に示すように接続する。これにより、演算部ＰＥ０へ入力した任意のフォーマットの静止画像を、演算部ＰＥ４に接続されたモニタ２０へ表示するデータラインを構築する。
【０１２７】
演算部ＰＥ０は、入力された静止画１０のフォーマットを解析して形式の種類を判定する。判定は、画像を構成するデータのヘッダに基づいて行う。演算部ＰＥ０は、判定結果に応じて、後続の演算部ＰＥを選択し画像を送る。
【０１２８】
判定できる形式は、以下の３つの形式のみとする。
・ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）
・Ｇｉｆ（Ｇｒａｐｈｉｃ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）
・ＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）
演算部ＰＥ1、演算部ＰＥ２、演算部ＰＥ３は入力された画像を伸張し、ＲＧＢ各８ビットで表現されたビットマップに変換し、演算部ＰＥ４に送る。
【０１２９】
演算部ＰＥ４は、入力されたビットマップ形式の画像をモニタ２０に表示する。演算部ＰＥ０に対して未知の画像が入力されたときは、そのまま演算部ＰＥ4に送られる。ただし、演算部ＰＥ４は、受信するデータとしてビットマップを期待（想定）している。このため、この場合は、モニタ２０に静止画は正しく表示されない。
【０１３０】
制御部ＣＵは、各演算部ＰＥ０〜ＰＥ４のＩＤと、その提供する機能、演算部ＰＥ０〜ＰＥ４が処理できるデータの形式、出力の形式の情報は事前に取得して知っているとする。
【０１３１】
事前に各演算部ＰＥ０〜ＰＥ４の情報を取得する手順としては、制御部ＣＵの内部または外部にデータベースが設けられており、このデータベースにこれら情報が記録されていて読み出す形式でもよい。また、制御部ＣＵを操作するユーザがこれら情報を知っており、ユーザが制御部ＣＵに情報を与えてもよい。さらに、制御ラインに演算部ＰＥが接続されると、演算部ＰＥが制御部ＣＵにその演算部ＰＥの情報を送るように構成してもよい。加えて、制御部ＣＵが演算部ＰＥ情報取得コマンドを各演算部ＰＥ０〜ＰＥ４へ送り、演算部ＰＥ０からＰＥ４が応答を返す方法でもよい、なお、この場合、宛先としてブロードキャストを表す特別な値、例えば全ビットが１であること、が必要となる。
【０１３２】
表１１に、静止画像表示のデータラインを構築するとき、制御部ＣＵから演算部ＰＥ０〜ＰＥ４に送信する制御情報を掲げる。表１０において、コマンド欄における、「受信」は受信ポート作成コマンド、「送信」は送信ポート作成コマンド、「関連」は送受信ポート関連付けコマンド、「設定」は演算部設定コマンドをそれぞれ意味する。
【０１３３】
【表１１】
2011203935.tif 000005
【０１３４】
図１９は、番号１−４のコマンド実行後の構成を示している。制御部ＣＵは、番号１の受信ポート作成コマンドを演算部ＰＥ４に対して送る。これにより、演算部ＰＥ４に４つの受信ポートＲＰ０、ＲＰ１、ＲＰ２、ＲＰ３が作成される。
また、制御部ＣＵは、演算部ＰＥ１、ＰＥ２、ＰＥ３に、送信ポート作成コマンドを送る。これにより、各演算部ＰＥ１〜ＰＥ３に、送信ポートＴＰ０が作成される。
【０１３５】
図２０は、番号５−１１のコマンド実行後の構成を示している。制御部ＣＵは、番号５、６、７の受信ポート作成コマンドを、それぞれ演算部ＰＥ１、ＰＥ２、ＰＥ３に対して送る。これにより、演算部ＰＥ１、ＰＥ２、ＰＥ３に、それぞれ受信ポートＲＰ０が作成される。
また、制御部ＣＵは、番号８、９、１０、１１の送信ポート作成コマンドを演算部ＰＥ０に送る。これにより、演算部ＰＥ０に、送信ポートＴＰ０、ＴＰ１、ＴＰ２、ＴＰ３が作成される。
【０１３６】
図２１は、番号１２−１５のコマンド実行後の構成を示している。制御部ＣＵは、番号１２、１３、１４の送受信ポート関連付けコマンドを、それぞれ演算部ＰＥ１、ＰＥ２、ＰＥ３に送る。これにより、各演算部ＰＥ１、ＰＥ２、ＰＥ３において、受信ポートＲＰ０と送信ポートＴＰ０とが関連付けられる。
制御部ＣＵは、番号１５の演算部設定コマンドを、演算部ＰＥ０に送る。これにより、演算部ＰＥ０において、判定結果を示す数値が設定される。
【０１３７】
図２２は、演算部ＰＥ０における、データ処理の手順を示すフローチャートである。
演算部ＰＥ０には、事前に制御部ＣＵから演算部設定コマンドによりフォーマットと送信ポート番号の対応表を設定しておく。
【０１３８】
演算部ＰＥ０のデータ処理部に任意の画像を与える。この画像は、制御部ＣＵが与えること、または演算部ＰＥ０のメモリから与えること等いずれの方法でもよい。
【０１３９】
まず、画像データがデータ受信部からデータ処理部へ送られてくる。最初は、ステップＳ１７１において、フォーマットの判定結果を「不明」にしておく。
ステップＳ１７２において、データ処理部は画像のヘッダ部を読み出す。
【０１４０】
ステップＳ１７３において、データ処理部は、ヘッダ部を参照する。データ処理部は、例えばＪＰＥＧであれば、データは１６進数で０ｘｆｆ、０ｘｄ８で始まっているなどの判定を行う。
判定結果が、判定できる形式であるＪＰＥＧ、Ｇｉｆ、ＰＮＧのいずれかと一致する場合、ステップＳ１７４において、データ処理部は、画像のフォーマットを決定する。
【０１４１】
ステップＳ１７５において、フォーマットが決定された場合、データ処理部は、処理内容変更部に対して、決定されたフォーマットに対する送信ポート番号を問い合わせる。
【０１４２】
ステップＳ１７６において、処理内容変更部は、事前に演算部設定コマンドにより設定されたフォーマットと、送信ポート番号対応表とに基づいて、送信ポート番号をデータ処理部へ返す。
【０１４３】
ステップＳ１７７において、送信ポート番号対応表の内容を掲げる。例えば、ＪＰＥＧであると判定されたときは、処理内容変更部は、送信ポート番号１をデータ処理部へ返す。
ステップＳ１７８において、データ処理部はデータ送信部に対して、受信したデータと送信ポート番号を送信する。
【０１４４】
また、判定結果が、判定できる形式であるＪＰＥＧ、Ｇｉｆ、ＰＮＧのいずれかと一致しない場合、ステップＳ１７９において、データ処理部は、画像のフォーマットが不明であると判定する。そして、ステップＳ１７５へ進む。
【０１４５】
演算部ＰＥ１、演算部ＰＥ２、演算部ＰＥ３は入力された画像を伸張し、ビットマップ形式にして演算部ＰＥ４に送信する。演算部ＰＥ４は受信したビットマップを表示する。
演算部ＰＥ０に関してみると、データを受信した段階では、データの行き先は決定していない。そして、上述したように、演算部ＰＥ０で処理した結果により行き先の演算部ＰＥ１、ＰＥ２、ＰＥ３が変わる。これにより、予め必要となるデータラインを作っておき、データの流れるデータラインを演算部ＰＥ０が判断して変えることができる。
【０１４６】
本実施例においては、分散処理システムにおいて、演算部ＰＥに対してデータラインＤＴＬＮに処理対象データが流されている間もデータ処理を妨げることなく、制御部ＣＵからデータラインＤＴＬＮと独立した制御ラインＣＴＬＮに制御情報、例えば処理内容変更条件を送信する。そして、処理内容変更条件が満たされた時、制御部ＣＵからの指示なしで、演算部ＰＥが処理内容、例えば出力先およびパラメータを決定、変更できる。
【０１４７】
従来技術では、予め演算部ＰＥの処理回路が決定されている。処理回路の決定が制御部ＣＵから与えられる。このような、従来技術に比較して、本実施例は、処理内容変更条件をあらかじめ設定しておく。これにより、演算部ＰＥが自律的に、演算部ＰＥ自身の判断で、処理内容を変更することができる。このため、本実施例では、より柔軟にシステムの変更ができる。したがって、データの処理中に条件を変更できない、という問題を解消できる。また、割り込みによる処理のブロックが発生することもない。さらに、制御部ＣＵを介してデータラインを変更するといった無駄も発生しない。この結果、効率もよくすることができる。
【０１４８】
（実施例２）
次に、本発明の実施例２に係る分散処理システムについて説明する。
図２３は、実施例２にかかる分散処理システムの概略構成を示す図である。本分散処理システムは、画像処理を行うためのシステムである。
制御部ＣＵに対して、１０個の演算部ＰＥ０〜ＰＥ９が、リング状に接続されている。
【０１４９】
表１２に、各演算部ＰＥ０〜ＰＥ９の仕様を掲げる。演算部ＰＥ０は、カメラの機能を有する。演算部ＰＥ１は、ＲＧＢ→ＹＣｂＣｒ変換の機能を有する。演算部ＰＥ２は、ダウンサンプリングを行う。演算部ＰＥ３は、ＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、離散コサイン変換）と量子化とを行う。演算部ＰＥ４は、ハフマン符号化を行う。演算部ＰＥ５は、ＪＰＥＧ画像生成を行う。演算部ＰＥ６は、物体位置描画を行う。演算部ＰＥ７、ＰＥ８、ＰＥ９は、それぞれ物体検出を行う。
【０１５０】
【表１２】
2011203935.tif 000006
【０１５１】
図２４は、本実施例において、カメラ画像から３並列で物体検出を行うときのシステム構築例を示す図である。データラインＤＴＬＮは、図中、破線で示すように構築される。
【０１５２】
本実施例では、カメラ３０は画像の撮影を行う。３つの物体検出用の演算部ＰＥ７、ＰＥ８、ＰＥ９は、検出した物体の存在判定を撮影画像に重畳させて、ＪＰＥＧで圧縮する。モニタ２０、処理の結果を表示する。
【０１５３】
演算部ＰＥ０に接続されたカメラ３０で撮影した画像が演算部ＰＥ１から演算部ＰＥ５を通るにつれてＪＰＥＧ圧縮される。そして、演算部ＰＥ５に接続されたモニタ２０に表示される。
【０１５４】
また、カメラ画像は、ＪＰＥＧ圧縮の前に演算部ＰＥ７〜演算部ＰＥ９に対して、ブロードキャストされる。演算部ＰＥ７〜演算部ＰＥ９は、入力画像中に所定の物体が存在するか否かを検出する。検出する対象物が入力画面内に存在する場合、その座標を出力する。出力するものは、例えば中心位置（ｘ、ｙ）と半径、左上の（ｘ、ｙ）座標と、右下（ｘ、ｙ）座標などである。また、検出する対象物は、人の顔５２、車５１、その他の物５３など任意に設定できる。
【０１５５】
演算部ＰＥ６は、物体位置描画を行う。演算部ＰＥ６は、カメラ３０からの画像に演算部ＰＥ７、ＰＥ８、ＰＥ９から送られてくる検出された物体位置、本例では人の顔５２を線で描画（枠で囲うなど）して重ね合わせ、次の演算部ＰＥ１に送信する。
【０１５６】
演算部ＰＥ１〜ＰＥ５までは、ＪＰＥＧ圧縮処理の流れを機能単位で分割したものである。そして、演算部ＰＥ５において、ＪＰＥＧが生成され、モニタ２０に表示される。
【０１５７】
表１３に、３つに並列に構築されている物体検出のデータラインを構築するとき、制御部ＣＵから各演算部ＰＥに送信する制御コマンドを掲げる。なお、簡単のため、制御ラインは省略してある。
【０１５８】
【表１３】
2011203935.tif 000007
2011203935.tif 000008
【０１５９】
図２５は、番号１のコマンド実行後の構成を示している。制御部ＣＵは、番号１の受信ポート作成コマンドを演算部ＰＥ６に対して送る。これにより、演算部ＰＥ６に４つの受信ポートＲＰ０、ＲＰ１、ＲＰ２、ＲＰ３が作成される。
【０１６０】
図２６は、番号２、３、４のコマンド実行後の構成を示している。制御部ＣＵは、番号２、３、４の受信ポート作成コマンドを、それぞれ演算部ＰＥ７、ＰＥ８、ＰＥ９に対して送る。これにより、演算部ＰＥ７、ＰＥ８、ＰＥ９に、それぞれ受信ポートＲＰ０が作成される。
【０１６１】
図２７は、番号５、６、７、８のコマンド実行後の構成を示している。制御部ＣＵは、番号５、６、７、８の送信ポート作成コマンドを、それぞれ演算部ＰＥ０、ＰＥ７、ＰＥ８、ＰＥ９に送る。これにより、各演算部ＰＥ０、ＰＥ７、ＰＥ８、ＰＥ９において、送信ポートＴＰ０が作成される。
【０１６２】
図２８は、 番号９−１８のコマンド実行後の構成を示している。制御部ＣＵは、番号９−１３の受信ポート作成コマンドを、それぞれ演算部ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６に送る。これにより、各演算部ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６において、受信ポートＲＰ０が作成される。
【０１６３】
また、制御部ＣＵは、番号１４−１８の送信ポート作成コマンドを、それぞれ演算部ＰＥ６、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４に送る。これにより、各演算部ＰＥ６、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５において、送信ポートＴＰ０が作成される。
【０１６４】
図２９は、番号１９−２６のコマンド実行後の構成を示している。制御部ＣＵは、番号１９−２６の送受信ポート関連付けコマンドを、それぞれ演算部ＰＥ７、ＰＥ８、ＰＥ９、ＰＥ６、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４に送る。これにより、各演算部ＰＥ７、ＰＥ８、ＰＥ９、ＰＥ６、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４において、受信ポートＲＰ０と送信ポートＴＰ０とが関連付けられる。
【０１６５】
本分散処理システムにおいて、点線で示すデータラインを介して、カメラ３０からデータを流すと物体検出結果が重畳された画像が演算部ＰＥ５のモニタ２０に出力される。
【０１６６】
次に、データラインを動的変更する例について説明する。
実施例１では、演算部ＰＥが処理結果に基づき送信先を判断していた。これに対して、以下の例では、制御部ＣＵからデータラインの切り替えを指定する構成となっている。
【０１６７】
上述した手順により構築されたデータラインにおいて、物体検出を行う演算部ＰＥ９の出力、例えば、検出した物体の座標の情報を、カメラ３０である演算部ＰＥ０へ送るデータラインをデータが流れている最中に作成し、データラインを切り替える例である。
表１４に、動的にデータラインを変更するときの制御部ＣＵから演算部ＰＥに送信するコマンドを掲げる。
【０１６８】
【表１４】
2011203935.tif 000009
【０１６９】
図３０は、番号２７−３０のコマンド実行後の構成を示している。制御部ＣＵは、番号２７の受信ポート作成コマンドを演算部ＰＥ０に対して送る。これにより、演算部ＰＥ０に受信ポートＲＰ０が作成される。
【０１７０】
制御部ＣＵは、番号２８の送信ポート作成コマンドを演算部ＰＥ９に対して送る。これにより、演算部ＰＥ９に送信ポートＴＰ１が作成される。
制御部ＣＵは、番号２９の演算部設定コマンドを演算部ＰＥ０に対して送る。これにより、演算部ＰＥ０において、受信ポートＲＰ０は座標データであることが設定される。
【０１７１】
この結果、演算部ＰＥ９と演算部ＰＥ０が接続される。そして、演算部ＰＥ９への入力を処理した結果の出力は、カメラ機能を有する演算部ＰＥ０に送信される。なお、カメラ３０は、受信した座標情報の中心位置を画像の中心位置へ移動させるようにパン、チルトする機能を有している。
【０１７２】
カメラ３０は、データラインが構築される前は何も入力がない。このため、カメラ３０は、画像を送ることしかしない。データラインが動的に変更された後は、データラインにより、カメラ３０へ座標情報が入力される。この結果、カメラ３０は、入力された座標情報に基づいて、パン及び／またはチルトするようになる。
【０１７３】
演算部ＰＥ９において、データラインを切り替えるタイミングを、制御情報が到着した時点ではなく、指定したデータの到着後にしたい場合もある。この場合、データに通し番号を与えておき、特定の番号のデータ到着後にデータラインを切り替えるように構成することもできる。
【０１７４】
以上のように、データラインを動的に変更する構成により、データ処理中に新規のデータラインを作成したときでも、データの流れを妨げることなく処理を行うことができる。
【０１７５】
（実施例２の変形例１）
次に、使用する演算部ＰＥを動的に変更する例を説明する。
データ処理中に、演算部ＰＥのＩＤ２番のダウンサンプリング機能を、別のダウンサンプリング機能を有する演算部ＰＥに切り替える手順を説明する。
【０１７６】
演算部ＰＥのＩＤ＝１０番として新たにダウンサンプリング処理を行う演算部ＰＥ１０を用意する。
制御部ＣＵは、演算部情報取得コマンドを演算部ＰＥ１０に送る。これにより、制御部ＣＵは、演算部ＰＥ１０の基本性能を取得する。演算部ＰＥ１０の基本性能として、ダウンサンプリング実行能力［回／ｓｅｃ］、定格消費電力を考える。
【０１７７】
制御部ＣＵは、現在使用しているダウンサンプリングを行う演算部ＰＥと、新しい演算部ＰＥ１０とを比較する。そして、制御部ＣＵは、「より高い性能」、または「より低い消費電力」といった基準を参照する。
【０１７８】
制御部ＣＵは、ダウンサンプリング機能を有する新しい演算部ＰＥ１０の出現により、より高い効果を得られると判断するとき、新しいデータラインを作成する。これにより、データの流れを変えることができる。
表１５に、ダウンサンプリングを行う演算部ＰＥを切り替えるとき、制御部ＣＵから演算部ＰＥに送信するコマンドの内容を掲げる。ここで、「送信削除」は、送信ポート削除コマンド、「受信削除」は、受信ポート削除コマンドを意味する。
【０１７９】
【表１５】
2011203935.tif 000010
【０１８０】
図３１は、番号３１−３５のコマンド実行後の構成のうち、変更が生じた演算部ＰＥのみを示す図である。制御部ＣＵは、番号３１の受信ポート作成コマンドを演算部ＰＥ３に対して送る。これにより、演算部ＰＥ３に受信ポートＲＰ１が作成される。
【０１８１】
制御部ＣＵは、番号３２の送受信ポート関連付けコマンドを演算部ＰＥ３に対して送る。これにより、演算部ＰＥ３において受信ポートＲＰ１と送信ポートＴＰ０とが関連付けられる。
【０１８２】
制御部ＣＵは、番号３３の受信ポート作成コマンドを演算部ＰＥ１０に対して送る。これにより、演算部ＰＥ１０に受信ポートＲＰ０が作成される。
【０１８３】
制御部ＣＵは、番号３４の送信ポート作成コマンドを演算部ＰＥ１０に対して送る。これにより、演算部ＰＥ１０に送信ポートＴＰ０が作成される。
【０１８４】
制御部ＣＵは、番号３５の送受信ポート関連付けコマンドを演算部ＰＥ１０に対して送る。これにより、演算部ＰＥ１０において受信ポートＲＰ０と送信ポートＴＰ０とが関連付けられる。
【０１８５】
図３２は、番号３６−３７のコマンド実行後の構成のうち、変更が生じた演算部ＰＥのみを示す図である。
制御部ＣＵは、番号３６の送信ポート作成コマンドを演算部ＰＥ１に対して送る。これにより、演算部ＰＥ１に送信ポートＴＰ１作成される。
【０１８６】
制御部ＣＵは、番号３７の送受信ポート関連付けコマンドを演算部ＰＥ１に対して送る。これにより、演算部ＰＥ１において受信ポートＲＰ０と送信ポートＴＰ１とが関連付けられる。
【０１８７】
図３３は、番号３８−４１のコマンド実行後の構成のうち、変更が生じた演算部ＰＥのみを示す図である。
制御部ＣＵは、番号３８の受信ポート削除コマンドを演算部ＰＥ３に対して送る。これにより、演算部ＰＥ３の受信ポートＲＰ０が削除される。
制御部ＣＵは、番号３９の送信ポート削除コマンドを演算部ＰＥ２に対して送る。これにより、演算部ＰＥ２の送信ポートＴＰ０が削除される。
制御部ＣＵは、番号４０の受信ポート削除コマンドを演算部ＰＥ２に対して送る。これにより、演算部ＰＥ２の受信ポートＲＰ０が削除される。
制御部ＣＵは、番号４１の送信ポート削除コマンドを演算部ＰＥ１に対して送る。これにより、演算部ＰＥ１の送信ポートＴＰ０が削除される。
【０１８８】
このように、演算部ＰＥ1→演算部ＰＥ１０→演算部ＰＥ３のデータラインを構築する。そして、最後に、演算部ＰＥ１の送受信ポート関連付けを、受信ポート番号０→送信ポート番号０から受信ポート番号０→送信ポート番号１に切り替える。これにより、演算部ＰＥ1→演算部ＰＥ１０→演算部ＰＥ３のデータラインが確立する。
【０１８９】
その後、演算部ＰＥ2は、データが通らなくなったのでデータラインを削除する。演算部ＰＥ２は、別の処理が開始された場合、その処理に利用することができる。
【０１９０】
これは、最初に使用していたダウンサンプリング用の演算部ＰＥよりも、高速な演算部ＰＥが後から用意できた場合、または演算部ＰＥ２が不調なときなどに処理を停止せずに新しい演算部ＰＥに処理を切り替える場合などに有用である。
【０１９１】
また、演算部ＰＥ１から送信する２つのデータラインができた時点で、演算部ＰＥ１→演算部ＰＥ２→演算部ＰＥ３のデータラインを残したままで、制御部ＣＵから演算部ＰＥ１に演算部ＰＥ設定を行う。この場合、演算部ＰＥの判断により、演算部ＰＥ１の送信ポート番号０と送信ポート番号１との交互にデータを送るようにして処理を分散させることもできる。
【０１９２】
上述したように、ダウンサンプリング用の演算部ＰＥが、演算部ＰＥ１の次に２つつながった状態において、通常は、演算部ＰＥ１→演算部ＰＥ２→演算部ＰＥ３の順で処理しているとする。
【０１９３】
制御部ＣＵは、演算部情報取得コマンドを生存する。確認のため、制御部ＣＵは、演算部ＰＥ２と演算部ＰＥ１０に対して、演算部情報取得コマンドを送る。そして、制御部ＣＵに対して結果が返ってくれば、演算部ＰＥは正常に動作していると制御部が判断する。
【０１９４】
これに対して、演算部ＰＥ２からの応答がなくなれば。制御部ＣＵは演算部ＰＥ２が故障したと判断する。このため、制御部ＣＵは、演算部ＰＥ１に送受信関連付けコマンドを送る、これにより、演算部ＰＥ１は、演算部ＰＥ１の受信ポート番号０番の送信先を送信ポート番号１番へ切り替える。
【０１９５】
この結果、演算部ＰＥ１０を使うように構成を変更できる。こうしたことから、本変形例では、分散処理ステムのデータフローのうちの故障部分を見つけ、制御部ＣＵがフローを修正し、故障に対しても柔軟に対応できる。
【０１９６】
以上のように、データ処理中に新規のデータラインを作成しても、データの流れを妨げることなく処理を行うことができる。より最適な演算部ＰＥに処理を切り替えることもできる。
【０１９７】
次に、実施例２の変形例２について説明する。本変形例は、演算部ＰＥの動的並列化を行う例である。
【０１９８】
処理開始時にダウンサンプリング用の演算部ＰＥを１つで運用し、実行中にもう１つダウンサンプリング用の演算部ＰＥを追加し、２並列でダウンサンプリングを行う例を示す。例えば、一方のダウンサンプリング用の演算部で画像の画面の上半分の領域を処理する。さらに、他方のダウンサンプリング用の演算部で画像の画面の下半分の領域を処理する。これにより、２つの演算部で分散処理することで高速化される。
以下、新規に追加するダウンサンプリング用の演算部ＰＥのＩＤ＝１１とする。
表１６に、ダウンサンプリング用の演算部ＰＥを２並列に切り替えるときの制御部ＣＵから演算部ＰＥに送信するコマンドの内容を掲げる。
【０１９９】
【表１６】
2011203935.tif 000011
【０２００】
図３４は、番号４２−４９のコマンド実行後の構成のうち、変更が生じた演算部ＰＥのみを示す図である。
制御部ＣＵは、番号４２の受信ポート作成コマンドを演算部ＰＥ３に対して送る。これにより、演算部ＰＥ３に受信ポートＲＰ１が作成される。
【０２０１】
制御部ＣＵは、番号４３の送受信ポート関連付けコマンドを演算部ＰＥ３に対して送る。これにより、演算部ＰＥ３において受信ポートＲＰ１と送信ポートＴＰ０とが関連付けられる。
【０２０２】
制御部ＣＵは、番号４４の受信ポート作成コマンドを演算部ＰＥ１１に対して送る。これにより、演算部ＰＥ１１に受信ポートＲＰ０が作成される。
【０２０３】
制御部ＣＵは、番号４５の送信ポート作成コマンドを演算部ＰＥ１１に対して送る。これにより、演算部ＰＥ１１に送信ポートＴＰ０が作成される。
【０２０４】
制御部ＣＵは、番号４６の送受信ポート関連付けコマンドを演算部ＰＥ１１に対して送る。これにより、演算部ＰＥ３において受信ポートＲＰ０と送信ポートＴＰ０とが関連付けられる。
【０２０５】
制御部ＣＵは、番号４７の演算部設定コマンドを演算部ＰＥ３に対して送る。これにより、演算部ＰＥ３において受信ポートＲＰ０（受信ポート番号０）と受信ポートＲＰ１（受信ポート番号１）が統合される。
【０２０６】
制御部ＣＵは、番号４８の演算部設定コマンドを演算部ＰＥ１１に対して送る。これにより、演算部ＰＥ１１においてダウンサンプリングを行う処理範囲が設定される。
【０２０７】
制御部ＣＵは、番号４９の演算部設定コマンドを演算部ＰＥ２に対して送る。これにより、演算部ＰＥ２においてダウンサンプリングを行う処理範囲が設定される。
【０２０８】
制御部ＣＵは、番号５０の送信ポート作成コマンドを演算部ＰＥ１に対して送る。これにより、演算部ＰＥ１において送信ポートＴＰ０が作成される。
【０２０９】
以上の手順により、２つ目のダウンサンプリング用のＩＤ＝１１の演算部ＰＥ１１からＤＣＴと量子化を行う演算部ＰＥ３の受信ポートＲＰ１（受信ポート番号１）までのデータラインを構築する。そして、ＩＤ＝１の演算部ＰＥ１からの送信を、演算部ＰＥ１１の受信ポートＲＰ０（受信ポート番号０）で受信できる構成にする。
【０２１０】
ここまでの設定において、演算部ＰＥ１から演算部ＰＥ１１にブロードキャストで送信すれば、ダウンサンプリングを並列化して実行できる。ここで、他の演算部ＰＥは今までの処理を変更する必要がある。このため、事前に設定が必要になる。
【０２１１】
そこで、制御部ＣＵは、演算部設定コマンドにより以下ことを行う。
・演算部ＰＥ３に対しては受信ポートＲＰ０（受信ポート番号０）と受信ポートＲＰ１（受信ポート番号１）の統合をする；
・演算部ＰＥ１１に対しては、受信データの画面の上半分の領域のダウンサンプリングを行わせる；
・演算部ＰＥ２に対しては、受信データの画面の下半分の領域のダウンサンプリングを行わせる。
【０２１２】
演算部ＰＥを動的並列化へ変更するタイミングとしては、データの画像にインクリメント（増加）する数値を付番する構成、各演算部ＰＥのデータ受信部にデータを受信するたびにインクリメントする数値が付されている構成にしておく。そして、制御部ＣＵは、インクリメントされる数値を参照して、数値が指定番号以降となったとき並列処理させるようにして各演算部ＰＥどうしの同期をおこなう。
【０２１３】
図３５は、番号５０のコマンド実行後の構成のうち、変更が生じた演算部ＰＥのみを示す図である。
ＩＤ＝１の演算部ＰＥ１において、既存の送信ポート番号０の送信ポートＴＰ０の送信先演算部を演算部ＰＥ２、ＰＥ１１へブロードキャストするように変更する。また、ブロードキャストではなく、画像の画面を上半分と下半分の領域に分割して、それぞれの領域の画像データを演算部ＰＥ２とＰＥ１１とにユニキャストで送るようにしてもよい。
【０２１４】
このように、本変形例では、データが流れている間でも処理のデータラインを変更することができる。最初は単一経路でデータを送り、後から新たに演算部ＰＥが入手できた場合、データの流れを止めずにデータラインを変更できる。これにより、システムを並列化し高速化できる。
【０２１５】
次に、実施例２の変形例３に係る分散処理システムについて説明する。
図３６は、実施例２の変形例３において、負荷の大きい処理を前処理と本処理に分けて迂回するデータラインを構築する例を説明する図である。
【０２１６】
図３６に示すデータラインにおいて、演算部ＰＥ０は、画像が入力され、人物の顔が存在するかを判定する演算部であるとする。演算部ＰＥ０において、画像内に人物が写っていると判定されると、演算部ＰＥ０は、演算部ＰＥ１へ画像データを送る。演算部ＰＥ１は、さらに詳細な解析、例えば顔の特徴量から個人を特定することを実行する。
【０２１７】
演算部ＰＥ１は、個人情報と共に画像データを演算部ＰＥ２へ送る。演算部ＰＥ０は、前処理として大まかな処理、例えば顔が映っているかいないかを判定する。そして、必要に応じて、時間のかかる本処理、例えば個人の特定は別の演算部ＰＥ１に処理させる。必要がなければ、次の演算部ＰＥ２に画像データを送る。
【０２１８】
このように、重い、すなわち負荷の大きい処理を前処理と本処理に分ける。そして、演算部ＰＥにより、前処理段階で本処理が必要ないと判断された場合、本処理を迂回して効率的に処理することができる。
【０２１９】
次に、本発明の実施例３にかかる分散処理システムについて説明する。本実施例は、
演算部ＰＥの動作を動的に変更する例である。
【０２２０】
本実施例の構成は、上記実施例２の分散処理システムの図２３で示す構成と同じであるので、重複する記載は省略する。本実施例では、物体認識の処理において、量子化を行う演算部ＰＥ３に制御情報を送り、動的に動作を切り替える例を示す。
【０２２１】
量子化は、ＩＤ＝３番の「ＤＣＴと量子化」用の演算部ＰＥ３で行われる。ＤＣＴと量子化用の演算部ＰＥ３の内部には、量子化テーブルが設けられている。量子化テーブルは、制御部ＣＵからの制御情報により、その内容が変更可能であると仮定する。
【０２２２】
演算部ＰＥ３へ送る制御情報ＣＴＩＮＦ内に量子化テーブルを格納しておく。この制御情報ＣＴＩＮＦを、ＤＣＴと量子化用の演算部ＰＥ３に送る。これにより、演算部ＰＥ３内の量子化テーブルが切り替わる。
【０２２３】
図３７は、実施例３において、制御部ＣＵからＤＣＴと量子化用の演算部ＰＥ３に制御情報ＣＴＩＮＦとして量子化テーブルを送ることを説明する図である。
データが絶え間なく演算部ＰＥ３に送られる場合でも、制御ラインＣＴＬＮは空いている。このため、効率的に特定の演算部ＰＥ３に制御情報ＣＴＩＮＦを届けることができる。
【０２２４】
これにより、ライブ映像などリアルタイム性が要求される場面においても、制御部ＣＵから迅速に量子化テーブルを切り替えることができる。この結果、例えば画質の調整が可能となる。
【０２２５】
制御部ＣＵから、ＤＣＴと量子化用の演算部ＰＥに送るパラメータとしては、量子化テーブル全体ではなく、量子化テーブルの各値に乗算する係数、または割り算する係数だけを送ってもよい。
【０２２６】
次に、制御部ＣＵから演算部ＰＥに演算パラメータ変更条件を送信し、演算部ＰＥはそれに基づいて演算パラメータを変更する例を説明する。
図３８（ａ）は、演算部ＰＥからの制御情報を基に、制御部ＣＵを介して演算部ＰＥの演算パラメータを変更する例を説明する図である。
図３８（ｂ）は、送信ビットレートと係数ｋとの関係を示す図である。
【０２２７】
図３８（ａ）において、制御部ＣＵは、図中（１）で示す流れで、ハフマン符号化用のＩＤ＝４である演算部ＰＥ４に対して演算部情報取得コマンドを送る。
（２）で示す流れで、演算部ＰＥ４は、ハフマン符号化の送信ビットレートを取得する。なお、送信ビットレートの代わりに、１回の出力バイト数でも良い。
【０２２８】
量子化テーブルの値を大きくすると、圧縮率が高まる。このため、ハフマン符号化の出力は少なくなる。量子化テーブルの値を小さくすると、ハフマン符号化の出力は多くなる。
【０２２９】
制御部ＣＵは、（３）で示すように、ハフマン符号化の送信ビットレートに基づいて、画質を決める量子化テーブルに乗算する係数を計算する。係数が大きいと量子化テーブルの値が大きくなる。そして、圧縮率が高まり、ハフマン符号化の出力は小さくなる。
【０２３０】
例えば、係数ｋを送信ビットレートｓの関数として、ｋ＝ｆ（ｓ）のように定義して計算する。
制御部ＣＵは、（４）で示す流れで、計算した係数を演算部設定コマンドとしてＤＣＴと量子化用の演算部ＰＥ３に送る。これにより、ＤＣＴと量子化用の演算部ＰＥ３は、次回の量子化処理において新しい量子化テーブル値を使用する。
【０２３１】
図３９は、上述の制御部ＣＵから演算部ＰＥに演算パラメータ変更条件を送信して、処理する時のフローチャートである。
ステップＳ１９０において、制御部ＣＵは、演算部ＰＥ４に対して、演算部情報取得コマンドを送信する。ステップＳ１９０は、図３８の手順（１）に対応する。
【０２３２】
ステップＳ１９１において、制御部ＣＵは、演算部ＰＥ４の演算部情報を受信する。ステップＳ１９１は、図３８の手順（２）に対応する。
ステップＳ１９２において、制御部ＣＵは、ハフマン符号化の送信ビットレートを取得する。ステップＳ１９２は、図３８の手順（３）に対応する。
【０２３３】
ステップＳ１９３において、制御部ＣＵは、上述のように量子化テーブルの係数ｋを決定する。ここで、制御部ＣＵは、量子化テーブルの係数ｋを生成および／または選択する構成でも良い。ステップＳ１９３は、図３８の手順（３）に対応する。
ステップＳ１９４において、制御部ＣＵは、計算した係数を演算部設定コマンドとしてＤＣＴと量子化用の演算部ＰＥ３に送信する。ステップＳ１９４は、図３８の手順（４）に対応する。
【０２３４】
ＤＣＴを終了後、量子化を実行前に、演算部ＰＥ３のデータ処理部は、量子化テーブルを決めるため処理内容変更部に量子化テーブル値を問い合わせる。処理内容変更部は、制御部ＣＵから設定された条件に基づき量子化テーブルを決定し、データ処理部に渡す。データ処理部は、この新しい量子化テーブルに基づいて量子化を実行する。
【０２３５】
図４０は、上述のＤＣＴと量子化用の演算部ＰＥ３のデータ処理の手順を示すフローチャートである。
ステップＳ２００において、演算部ＰＥ３は、データを受信する。
【０２３６】
ステップＳ２０１において、演算部ＰＥ３は、ＤＣＴを実行する。
ステップＳ２０２において、演算部ＰＥ３のデータ処理部は、量子化テーブルを決めるため処理内容変更部に量子化テーブル値を問い合わせる。
ステップＳ２０３において、処理内容変更部は、決定された量子化テーブルを、データ処理部に渡す。
【０２３７】
ステップＳ２０４において、演算部ＰＥ３のデータ処理部は、この新しい量子化テーブルを取得する。
ステップＳ２０５において、演算部ＰＥ３のデータ処理部は、新しい量子化テーブルに基づいて量子化を実行する。
【０２３８】
制御部ＣＵは、演算部ＰＥ３の量子化テーブルを変更した結果、影響を受けたハフマン符号化の出力を参照する。制御部ＣＵは、量子化テーブルの変更の影響を考慮して、さらに量子化テーブルを調整する。制御部ＣＵは、この調整作業を繰り返す。これにより、ＪＰＥＧ圧縮した画像の品質を一定に保つことが可能になる。またはスループットを一定に保つことができる。
【０２３９】
ここで、制御部ＣＵが適切な量子化テーブルに乗算する係数を計算している。これに限られず、演算部ＰＥ３自身が係数を計算する構成でもよい。このためには、ＤＣＴと量子化用の演算部ＰＥ３が式ｋ＝ｆ（ｓ)の内容を保持している構成とすればよい。
【０２４０】
そして、制御部ＣＵが取得したハフマン符号化の送信ビットレートを、ＤＣＴと量子化用の演算部ＰＥ３に送る。これにより、演算部ＰＥ３自身が係数を計算できる。これにより、演算部ＰＥが処理条件により処理内容を変化させることができ、より柔軟なデータフローが実現できる。
【０２４１】
次に、制御部ＣＵを介さない処理内容変更の例を説明する。これは、ある演算部ＰＥから他の演算部ＰＥへのフィードバックする例である。
図４１は、演算部ＰＥ間で制御情報を送り、制御部ＣＵを介さないで演算パラメータを変更する構成を説明する図である。
【０２４２】
ハフマン符号化用の演算部ＰＥ４の出力と、ＤＣＴと量子化用の演算部ＰＥ３とが制御ラインＣＴＬＮで接続されているとする。
制御部ＣＵは、演算部設定コマンドにより、ハフマン符号化用の演算部ＰＥ４に対して、送信ビットレートを制御ラインＣＴＬＮを通して、演算部ＰＥ３へ送信するように設定する。
【０２４３】
制御部ＣＵは、演算部設定コマンドにより、ＤＣＴと量子化用の演算部ＰＥ３に対して、ハフマン符号化用の演算部ＰＥ４から送られてきた制御情報、例えば符号化後のバイト数を処理内容変更部に記録するように設定する。
【０２４４】
さらに、制御部ＣＵは、演算部設定コマンドにより、ＤＣＴと量子化用の演算部ＰＥ３に対して、処理コンテキストとして符号化後のバイト数を用いて量子化テーブルの係数を計算するように設定する。
【０２４５】
これにより、ハフマン符号化した結果の送信ビットレートを、制御ラインＣＴＬＮを通じて、ＤＣＴと量子化用の演算部ＰＥ３が受信できる。つまり、ＰＥ３はＣＵを介在させず、他のＰＥであるＰＥ４の処理コンテキストをモニタしている。したがって、演算部ＰＥ３は、量子化テーブルの係数を計算できる。この結果、制御部ＣＵの介在なしにＪＰＥＧの出力を調整することができる。ここで、ハフマン符号化の送信ビットレートは、制御ラインＣＴＬＮを通じてＤＣＴと量子化用の演算部ＰＥ３で受信される。このため、データ処理を妨げることがない。
【０２４６】
（プログラム）
また、上述した実施例に係る分散処理システムを実行させるプログラムは以下のように構成できる。即ち、制御部と複数の演算部とを有する分散処理方法をコンピュータに実行させるプログラムであって、
制御部と演算部との間で制御情報を送受信する制御情報送受信機能と、
制御部及び演算部のうち少なくとも一方から、それらに接続された演算部に処理対象データを送信する、制御情報送受信機能と独立した処理対象データ送信機能と、を有し、
演算部において、入力されたデータを処理して出力するデータ処理機能と、
制御情報送受信機能により、処理内容変更条件と処理内容変更情報を受信し、処理コンテキストをモニタする機能と、
処理コンテキストと処理内容変更条件とが合致したときに、処理内容変更情報を用いて、演算部の処理内容を変更する処理内容変更機能と、をコンピュータに実行させるプログラムとすることができる。
【０２４７】
さらに、以上説明した動作を実行するプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬媒体や、ハードディスク等の記憶装置等に、その全体あるいは一部が記録され、あるいは記憶されている。そのプログラムがコンピュータにより読み取られて、動作の全部あるいは一部が実行される。また、そのプログラムの全体または一部を通信ネットワークを介して流通または提供することができる。利用者（ユーザ）は、通信ネットワークを介してプログラムをダウンロードしてコンピュータにインストールすること、または記録媒体からコンピュータにインストールすることで、容易に本発明の分散処理システムを実現できる。
【産業上の利用可能性】
【０２４８】
以上のように、本発明は、状態に応じて柔軟な処理フローや実行内容を変更することができる分散処理システムに有用である。
【符号の説明】
【０２４９】
ＣＵ  制御部
ＰＥ０、ＰＥ１、ＰＥ２、ＰＥ３、ＰＥ４、ＰＥ５、ＰＥ６、ＰＥ７、ＰＥ８、ＰＥ９  演算部
ＤＴ  データ
ＤＴＬＮ  データライン
ＣＴＩＮＦ  制御情報
ＣＴＬＮ  制御ライン
ＲＰ  受信ポート
ＴＰ  送信ポート
１０  画像
２０  モニタ
３０  カメラ
５１、５２、５３  対象物
５４  処理された画像
【図１】
2011203935.tif 000012
【図２】
2011203935.tif 000013
【図３】
2011203935.tif 000014
【図４】
2011203935.tif 000015
【図５】
2011203935.tif 000016
【図６】
2011203935.tif 000017
【図７】
2011203935.tif 000018
【図８】
2011203935.tif 000019
【図９】
2011203935.tif 000020
【図１０】
2011203935.tif 000021
【図１１】
2011203935.tif 000022
【図１２】
2011203935.tif 000023
【図１３】
2011203935.tif 000024
【図１４】
2011203935.tif 000025
【図１５】
2011203935.tif 000026
【図１６】
2011203935.tif 000027
【図１７】
2011203935.tif 000028
【図１８】
2011203935.tif 000029
【図１９】
2011203935.tif 000030
【図２０】
2011203935.tif 000031
【図２１】
2011203935.tif 000032
【図２２】
2011203935.tif 000033
【図２３】
2011203935.tif 000034
【図２４】
2011203935.tif 000035
【図２５】
2011203935.tif 000036
【図２６】
2011203935.tif 000037
【図２７】
2011203935.tif 000038
【図２８】
2011203935.tif 000039
【図２９】
2011203935.tif 000040
【図３０】
2011203935.tif 000041
【図３１】
2011203935.tif 000042
【図３２】
2011203935.tif 000043
【図３３】
2011203935.tif 000044
【図３４】
2011203935.tif 000045
【図３５】
2011203935.tif 000046
【図３６】
2011203935.tif 000047
【図３７】
2011203935.tif 000048
【図３８】
2011203935.tif 000049
【図３９】
2011203935.tif 000050
【図４０】
2011203935.tif 000051
【図４１】
2011203935.tif 000052
【図４２】
2011203935.tif 000053