(57)【特許請求の範囲】
【請求項１】
データを一時的に格納するバッファと、
前記バッファから前記データを受け取って処理するプロセッサエレメントと、
前記プロセッサエレメント内部のバスの混雑度合いを判定する混雑判定部と、
前記混雑判定部の判定に基づき、前記バッファが蓄積しているデータ容量の増加を抑えるバッファ蓄積抑制部と、
を備え、
前記プロセッサエレメントは、
データを受け取るデータ入力部と、
データを出力するデータ出力部と、
データを処理するプロセッサコアと、
前記データ入力部、前記データ出力部、および前記プロセッサコアの間で通信するために共用される前記バスと、
を備え、
前記データ入力部は、
前記バッファから前記プロセッサエレメントに対するデータ送信が発生した時点で、前記バスが混雑しているため前記バッファから前記データを受け取ることができない場合は、そのデータを再送するよう要求する再送要求を前記バッファへ送信し、
前記混雑判定部は、
前記再送要求が所定時間内に連続して発生した回数が所定のリトライカウンタ上限値よりも上回ったか否かにより前記バスの混雑度合いを判定し、
前記バッファ蓄積抑制部は、
前記再送要求が所定時間内に連続して発生した回数が前記リトライカウンタ上限値よりも上回ったと前記混雑判定部が判定した場合は、前記バッファが蓄積しているデータ容量の増加を抑える
ことを特徴とするデータ処理装置。
【請求項２】
前記バッファ蓄積抑制部は、
前記再送要求が所定時間内に連続して発生した回数が前記リトライカウンタ上限値よりも上回ったと前記混雑判定部が判定した場合に、前記プロセッサエレメントが前記バッファから前記データを受け取ることができるように前記バスの優先度を設定する優先度設定指示を前記プロセッサエレメントへ送信し、
前記プロセッサコアは、
前記優先度設定指示を受け取ると、前記バスを専有している処理を一時中断して前記バスを解放することにより、前記プロセッサエレメントが前記バッファから前記データを受け取ることができるようにする
ことを特徴とする請求項１記載のデータ処理装置。
【請求項３】
前記データ処理装置は、
前記一時中断を継続する時間を設定する閾値設定部を備え、
前記閾値設定部は、
前記データのパケットペイロードサイズ、前記バッファ内に蓄積することが許容されるデータサイズを指定する許容滞留サイズ、および前記データが前記データ処理装置に入力される際の最大データ入力速度に対する指定値を受け取り、
前記許容滞留サイズと前記最大データ入力速度に基づき前記一時中断を継続する時間を計算して設定する
ことを特徴とする請求項２記載のデータ処理装置。
【請求項４】
前記閾値設定部は、
前記データのパケットペイロードサイズ、前記バッファ内に蓄積することが許容されるデータサイズを指定する許容滞留サイズ、および前記データが前記データ処理装置に入力される際の最大データ入力速度に対する指定値を画面上で入力するためのユーザインターフェースを表示装置上で提示し、前記ユーザインターフェース上で入力された前記指定値を受け取る
ことを特徴とする請求項３記載のデータ処理装置。
【請求項５】
前記データ処理装置は、
複数の前記プロセッサエレメントと、
各前記プロセッサエレメントに対応して設けられた前記バッファと、
前記データを前記複数のプロセッサエレメントのいずれかに分配する経路スイッチ部と、
を備え、
前記混雑判定部は、前記バッファ毎に前記判定を実施し、
前記バッファ蓄積抑制部は、前記プロセッサエレメントが前記バッファから前記データを受け取ることができるように前記バスの優先度を設定する優先度設定指示を前記プロセッサエレメントへ送信することにより、前記バッファが蓄積しているデータ容量の増加を前記バッファ毎に抑制する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項６】
前記経路スイッチ部は、
前記データのパケットペイロードサイズ、および前記バッファ内に蓄積することが許容されるデータサイズを指定する許容滞留サイズを保持する記憶部を備える
ことを特徴とする請求項５記載のデータ処理装置。
【請求項７】
前記データ処理装置は、
複数の前記プロセッサエレメントからなる第１プロセッサ群と、
前記データを前記第１プロセッサ群内のいずれかの前記プロセッサエレメントに分配する第１経路スイッチ部と、
複数の前記プロセッサエレメントからなる第２プロセッサ群と、
前記データを前記第２プロセッサ群内のいずれかの前記プロセッサエレメントに分配する第２経路スイッチ部と、
を備え、
前記混雑判定部は、
前記第１および第２プロセッサ群内の前記プロセッサエレメント毎に前記判定を実施し、
前記バッファ蓄積抑制部は、
前記再送要求が所定時間内に連続して発生した回数が前記リトライカウンタ上限値よりも上回ったと前記混雑判定部が判定した場合に、前記データを前記第１経路スイッチ部と前記第２経路スイッチ部のいずれかに分配する
ことを特徴とする請求項１記載のデータ処理装置。
【請求項８】
前記混雑判定部は、
同じデータに対して発生する前記再送要求が所定時間内に連続して発生した回数と、前記バッファ内に滞留することを許容するデータ量をパケットペイロード量で除した前記リトライカウンタ上限値とを比較し、前記再送要求が所定時間内に連続して発生した回数が前記リトライカウンタ上限値よりも上回ったか否かを判定する
ことを特徴とする請求項１記載の半導体外観検査装置。
【請求項９】
請求項１記載のデータ処理装置と、
半導体の外観画像を画像データとして取得するイメージセンサと、
を備え、
前記データ処理装置は、前記画像データを処理する
ことを特徴とする半導体外観検査装置。
【請求項１０】
前記データ処理装置は、
複数の前記プロセッサエレメントと、
各前記プロセッサエレメントに対応して設けられた前記バッファと、
前記データを前記複数のプロセッサエレメントのいずれかに分配する経路スイッチ部と、
を備え、
前記混雑判定部は、前記バッファ毎に前記判定を実施し、
前記バッファ蓄積抑制部は、前記バッファが蓄積しているデータ容量の増加を前記バッファ毎に抑制し、
前記半導体外観検査装置は、
前記画像データをいずれの前記プロセッサエレメントに分配するかを前記経路スイッチ部へ指示する分配制御部を備える
ことを特徴とする請求項９記載の半導体外観検査装置。
【請求項１１】
前記分配制御部は、
前記画像データを一時的に蓄積する分配バッファを備え、
前記分配バッファが蓄積しているデータ量が、前記分配バッファ内に滞留することを許容するサイズである許容滞留サイズ以上に達しているか否かを判定し、
前記バッファ蓄積抑制部は、
前記再送要求が所定時間内に連続して発生した回数が前記リトライカウンタ上限値よりも上回ったと前記混雑判定部が判定した場合、または前記分配バッファが蓄積しているデータ量が前記許容滞留サイズ以上に達していると前記分配制御部が判定した場合は、前記バッファが蓄積しているデータ容量の増加を抑える
ことを特徴とする請求項１０記載の半導体外観検査装置。
【請求項１２】
データ処理装置が備えるバッファが蓄積しているデータ容量の増加を抑える方法であって、
前記データ処理装置は、
データを一時的に格納するバッファと、
前記バッファから前記データを受け取って処理するプロセッサエレメントと、
を備え、
前記プロセッサエレメントは、
データを受け取るデータ入力部と、
データを出力するデータ出力部と、
データを処理するプロセッサコアと、
前記データ入力部、前記データ出力部、および前記プロセッサコアの間で通信するために共用されるバスと、
を備え、
前記データ入力部は、
前記バッファから前記プロセッサエレメントに対するデータ送信が発生した時点で、前記バスが混雑しているため前記バッファから前記データを受け取ることができない場合は、そのデータを再送するよう要求する再送要求を前記バッファへ送信する機能を有し、
前記方法は、
前記バスが混雑しているか否かを判定する混雑判定ステップ、
前記混雑判定ステップにおける判定に基づき、前記バッファが蓄積しているデータ容量の増加を抑えるバッファ蓄積抑制ステップ、
を少なくとも有し、
前記混雑判定ステップでは、
前記再送要求が所定時間内に連続して発生した回数が所定のリトライカウンタ上限値よりも上回ったか否かにより前記バスの混雑度合いを判定し、
前記バッファ蓄積抑制ステップでは、
前記再送要求が所定時間内に連続して発生した回数が前記リトライカウンタ上限値よりも上回ったと前記混雑判定ステップで判定した場合は、前記バッファが蓄積しているデータ容量の増加を抑える
ことを特徴とするデータ容量増加抑制方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを処理する装置に関する。
【背景技術】
【０００２】
本技術分野の背景技術として、下記特許文献１がある。本文献には、課題として、リアルタイム性の要求される処理を所定時間以下で実施できると共に、リアルタイム性の要求される処理を行う場合の共通メモリへのデータアクセス量を必要以上に大きくすることなく、データ通信性能を確保することができるバス調停装置を得る、と記載され、解決手段として、リアルタイム性を要求される処理を実施する場合、ＣＰＵ１１の共通メモリ１５へのアクセスの際の優先順位を、リアルタイム性の要求されない処理を実施する際の処理と比較して高く設定するとともに、ＣＰＵ１１の優先度が高く設定されている場合は、共通メモリ１５へアクセスする際の最大バースト長を通常と比較して短くするよう、バス調停を実施する、と記載されている（要約参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００９−１８１２０３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上記特許文献１には、同文献記載のバス調停装置により、一定時間内のデータ伝送やリアルタイム性の要求される処理を所定時間以下で実施できると記載されている。このようなバス調停装置では、例えば、一時的なネットワーク混雑が発生した時には、ネットワークスループットの低下によりバッファがオーバフローする場合がある。しかし、同文献記載のバス調停装置は、かかるネットワーク混雑状態を検知する構成について開示されていない。
【０００５】
本発明は、上記のような課題に鑑みてなされたものであり、一時的なネットワーク混雑が発生した時、バッファオーバフローを防いで処理を継続することができるデータ処理装置を提供する。
【課題を解決するための手段】
【０００６】
本発明に係るデータ処理装置は、バッファからプロセッサエレメントに対する同じデータの再送要求が所定回数連続して発生したときは、バッファが溢れる可能性があると判定し、バッファに蓄積されるデータ容量の増加を抑える。
【発明の効果】
【０００７】
本発明に係るデータ処理装置によれば、一時的なネットワーク混雑が発生した時に、そのネットワーク混雑状態を検知し、バッファオーバフローを抑制することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係るデータ処理装置１００の構成図である。
【図２】ネットワーク混雑判定部１０４の詳細構成を説明する図である。
【図３】ネットワーク混雑判定部１０４の処理を説明するフローチャートである。
【図４】閾値設定部１０３の処理を説明するフローチャートである。
【図５】閾値設定ＧＵＩ１０２の画面イメージを示す図である。
【図６】バス優先度設定部１０５の処理を説明するフローチャートである。
【図７】プロセッサコア１２１の処理を説明するフローチャートである。
【図８】ステップＳ７０４で発生する割り込み処理の詳細を説明するフローチャートである。
【図９】従来のデータ処理装置９００の構成図である。
【図１０】データ処理装置９００上における処理データ１０１の流れを説明する図である。
【図１１】従来のデータ処理装置１１００の構成図である。
【図１２】従来のデータ処理装置１２００の構成図である。
【図１３】データ処理装置１００上における処理データ１０１の流れを説明する図である。
【図１４】実施形態２に係るデータ処理装置１４００の構成図である。
【図１５】閾値設定ＧＵＩ１４０２の画面イメージを示す図である。
【図１６】閾値設定部１４０３の処理を説明するフローチャートである。
【図１７】実施形態３に係るデータ処理装置１７００の構成図である。
【図１８】負荷分散設定部１７０５の処理を説明するフローチャートである。
【図１９】実施形態４に係る半導体外観検査装置１９００の構成図である。
【図２０】画像データ分配制御部１９０１が備える分配制御テーブル２０００の構成例を示す図である。
【図２１】画像データ分配制御部１９０１がディジタル画像情報１２を各ＰＥに分配する際のデータの流れを説明する図である。
【図２２】半導体外観検査装置１９００上の処理データ１０１の流れを説明する図である。
【図２３】実施形態５に係る半導体外検査装置２３００の構成図である。
【図２４】ネットワーク混雑判定部２３０４の詳細構成を説明する図である。
【図２５】ネットワーク混雑判定部２３０４の処理を説明するフローチャートである。
【発明を実施するための形態】
【０００９】
＜実施の形態１＞
図１は、本発明の実施形態１に係るデータ処理装置１００の構成図である。データ処理装置１００は、処理データ１０１を処理する装置であり、閾値設定ＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）１０２、閾値設定部１０３、ネットワーク混雑判定部１０４、バス優先度設定部１０５、経路スイッチ部１０６、ＰｒｏｓｅｓｓｏｒＥｌｅｍｅｎｔ（以下ＰＥと記す）１１２〜１１４、メモリ１１６〜１１８を備える。
【００１０】
ＰＥ１１２〜１１４、メモリ１１６〜１１８、後述するバッファ１０９〜１１１は、図面記載の便宜上３つのみ記載しているが、これら機能部の個数はこれに限られるものではない。以下の説明では、ｎ番目のＰＥをＰＥ１１４、ｎ番目のメモリをメモリ１１８、ｎ番目のバッファをバッファ１１１とする。
【００１１】
処理データ１０１は、データ装置１００に対して間断なく連続的に出力されるデータである。そのため、処理データ１０１は一定のスループットでデータ処理装置１００へ伝送する必要があり、データ処理装置１００は処理データ１０１を受信している途中でその受信処理を中断することはできない。処理データ１０１の例として、例えばセンサから常時出力されるセンサデータ、機械の移動にともなう出力データなどが挙げられる。
【００１２】
経路スイッチ部１０６は、処理データ１０１をＰＥ１１２、１１３、１１４のいずれかに分配するスイッチであり、経路スイッチ１０７、リトライカウンタ１０８、バッファ１０９、１１０、１１１を備える。
【００１３】
経路スイッチ１０７は、処理データ１０１のパケットヘッダに記載されている宛先ＩＤを抽出し、経路スイッチ１０７内のスイッチ表を検索して宛先ＩＤに紐付けられたバッファ１０９〜１１１の番号を特定する。経路スイッチ１０７は、バッファ１０９〜１１１のうち特定した番号に対応するものへ、処理データ１０１を伝送する。
【００１４】
バッファ１０９〜１１１は、受け取った処理データ１０１を、例えばＦＩＦＯ（Ｆｉｒｓｔ−Ｉｎ−Ｆｉｒｓｔ−Ｏｕｔ）方式でバッファリングする。バッファ１０９〜１１１は、ＰＥ１１２〜１１４のいずれかに１：１で接続されている。バッファ１０９〜１１１は、対応するＰＥ１１２〜１１４のネットワークインタフェース１２２に対し、バッファリングした処理データを伝送する。
【００１５】
リトライカウンタ１０８は、メモリ１０９〜１１１がＰＥ１１２〜１１４のネットワークインタフェース１２２から再送要求（リトライパケット：後述）を受信すると、その回数をカウントし、リトライカウンタ値１１９としてネットワーク混雑判定部１０４へ出力する。
【００１６】
メモリ１１６〜１１８は、ＰＥ１１２〜１１４がデータを格納し、またはデータを読み出す記憶装置であり、ＰＥ１１２〜１１４のいずれかに１：１で接続されている。
【００１７】
ＰＥ１１２〜１１４は、それぞれ共有バス１１５、プロセッサコア１２１、ネットワークインタフェース１２２、メモリインタフェース１２３を備える。共有バス１１５は、プロセッサコア１２１、ネットワークインタフェース１２２、メモリインタフェース１２３が共有するデータ転送バスである。ネットワークインタフェース１２２は、バッファ１０９〜１１１との間でデータを送受信する。メモリインタフェース１２３は、メモリ１１６〜１１８との間でデータを送受信する。プロセッサコア１２１は、ネットワークインタフェース１２２を介して処理データ１０１を受け取り、必要な処理を実施した上でメモリインタフェース１２３を介してメモリ１１６〜１１８へ格納する。ネットワークインタフェース１２２は、「データ入力部」に相当し、メモリインタフェース１２３は「データ出力部」に相当する。
【００１８】
以下では共有バス１１５の状態がＡｖａｉｌａｂｌｅ（利用可能）である時の処理とＵｎａｖａｉｌａｂｌｅ（利用不可能）である時に分けて、プロセッサエレメント１１２〜１１４が処理データ１０１を処理する流れを説明する。
【００１９】
（１）共有バス１１５がＡｖａｉｌａｂｌｅであるとき
（１．１）ネットワークインタフェース１２２は、処理データ１０１を受け取った後、共有バス１１５の状態を調べる。共有バス１１５を制御する権利（制御権）は１つのみであるため、ネットワークインタフェース１２２、プロセッサコア１２１、メモリインタフェース１２３のうちいずれかが制御権を取得した場合は、その他の機能部は制御権を取得できない。共有バス１１５は、例えば、ネットワークインタフェース１２２がバスの制御権を取得した場合、プロセッサコア１２１からはＵｎａｖａｉｌａｂｌｅ状態と見える。共有バス１１５は、いずれの機能部もバスの制御権を取得していない時のみＡｖａｉｌａｂｌｅ状態となる。
【００２０】
（１．２）ネットワークインタフェース１２２は、共有バス１１５の状態がＡｖａｉｌａｂｌｅであるならば、共有バス１１５の制御権を取得する。
【００２１】
（１．３）ネットワークインタフェース１２２は、共有バス１１５の制御権を取得した後、共有バス１１５を介して処理データ１０１をメモリインタフェース１２３に伝送する。
【００２２】
（１．４）メモリインタフェース１２３は、処理データ１０１を受け取った後、メモリ１１６〜１１８に、受け取った処理データ１０１を書き込む。
【００２３】
（２）共有バス１１５がＵｎａｖａｉｌａｂｌｅであるとき
（２．１）ネットワークインタフェース１２２が処理データ１０１を受け取るまでの流れは同一であるため、省略する。
【００２４】
（２．２）ネットワークインタフェース１２２は、処理データ１０１を受け取った後、共有バス１１５の状態を調べる。共有バス１１５の状態は、プロセッサコア１２１が先に共有バス１１５の制御権を獲得している場合、Ｕｎａｖａｉｌａｂｌｅとなることがある。
【００２５】
（２．３）ネットワークインタフェース１２２は、共有バス１１５の状態がＵｎａｖａｉｌａｂｌｅである場合、共有バス１１５の制御権を取得できず、処理データ１０１をネットワークインタフェース１２２内のパケットバッファに保持する。ネットワークインタフェース１２２内のパケットバッファのサイズは、例えば８パケット格納可能とする。
【００２６】
（２．４）共有バス１１５の状態は、プロセッサコア１２１がＢＵＳＹ（高負荷）で共有バス１１５に対するアクセスを頻発させている場合、Ｕｎａｖａｉｌａｂｌｅ状態のままで継続することがある。共有バス１１５がＵｎａｖａｉｌａｂｌｅ状態を継続した場合、ネットワークインタフェース１２２内のパケットバッファがＦＵＬＬ（一杯）になる。
【００２７】
（２．５）ネットワークインタフェース１２２は、パケットバッファがＦＵＬＬ（一杯）になると、以後はバッファ１０９〜１１１から伝送された処理データ１０１を受け取れなくなる。ネットワークインタフェース１２２は、バッファ１０９〜１１１から伝送された処理データ１０１を受け取れない場合、パケットロス（パケット消失）を防ぐ目的で、受け取れなかったパケットの再送要求パケット（リトライパケット）をバッファ１０９〜１１１に対して伝送する。
【００２８】
（２．６）バッファ１０９〜１１１は、リトライパケットを受信した場合、通常時に処理データ１０１を格納しているバッファではなく、リトライ用のバッファから当該処理データ１０１を抽出し、ネットワークインタフェース１２２に対し再伝送する。この処理をリトライ処理と呼ぶ。バッファ１０９〜１１１は、リトライ処理を実施する場合、通常時に処理データ１０１を格納しているバッファからのデータ読み出しは停止する。
【００２９】
（２．７）ネットワークインタフェース１２２は、共有バス１１５がＵｎａｖａｉｌａｂｌｅ状態を継続した場合、再送要求パケット（リトライパケット）をバッファ１０９〜１１１に対して連続して伝送する。
【００３０】
（２．８）バッファ１０９〜１１１においてリトライ処理が連続する場合、処理データ１０１はそのバッファ内に蓄積される。処理データ１０１は、上述の通り一定のスループットでデータ処理装置１００へ伝送することが必要であり、データ処理装置１００への入力中に伝送を中断することができないからである。
【００３１】
（２．９）リトライカウンタ１０８は、バッファ１０９〜１１１がリトライパケットを受信した回数を、バッファ１０９〜１１１それぞれについてカウントする。
【００３２】
以上、共有バス１１５の状態がＡｖａｉｌａｂｌｅである時の処理とＵｎａｖａｉｌａｂｌｅである時に分けて、プロセッサエレメント１１２〜１１４が処理データ１０１を処理する流れを説明した。
【００３３】
ネットワーク混雑判定部１０４は、バッファ１０９〜１１１がリトライパケットを受信した回数（リトライカウンタ値１１９）を、リトライカウンタ１０８から読みだす。ネットワーク混雑判定部１０４は、リトライカウンタ値１１９の値にしたがって後述の処理を実施する。
【００３４】
バス優先度設定部１０５は、ネットワーク混雑判定部１０４の判定結果にしたがって、ネットワークインタフェース１２２が処理データ１０１を受信できるようにするためにＰＥ１１２〜１１４が備える共有バス１１５を優先的に使用するよう、ＰＥ１１２〜１１４へ指示する。これにより、後続する処理データ１０１によってバッファ１０９〜１１１が溢れる（バッファオーバフロー）ことを防ぐ。バス優先度設定部１０５は、本実施形態１における「バッファ蓄積抑制部」に相当する。
【００３５】
閾値設定部１０３は、ディスプレイなどの表示デバイス上で、閾値設定ＧＵＩ１０２を提供する。閾値設定部１０３は、閾値設定ＧＵＩ１０２上で入力された数値にしたがって後述する各閾値を設定する。閾値設定ＧＵＩ１０２の例については後述の図５で改めて説明する。
【００３６】
図２は、ネットワーク混雑判定部１０４の詳細構成を説明する図である。ネットワーク混雑判定部１０４は、ポーリングタイマ２０１、カウンタ読出し部２０２、判定部２０３を有する。ネットワーク混雑判定部１０４は、閾値設定部１０３から以下に説明するパラメータ２０４を受け取る。
【００３７】
ポーリングタイマ２０１は、閾値設定部１０３が計算したポーリング時間Ｐ毎にカウンタ読出し部２０２を起動する。ポーリング時間Ｐの計算については図４で説明する。
【００３８】
カウンタ読出し部２０２は、ポーリングタイマ２０１から起動指示を受け取ると、経路スイッチ部１０６のリトライカウンタ１０８より、バッファ１０９〜１１１がリトライパケットを受信した回数（リトライカウンタ値１１９）を読みだす。
【００３９】
判定部２０３は、閾値設定部１０３が計算したリトライカウンタ上限値Ｒとリトライカウンタ１０８から読みだしたリトライカウンタ値を比較する。判定部２０３は、リトライカウンタ上限値Ｒよりもリトライカウンタ１０８から読みだしたリトライカウンタ値が大きければ、ネットワーク混雑が発生していると判定し、バス優先度設定部１０５に対してバス優先度設定指示を出力する。バス優先度設定指示は、閾値設定部１０３が計算したＰＥバス優先度設定時間Ｓの間、共有バス１０５を処理データ１０１受信のために優先すべき旨の指示である。ＰＥバス優先度設定時間Ｓの計算とリトライカウンタ上限値Ｒの計算については図４で説明する。
【００４０】
図３は、ネットワーク混雑判定部１０４の処理を説明するフローチャートである。以下図３の各ステップについて説明する。
【００４１】
ステップＳ３００において、ネットワーク混雑判定部１０４は本フローチャートを開始する。本ステップは、例えばデータ処理装置１００が起動すると同時に開始される。
【００４２】
ステップＳ３０１において、ネットワーク混雑判定部１０４は、閾値設定部１０３が後述の図４で説明する手順にしたがって計算した各値に基づき、各初期値を計算する。ポーリングタイマは、ポーリング時間ＰをＰＥの個数で除算した値である。リトライカウンタは、リトライカウンタ１０８から読み出すリトライカウンタ値１１９を格納する変数である。リトライカウンタ＿ｄは、リトライカウンタ１０８から前回読み出したリトライカウンタ値１１９の値を格納する変数である。
【００４３】
ステップＳ３０２において、ネットワーク混雑判定部１０４は、ＰＥカウンタをゼロクリアする。ＰＥカウンタは、ＰＥ１１２〜１１４の番号を指定するためのインデックスである。
【００４４】
ステップＳ３０３において、ネットワーク混雑判定部１０４は、ポーリングタイマ時間分Ｐの間だけ待機する。
【００４５】
ステップＳ３０４において、ネットワーク混雑判定部１０４は、経路スイッチ部１０６のリトライカウンタ１０８から、現在のＰＥカウンタが指定するバッファがリトライパケットを受信した回数（リトライカウンタ値１１９）を読みだす。
【００４６】
ステップＳ３０５において、ネットワーク混雑判定部１０４は、閾値設定部１０３が計算したリトライカウンタ上限値Ｒと、ステップＳ３０４で読みだしたリトライカウンタ値から前回読み出したリトライカウンタ値を引いた値とを比較する。ステップＳ３０４で読み出したリトライカウンタ値から前回読み出したリトライカウンタ値を引くことにより、ポーリング間隔でのリトライカウンタ値の増分値がわかる。前者の方が小さい場合はステップＳＳ３０６へ進み、それ以外であればステップＳ３０７へスキップする。
【００４７】
ステップＳ３０６において、ネットワーク混雑判定部１０４は、ＰＥカウンタが指定するＰＥに対してバス優先度設定指示を出力する。バス優先度設定指示の詳細については後述する。
【００４８】
ステップＳ３０７において、ネットワーク混雑判定部１０４は、ステップＳ３０４で読み出したリトライカウンタ値を、リトライカウンタ＿ｄに保存する。ステップＳ３０８において、ネットワーク混雑判定部１０４は、ＰＥカウンタ値を１増加する。
【００４９】
ステップＳ３０９において、ネットワーク混雑判定部１０４は、経路スイッチ部１０６に接続されている総ＰＥ数（Ｐｍａｘ）と、ＰＥカウンタ値とを比較する。前者の方が小さい場合、経路スイッチ部１０６に接続されている全ＰＥについてリトライカウンタ値の読み出しが完了していないと判断し、ステップＳ３０３に戻る。それ以外の場合、経路スイッチ部１０６に接続されている全ＰＥについてリトライカウンタ値の読み出しが完了したと判断し、ステップＳ３０２に戻る。
【００５０】
図４は、閾値設定部１０３の処理を説明するフローチャートである。以下、図４の各ステップについて説明する。
【００５１】
ステップＳ４００において、閾値設定部１０３は本フローチャートを開始する。本ステップは、後述の図５で説明する閾値設定ＧＵＩ１０２上でＯＫボタンが押下され、閾値設定部１０３がその旨の信号を受信すると開始される。
【００５２】
ステップＳ４０１において、閾値設定部１０３は、ポーリング時間Ｐを計算する。ポーリング時間Ｐは、バッファ１０９〜１１１内に滞留することを許容するデータ量が蓄積される前にリトライカウンタ値１１９が読み出されるように設定する必要がある。本実施形態１では、バッファ１０９〜１１１内に滞留することを許容するデータ量［Ｂｙｔｅｓ］／実効容量［Ｂｙｔｅｓ／ｓｅｃ］で計算する。これら値は閾値設定ＧＵＩ１０２上で指定される。
【００５３】
ステップＳ４０２において、閾値設定部１０３は、ＰＥバス優先度設定時間Ｓを計算する。ＰＥバス優先度設定時間Ｓは、バッファ１０９〜１１１内のデータ滞留が解消されるまで、ネットワークインタフェース１２２が共有バス１０５を優先的に使用することができる程度の時間に設定する必要がある。本実施形態１では、データがバッファ内で増加する速度と減少する速度が等しいと仮定し、バッファ１０９〜１１１内に滞留することを許容するデータ量［Ｂｙｔｅｓ］／実効容量［Ｂｙｔｅｓ／ｓｅｃ］で計算する。
【００５４】
ステップＳ４０３において、閾値設定部１０３は、リトライカウンタ上限値Ｒを計算する。リトライカウンタ上限値Ｒは、バッファ１０９〜１１１内に滞留することを許容するパケット数に合わせて設定する必要がある。本実施形態１では、バッファ１０９〜１１１内に滞留することを許容するデータ量［Ｂｙｔｅｓ］／パケットペイロード量［Ｂｙｔｅｓ］で計算する。パケットペイロード量は、閾値設定ＧＵＩ１０２上で指定される。
【００５５】
図５は、閾値設定ＧＵＩ１０２の画面イメージを示す図である。閾値設定ＧＵＩ１０２は、パケットペイロードサイズ指定部５０１、許容滞留サイズ指定部５０２、実効伝送容量指定部５０３を有する。
【００５６】
パケットペイロードサイズ指定部５０１は、データ処理装置１００に入力される処理データ１０１のパケットペイロードサイズを指定する。ここでいうパケットペイロードサイズとは、パケットのうちヘッダ部分を除いた正味のデータサイズである。
【００５７】
許容滞留サイズ指定部５０２は、データ処理装置１００のバッファ１０９〜１１１内に滞留することを許容するデータのサイズを指定する。
【００５８】
実効伝送容量指定部５０３は、データ処理装置１００に入力される処理データ１０１の実効容量を指定する。実効容量とは、処理データ１０１がデータ処理装置１００に対して出力される際の最大データ転送速度である。処理データ１０１が一定速度でデータ処理装置１００へ出力される場合は、実効容量としてその値を指定する。転送速度が可変である場合は、最大速度を実効容量として指定すればよい。
【００５９】
図６は、バス優先度設定部１０５の処理を説明するフローチャートである。以下、図６の各ステップについて説明する。
【００６０】
ステップＳ６００において、バス優先度設定部１０５は本フローチャートを開始する。本ステップは、ネットワーク混雑判定部１０４からバス優先度設定指示を受け取った時点で開始される。
【００６１】
ステップＳ６０１において、バス優先度設定部１０５は、閾値設定部１０３が計算した値に基づき、共有バス１０５をネットワークインタフェース１２２が優先的に使用できるようにする時間を設定する。
【００６２】
ステップＳ６０２において、バス優先度設定部１０５は、ネットワーク混雑判定部１０４が指定したＰＥに対して、バス優先度設定信号１２０を出力する。バス優先度設定信号１２０は、ＰＥ１１２〜１１４の割り込み処理入力に接続され、当該ＰＥの割り込み処理を有効にする。バス優先度設定部１０５は、バス優先度設定信号１２０を出力する際に、ＰＥバス優先度設定時間Ｓを併せて指定する。
【００６３】
ステップＳ６０３において、バス優先度設定部１０５は、ステップＳ６０１で設定したＰＥバス優先度設定タイマの間だけ待機する。
【００６４】
図７は、プロセッサコア１２１の処理を説明するフローチャートである。以下、図７の各ステップについて説明する。
【００６５】
ステップＳ７００において、プロセッサコア１２１は、処理データ１０１の処理を開始する。本ステップは、プロセッサコア１２１が処理データ１０１を受け取った後、所定のジョブスケジューリング等に準拠して開始される。
【００６６】
ステップＳ７０１において、プロセッサコア１２１は、処理データ１０１を処理するためのデータ処理プログラムを実行する。本ステップにおけるデータ処理プログラムとは、例えば処理データ１０１を加工する処理を実装したプログラムであり、データ処理装置１００が備える適当な記憶装置に格納されている。
【００６７】
ステップＳ７０２において、プロセッサコア１２１が、バス優先度設定信号１２０を受け取ったと仮定する。これにより、ステップＳ７０１以降実行しているデータ処理プログラムに対して割り込みが発生する。
【００６８】
ステップＳ７０３において、プロセッサコア１２１は、割り込み発生に応じて、共有バス１１５の制御権の解放、メモリ１１６へのアクセス停止、割り込み発生時点におけるプログラム状態の保存、を実施する。
【００６９】
ステップＳ７０４において、プロセッサコア１２１は、後述の図８で説明する割り込み処理を開始する。図８の処理が完了すると、プロセッサコア１２１は本フローチャートに再び復帰する（Ｓ７０５）。
【００７０】
ステップＳ７０６において、プロセッサコア１２１は、ステップＳ７０３で保存しておいた、割り込み発生時点におけるプログラム状態を復元して割り込み発生以前の状態へ復活する。
【００７１】
ステップＳ７０７において、プロセッサコア１２１は、データ処理プログラムの実行を再開する。データ処理プログラムの実行が完了すると、本フローチャートは終了する（Ｓ７０８）。
【００７２】
図８は、ステップＳ７０４で発生する割り込み処理の詳細を説明するフローチャートである。ステップＳ８００において本フローチャートが開始されると、プロセッサコア１２１は共有バス１１５の制御権を開放する（Ｓ８０１）。プロセッサコア１２１は、ＰＥバス優先度設定時間Ｓだけ待機する（Ｓ８０２）。プロセッサコア１２１は、ＰＥバス優先度設定時間Ｓが経過すると割り込み処理が完了したと判定し、本フローチャートを終了する（Ｓ８０３）。
【００７３】
＜実施の形態１：従来例との比較＞
以下では本実施形態１に係るデータ処理装置１００と比較するため、従来のデータ処理装置の構成と動作例を説明する。
【００７４】
図９は、従来のデータ処理装置９００の構成図である。データ処理装置９００は、図１のデータ処理装置１００が備えている機能部のうち、閾値設定ＧＵＩ１０２、閾値設定部１０３、ネットワーク混雑判定部１０４、バス優先度設定部１０５、リトライカウンタ１０８、リトライカウンタ値１１９、バス優先度設定信号１２０を備えていない。その他の構成のうち図１と同様の機能を有するものは、図１と同じ符号を付して説明を省略する。
【００７５】
図９において、共有バス１１５の状態がＡｖａｉｌａｂｌｅ状態である時の処理は、データ処理装置１００と同様である。共有バス１１５の状態がＵｎａｖａｉｌａｂｌｅ状態である時の処理の流れについて、以下に説明する。
【００７６】
ネットワークインタフェース１２２が処理データ１０１を受け取り、バッファ１０９〜１１１がリトライ処理を実施するまでの流れはデータ処理装置１００と同一である。バッファ１０９〜１１１においてリトライ処理が連続する場合、処理データ１０１を格納しているバッファがＦＵＬＬ（一杯）になり、やがてバッファオーバフローを起こし、データ処理装置１００として処理を継続することができなくなる（装置停止）。
【００７７】
図１０は、データ処理装置９００上における処理データ１０１の流れを説明する図である。以下、共有バス１１５がＡｖａｉｌａｂｌｅ状態のときとＵｎａｖａｉｌａｂｌｅ状態のときに分けて、図１０に示すデータフローについて説明する。
【００７８】
（１）共有バス１１５がＡｖａｉｌａｂｌｅであるとき
ネットワークインタフェース１２２が処理データを受け取るまでの流れはデータ処理装置１００と同一であるので省略する。
【００７９】
（図１０：１００１）処理データ１０１は、一定のスループットでデータ処理装置９００に対してパケット番号０、１、２、・・・の順番で入力される。
【００８０】
（図１０：１００２）処理データ１０１は、経路スイッチ１０７において宛先ＩＤ番号に対応するバッファ１０９〜１１１へ伝送される。バッファ１０９〜１１１は、受け取った処理データ１０１を一旦バッファリングする。
【００８１】
（図１０：１００３）バッファ１０９〜１１１は、ＰＥ１１２〜１１４のネットワークインタフェース１２２に対し、バッファリングした処理データ１０１を伝送する。
【００８２】
（図１０：１００４）符号１００４は、バッファ１０９〜１１１の使用量を模式的にグラフで示したものである。使用量は、バッファ１０９〜１１１の入力から出力を引いた値に一致し、ある時刻ｔにおいてバッファ１０９〜１１１内に滞留する処理データ１０１の量を表す。
【００８３】
（図１０：１００５）符号１００５は、バッファ１０９〜１１１の滞留上限値を模式的に表したものである。使用量１００４が上限値１００５を超えた場合、そのバッファはバッファオーバフロー状態となり、当該バッファ内の処理データ１０１は使用不可となる。
【００８４】
（図１０：１００６）符号１００６は、処理データ１０１をＰＥ１１２〜１１４に分配する様子を示したものである。
【００８５】
（図１０：１００７）処理データ１０１は、ＰＥ１１２〜１１４のネットワークインタフェース１２２に入力される。共有バス１１５の状態がＡｖａｉｌａｂｌｅである場合、メモリインタフェース１２３は、受け取った処理データ１０１をメモリ１１６〜１１８に書き込む。
【００８６】
（２）共有バス１１５がＵｎａｖａｉｌａｂｌｅであるとき
ネットワークインタフェース１２２が処理データを受け取るまでの流れはデータ処理装置１００と同一であるので省略する。
【００８７】
（図１０：１００８）処理データ１０１がＰＥ１１２〜１１４のネットワークインタフェース１２２に入力された時、プロセッサコア１２１が先に共有バス１１５の制御権を獲得していれば、共有バス１１５はＵｎａｖａｉｌａｂｌｅ状態となる。
【００８８】
（図１０：１００９）共有バス１１５がＵｎａｖａｉｌａｂｌｅ状態を継続し、ネットワークインタフェース１２２が、伝送された処理データ１０１を受け取れない場合、パケットロス（パケット消失）を防ぐ目的で、受け取れなかったパケットを再送するよう要求するパケット（リトライパケット）をバッファ１０９〜１１１に対して伝送する。バッファ１０９〜１１１は、通常の処理データ１０１を格納しているバッファからの読み出しを停止する。
【００８９】
（図１０：１０１０）バッファ１０９〜１１１においてリトライ処理が連続する場合、処理データ１０１が当該バッファ内に蓄積される。符号１０１０は、このときのバッファ使用量の変化を示す。
【００９０】
（図１０：１０１１）バッファ１０９〜１１１においてリトライ処理がさらに連続する場合、処理データ１０１を格納しているバッファがＦＵＬＬ（一杯）になり、バッファオーバフローを起こす。データ処理装置９００は、バッファオーバフローにより、処理継続不可（装置停止）となる。
【００９１】
図１１は、従来のデータ処理装置１１００の構成図である。データ処理装置１１００は、データ処理装置９００とは異なり、一時的なネットワーク混雑が発生した時にバッファオーバフローによる処理継続不可（装置停止）を回避する機能を備える。
【００９２】
データ処理装置１１００は、経路スイッチ部マスタ１１０１、第１データ処理装置９００、第２データ処理装置９００を備える。第１および第２データ処理装置９００の構成は図９と同様であるため、説明は省略する。
【００９３】
図１１は、データ処理装置９００を２つ備え、経路スイッチ部マスタ１１０１およびその内部の経路スイッチマスタ１１０２がいずれかのデータ処理装置９００へ処理データ１０１を分配する。これにより、ＰＥ１１２〜１１４のデータ処理時間は短縮され、メモリ１１６〜１１８に対するデータ伝送時間に余裕ができる。これにより、一時的なネットワーク混雑発生時のバッファオーバフローによる処理継続不可（装置停止）を回避する。
【００９４】
図１１は、バッファオーバフローを回避することができる反面、図９にくらべてデータ処理装置９００のコストが倍化されてしまうことに加え、筐体サイズも大型化してしまうという課題がある。
【００９５】
図１２は、従来のデータ処理装置１２００の構成図である。データ処理装置１２００は、一時的なネットワーク混雑発生時のバッファオーバフローによる処理継続不可（装置停止）を回避するため、図１１とは異なる構成を備える。
【００９６】
データ処理装置１２００は、データ処理装置９００に加えて、追加バッファコントローラ１２０１〜１２０３、追加バッファ１２０４〜１２０６を備える。その他の構成は図９と同様であるため、同一の符号を付して説明は省略する。
【００９７】
追加バッファ１２０４〜１２０６は、バッファ１０９〜１１１にデータがある程度以上蓄積されると、バッファ１０９〜１１１に代わってデータを蓄積する。追加バッファコントローラ１２０１〜１２０３は、追加バッファ１２０４〜１２０６の動作を制御する。
【００９８】
データ処理装置１２００は、図９のデータ処理装置９００にくらべ、ＰＥ１１２〜１１４の前に追加のバッファを備えるので、一時的なネットワーク混雑発生時の影響を追加のバッファによって吸収し、バッファオーバフローによる処理継続不可（装置停止）を回避することができる。しかし、追加バッファの分だけコストが増加してしまうことに加え、基板サイズ、筐体サイズも大型化してしまうという課題がある。
【００９９】
これに対し本実施形態１に係るデータ処理装置１００は、一時的なネットワーク混雑発生時に、バス優先度設定信号１２０を用いて共有バスに優先度を設定し、処理データ１０１をメモリ１１６〜１１８へ格納する処理を優先させることにより、バッファオーバフローを防ぐことができる。この動作は、図１１〜１２のような追加機能部を必要としないので、コストや基板／筐体サイズの増加を抑えることができる。
【０１００】
＜実施の形態１：本発明におけるデータの流れ＞
図１３は、データ処理装置１００上における処理データ１０１の流れを説明する図である。以下、共有バス１１５がＡｖａｉｌａｂｌｅ状態のときとＵｎａｖａｉｌａｂｌｅ状態のときに分けて、図１３に示すデータフローについて説明する。
【０１０１】
（１）共有バス１１５がＡｖａｉｌａｂｌｅであるとき
ネットワークインタフェース１２２が処理データを受け取るまでの流れは先に説明したので省略する。図１３の符号１３０１〜１３０５は、図１０の符号１００１〜１００５と同様である。
【０１０２】
（図１３：１３０６）符号１３０６は、バッファ１０９〜１１１の許容滞留サイズを模式的に表したものである。ネットワーク混雑判定部１０４は、バッファ１０９〜１１１の使用量が１３０６を超える可能性があると判定した場合、ネットワーク混雑状態とみなし、バス優先度設定部１０５を介してＰＥ１１２〜１１４に対してバス優先度を設定する。
【０１０３】
（図１３：１３０７）符号１３０７は、処理データ１０１をＰＥ１１２〜１１４に分配する様子を示したものである。
【０１０４】
（図１３：１３０８）処理データ１０１は、ＰＥ１１２〜１１４のネットワークインタフェース１２２に入力される。共有バス１１５の状態がＡｖａｉｌａｂｌｅである場合、メモリインタフェース１２３は、受け取った処理データ１０１をメモリ１１６〜１１８に書き込む。
【０１０５】
（２）共有バス１１５がＵｎａｖａｉｌａｂｌｅであるとき
ネットワークインタフェース１２２が処理データを受け取るまでの流れは先に説明したので省略する。図１３の符号１３０９〜１３１１は、図１０の符号１００８〜１０１０と同様である。符号１３１１については、メモリ１０９〜１１１内のデータ量増加を抑制する作用により、図１０に比較して増分が少なく抑えられている。
【０１０６】
（図１３：１３１２）ネットワーク混雑判定部１０４は、リトライカウンタ値１１９に基づき混雑判定を実施する。ネットワーク混雑判定部１０４は、バッファ１０９〜１１１内に滞留しているデータ量が許容滞留サイズに達したと判定したときは、ＰＥ１１２〜１１４のうち対応するＰＥにバス優先度設定信号１２０を出力する。
【０１０７】
（図１３：１３１３）ＰＥ１１２〜１１４は、受け取ったバス優先度設定信号１２０にしたがって、プロセッサコア１２１の処理をＰＥバス優先度設定時間Ｓの間だけ中断する。これによりプロセッサコア１２１がメモリ１１６〜１１８へアクセスするための共有バス１１５の制御権が解放され、処理データ１０１を優先的にメモリ１１６〜１１８へ格納することができる。
【０１０８】
＜実施の形態１：まとめ＞
以上のように、本実施形態１に係るデータ処理装置１００は、バッファ１０９〜１１１毎のリトライカウンタ値１１９に基づき、バッファオーバフローが発生する可能性を未然に検知し、バス優先度設定信号１２０をＰＥ１１２〜１１４へ出力する。プロセッサコア１２１は、データ処理を一時中断し、処理データ１０１を受信する処理を優先するように共有バス１１５の優先制御権を設定する。これにより、共有バス１１５が専有されることに起因するバッファオーバフローを回避することができる。
【０１０９】
また、本実施形態１に係るデータ処理装置１００は、図１１のデータ処理装置１１００のようにデータ処理装置を２重化したり、図１２のデータ処理装置１２００のようにバッファを増設したりすることなく、一時的なネットワーク混雑発生時のバッファオーバフローを回避することができる。これにより、データ処理装置の低コスト化、筐体の小型化、低消費電力化を図ることができる。
【０１１０】
＜実施の形態２＞
図１４は、本発明の実施形態２に係るデータ処理装置１４００の構成図である。データ処理装置１４００は、図１で説明したデータ処理装置１００の構成のうち、閾値設定ＧＵＩ１０２を閾値設定ＧＵＩ１４０２に置き換え、閾値設定部１０３を閾値設定部１４０３に置き換えたものである。その他の構成は図１と同様であるため、説明は省略する。
【０１１１】
図１５は、閾値設定ＧＵＩ１４０２の画面イメージを示す図である。閾値設定ＧＵＩ１４０２は、ネットワークバッファサイズ表示部１５０１、パケットペイロードサイズ表示部１５０２、実効伝送容量指定部１５０３を有する。
【０１１２】
ネットワークバッファサイズ表示部１５０１は、閾値設定部１４０３が後述の手順で検出した、バッファ１０９〜１１１のサイズを表示する。パケットペイロードサイズ表示部１５０２は、閾値設定部１４０３が後述の検出した、パケットペイロードサイズを表示する。実効伝送容量指定部１５０３は、データ処理装置１４００に入力する処理データ１０１の実効容量を指定する。
【０１１３】
図１６は、閾値設定部１４０３の処理を説明するフローチャートである。以下、図１６の各ステップについて説明する。
【０１１４】
ステップＳ１６００において、閾値設定部１４０３は本フローチャートを開始する。本ステップは、閾値設定ＧＵＩ１４０２が呼び出された時点で開始される。閾値設定ＧＵＩ１４０２は、閾値設定ＧＵＩ１４０２をディスプレイなどの表示デバイス上に表示する。
【０１１５】
ステップＳ１６０１において、閾値設定部１４０３は、ネットワークバッファサイズＢを読み出す。経路スイッチ部１０６は内部のレジスタにパラメータとしてバッファ１０９〜１１１のサイズを保持しているものがある。閾値設定部１４０３は、このレジスタから上記パラメータを読み出し、ネットワークバッファサイズＢとしてネットワークバッファサイズ表示部１５０１上で表示する。ネットワークバッファサイズＢは、図５におけるバッファ１０９〜１１１内に滞留することを許容するデータ量に相当する。
【０１１６】
ステップＳ１６０２において、閾値設定部１４０３は、パケットペイロードサイズＬを読み出す。経路スイッチ部１０６は内部のレジスタにパラメータとしてパケットペイロードサイズを保持しているものがある。閾値設定部１４０３は、このレジスタから上記パラメータを読み出し、パケットペイロードサイズＬとしてパケットペイロードサイズ表示部１５０２上で表示する。
【０１１７】
ステップＳ１６０３〜Ｓ１６０５は、バッファ１０９〜１１１内に滞留することを許容するデータ量に代えてネットワークバッファサイズＢを用いる点を除き、図４のステップＳ４０１〜Ｓ４０３と同様である。
【０１１８】
＜実施の形態２：まとめ＞
以上のように、本実施形態２に係るデータ処理装置１４００は、閾値設定ＧＵＩ１４０２上で実効容量を入力するのみで、実施形態１と同様の効果を発揮することができる。これによりユーザの作業負担を軽減することができる。
【０１１９】
＜実施の形態３＞
本発明の実施形態３では、一時的なネットワーク混雑が発生したとき、共有バス１１５の優先度を設定する処理に代えて、またはこれと併用して、他のＰＥに負荷分散することによってバッファオーバフローを回避する構成例を説明する。
【０１２０】
図１７は、本実施形態３に係るデータ処理装置１７００の構成図である。データ処理装置１７００は、実施形態１で説明したデータ処理装置１００の構成において、バス優先度設定部１０５に代えて負荷分散設定部１７０５を設け、さらに経路スイッチ部１７０６、バッファ１７０９〜１７１１、ＰＥ１７１２〜１７１４、メモリ１７１６〜メモリ１７１８を追加したものである。その他の構成はデータ処理装置１００と同様であるため、同一の符号を付して説明は省略する。
【０１２１】
経路スイッチ部１７０６、経路スイッチ１７０７、バッファ１７０９〜１７１１、ＰＥ１７１２〜１７１４、メモリ１７１６〜メモリ１７１８は、経路スイッチ部１０６、経路スイッチ１０７、バッファ１０９〜１１１、ＰＥ１１２〜１１４、メモリ１１６〜１１８と同様の機能を有する。便宜上、ＰＥ１１２〜１１４を第１プロセッサ群と呼び、ＰＥ１７１２〜１７１４を第２プロセッサ群と呼ぶ。
【０１２２】
負荷分散設定部１７０５は、ネットワーク混雑判定部１０４の判定結果に基づき、処理データ１０１を第１プロセッサ群と第２プロセッサ群のいずれかに分配する。負荷分散設定部１７０５は、第１プロセッサ群に対する分配を設定する際には負荷分散指示マスタ信号１７２４を出力し、第２プロセッサ群に対する分配を設定する際には負荷分散指示スレーブ信号１７２５を出力する。負荷分散設定部１７０５は、本実施形態３における「バッファ蓄積抑制部」に相当する。
【０１２３】
図１８は、負荷分散設定部１７０５の処理を説明するフローチャートである。以下、図１８の各ステップについて説明する。
【０１２４】
ステップＳ１８０１において、負荷分散設定部１７０５は、閾値設定部１０３が計算した値と、ネットワーク混雑判定部１０４が混雑していると判定したＰＥの番号を取得し、各変数に設定する。
【０１２５】
ステップＳ１８０２において、負荷分散設定部１７０５は、負荷分散指示スレーブ信号１７２５を出力し、経路スイッチ部１７０６に対し、混雑していると判定されたＰＥを宛先とするパケットを、第２プロセッサ群内のＰＥが接続されているポートに出力するように設定する。
【０１２６】
ステップＳ１８０３において、負荷分散設定部１７０５は、負荷分散指示マスタ信号１７２４を出力し、経路スイッチ部１０６に対し、混雑していると判定されたＰＥを宛先とするパケットを、経路スイッチ部１７０６が接続されているポートに出力するよう設定する。
【０１２７】
ステップＳ１８０４において、負荷分散設定部１７０５は、閾値設定部１０３が計算したＰＥバス優先度設定タイマ値の間だけ待機する。
【０１２８】
ステップＳ１８０５において、負荷分散設定部１７０５は、負荷分散指示マスタ信号１７２４を出力し、経路スイッチ部１０６に対し、混雑していると判定されたＰＥを宛先とするパケットを、そのＰＥが接続されているポートに出力するよう設定する。本ステップは、ステップＳ１８０３による設定を元に戻すためのものである。
【０１２９】
ステップＳ１８０６において、負荷分散設定部１７０５は、負荷分散指示スレーブ信号１７２５を出力し、経路スイッチ部１７０６に対し、混雑していると判定されたＰＥを宛先とするパケットを、スイッチ無し（ポート割り当てなし）にするよう設定する。本ステップは、ステップＳ１８０２による設定を元に戻すためのものである。
【０１３０】
＜実施の形態３：まとめ＞
以上のように、本実施形態３に係るデータ処理装置１７００は、実施形態１〜２と同様の手順によってバッファオーバフローが発生する可能性を検知し、第１プロセッサ群と第２プロセッサ群の間で負荷分散を実施してバッファオーバフローによる処理停止を回避することができる。
【０１３１】
本実施形態３において、負荷分散設定部１７０５とバス優先度設定部１０５を併用してもよい。この場合は、例えば原則として第１プロセッサ群を用いて実施形態１〜２と同様の処理を実施し、全ての第１プロセッサ群内の全てのＰＥが混雑しているときは、第２プロセッサ群へ負荷分散するようにすればよい。あるいは、ＰＥ内部のバッファメモリが一杯である状態のとき、さらに同メモリに対する書き込み要求があった場合、実施形態１〜２で説明した優先度設定では対応できないと判断して、負荷分散を実施するようにしてもよい。
【０１３２】
＜実施の形態４＞
図１９は、本発明の実施形態４に係る半導体外観検査装置１９００の構成図である。半導体外観検査装置１９００は、ＸＹステージ１、光源７、集約レンズ６、ウェハ２、対物レンズ４、イメージセンサ５、Ａ/Ｄ変換機１１、画像データ分配制御部１９０１、実施形態１〜４いずれかに係るデータ処理装置を備える。ここでは実施形態１に係るデータ処理装置１００を備える構成例を示した。
【０１３３】
光源７は、光（例えばＵＶ光、ＤＵＶ光）を出力する。集約レンズ６は、光源７から出力された光をスリット状に集光し、対物レンズ４を通して、ウェハ２上に照射する。ＸＹステージ１は、ウェハ２を所定方向に移動する。対物レンズ４は、ウェハ２上に形成された半導体回路パターンから反射された光を集光し、結像する。イメージセンサ５は、ＴＤＩセンサ等のセンサである。イメージセンサ５は、対物レンズ４が結像した回路パターンの像を撮像し、アナログ画像情報１０を出力する。Ａ／Ｄ変換機１１は、アナログ画像情報１０をディジタル画像情報１２に変換する。
【０１３４】
画像分配制御部１９０１は、ディジタル画像情報１２を処理単位画像に分割し、処理データ１０１としてデータ処理装置１００に出力する。画像分配制御部１９０１は、処理データ１０１をＰＥ１１２〜１１４のいずれに分配するかを指定することもできる。
【０１３５】
図２０は、画像データ分配制御部１９０１が備える分配制御テーブル２０００の構成例を示す図である。分配制御テーブル２０００は、分割範囲、分割サイズ、分配先ＰＥなどを定める。画像分配制御部１９０１は、ディジタル画像情報１２が入力されると、分配制御テーブル２０００の記述にしたがってディジタル画像情報１２を分割し、宛先ＰＥを示すＩＤ番号、画像サイズ、物理アドレスを意味するヘッダ情報などを付加し、データ処理装置１００に処理データ１０１として出力する。
【０１３６】
図２１は、画像データ分配制御部１９０１がディジタル画像情報１２を各ＰＥに分配する際のデータの流れを説明する図である。以下、図２１に示すデータの流れについて説明する。ここではデータ処理装置１００が５つのプロセッサエレメントＰＥ（０）〜ＰＥ（４）を備えるものと仮定する。
【０１３７】
画像データ分配制御部１９０１は、ディジタル画像情報１２のうち、最初のダイ２１００の画像２１１５をＰＥ（０）に分配し（２１１０）、２番目の画像２１１６をＰＥ（１）に分配し（２１１１）、以下同様にＰＥ（５）まで分配する（２１１４）。
【０１３８】
ウェハ２上のスキャンは、機械的に連続して実施されるため、画像２１１５についての処理が終了したか否かによらず、次のダイ２１０１の最初の画像２１２０が画像データ分配制御部１９０１に入力される。画像データ分配制御部１９０１は、同様に画像データを各ＰＥへ転送する。
【０１３９】
ＰＥ（０）〜ＰＥ（４）は、分配されたデータを画像処理する。例えばＰＥ（０）は、２番目のダイ２１０１の画像２１２０を分配された後（２１０７）、画像処理２１０８を実施する。
【０１４０】
以上のように、半導体外観検査装置１９００は、連続して入力されるディジタル画像情報１２を基本画像単位に切り出し、複数のＰＥに分配して画像処理を実施する。これにより、ウェハ２上に形成された半導体回路パターンの欠陥検査を実施する。
【０１４１】
図２２は、半導体外観検査装置１９００上の処理データ１０１の流れを説明する図である。以下、共有バス１１５がＡｖａｉｌａｂｌｅ状態のときとＵｎａｖａｉｌａｂｌｅ状態のときに分けて、図２２に示すデータフローについて説明する。
【０１４２】
（１）共有バス１１５がＡｖａｉｌａｂｌｅであるとき
ネットワークインタフェース１２２が処理データを受け取るまでの流れはデータ処理装置１００と同一であるので省略する。図２２の符号２２０１〜２２０５は、図１０の符号１００１〜１００５と同様である。符号２２０６〜２２０８は、図１３の符号１３０６〜１３０８と同様である。
【０１４３】
（２）共有バス１１５がＵｎａｖａｉｌａｂｌｅであるとき
ネットワークインタフェース１２２が処理データを受け取るまでの流れはデータ処理装置１００と同一であるので省略する。図２２の符号２２１０〜２２１１は、図１０の符号１００９〜１０１０と同様である。符号２２１２〜２２１３は、図１３の符号１３１２〜１３１３と同様である。
【０１４４】
（図２２：２２０９）処理データ１０１がＰＥ１１２〜１１４のネットワークインタフェース１２２に入力された時、プロセッサコア１２１が先に共有バス１１５の制御権を獲得していれば、共有バス１１５はＵｎａｖａｉｌａｂｌｅ状態となる。プロセッサコア１２１は、複数欠陥の発生などによって一時的な高負荷となる場合がある。このとき、画像処理にともない共有バス１１５を介してメモリ１１６〜１１８に対するアクセスを継続するため、共有バス１１５はＵｎａｖａｉｌａｂｌｅ状態を継続する。
【０１４５】
＜実施の形態４：まとめ＞
以上のように、本実施形態４に係る半導体外観検査装置１９００は、プロセッサコア１２１の負荷が一時的に高まるなどによってネットワーク混雑が発生した場合でも、バッファオーバフローを防いで欠陥検査を継続することができる。半導体外検査装置１９００の例としては、例えば、光学式半導体外観検査装置、ＳＥＭ式半導体外観検査装置、ＳＥＭ式測長装置などが挙げられる。
【０１４６】
＜実施の形態５＞
図２３は、本発明の実施形態５に係る半導体外検査装置２３００の構成図である。半導体外検査装置２３００は、実施形態４で説明した半導体外検査装置１９００に加えて、画像データ分配制御部１９０１の内部構成として、画像データ分配バッファメモリ２３０１、画像データ分配送信制御部２３０２を備える。また、ネットワーク混雑判定部１０４に代えてネットワーク混雑判定部２３０４を備える。その他の構成は半導体外観検査装置１９００と同様であるため、同一の符号を付して説明は省略する。
【０１４７】
本実施形態５において、閾値設定部１０３は、画像データ分配バッファメモリ２３０１内に滞留することが許容されるデータ量（許容滞留サイズ）を設定する。許容滞留サイズは、閾値設定ＧＵＩ１０２上でユーザが入力してもよいし、閾値設定部１０３が画像データ分配バッファメモリ２３０１の容量に応じて自動的に定めてもよい。
【０１４８】
画像データ分配バッファメモリ２３０１は、例えばＦＩＦＯ型のメモリである。ディジタル画像情報１２は、一定のスループットでデータ処理装置１００に出力する必要があり、データ処理装置１００への入力中に伝送を中断することができないため、ＰＥ１１２〜１１４のプロセッサコア１２１のＢＵＳＹ状態により一時的なネットワーク混雑が発生した場合、画像データ分配バッファメモリ２３０１はディジタル画像情報１２を一時的に蓄積する。画像データ分配バッファメモリ２３０１はこのとき、画像データ分配バッファメモリ２３０１の使用量を表す信号として、画像データ分配バッファ使用量信号２３０３を出力する。
【０１４９】
画像データ分配送信制御部２３０２は、ディジタル画像データ１２を画像データ分配バッファメモリ２３０１内に蓄積するか、それとも処理データ１０１としてデータ処理装置１００へ出力するかを制御する。
【０１５０】
ネットワーク混雑判定部２３０４は、画像データ分配バッファ使用量信号２３０３を受け取る。また、リトライカウンタ１０８より、バッファ１０９〜１１１がリトライパケットを受信した回数（リトライカウンタ値１１９）を読み出す。
【０１５１】
図２４は、ネットワーク混雑判定部２３０４の詳細構成を説明する図である。ネットワーク混雑判定部２３０４は、ネットワーク混雑判定部１０４の構成に加えて、判定部２４０３、判定ＯＲ部２４０４を備える。その他の構成はネットワーク混雑判定部１０４と同様であるため、同一の符号を付して説明は省略する。
【０１５２】
判定部２４０３は、閾値設定部１０３が設定した許容滞留サイズ（２４０５）と画像データ分配バッファ使用量信号２３０３を比較する。判定部２４０３は、許容滞留サイズよりも画像データ分配バッファ使用量信号２３０３が大きければ、ネットワーク混雑が発生していると判定し、バス優先度設定部１０５に対してバス優先度設定信号１２０を判定ＯＲ部２４０４へ出力する。
【０１５３】
判定ＯＲ部２４０４は、判定部２０３と判定部２４０３それぞれの判定結果の論理和を求め、その結果をバス優先度設定信号１２０として出力する。すなわち、バッファ１０９〜１１１いずれかのリトライカウンタが上限値に達するか、または画像データ分配バッファメモリ２３０１の使用量が許容滞留サイズに達した場合、バス優先度設定信号１２０が出力されることになる。
【０１５４】
図２５は、ネットワーク混雑判定部２３０４の処理を説明するフローチャートである。本フローチャートは、図３のフローチャートにステップＳ２５０１とＳ２５０２を追加したものである。その他のステップは図３と同様であるため、説明は省略する。
【０１５５】
ステップＳ２５０１において、ネットワーク混雑判定部２３０４は、画像データ分配バッファメモリ２３０１の許容滞留サイズと、画像データ分配バッファ使用量信号２３０３の値とを比較する。前者の方が小さければステップＳ２５０２へ進み、それ以外であればステップＳ３０２へスキップする。
【０１５６】
ステップＳ２５０２において、ネットワーク混雑判定部２３０４は、全てのＰＥに対してバス優先度設定信号１２０を出力する。これにより、プロセッサコア１２１はデータ処理を一時中断してネットワークインタフェース１２２が処理データ１０１を受信する処理が促進されるので、結果として画像データ分配バッファメモリ２３０１内に滞留しているデータがデータ処理装置１００へ向かって出力されるように促すことができる。
【０１５７】
＜実施の形態５：まとめ＞
以上のように、本実施形態５に係る半導体外観検査装置２３００は、画像データ分配制御部１９０１内のバッファについても混雑判定を実施する。これにより、画像データ分配制御部１９０１内のバッファオーバフローを回避することができる。
【０１５８】
本発明は上記した実施形態に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施形態は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることが可能であり、また、ある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【０１５９】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
【０１６０】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【０１６１】
１００：データ処理装置、１０１：処理データ、１０２：閾値設定ＧＵＩ、１０３：閾値設定部、１０４：ネットワーク混雑判定部、１０５：バス優先度設定部、１０６：経路スイッチ部、１０７：経路スイッチ、１０８：リトライカウンタ、１０９〜１１１：バッファ、１１２〜１１４：ＰＥ、１１５：共有バス、１１６〜１１８：メモリ、１１９：リトライカウンタ値、１２０：バス優先度設定信号、１２１：プロセッサコア、１２２：ネットワークインタフェース、１２３：メモリインタフェース、２０１：ポーリングタイマ、２０２：カウンタ読出し部、２０３：判定部、５０１：パケットペイロードサイズ指定部、５０２：許容滞留サイズ指定部、５０３：実効伝送容量指定部、９００：データ処理装置、１１００：データ処理装置、１１０１：経路スイッチ部マスタ、１１０２：経路スイッチマスタ、１２００：データ処理装置、１２０１〜１２０３：追加バッファコントローラ、１２０４〜１２０６：追加バッファ、１４００：データ処理装置、１４０２：閾値設定ＧＵＩ、１４０３：閾値設定部、１５０１：ネットワークバッファサイズ表示部、１５０２：パケットペイロードサイズ表示部、１５０３：実効伝送容量指定部、１７００：データ処理装置、１７０５：負荷分散設定部、１７０６：経路スイッチ部、１７０７：経路スイッチ、１７０９〜１７１１：バッファ、１７１２〜１７１４：ＰＥ、１７１６〜１７１８：メモリ、１７２４：負荷分散指示マスタ信号、１７２５：負荷分散指示スレーブ信号、１９００：半導体外観検査装置、１：ＸＹステージ、７：光源、６：集約レンズ、２：ウェハ、４：対物レンズ、５：イメージセンサ、１０：アナログ画像情報、１１：Ａ/Ｄ変換機、１２：ディジタル画像情報、１９０１：画像データ分配制御部、２０００：分配制御テーブル、２３００：半導体外検査装置、２３０３：画像データ分配バッファ使用量信号、２３０１：画像データ分配バッファメモリ、２３０２：画像データ分配送信制御部、２３０４：ネットワーク混雑判定部、２４０３：判定部、２４０４：判定ＯＲ部。
【図１】
0005722264.tif 000002
【図２】
0005722264.tif 000003
【図３】
0005722264.tif 000004
【図４】
0005722264.tif 000005
【図５】
0005722264.tif 000006
【図６】
0005722264.tif 000007
【図７】
0005722264.tif 000008
【図８】
0005722264.tif 000009
【図９】
0005722264.tif 000010
【図１０】
0005722264.tif 000011
【図１１】
0005722264.tif 000012
【図１２】
0005722264.tif 000013
【図１３】
0005722264.tif 000014
【図１４】
0005722264.tif 000015
【図１５】
0005722264.tif 000016
【図１６】
0005722264.tif 000017
【図１７】
0005722264.tif 000018
【図１８】
0005722264.tif 000019
【図１９】
0005722264.tif 000020
【図２０】
0005722264.tif 000021
【図２１】
0005722264.tif 000022
【図２２】
0005722264.tif 000023
【図２３】
0005722264.tif 000024
【図２４】
0005722264.tif 000025
【図２５】
0005722264.tif 000026