(57)【特許請求の範囲】
【請求項１】
ネットワーク装置のバッファ内で、検索先頭インデックスｌから検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、所定の検索閾値以下で最大のデータ蓄積量を２分探索を用いてフレーム単位に検索する検索処理方法において、
検索メモリで、フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録し、
前記検索メモリから読み出される前記検索積算値と、外部から通知される検索先頭インデックスに記録された前記検索積算値とから蓄積データ量を算出する蓄積データ量算出ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量と前記検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と前記検索閾値の大小比較結果を出力する大小比較ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量である検索インデックスｑの要素Ｄ(q) と前記検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理ステップと、
前記検索閾値を用いて検索範囲の絞り込みを行う初期化処理ステップと、前記大小比較ステップと前記差分情報抽出処理ステップの結果から検索範囲の絞り込みを行う検索処理ステップとを含む検索制御処理ステップとを有し、
前記初期化処理ステップは、前記検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、前記検索先頭インデックスｌから前記検索末尾インデックスｒまでのインデックスの内、前記ｌおよびｒと当該最大値とから上限インデックスと、前記ｌと当該最小値とから下限インデックスとを算出し、当該上限インデックスから当該下限インデックスまでを検索範囲に設定し、
前記検索処理ステップは、前記検索閾値と、前記差分情報抽出処理ステップで得られる前記除算値を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲を超えた場合には、前記除算値で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスｑに決定し、
前記差分情報抽出処理ステップにおける前記所定の値は、前記ｌ以上ｒ以下の任意のインデックスｉにおいて、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である
ことを特徴とする検索処理方法。
【請求項２】
ネットワーク装置のバッファ内で、検索先頭インデックスｌから検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、所定の検索閾値以下で最大のデータ蓄積量を２分探索を用いてフレーム単位に検索する検索処理方法において、
検索メモリで、フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録し、
前記検索メモリから読み出される前記検索積算値と、外部から通知される検索先頭インデックスに記録された前記検索積算値とから蓄積データ量を算出する蓄積データ量算出ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量と前記検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と前記検索閾値の大小比較結果を出力する大小比較ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量である検索インデックスｑの要素Ｄ(q) と前記検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理ステップと、
前記検索閾値を用いて検索範囲の絞り込みを行う初期化処理ステップと、前記大小比較ステップと前記差分情報抽出処理ステップの結果から検索範囲の絞り込みを行う検索処理ステップとを含む検索制御処理ステップとを有し、
前記初期化処理ステップは、前記検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、前記検索先頭インデックスｌから前記検索末尾インデックスｒまでのインデックスの内、前記ｌおよびｒと当該最大値とから上限インデックスと、前記ｌと当該最小値とから下限インデックスとを算出し、当該上限インデックスから当該下限インデックスまでを検索範囲に設定し、
前記検索処理ステップは、前記検索閾値と、前記差分情報抽出処理ステップで得られる前記除算値を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲を超えた場合には、前記除算値で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスｑに決定し、
前記差分情報抽出処理ステップにおける前記絶対値を予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である前記所定の値で除算した除算値を半分にした値を下回らない最小の整数値が１でない場合には、当該整数値と前記Ｄ(q) の値から２分探索によって絞り込まれた検索範囲に含まれる要素数とを比較していずれか小さい方の値を次に検索する検索インデックスｑとし、当該整数値が１であった場合には、前記除算値を下回らない最小の整数値と前記Ｄ(q) の値から２分探索によって絞り込まれた検索範囲に含まれる要素数とを比較していずれか小さい方の値を次に検索する検索インデックスｑとする
ことを特徴とする検索処理方法。
【請求項３】
ネットワーク装置のバッファ内で、検索先頭インデックスｌから検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、所定の検索閾値以下で最大のデータ蓄積量を２分探索を用いてフレーム単位に検索する検索処理方法において、
検索メモリで、フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録し、
前記検索メモリから読み出される前記検索積算値と、外部から通知される検索先頭インデックスに記録された前記検索積算値とから蓄積データ量を算出する蓄積データ量算出ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量と前記検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と前記検索閾値の大小比較結果を出力する大小比較ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量である検索インデックスｑの要素Ｄ(q) と前記検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理ステップと、
前記検索閾値を用いて検索範囲の絞り込みを行う初期化処理ステップと、前記大小比較ステップと前記差分情報抽出処理ステップの結果から検索範囲の絞り込みを行う検索処理ステップとを含む検索制御処理ステップとを有し、
前記初期化処理ステップは、前記検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、前記検索先頭インデックスｌから前記検索末尾インデックスｒまでのインデックスの内、前記ｌおよびｒと当該最大値とから上限インデックスと、前記ｌと当該最小値とから下限インデックスとを算出し、当該上限インデックスから当該下限インデックスまでを検索範囲に設定し、
前記検索処理ステップは、前記検索閾値と、前記差分情報抽出処理ステップで得られる前記除算値を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲を超えた場合には、前記除算値で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスｑに決定し、
前記差分情報抽出処理ステップから出力される前記除算値はΔ１とΔ２の２種類であり、前記ｌ以上ｒ以下の任意のインデックスｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である前記所定の値で前記絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合にはΔ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とし、
前記検索処理ステップは、Δ２を下回らない最大の整数値が１でなければ、当該整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定する
ことを特徴とする検索処理方法。
【請求項４】
ネットワーク装置のバッファ内で、検索先頭インデックスｌから検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、所定の検索閾値以下で最大のデータ蓄積量を２分探索を用いてフレーム単位に検索する検索処理方法において、
検索メモリで、フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録し、
前記検索メモリから読み出される前記検索積算値と、外部から通知される検索先頭インデックスに記録された前記検索積算値とから蓄積データ量を算出する蓄積データ量算出ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量と前記検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と前記検索閾値の大小比較結果を出力する大小比較ステップと、
前記蓄積データ量算出ステップで算出された前記蓄積データ量である検索インデックスｑの要素Ｄ(q) と前記検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理ステップと、
前記検索閾値を用いて検索範囲の絞り込みを行う初期化処理ステップと、前記大小比較ステップと前記差分情報抽出処理ステップの結果から検索範囲の絞り込みを行う検索処理ステップとを含む検索制御処理ステップとを有し、
前記初期化処理ステップは、前記検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、前記検索先頭インデックスｌから前記検索末尾インデックスｒまでのインデックスの内、前記ｌおよびｒと当該最大値とから上限インデックスと、前記ｌと当該最小値とから下限インデックスとを算出し、当該上限インデックスから当該下限インデックスまでを検索範囲に設定し、
前記検索処理ステップは、前記検索閾値と、前記差分情報抽出処理ステップで得られる前記除算値を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲を超えた場合には、前記除算値で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスｑに決定し、
前記差分情報抽出処理ステップから出力される前記除算値はΔ１とΔ２とΔ３の３種類であり、前記ｌ以上ｒ以下の任意の整数ｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である前記所定の値で前記絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合には、Δ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とし、Δ３は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最大値である前記所定の値で前記絶対値を除算した値とし、
前記検索処理ステップは、Δ３を上回らない最大の整数値が前記検索範囲に含まれる要素数を半分にした値以上の場合には、当該整数値と前記検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が当該半分にした値未満の場合には、Δ２を下回らない最小の整数値が１でなければ、当該整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定する
ことを特徴とする検索処理方法。
【請求項５】
ネットワーク装置のバッファの蓄積データ量の内、所定の検索閾値以下で最大の蓄積データ量を２分探索を用いてフレーム単位に検索する検索処理装置において、
フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録する検索メモリと、
前記検索メモリから読み出される前記検索積算値と、外部から通知される検索先頭インデックスに記録された前記検索積算値とから蓄積データ量を算出する蓄積データ量算出手段と、
前記蓄積データ量算出手段で算出された前記蓄積データ量と前記検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と前記検索閾値の大小比較結果を出力する大小比較手段と、
前記蓄積データ量算出手段で算出された前記蓄積データ量と前記検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理手段と、
前記検索閾値を用いて検索範囲の絞り込みを行う初期化処理手段と、前記大小比較手段と前記差分情報抽出処理手段の結果から検索範囲の絞り込みを行う検索処理手段とを含む検索制御処理手段とを備え、
前記初期化処理手段は、前記検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、前記検索先頭インデックスから検索末尾インデックスまでのインデックスの内、前記検索先頭インデックスおよび検索末尾インデックスと当該最大値とから得られる上限インデックスから、前記検索先頭インデックスと当該最小値とから得られる下限インデックスまでの範囲に収まるインデックスのみを検索範囲とする構成であり、
前記検索処理手段は、検索範囲に含まれる要素数を半分にした値と前記差分情報抽出処理手段から通知される前記除算値を下回らない最小の整数値とを比較し、いずれか小さい方の値から次の検索インデックスを決定する構成であり、
前記差分情報抽出処理手段から出力される前記除算値はΔ１とΔ２の２種類であり、前記検索先頭インデックスｌ以上前記検索末尾インデックスｒ以下の任意のインデックスｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である前記所定の値で前記絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合にはΔ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とする構成であり、
前記検索処理手段は、Δ２を下回らない最大の整数値が１でなければ、当該整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定する構成である
ことを特徴とする検索処理装置。
【請求項６】
ネットワーク装置のバッファの蓄積データ量の内、所定の検索閾値以下で最大の蓄積データ量を２分探索を用いてフレーム単位に検索する検索処理装置において、
フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録する検索メモリと、
前記検索メモリから読み出される前記検索積算値と、外部から通知される検索先頭インデックスに記録された前記検索積算値とから蓄積データ量を算出する蓄積データ量算出手段と、
前記蓄積データ量算出手段で算出された前記蓄積データ量と前記検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と前記検索閾値の大小比較結果を出力する大小比較手段と、
前記蓄積データ量算出手段で算出された前記蓄積データ量と前記検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理手段と、
前記検索閾値を用いて検索範囲の絞り込みを行う初期化処理手段と、前記大小比較手段と前記差分情報抽出処理手段の結果から検索範囲の絞り込みを行う検索処理手段とを含む検索制御処理手段とを備え、
前記初期化処理手段は、前記検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、前記検索先頭インデックスから検索末尾インデックスまでのインデックスの内、前記検索先頭インデックスおよび検索末尾インデックスと当該最大値とから得られる上限インデックスから、前記検索先頭インデックスと当該最小値とから得られる下限インデックスまでの範囲に収まるインデックスのみを検索範囲とする構成であり、
前記検索処理手段は、検索範囲に含まれる要素数を半分にした値と前記差分情報抽出処理手段から通知される前記除算値を下回らない最小の整数値とを比較し、いずれか小さい方の値から次の検索インデックスを決定する構成であり、
前記差分情報抽出処理手段から出力される前記除算値はΔ１とΔ２とΔ３の３種類であり、前記検索先頭インデックスｌ以上前記検索末尾インデックスｒ以下の任意のインデックスｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である前記所定の値で前記絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合にはΔ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とし、Δ３は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最大値である前記所定の値で前記絶対値を除算した値とする構成であり、
前記検索処理手段は、Δ３を上回らない最大の整数値が前記検索範囲に含まれる要素数を半分にした値以上の場合には、当該整数値と前記検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が当該半分にした値未満の場合には、Δ２を下回らない最小の整数値が１でなければ、当該整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と前記検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と前記検索インデックスとから次に検索する検索インデックスを決定する構成である
ことを特徴とする検索処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索先頭インデックスｌから検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、予め定められた閾値以下の最大の要素を検索する検索処理方法および検索処理装置に関する。
【０００２】
特に、ＰＯＮ(Passive Optical Network) システムにおける加入者側装置ＯＮＵ（Optacal Network Unit）のバッファに蓄積されたデータ量の内、予め定められた閾値以下で当該閾値に最も近い蓄積データ量をフレーム単位に検索する検索処理方法および検索処理装置に関する。
【背景技術】
【０００３】
検索先頭インデックスl から検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、予め定められた閾値（以後、検索閾値と呼ぶ）以下の最大の要素を検索する検索処理方法の１つとして２分探索がある（非特許文献１）。
【０００４】
２分探索は、検索範囲の中央に位置する検索インデックスｑを算出し、当該検索インデックスｑの要素Ｄ(q) と検索閾値とを比較し、検索閾値の方が小さい場合には、ｑ以下のインデックスのみを次の検索範囲とし、検索閾値の方が大きい場合には、ｑ以上のインデックスのみを次の検索範囲とする処理を繰り返すことで、検索範囲を半分ずつ絞り込んで検索閾値に最も近い値を特定する方法である。
【０００５】
図１０は、２分探索の処理手順例を示す。
以下の説明では、配列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) は昇順に整列済みであるとする。ここでは、検索末尾インデックスを上限インデックスＲ、検索先頭インデックスを下限インデックスＬとし、当該ＬからＲまでを検索範囲にする。まず、当該検索範囲（Ｒ−Ｌ）を半分にした値<(Ｒ−Ｌ)／２>（ <ｔ> はｔを下回らない最小の整数）を算出し、当該半分にした値とＬを加算した値を検索インデックスｑ（＝Ｌ＋<(Ｒ−Ｌ)／２>）、当該半分にした値を検索範囲に含まれる要素数ｎ（＝<(Ｒ−Ｌ)／２>として検索を実施する（ステップE1）。算出した検索インデックスｑは、ＬとＲの中間に位置するインデックスである。
【０００６】
次に、要素数ｎが０でない場合に（ステップE2：No）、検索インデックスｑにおける要素Ｄ(q) と検索閾値ｘとを比較し（ステップE3）、当該検索閾値ｘの方が大きければステップE4に進み、小さければステップE5に進む。また、一致していれば、当該検索インデックスｑにおける要素Ｄ(q) が検索閾値以下の最大の要素であるため、検索を終了する（ステップE6）。ステップE4およびE5では、次の検索インデックスｑは検索範囲の中間に位置する値にし、検索範囲に含まれる要素数ｎの値は半分に更新して、ステップE2に戻る。当該処理を繰り返し、最終的に検索範囲に含まれる要素数ｎが０になったら、ステップE7に進み、検索処理を終了する。２分探索を用いた検索では、前記検索閾値以下の最大の要素を特定するまでに要する大小比較回数（以後、検索回数と呼ぶ）は、上限インデックスから下限インデックスまでの検索範囲に含まれる要素数をＮとすると、大小比較結果が一致にならなければ、 <log2Ｎ> となる。
【０００７】
なお、ステップE4およびE5では、以下のように実行し、次の検索インデックスｑと検索範囲に含まれる要素数ｎを算出する。条件１，式１，式２は、ステップE4およびE5のそれぞれに対応する。
【０００８】
if (条件１） then 
式１      …「条件１」が真の時、「式１」を実行
else
式２      …いずれの条件も偽の時、「式２」を実行
end if
【０００９】
２分探索を用いた検索が有効な検索処理として、ＯＮＵにおける蓄積データ量の検索処理がある。ＰＯＮシステムにおいて、ＯＮＵは必要に応じて上りバッファに蓄積されているデータ量の内、検索閾値以下で最大の蓄積データ量をフレーム単位に検索してＯＬＴに通知する（非特許文献２）。
【００１０】
当該蓄積データ量を検索するために、ＯＮＵは検索処理装置に検索メモリを備える。ＯＮＵの上りバッファの蓄積データと検索メモリに記録する値との対応関係を図１１に示す。検索メモリには、ＯＮＵの上りバッファに蓄積したフレーム１つ送信するのに必要なデータ量を積算して得られる値（以後、検索積算値と呼ぶ）を、ＯＮＵがフレームを受信する毎にインデックスを１ずつ加算して記録する。記録した検索積算値を用いてＯＮＵは、図１０の２分探索に従って検索インデックスを決定し、検索メモリの当該インデックスに対応した検索積算値とＯＮＵから送信済みのフレームの検索積算値（検索先頭インデックスにおける検索積算値）を除いて得られる蓄積データ量と検索閾値との比較により、所望の蓄積データ量を特定する。なお、各インデックスが前記配列済みの要素のｌ、ｌ＋１、…、ｒに相当し、各インデックスに対応した検索積算値から送信済みの検索積算値を除いて得られる蓄積データ量がＤ(l) 、Ｄ(l+1) 、‥、Ｄ(r) に相当する。また、受信したフレーム１つ送信するのに必要なデータ量とは、例えば、受信フレームのフレーム長とフレーム間ギャップとの加算値である。また、検索メモリから記録した検索積算値を読み出す際には、検索メモリにて検索インデックスに対応するアドレスに変換し、当該アドレスに記録されている検索積算値を読み出す。
【００１１】
図１２は、２分探索を用いた従来の検索処理装置の構成例を示す。
図１２において、従来の検索処理装置は、検索メモリ１１、大小比較処理部１２、検索制御処理部１３、蓄積データ量算出処理部１４を備える。
【００１２】
蓄積データ量算出処理部１４は、検索メモリ１１から通知される検索インデックスに対応した検索積算値を、検索処理装置の外部から通知される送信済みのフレームの検索積算値、すなわち検索先頭インデックスに対応した検索積算値を用いて、送信済みでないフレームの検索積算値である蓄積データ量を得る処理である。算出した当該蓄積データ量は、大小比較処理部１２に通知する。
【００１３】
大小比較処理部１２は、蓄積データ量算出処理部１４から通知される蓄積データ量が、検索閾値と一致しているか否かを判定し、一致している場合には「一致」と検索制御処理部１３に通知し、一致していない場合には、当該蓄積データ量が検索閾値と比べて「大」か「小」かを判定し、その大小比較結果を検索制御処理部１３に通知する。
【００１４】
検索制御処理部１３は、大小比較処理部１２から通知される比較結果に応じて、次の検索インデックスを決定し、検索メモリ１１に読み出し要求を行う。検索インデックスの決定方法は、図１０の２分探索の検索処理と同一であり、検索閾値以下で最大の蓄積データ量が得られるまで検索を実施する。ただし、図１０中のステップE3は、大小比較処理部１２において蓄積データ量算出処理部１４から通知される蓄積データ量と検索閾値を比較する処理であり、その比較結果が検索制御処理部１３に通知される。検索制御処理部１３は、検索処理装置の外部から検索開始を通知されると検索を開始し、検索処理が終了すると、検索処理装置の外部に検索処理の終了を通知する。
【先行技術文献】
【非特許文献】
【００１５】
【非特許文献１】George T.Heineman 他著、黒川利明他訳、”アルゴリズムクイックリファレンス”、pp.122-127、オライリー・ジャパン、2010年
【非特許文献２】吉原修他、”高効率・低遅延を実現するＧＥ−ＰＯＮグラント／リクエスト方式”、2002年電子情報通信学会総合大会、B-8-44、(March,2002)
【発明の概要】
【発明が解決しようとする課題】
【００１６】
２分探索による検索処理の検索回数は、大小比較結果が一致にならなければ、<log2Ｎ>であるため、検索に要する時間が長い。検索に要する時間を短くするには、検索範囲に含まれる要素数Ｎを少なくすることが有効であるが、その方法および装置は開示されていない。
【００１７】
本発明は、２分探索を用いた検索処理において、検索範囲に含まれる要素数を少なくして検索回数を削減し、検索に要する時間を短くすることが可能な検索処理方法および検索処理装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
第１の発明は、ネットワーク装置のバッファ内で、検索先頭インデックスｌから検索末尾インデックスｒまでの各々のインデックスに対応した整列済みの要素Ｄ(l) 、Ｄ(l+1) 、…、Ｄ(r) （Ｄ：整列済みの配列、Ｄ(i) ：インデックスｉの要素）の内、所定の検索閾値以下で最大のデータ蓄積量を２分探索を用いてフレーム単位に検索する検索処理方法において、検索メモリで、フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録し、検索メモリから読み出される検索積算値と、外部から通知される検索先頭インデックスに記録された検索積算値とから蓄積データ量を算出する蓄積データ量算出ステップと、蓄積データ量算出ステップで算出された蓄積データ量と検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と検索閾値の大小比較結果を出力する大小比較ステップと、蓄積データ量算出ステップで算出された蓄積データ量である検索インデックスｑの要素Ｄ(q) と検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理ステップと、検索閾値を用いて検索範囲の絞り込みを行う初期化処理ステップと、大小比較ステップと差分情報抽出処理ステップの結果から検索範囲の絞り込みを行う検索処理ステップとを含む検索制御処理ステップとを有し、初期化処理ステップは、検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、検索先頭インデックスｌから検索末尾インデックスｒまでのインデックスの内、ｌおよびｒと当該最大値とから上限インデックスと、ｌと当該最小値とから下限インデックスとを算出し、当該上限インデックスから当該下限インデックスまでを検索範囲に設定し、検索処理ステップは、検索閾値と、差分情報抽出処理ステップで得られる除算値を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲を超えた場合には、除算値で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスｑに決定する。
【００１９】
差分情報抽出処理ステップにおける所定の値は、ｌ以上ｒ以下の任意のインデックスｉにおいて、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である。
【００２０】
また、本発明の検索処理方法において、差分情報抽出処理ステップにおける絶対値を予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である所定の値で除算した除算値を半分にした値を下回らない最小の整数値が１でない場合には、当該整数値とＤ(q) の値から２分探索によって絞り込まれた検索範囲に含まれる要素数とを比較していずれか小さい方の値を次に検索する検索インデックスｑとし、当該整数値が１であった場合には、除算値を下回らない最小の整数値とＤ(q) の値から２分探索によって絞り込まれた検索範囲に含まれる要素数とを比較していずれか小さい方の値を次に検索する検索インデックスｑとする。
【００２１】
また、差分情報抽出処理ステップから出力される除算値はΔ１とΔ２の２種類であり、ｌ以上ｒ以下の任意の整数ｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である所定の値で絶対値を除算した値であり、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合にはΔ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とし、検索処理ステップは、Δ２を下回らない最大の整数値が１でなければ、当該整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定する。
【００２２】
また、差分情報抽出処理ステップから出力される除算値はΔ１とΔ２とΔ３の３種類であり、ｌ以上ｒ以下の任意の整数ｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である所定の値で絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合には、Δ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とし、Δ３は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最大値である所定の値で絶対値を除算した値とし、検索処理ステップは、Δ３を上回らない最大の整数値が検索範囲に含まれる要素数を半分にした値以上の場合には、当該整数値と検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が当該半分にした値未満の場合には、Δ２を下回らない最小の整数値が１でなければ、当該整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定する。
【００２４】
第２の発明は、ネットワーク装置のバッファの蓄積データ量の内、所定の検索閾値以下で最大の蓄積データ量を２分探索を用いてフレーム単位に検索する検索処理装置において、フレーム受信毎に当該受信フレームを送信するのに必要なデータ量を積算して得られる検索積算値を受信順に記録する検索メモリと、検索メモリから読み出される検索積算値と、外部から通知される検索先頭インデックスに記録された検索積算値とから蓄積データ量を算出する蓄積データ量算出手段と、蓄積データ量算出手段で算出された蓄積データ量と検索閾値とが一致しているか否かを判別し、一致している場合には一致を出力し、一致していない場合には当該蓄積データ量と検索閾値の大小比較結果を出力する大小比較手段と、蓄積データ量算出手段で算出された蓄積データ量と検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる除算値を出力する差分情報抽出処理手段と、検索閾値を用いて検索範囲の絞り込みを行う初期化処理手段と、大小比較手段と差分情報抽出処理手段の結果から検索範囲の絞り込みを行う検索処理手段とを含む検索制御処理手段とを備え、初期化処理手段は、検索閾値以内で送信可能なフレーム数の最大値と最小値を算出し、検索先頭インデックスから検索末尾インデックスまでのインデックスの内、検索先頭インデックスおよび検索末尾インデックスと当該最大値とから得られる上限インデックスから、検索先頭インデックスと当該最小値とから得られる下限インデックスまでの範囲に収まるインデックスのみを検索範囲とする構成であり、検索処理手段は、検索範囲に含まれる要素数を半分にした値と差分情報抽出処理手段から通知される除算値を下回らない最小の整数値とを比較し、いずれか小さい方の値から次の検索インデックスを決定する構成である。
【００２５】
ここで、差分情報抽出処理手段から出力される除算値はΔ１とΔ２の２種類であり、検索先頭インデックスｌ以上検索末尾インデックスｒ以下の任意のインデックスｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である所定の値で絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合にはΔ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とする構成であり、検索処理手段は、Δ２を下回らない最大の整数値が１でなければ、当該整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定する構成である。
【００２６】
また、差分情報抽出処理手段から出力される除算値はΔ１とΔ２とΔ３の３種類であり、検索先頭インデックスｌ以上検索末尾インデックスｒ以下の任意のインデックスｉにおいて、Δ１は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最小値である所定の値で絶対値を除算した値とし、Δ２は、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが少ない場合にはΔ１と同一とし、Ｄ(i+1) とＤ(i) の差分量が当該最小値であることが多い場合にはΔ１／２とし、Δ３は、予め定まっているＤ(i+1) とＤ(i) の差分量がとり得る最大値である所定の値で絶対値を除算した値とする構成であり、検索処理手段は、Δ３を上回らない最大の整数値が検索範囲に含まれる要素数を半分にした値以上の場合には、当該整数値と検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が当該半分にした値未満の場合には、Δ２を下回らない最小の整数値が１でなければ、当該整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定し、当該整数値が１であれば、Δ１を下回らない最小の整数値と検索範囲に含まれる要素数を半分にした値とを比較して小さい方の値と検索インデックスとから次に検索する検索インデックスを決定する構成である。
【発明の効果】
【００２７】
本発明の検索処理方法および検索処理装置における初期化処理は、検索閾値以下に存在し得る要素数の最大値と最小値とを算出し、当該最大値と最小値を用いて検索範囲の絞り込みを行うため、検索回数を削減し、検索に要する時間を短縮できる。また、検索処理は、差分情報抽出処理手段から通知される除算値を用いて検索範囲の絞り込みを行うため、検索回毎に検索範囲が絞り込まれ、検索回数を削減し、検索に要する時間を短縮できる。
【００２８】
また、検索処理は、検索範囲に含まれる要素数を半分にした値と差分情報抽出処理手段から通知される前記除算値を下回らない最小の整数値とを比較し、いずれか小さい方の値から次の検索インデックスを決定する。したがって、当該整数値が前記要素数の半分の値よりも大きい場合には、前記要素数の半分の値のみから次の検索インデックスを得る従来の２分探索と同様の方法で検索インデックスが決定されるため、従来の２分探索の検索回数を超えない。
【００２９】
また、差分情報抽出処理手段から通知される除算値は、当該絶対値内に存在し得る要素数の最大値になるため、検索処理において、当該最大値で検索範囲を絞り込んだ際に、誤った絞り込みを行うことがない。また、ＯＮＵの検索処理において、予め定まっているＤ(i+1) −Ｄ(i) がとり得る最小値は最小フレーム長のフレーム１つ送信するのに必要なデータ量であるため、送信済みでないフレームにおいて、最小フレーム長のフレームが多い場合に特に絞り込める要素数が多く、検索回数を削減できる。
【００３０】
また、最小フレーム長は予め定まった既知の値であるため、前記絶対値を除算する際には、最小フレーム長のフレーム１つ送信するのに必要なデータ量以下になるように２のべき乗で当該データ量を近似した値を用いれば、除算はビットシフトで済み、除算を高速に行うことができる。
【００３１】
また、本発明によれば、最小フレーム長のフレームが送信済みでないフレームの少数であった場合に、検索回毎に検索範囲を絞り込むことができる。Ｄ(i+1) −Ｄ(i) の最小値、すなわち最小フレーム長のフレーム１つ送信するのに必要なデータ量で前記絶対値を除算した値を下回らない最小の整数値に基づいて決定する検索インデックスは、当該整数値によって絞り込んだ検索範囲の末尾であるため、最小フレーム長のフレームが少ない場合には、当該末尾を次の検索インデックスにするよりも、当該末尾と検索インデックスの中間に位置するインデックスを次の検索インデックスとした方が検索回数を削減できる。本発明では、当該中間に位置するインデックスが次の検索インデックスとなるため、最小フレーム長のフレームが送信済みでないフレームの少数であった場合に、検索回毎に検索範囲を絞り込むことができる。
【００３２】
また、本発明によれば、最小フレーム長のフレームが送信済みでないフレームの少数の場合も多数の場合も、検索回毎に検索範囲を絞り込むことができる。最小フレーム長のフレームが送信済みでないフレームの多数の場合には、最小フレーム長のフレーム１つ送信するのに必要なデータ量で前記絶対値を除算した値を下回らない最小の整数値に基づいて検索インデックスを決定する。一方、最小フレーム長のフレームが送信済みでないフレームが少数の場合には、最小フレーム長のフレーム１つ送信するのに必要なデータ量で前記絶対値を除算した値を半分にした値を下回らない最小の整数値に基づいて検索インデックスを決定する。このため、最小フレーム長の多少に関らず、検索回毎に検索範囲を絞り込むことができる。
【００３３】
また、本発明によれば、送信済みでないフレームのフレーム長が最小フレーム長および最大フレーム長と同程度のフレームが多い場合に、特に検索回数を削減できる。また、最大フレーム長と最小フレーム長のいずれも予め定まった既知の値であるため、いずれも送信するのに必要なデータ量以下になるように２のべき乗で当該データ量を近似した値を用いれば、除算はビットシフトで済み、除算を高速に行うことができる。
【００３４】
一般に、メモリで消費される電力は、リーク電流による静的な電力消費とメモリへのアクセス時に発生する動的な電力消費とがある。本発明による検索回数の削減により、検索メモリへのアクセス回数が減少するため、検索メモリで消費される動的な電力消費を削減できる。また、本発明における検索処理装置に必要なメモリは、従来と同一の容量の検索メモリのみであり、メモリに比べて回路規模が小さい論理回路の追加のみで済むため、回路規模の増大は抑えられ、静的な電力消費の増大が抑えられる。従って、本発明の適用により、検索処理装置で消費される電力の削減が可能になる。
【００３５】
また、本発明により検索に要する時間が短縮されるため、空いた時間に検索処理に関るハードウェアに対して、クロックゲーティング等の省電力化技術を適用することで、検索処理に関るハードウェアの省電力化が可能になる。
【図面の簡単な説明】
【００３６】
【図１】本発明の実施例１の検索処理装置の構成例を示す図である。
【図２】実施例１の検索制御処理部１３における初期化処理手順例を示すフローチャートである。
【図３】実施例１の検索制御処理部１３における検索処理手順例を示すフローチャートである。
【図４】実施例１の検索制御処理で <Δ１／２> が１か否かで場合分けする理由を説明する図である。
【図５】実施例２の検索制御処理部１３における検索処理手順例を示すフローチャートである。
【図６】本発明の実施例３の検索処理装置の構成例を示す図である。
【図７】実施例３の検索制御処理部１３における検索処理手順例を示すフローチャートである。
【図８】本発明の実施例４の検索処理装置の構成例を示す図である。
【図９】実施例４の検索制御処理部１３における検索処理手順例を示すフローチャートである。
【図１０】２分探索の検索処理手順例を示すフローチャートである。
【図１１】ＯＮＵの上りバッファの蓄積データと検索メモリに記録する値との対応関係を示す図である。
【図１２】２分探索を用いた従来の検索処理装置の構成例を示す図である。
【発明を実施するための形態】
【実施例１】
【００３７】
図１は、本発明の実施例１の検索処理装置の構成例を示す。ここでは、ＰＯＮシステムのＯＮＵにおける検索処理装置を例に説明する。
【００３８】
図１において、実施例１の検索処理装置は、検索メモリ１１、大小比較処理部１２、検索制御処理部１３、蓄積データ量算出処理部１４、差分情報抽出処理部１５を備える。本実施例の構成は、図１２の従来の検索処理装置と比べて、差分情報抽出処理部１５が新たに加えられ、検索制御処理部１３が検索閾値を用いて検索範囲の絞り込みを行う初期化処理を実施する点と、検索制御処理部１３における検索処理方法とが異なる。
【００３９】
差分情報抽出処理部１５は、蓄積データ量算出処理部１４から通知される蓄積データ量と検索閾値との差分量を絶対値で算出し、当該絶対値を所定の値で除算して得られる値Δ１を算出する。なお、所定の値とは、任意のインデックスｉの要素Ｄ(i) において予め既知の値であるＤ(i+1) とＤ(i) の差分量の最小値f1、すなわち、最小フレーム長のフレーム１つをＯＮＵが送信するのに必要なデータ量である。得られる除算値Δ１は、当該絶対値内に存在し得る要素数の最大値である。
【００４０】
本実施例における検索制御処理部１３は、検索閾値を用いて検索範囲の絞り込みを実施する初期化処理と、大小比較処理部１２と差分情報抽出処理部１５との結果から検索範囲の絞り込みを実施する検索処理を行う。初期化処理は、検索閾値に基づいて、検索閾値以内で送信可能なフレーム数の最小値と最大値を算出し、当該最小値と最大値とを用いて検索範囲の上限インデックスと下限インデックスとを決定する。また、検索処理は、大小比較処理部１２より通知される情報の他に、差分情報抽出処理部１５より通知される除算値Δ１を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲外の場合には、Δ１で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスに決定し、検索処理を実施する。以下、初期化処理および検索処理の詳細について説明する。
【００４１】
（初期化処理の詳細）
初期化処理は、検索閾値に基づいて、検索閾値以内で送信可能なフレーム数の最小値Ｂと最大値Ｃとを算出し、当該最小値と検索先頭インデックスとから検索範囲の下限インデックス、当該最大値と検索先頭インデックスおよび検索末尾インデックスとから検索範囲の上限インデックスを決定することで、検索範囲を絞り込む処理である。また、当該決定前に、当該最小値を用いて、検索閾値以下で最大の蓄積データ量になるインデックスが検索末尾インデックスか否かを計算で判定し、検索末尾インデックスであった場合には、後述する検索処理を実施せずに、所望の蓄積データ量（検索閾値以下で最大の蓄積データ量）を出力する。なお、検索閾値以内で送信可能なフレーム数の最大値とは、最小フレーム長１つ送信するのに必要なデータ量f1で、検索閾値を除算して得られる値を下回らない最小の整数値である。検索閾値以内で送信可能なフレーム数の最小値とは、最大フレーム長１つ送信するのに必要なデータ量で検索閾値を除算して得られる値を上回らない最大の整数値である。
【００４２】
図２は、実施例１の検索制御処理部１３における初期化処理手順例を示す。
検索先頭インデックスから検索末尾インデックスまでを仮検索範囲にし、当該仮検索範囲に含まる要素数Ａを算出する。また、検索閾値以内で送信可能なフレーム数の最小値（最大フレーム長１つ送信するのに必要なデータ量で検索閾値を除算した値）Ｂも算出する（ステップM1）。最小値Ｂと仮検索範囲に含まれる要素数Ａとを比較してＢがＡ以上の場合（ステップM2：No）には、仮検索範囲の全要素が検索閾値以下であり、検索インデックスにおける蓄積データ量が検索閾値以下で最大になるインデックスが検索末尾インデックスであることを意味する。この場合には、当該初期化処理では、上限インデックスおよび下限インデックスのいずれも検索末尾インデックスとし（ステップM3）、後述する検索処理にて検索閾値以下で最大の蓄積データ量になるインデックスが検索末尾インデックスとなるようにする。
【００４３】
一方、ＢがＡ未満の場合（ステップM2：Yes ）には、仮検索範囲に含まれる要素数Ａは最小値Ｂよりも大きいことを意味するため、当該検索における検索範囲に含まれるインデックスの下限インデックスを検索先頭インデックスにＢを加算した値にする。また、検索閾値以内で送信可能なフレーム数の最大値（最小フレーム長１つ送信するのに必要なデータ量で検索閾値を除算した値）Ｃも算出する（ステップM4）。
【００４４】
算出したＣと仮検索範囲に含まれる要素数Ａとを比較して、ＣがＡ未満の場合（ステップM5：Yes ）には、仮検索範囲が当該最大値を超えていることを意味するため、上限インデックスを検索先頭インデックスにＣを加算した値にする（ステップM6）。この場合には、上限インデックスが（検索先頭インデックス＋Ｃ) 、下限インデックスが（検索先頭インデックス＋Ｂ）になる。
【００４５】
一方、ＣとＡとを比較してＣがＡ以上であった場合（ステップM5：No）には、仮検索範囲が当該最大値以下であることを意味するため、検索範囲に含まれるインデックスの上限インデックスを検索末尾インデックスにする（ステップM7）。この場合には、上限インデックスが検索末尾インデックス、下限インデックスが（検索先頭インデックス＋Ｂ）になる。
【００４６】
（検索処理の詳細）
検索処理では、差分情報抽出処理部１５に通知される検索閾値ｘと、検索インデックスｑにおける蓄積データ量との差の絶対値を前記所定の値で除算して得られる値Δ１を用いて検索範囲の絞り込みを行い、２分探索によって得られる検索インデックスが当該絞り込み範囲を超えた場合には、Δ１で絞り込んだ範囲の中央に位置するインデックスを次の検索インデックスに決定し、検索処理を実施する。
【００４７】
図３は、実施例１の検索制御処理部１３における検索処理手順例を示す。
ここでは、図１０の従来の２分探索処理におけるステップE4、E5の代わりに、ステップG4、G5の処理を行う。
【００４８】
なお、ステップG4およびG5では、以下のように実行する。条件１，条件２，式１，式２，式３は、ステップG4およびG5のそれぞれに対応する。
if (条件１） then 
式１      …「条件１」が真の時、「式１」を実行
else if （条件２）then
式２      …「条件１」が偽で「条件２」が真の時、「式２」を実行
else
式３      …いずれの条件も偽の時、「式３」を実行
end if
【００４９】
すなわち、ステップG4およびG5では、検索範囲に含まれる要素数ｎが１でなければ、２分探索で絞り込んだ検索範囲に含まれる要素数 <ｎ／２> と、Δ１で絞り込んだ検索範囲に含まれる要素数を半分にした値 <Δ１／２> とを比較し、いずれか小さい方の値を次の検索範囲に含まれる要素数ｎにすると同時に、ステップG3における大小比較結果の値に応じて、当該小さい方の値と検索インデックスｑとから次に検索する検索インデックスｑを算出する。ただし、 <Δ１／２> が１の場合には、図４(a) に示す誤動作が発生する可能性がある。これは、ｎが一度１になると、それ以降で検索インデックスに＋１することができないことが原因で発生する。このため、本実施例では、 <Δ１> が２の場合（ <Δ１／２> ＝１）には、 <Δ１／２> を用いて検索インデックスを決定せず、 <Δ１> を用いて検索インデックスを決定するようにしている。 <Δ１> を用いて決定した検索インデックスは、Δ１によって絞り込んだ検索範囲の末尾であるため、図４(a) の誤動作は発生せず、図４(b) に示す正常動作になる。ステップG4、G5以外のステップは従来と同一である。なお、ステップG3における大小比較結果は、大小比較処理部１２から通知される結果である。
【実施例２】
【００５０】
実施例２の検索処理装置は、装置構成および検索制御処理部１３における初期化処理は実施例１と同一であるが、検索制御処理部１３における検索処理が異なる。
【００５１】
図５は、実施例２の検索制御処理部１３における検索処理手順例を示す。
ここでは、実施例１のステップG4、G5の代わりに、ステップH4、H5の処理を行う。
【００５２】
なお、ステップH4およびH5では、以下のように実行する。条件１，式１，式２は、ステップH4およびH5のそれぞれに対応する。
if (条件１） then 
式１      …「条件１」が真の時、「式１」を実行
else
式２      …いずれの条件も偽の時、「式２」を実行
end if
【００５３】
すなわち、ステップH4、H5において、検索範囲に含まれる要素数ｎが１でなければ、２分探索で絞り込んだ検索範囲に含まれる要素数 <ｎ／２> と、Δ１で絞り込んだ検索範囲に含まれる要素数 <Δ１> とを比較し、いずれか小さい方の値を次の検索範囲に含まれる要素数ｎにすると同時に、ステップH3における大小比較結果の値に応じて、当該小さい方の値と検索インデックスｑとから次に検索する検索インデックスｑを算出する点が実施例１と異なる。
【００５４】
<Δ１> は、前記絶対値を最小フレーム長のフレーム１つ送信するのに必要なデータ量で除算した値であるため、最小フレーム長のフレームが送信済みでないフレームの多数を占める場合には、 <Δ１> によって決まる検索インデックスの位置が、所望のインデックス（検索閾値以下で蓄積データ量が最大になる要素のインデックス）の位置に近くなる。したがって、本実施例により、最小フレーム長と同程度の短いフレーム長のフレームが送信済みでないフレームの多数を占める場合には、特に検索回数を削減することができる。
【実施例３】
【００５５】
図６は、本発明の実施例３の検索処理装置の構成例を示す。
実施例３の検索処理装置は、差分情報抽出処理部１５から出力される値がΔ１およびΔ２の２種類になった点と、検索制御処理部１３がΔ１およびΔ２の値と大小比較処理部１２からの大小比較結果とに基づいて検索処理を実施する点が第１の実施例と異なる。
【００５６】
検索制御処理部１３での検索処理において、差分情報抽出処理部１５から通知される値に基づいて検索インデックスを決定する際には、最小フレーム長と同程度の短いフレーム長のフレームが送信済みでないフレームの多数を占める場合には、実施例２と同一の <Δ１> によって決まる検索インデックスを用いることが、検索回数の削減に効果的である。一方、最小フレーム長と同程度の短いフレーム長のフレームが送信済みでないフレームの少数であった場合には、実施例１と同一の <Δ１／２> で決まる検索インデックスを用いることが検索回数の削減に効果的である。これに基づき、本実施例における差分情報抽出処理部１５は、Δ２を下記の方法で算出し、検索制御処理部１３に通知する。
【００５７】
(1) 最小フレーム長と同程度の短いフレーム長のフレームが送信済みでないフレームの    多数を占める場合：Δ２＝Δ１
(2) 最小フレーム長と同程度の短いフレーム長のフレームが送信済みでないフレームの    少数であった場合：Δ２＝Δ１／２
【００５８】
これにより、最小フレーム長と同程度の短いフレーム長のフレームが送信済みでないフレームの多数を占めるか否かに応じて、検索制御処理部１３にて検索回数を削減するのに適した値がΔ２として差分情報抽出処理部１５より出力されるようになる。なお、最小フレーム長と同程度の短いフレーム長のフレームとは、最小フレーム長の２倍以下のフレーム長のフレームのことである。また、短いフレーム長が多数を占めるか否かは、検索先頭インデックスｌから検索末尾インデックスｒまでの下記で求まる平均値が、最小フレーム長のフレーム１つ送信するのに必要なデータ量の２倍以下であれば、短いフレーム長のフレームが多数を占めるとし、そうでなければ、短いフレーム長のフレームが少数であるとする。
平均値＝（Ｄ(r) −Ｄ(l) )／(ｒ−ｌ）
【００５９】
検索制御処理部１３は、差分情報抽出処理部１５より通知される当該Δ１およびΔ２の値を用いて検索処理を実施する。初期化処理は実施例１と同一である。
【００６０】
図７は、実施例３の検索制御処理部１３における検索処理手順例を示す。
ここでは、実施例１のステップG4、G5の代わりに、ステップS4、S5の処理を行う。
【００６１】
なお、ステップS4およびS5では、以下のように実行する。条件１，条件２，式１，式２，式３は、ステップS4およびS5のそれぞれに対応する。
if (条件１） then 
式１      …「条件１」が真の時、「式１」を実行
else if （条件２）then
式２      …「条件１」が偽で「条件２」が真の時、「式２」を実行
else
式３      …いずれの条件も偽の時、「式３」を実行
end if
【００６２】
すなわち、ステップS4，S5では、検索範囲に含まれる要素数ｎが１でなければ、 <Δ２> が１か否かを確認する。これは、Δ２が実施例１と同一の <Δ１／２> であった場合には、 <Δ１／２> が１の場合には誤動作が発生する可能性があるからである。本実施例では、実施例１と同様に、 <Δ２> が１でなければ、 <Δ２> と２分探索で絞り込んだ検索範囲に含まれる要素数 <ｎ／２> とを比較し、いずれか小さい方の値を次の検索範囲に含まれる要素数ｎにすると同時に、ステップS3における大小比較結果の値に応じて、当該小さい方の値と検索インデックスｑとから次に検索する検索インデックスｑを算出する。一方、 <Δ２> が１であれば、 <Δ１> と <ｎ／２> を比較し、いずれか小さい方の値を次の検索範囲に含まれる要素数ｎにすると同時に、ステップS3における大小比較結果の値に応じて、当該小さい方の値と検索インデックスｑとから次に検索する検索インデックスｑを算出する。他の処理は実施例１と同一である。
【実施例４】
【００６３】
図８は、本発明の実施例４の検索処理装置の構成例を示す。
実施例４の検索処理装置は、差分情報抽出処理部１５から出力される値がΔ１，Δ２，Δ３の３種類になった点と、Δ１〜Δ３の値と大小比較処理部１２からの大小比較結果とに基づいて検索処理を実施する点が第３の実施例と異なる。
【００６４】
差分情報抽出処理部１５が出力するΔ１，Δ２は実施例３と同一であり、Δ３は任意のインデックスｉの要素Ｄ(i) において予め定まった値であるＤ(i+1) とＤ(i) の差分量の最大値、すなわち、最大フレーム長のフレーム１つ送信するのに必要なデータ量で、蓄積データ量算出処理部１４から通知される蓄積データ量と検索閾値との差分量の絶対値を除算した値である。得られる除算値Δ３は、当該絶対値内で存在し得る要素数の最小値である。
【００６５】
検索制御処理部１３は、差分情報抽出処理部１５より通知されるΔ１〜Δ３の値を用いて検索処理を実施する。初期化処理は実施例３と同一である。
【００６６】
図９は、実施例４の検索制御処理部１３における検索処理手順例を示す。
ここでは、実施例３のステップS4、S5の代わりに、ステップJ4、J5の処理を行う。
【００６７】
なお、ステップJ4およびJ5では、以下のように実行する。条件１，条件２，条件３，式１，式２，式３，式４は、ステップJ4およびJ5のそれぞれに対応する。
if (条件１） then 
式１      …「条件１」が真の時、「式１」を実行
else if （条件２）then
式２      …「条件１」が偽で「条件２」が真の時、「式２」を実行
else if （条件３）then
式３      …「条件１」，「条件２」が偽で「条件３」が真の時、「式３」を実行
else
式４      …いずれの条件も偽の時、「式４」を実行
end if
【００６８】
すなわち、ステップJ4，J5では、検索範囲に含まれる要素数ｎが１でなければ、２分探索で絞り込んだ検索範囲に含まれる要素数 <ｎ／２> と、 [Δ３]  ( [ｔ] ：ｔを上回らない最大の整数) とを比較する。当該 <ｎ／２> が [Δ３] 未満の場合には、当該 <ｎ／２> が前記要素数の最小値以下であることを意味する。したがって、この場合には、検索インデックスが当該最小値未満にならないように、 [Δ３] を用いて次に検索する検索インデックスｑを決定する。一方、当該 <ｎ／２> が [Δ３] 以上の場合には、当該 <ｎ／２> が前記要素数の最小値以上であることを意味する。この場合には、実施例３と同様の処理を実施する。その他の処理も実施例３と同一である。
【００６９】
なお、本発明は、ＯＮＵの検索処理方法および検索処理装置に限定されるものではなく、予め要素間の最大値と最小値とが既知である他の検索処理方法および検索処理装置に対してもその要旨を逸脱しない範囲において種々変更し、適用可能である。
【００７０】
また、本発明における検索処理は、必ずしもハードウェアで実装する必要はなく、一部もしくはすべてをソフトウェアで実装してもよい。
【符号の説明】
【００７１】
１１  検索メモリ
１２  大小比較処理部
１３  検索制御処理部
１４  蓄積データ量算出処理部
１５  差分情報抽出処理部
【図１】
0005474706.tif 000002
【図２】
0005474706.tif 000003
【図３】
0005474706.tif 000004
【図４】
0005474706.tif 000005
【図５】
0005474706.tif 000006
【図６】
0005474706.tif 000007
【図７】
0005474706.tif 000008
【図８】
0005474706.tif 000009
【図９】
0005474706.tif 000010
【図１０】
0005474706.tif 000011
【図１１】
0005474706.tif 000012
【図１２】
0005474706.tif 000013