(57)【特許請求の範囲】
【請求項１】
対向する通信装置から受信した受信データのデータサイズが（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、
被除算数に値を設定する被除算数設定部と、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定部と、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定部と、
前記剰余判定部によって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定部と、
前記第二除算数設定部によって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部と
を有し、
前記剰余判定部は、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、
前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする通信装置。
【請求項２】
対向する通信装置から受信した受信データのデータサイズが（２α＋１）（ただし、αは自然数）の形式で表現される素数である所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、
被除算数に値を設定する被除算数設定部と、
前記素数から１を減算した値である前記２αを除算数に設定する除算数設定部と、
前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部と
を有し、
前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする通信装置。
【請求項３】
前記除算部は、ｍｏｄ演算によって前記剰余を算出することを特徴とする請求項１または２に記載の通信装置。
【請求項４】
複数の前記所定整数の候補値を書き換え可能に記憶するレジスタ部と、
前記受信データのデータサイズの種別に応じて、前記レジスタ部によって記憶される複数の前記所定整数の候補値から一の候補値を選択して前記所定整数とする候補値選択部と
をさらに有することを特徴とする請求項１、２または３に記載の通信装置。
【請求項５】
対向する通信装置から受信した受信データのデータサイズが、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置がおこなう受信データサイズチェック方法であって、
被除算数に値を設定する被除算数設定ステップと、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定ステップと、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定ステップと、
前記剰余判定ステップによって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定ステップと、
前記第二除算数設定ステップによって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定ステップと
を含み、
前記剰余判定ステップは、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、
前記被除算数設定ステップは、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする受信データサイズチェック方法。
【請求項６】
第一の整数が、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される第二の整数の倍数であるか否かを判定する倍数判定回路であって、
被除算数に値を設定する被除算数設定部と、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定部と、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定部と、
前記剰余判定部によって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定部と、
前記第二除算数設定部によって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定部と
を有し、
前記剰余判定部は、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定し、
前記被除算数設定部は、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定回路。
【請求項７】
前記除算部は、ｍｏｄ演算によって前記剰余を算出することを特徴とする請求項６に記載の倍数判定回路。
【請求項８】
第一の整数が、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される第二の整数の倍数であるか否かを判定する倍数判定方法であって、
被除算数に値を設定する被除算数設定ステップと、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定ステップと、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定ステップと、
前記剰余判定ステップによって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定ステップと、
前記第二除算数設定ステップによって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定ステップと
を有し、
前記剰余判定ステップは、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定し、
前記被除算数設定ステップは、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、対向する通信装置から受信した受信データのデータサイズが、所定整数の倍数であるか否かを判定することによって、受信データのデータサイズが正常であるか否かを判定する通信装置、受信データサイズチェック方法、第１の整数が第２の整数の倍数であるか否かを判定する倍数判定回路および倍数判定方法に関する。
【背景技術】
【０００２】
従来から、携帯電話無線通信網においてデータを送受信する装置およびコンピュータネットワークにおいてＩＰパケットなどのデータを送受信する装置において、受信データの正常性を確認するために、パケット長がある数の整数倍であるか否かを判定することによって、固定長および可変長パケットのパケット長のチェック処理をおこなっている。
【０００３】
ここで、携帯電話無線通信網およびコンピュータネットワークにおける通信は、最大限のリアルタイム性を要求されることから、如何にしてパケット長のチェック処理を高速におこなうかが課題となってくる。
【０００４】
そこで、例えば、特許文献１および特許文献２に開示されるように、２進数で表現される任意の被演算値が２ｎ−１（ｎは自然数、なお、特許文献２においては、被演算値＝５としている）で表現される演算値の整数倍であるか否かを判定する倍数判定回路であって、被演算値をｎビット単位に区切ってそれぞれを総和したものを新たに被演算値とし、被演算値をｎビット単位に区切ってそれぞれを総和したもののビット列が所定のビット数以下になるまでｎビット単位に区切って総和することを繰り返し、ビット列が所定のビット数以下に初めてなった総和が、予め記憶されている演算値の整数倍に含まれているか否かを判定することによって、任意の被演算値が演算値であるか否かを判定する倍数判定回路が提案されている。
【０００５】
また、特許文献３に開示されるように、整数Ａに対し、整数Ａとは異なる整数ＢまたはＢの倍数分だけ整数Ａと異なる整数の集合Ｃに属する要素の素数性を判定する素数判定方法であって、整数ＢまたはＢの倍数を被除数とし、一つまたは複数の整数を除数または除数集合とした場合の剰余または剰余の集合を記憶し、この記憶された剰余の集合から集合Ｃの要素に対応する剰余を用いて、集合Ｃの要素を被除数とし、一つまたは複数の整数を除数とした場合の剰余を算出することによって、集合Ｃに属する要素の素数性を判定する素数判定方法が提案されている。この方法を応用すると、集合Ｃに属する要素が素数か合成数かであるかが分かり、集合Ｃに属する要素がある数の倍数であるか否かを判定することが可能になる。
【０００６】
また、特許文献４に開示されるように、合成数から、ｍｉ＝４ｋ＋３（ｋはｋ＞０を満たす整数）を法とする剰余系を求め、合成数およびその剰余にそれぞれ１対１に対応するインデックスを付与して記憶しておく。２つの合成数の積の剰余は、それぞれの剰余の和となるため、予め記憶されているインデックスの対応関係を利用して、剰余の和に対応する合成数を求めることができる。このようにして、複雑な乗算の計算処理を高速化することができる。この方法を応用すると、整数Ａが整数Ｂの倍数であるか否かを判定する場合に、Ａ＝αＢとなる整数αを、試行錯誤によって計算することによって、ＡがＢの倍数であるか否かを最終的に判定することが可能になる。
【０００７】
【特許文献１】特開２００２−１４８０５号公報
【特許文献２】特開２００３−１５８６４号公報
【特許文献３】特開平１０−１８７０３７号公報
【特許文献４】米国特許第４９４９２９４号明細書
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記特許文献１および特許文献２に代表される従来技術では、被演算値をｎビット単位に区切ってそれぞれを総和するという処理を所定のビット数以下になるまで繰り返すという反復処理の負荷のみならず、被演算値をｎビット単位に区切ってそれぞれを総和した結果が初めて所定のビット数以下になった場合に、総和が演算値の倍数であるか否かを判定するために参照する情報を予め用意して記憶しておかなければならなかった。
【０００９】
また、上記特許文献３に代表される従来技術では、一つまたは複数の整数を除数または除数集合とした場合の剰余または剰余の集合を予め算出して記憶しておく必要があり、また、素数性が見破られにくい素数生成を目的とするため、記憶された剰余の集合から集合Ｃの要素に対応する剰余を用いて、集合Ｃの要素を被除数とし、一つまたは複数の整数を除数とした場合の剰余を算出する処理の迅速性については、問題としていなかった。
【００１０】
また、上記特許文献４に代表される従来技術では、整数Ａが整数Ｂの倍数であるか否かを判定する場合に、Ａ＝αＢとなるαを、試行錯誤によって計算することから、整数Ａが整数Ｂの倍数であるか否かを判定するために処理時間が膨大にかかるおそれがあった。
【００１１】
本発明は、上記問題点（課題）を解消するためになされたものであって、簡易な構成で、パケット長のチェック処理などに必要な倍数判定を高速におこなうことを可能とする通信装置、受信データサイズチェック方法、倍数判定回路および倍数判定方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
上述した問題を解決し、目的を達成するため、本発明は、対向する通信装置から受信した受信データのデータサイズが（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、被除算数に値を設定する被除算数設定部と、前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定部と、前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定部と、前記剰余判定部によって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定部と、前記第二除算数設定部によって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部とを有し、前記剰余判定部は、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定することを特徴とする。
【００１３】
また、本発明は、対向する通信装置から受信した受信データのデータサイズが（２α＋１）（ただし、αは自然数）の形式で表現される素数である所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、被除算数に値を設定する被除算数設定部と、前記素数から１を減算した値である前記２αを除算数に設定する除算数設定部と、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部とを有し、前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定することを特徴とする。
【００１４】
また、本発明は、上記発明において、前記除算部は、ｍｏｄ演算によって前記剰余を算出することを特徴とする。
【００１５】
また、本発明は、上記発明において、複数の前記所定整数の候補値を書き換え可能に記憶するレジスタ部と、前記受信データのデータサイズの種別に応じて、前記レジスタ部によって記憶される複数の前記所定整数の候補値から一の候補値を選択して前記所定整数とする候補値選択部とをさらに有することを特徴とする。
【００１６】
また、本発明は、対向する通信装置から受信した受信データのデータサイズが、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置がおこなう受信データサイズチェック方法であって、被除算数に値を設定する被除算数設定ステップと、前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定ステップと、前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定ステップと、前記剰余判定ステップによって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定ステップと、前記第二除算数設定ステップによって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定ステップとを含み、前記剰余判定ステップは、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、前記被除算数設定ステップは、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定することを特徴とする。
【００１７】
また、本発明は、第一の整数が、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される第二の整数の倍数であるか否かを判定する倍数判定回路であって、被除算数に値を設定する被除算数設定部と、前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定部と、前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定部と、前記剰余判定部によって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定部と、前記第二除算数設定部によって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定部とを有し、前記剰余判定部は、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定し、前記被除算数設定部は、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定することを特徴とする。
【００１８】
また、本発明は、上記発明において、前記除算部は、ｍｏｄ演算によって前記剰余を算出することを特徴とする。
【００１９】
また、本発明は、第一の整数が、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される第二の整数の倍数であるか否かを判定する倍数判定方法であって、被除算数に値を設定する被除算数設定ステップと、前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定ステップと、前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定ステップと、前記剰余判定ステップによって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定ステップと、前記第二除算数設定ステップによって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定ステップとを有し、前記剰余判定ステップは、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定し、前記被除算数設定ステップは、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定することを特徴とする。
【発明の効果】
【００２０】
本発明によれば、受信データのデータサイズを所定整数（例えば、２α＋２β（ただし、α、βはα＞β≧０を満たす自然数）、２α＋１（αは自然数）の形式で表現される素数）から１を減算した値で除算した結果の商から剰余を減算した減算結果が正数であれば、この減算結果を所定整数から１を減算した値で除算した結果の商から剰余を減算した減算結果が正数であるか否かを判定する。この減算結果が整数であれば、この減算結果を所定整数から１を減算した値で除算した結果の商から剰余を減算した減算結果が正数でなくなるまで、減算結果を所定整数から１を減算した値で除算する処理を繰り返す。そして、減算結果が正数でなくなったときの商および剰余の一致を判定し、一致すれば、受信データのデータサイズが正常であると判定し、一致しなければ、受信データのデータサイズが正常でないと判定するので、簡易な処理によって、迅速に、受信データのデータサイズが正常であるか否かを判定することが可能になるという効果を奏する。また、簡易な処理であるので、コンパクトに実装可能になることから、ハードウェア実装に好適になるという効果を奏する。
【００２１】
また、本発明によれば、ｍｏｄ演算（シフト演算）のみによって高速に剰余を算出するので、簡易な処理によって、迅速に、受信データのデータサイズが正常であるか否かを判定することが可能になるという効果を奏する。
【００２２】
また、本発明によれば、受信データのデータサイズが正常であるか否かの判定の際に、受信データのデータサイズの種別に応じて所定整数を選択するので、柔軟に、受信データのデータサイズが正常であるか否かの判定をおこなうことが可能になり、判定処理の効率化を図ることができるという効果を奏する。
【００２３】
また、本発明によれば、第１の整数を第２の整数（例えば、２α＋２β（ただし、α、βはα＞β≧０を満たす自然数）、２α＋１（αは自然数）の形式で表現される素数）から１を減算した値で除算した結果の商から剰余を減算した減算結果が正数であれば、この減算結果を第２の整数から１を減算した値で除算した結果の商から剰余を減算した減算結果が正数であるか否かを判定する。この減算結果が整数であれば、この減算結果を第２の整数から１を減算した値で除算した結果の商から剰余を減算した減算結果が正数でなくなるまで、減算結果を第２の整数から１を減算した値で除算する処理を繰り返す。そして、減算結果が正数でなくなったときの商および剰余の一致を判定し、一致すれば、第１の整数が第２の整数の倍数であると判定し、一致しなければ、第１の整数が第２の整数の倍数でないと判定するので、簡易な処理によって、迅速に、第１の整数が第２の整数の倍数であるか否かを判定することが可能になるという効果を奏する。また、簡易な処理であるので、コンパクトに実装可能になることから、ハードウェア実装に好適になるという効果を奏する。
【００２４】
また、本発明によれば、ｍｏｄ演算（シフト演算）のみによって高速に剰余を算出するので、簡易な処理によって、迅速に、第１の整数が第２の整数（例えば、２α＋２β（ただし、α、βはα＞β≧０を満たす自然数）、２α＋１（αは自然数）の形式で表現される素数）の倍数であるか否かを判定することが可能になるという効果を奏する。
【発明を実施するための最良の形態】
【００２５】
以下に添付図面を参照し、本発明の通信装置、受信データサイズチェック方法、倍数判定回路および倍数判定方法にかかる実施例を詳細に説明する。なお、以下の実施例では、本発明の通信装置を通信中継装置に適用した場合を示す。特に、通信中継装置は、携帯電話機などから他の携帯電話機への無線による通信データを中継する無線基地局である。しかし、これに限定されず、本発明は、通信装置から他の通信装置へ、無線または有線による通信データを中継する通信中継装置に広く適用可能である。
【００２６】
また、本発明は、通信中継装置に限らず、無線または有線によって他の通信装置と通信データを送受信する通信装置に広く適用可能である。例えば、無線または有線によって他のコンピュータ装置と通信データを送受信するコンピュータ装置であってもよい。また、無線または有線によって他の通信装置と通信データを送受信する通信装置であってもよい。
【００２７】
なお、以下の実施例では、通信データのデータフォーマットは、パケットとし、受信データサイズは、パケット長であるとするが、これに限らず、通信データのデータフォーマットは、通信方式に応じた様々なデータフォーマットであってもよい。以下の実施例で示すデータ量の単位は、すべて「Ｂｙｔｅ」であるとするが、情報量を示す単位であれば、いずれであってもよい。
【実施例１】
【００２８】
先ず、実施例１にかかる通信中継装置の構成について説明する。図１は、実施例１にかかる通信中継装置の構成を示す機能ブロック図である。同図に示すように、実施例にかかる通信中継装置１００は、対向する通信装置３００ａと通信装置３００ｂとの間で送受信されるパケットを中継する。
【００２９】
通信中継装置１００は、パケット中継処理部１０１と、パケット中継処理部１０２と、制御部１０３と、レジスタ設定記憶部１０４とを有する。パケット中継処理部１０１は、通信装置３００ａから受信したパケットを中継して通信装置３００ｂへと送信する。同様に、パケット中継処理部１０２は、通信装置３００ｂから受信したパケットを中継して通信装置３００ａへと送信する。
【００３０】
パケット中継処理部１０１は、パケット受信制御部１０１ａと、パケット処理部１０１ｂと、パケット送信制御部１０１ｃとを有する。パケット受信制御部１０１ａは、通信装置３００ａからパケットを受信し、受信パケットのパケット長のチェックをおこなう。パケット受信制御部１０１ａは、チェック結果が『受信パケットのパケット長が正常である』であった場合には、受信パケットをパケット処理部１０１ｂへと受け渡す。一方、パケット受信制御部１０１ａは、チェック結果が『受信パケットのパケット長が正常でない』であった場合には、受信パケットを破棄する処理をおこなう。
【００３１】
パケット処理部１０１ｂは、パケット受信制御部１０１ａから受け渡された受信パケットに応じたプロトコル制御や転送制御などをおこない、受信パケットをパケット送信制御部１０１ｃへと受け渡す。
【００３２】
パケット送信制御部１０１ｃは、パケット処理部１０１ｂから受け渡された受信パケットを、送信パケットとして、通信装置３００ｂへ送信する。なお、パケット中継処理部１０２も、パケット中継処理部１０１と同様の構成および機能を有し、同様の処理をおこなうため、説明を省略する。
【００３３】
制御部１０３は、通信中継装置１００の全体制御をつかさどる制御装置である。通信中継装置１００の制御に必要なファームウェアを実行することによって、通信中継装置１００の制御をおこなう。また、制御部１０３は、外部から入力されたレジスタ設定値を、レジスタ設定記憶部１０４に格納される後述のレジスタ設定記憶テーブルに記憶させる処理をおこなう。
【００３４】
なお、レジスタ設定記憶テーブルに記憶されるレジスタ設定値は、外部からの入力によって可変である。レジスタ設定記憶テーブルに記憶されるレジスタ設定値を可変とすることによって、パケット長倍数規則の対応が柔軟になり、あらゆるパケット長倍数規則に従うパケットのパケット長が正常であるか否かを判定することが可能になる。
【００３５】
次に、図１に示した実施例１にかかる通信中継装置のパケット受信制御部の構成について説明する。図２は、実施例１にかかる通信中継装置のパケット受信制御部の構成を示す機能ブロック図である。実施例１にかかる通信中継装置１００のパケット受信制御部１０１ａは、パケット受信部１０１ａ−１と、パケットチェック処理部１０１ａ−２と、廃棄判定処理部１０１ａ−３とを有する。
【００３６】
パケット受信部１０１ａ−１は、受信パケットを、廃棄判定処理部１０１ａ−３へと受け渡すとともに、受信パケットのヘッダ情報から、後述のパケット長倍数規則識別子およびパケット長を取得してパケットチェック処理部１０１ａ−２へと受け渡す。また、パケット受信部１０１ａ−１は、受信パケットの実際のパケット長を計測し、実パケット長としてパケットチェック処理部１０１ａ−２へと受け渡す。
【００３７】
パケットチェック処理部１０１ａ−２は、ヘッダ情報判定処理部１０５ａと、除算処理部１０５ｂと、正数判定処理部１０５ｃと、パケット長正常判定処理部１０５ｄとを有する。ヘッダ情報判定処理部１０５ａは、パケット受信部１０１ａ−１から受け渡されたパケット長倍数規則識別子に基づき、受信パケットのパケット長が、２の累乗＋１の倍数規則性を有するパケットであるか、２の累乗の倍数規則性を有するパケットであるか、または、固定長であるパケットであるかを判定する。
【００３８】
なお、図３−１に一例を示すように、パケットフォーマットは、パケット長識別子およびパケット長のフィールドを少なくとも含むプレアンブル部と、ユーザデータを格納するペイロード部とからなる。
【００３９】
また、パケット長倍数規則識別子は、図３−２に一例を示すように、パケット長倍数規則識別子が『０』であれば、パケット長倍数規則性が『２の累乗＋１の倍数』であり、パケット長倍数規則識別子が『１』であれば、パケット長倍数規則性が『２の累乗の倍数』であり、パケット長倍数規則識別子が『２』であれば、パケット長倍数規則性が『固定長』であることを示す。
【００４０】
除算処理部１０５ｂは、被除算値および除算値を、それぞれ変数Ｕおよび変数Ｖとして、ワークメモリに記憶する。除算処理部１０５ｂは、先ず、Ｕに、パケット受信部１０１ａ−１から受け渡された実パケット長をセットする。
【００４１】
続いて、除算処理部１０５ｂは、パケット長倍数規則識別子が『０』であれば、図４に一例を示す、レジスタ設定記憶部１０４に格納されるレジスタ設定記憶テーブルから設定値『Ｘ＝２α＋１』（αは自然数）を読み出して、『Ｘ−１＝２α』（Ｘから１を減算した値）をＶにセットする。
【００４２】
続いて、除算処理部１０５ｂは、正数判定処理部１０５ｃによって、ＵをＶで除算した結果の商Ｍ０から剰余Ｎ０を減算した減算結果（Ｍ０−Ｎ０）が正数であると判定されたならば（Ｍ０−Ｎ０＞０）、この減算結果（Ｍ０−Ｎ０）をＵに上書きセットする。
【００４３】
続いて、除算処理部１０５ｂは、ＵをＶで除算する。正数判定処理部１０５ｃは、その商Ｍ１から剰余Ｎ１を減算した減算結果（Ｍ１−Ｎ１）が正数であるか否かを判定する。除算処理部１０５ｂは、この減算結果（Ｍ１−Ｎ１）が正数であれば（Ｍ１−Ｎ１＞０）、この減算結果（Ｍ１−Ｎ１）をＵに上書きセットする。
【００４４】
続いて、除算処理部１０５ｂは、正数判定処理部１０５ｃによって、ＵをＶで除算した結果の商から剰余を減算した減算結果が正数でないと判定されるまで、減算結果をＶで除算する処理を繰り返す。
【００４５】
そして、パケット長正常判定処理部１０５ｄは、減算結果が正数でなくなったときの商および剰余の一致を判定し、一致すれば、『受信データのデータサイズが正常である』と判定し、一致しなければ、『受信データのデータサイズが正常でない』と判定して、判定結果を、廃棄判定処理部１０１ａ−３へ通知する。
【００４６】
また、除算処理部１０５ｂは、パケット長倍数規則識別子が『１』であれば、レジスタ設定記憶テーブルから設定値『Ｙ＝２β』（βは自然数）を読み出して、『Ｙ＝２α』をＶにセットする。そして、除算処理部１０５ｂは、ＵをＶで除算する。
【００４７】
そして、パケット長正常判定処理部１０５ｄは、除算の結果の剰余が０であるか否かを判定し、剰余が０であれば、『受信データのデータサイズが正常である』と判定し、剰余が０でなければ、『受信データのデータサイズが正常でない』と判定して、判定結果を、廃棄判定処理部１０１ａ−３へ通知する。
【００４８】
また、除算処理部１０５ｂは、パケット長倍数規則識別子が『２』であれば、レジスタ設定記憶テーブルから設定値『Ｚ』（Ｚは整数）を読み出して、『Ｚ』をＶにセットする。そして、パケット長正常判定処理部１０５ｄは、ＵとＶとが一致するか否かを判定し、一致すれば、『受信データのデータサイズが正常である』と判定し、一致しなければ、『受信データのデータサイズが正常でない』と判定して、判定結果を、廃棄判定処理部１０１ａ−３へ通知する。
【００４９】
廃棄判定処理部１０１ａ−３は、パケット長正常判定処理部１０５ｄから通知された判定結果が『受信データのデータサイズが正常である』場合は、パケット受信部１０１ａ−１から受け渡された受信パケットを、パケット処理部１０１ｂへと受け渡し、パケット長正常判定処理部１０５ｄから通知された判定結果が『受信データのデータサイズが正常でない』場合は、パケット受信部１０１ａ−１から受け渡された受信パケットを廃棄する。
【００５０】
なお、パケット中継処理部１０１、パケット受信制御部１０１ａ、パケット処理部１０１ｂ、パケット送信制御部１０１ｃ、パケット中継処理部１０２、パケット受信制御部１０２ａ、パケット処理部１０２ｂ、パケット送信制御部１０２ｃは、専用の集積回路またはワイヤードロジックなどでハードウェア実装されるので、高速処理が可能である。
【００５１】
特に、パケット受信制御部１０１ａのパケットチェック処理部１０１ａ−２が専用の集積回路またはワイヤードロジックで実装されることによって、パケットチェック処理の高速化を図ることができ、通信中継装置１００の処理能力を向上させることが可能になる。
【００５２】
次に、実施例１にかかる通信中継処理について説明する。図５は、実施例１にかかる通信中継処理を示すシーケンス図である。同図に示すように、先ず、通信装置３００ａから通信中継装置１００のパケット中継処理部１０１へ、パケットが送信される（ステップＳ１０１）。
【００５３】
続いて、通信装置３００ａからのパケットを受信したパケット中継処理部１０１のパケット受信制御部１０１ａは、受信パケットの受信制御処理をおこなう（ステップＳ１０２）。続いて、パケット受信制御部１０１ａのパケットチェック処理部１０１ａ−２は、受信パケットのパケットチェック処理をおこなう（ステップＳ１０３）。
【００５４】
続いて、パケット中継処理部１０１のパケット処理部１０１ｂは、受信パケットのパケット処理をおこなう（ステップＳ１０４）。続いて、パケット中継処理部１０１のパケット送信制御部１０１ｃは、受信パケットを、送信パケットとして、通信装置３００ｂへ送信する送信制御処理をおこなう（ステップＳ１０５）。
【００５５】
そして、通信中継装置１００から通信装置３００ｂへと、パケットが送信されることとなる（ステップＳ１０６）。
【００５６】
次に、実施例１にかかるパケットチェック処理について説明する。図６は、実施例１にかかるパケットチェック処理手順を示すフローチャートである。同図に示すように、先ず、ヘッダ情報判定処理部１０５ａは、パケット受信部１０１ａ−１から、受信パケットのヘッダ情報（パケット長倍数規則識別子およびパケット長）および実パケット長（以下、『ＬＥＮ』と略記する）を取得する（ステップＳ２０１）。
【００５７】
続いて、ヘッダ情報判定処理部１０５ａは、パケット長倍数規則識別子が『０』((２の累乗＋１)の倍数規則パケット)であるか否かを判定する（ステップＳ２０２）。パケット長倍数規則識別子が『０』と判定された場合に（ステップＳ２０２肯定）、ステップＳ２０３へ移り、パケット長倍数規則識別子が『０』であると判定されなかった場合に（ステップＳ２０２否定）、ステップＳ２１１へ移る。
【００５８】
ステップＳ２０３では、除算処理部１０５ｂは、ワークメモリに記憶する変数であるＵ（非除算値）およびＶ（除算値）に、それぞれ『ＬＥＮ』および『Ｘ−１』（『Ｘ』は、図４に示される、２の累乗＋１の形の素数である）をセットし、ＵをＶで除算する。そして、除算結果である商および剰余を、ワークメモリに記憶する変数であるＭ、Ｎそれぞれにセットする。なお、剰余は、ｍｏｄ演算によって算出する。
【００５９】
続いて、正数判定処理部１０５ｃは、Ｍ−Ｎが０より大（すなわち、Ｍ−Ｎが正数）であるか否かを判定する（ステップＳ２０４）。Ｍ−Ｎが０より大であると判定された場合に（ステップＳ２０４肯定）、ステップＳ２０５へ移り、Ｍ−Ｎが０より大であると判定されなかった場合に（ステップＳ２０４否定）、ステップＳ２０７へ移る。
【００６０】
ステップＳ２０５では、除算処理部１０５ｂは、ＵにＭ−Ｎを上書きセットし、ＵをＶで除算する。そして、除算結果である商および剰余を、ワークメモリに記憶する変数であるＭ、Ｎそれぞれにセットする。
【００６１】
続いて、正数判定処理部１０５ｃは、Ｍ−Ｎが０より大であるか否かを判定する（ステップＳ２０６）。Ｍ−Ｎが０より大であると判定された場合に（ステップＳ２０６肯定）、ステップＳ２０５へ移り、Ｍ−Ｎが０より大であると判定されなかった場合に（ステップＳ２０６否定）、ステップＳ２０７へ移る。
【００６２】
ステップＳ２０７では、パケット長正常判定処理部１０５ｄは、Ｍ＝Ｎであるか否かを判定する。Ｍ＝Ｎであると判定された場合に（ステップＳ２０７肯定）、ステップＳ２０８へ移り、Ｍ＝Ｎであると判定されなかった場合に（ステップＳ２０７否定）、ステップＳ２０９へ移る。
【００６３】
ステップＳ２０８では、パケット長正常判定処理部１０５ｄは、判定結果に『判定ＯＫ（受信データのデータサイズが（２の累乗＋１）の倍数であり、正常である）』をセットする。また、ステップＳ２０９では、パケット長正常判定処理部１０５ｄは、判定結果に『判定ＮＧ（受信データのデータサイズが（２の累乗＋１）の倍数でなく、正常でない）』をセットする。
【００６４】
続いて、ステップＳ２１０では、パケット長正常判定処理部１０５ｄは、廃棄判定処理部１０１ａ−３に対して、上記判定結果を通知する。
【００６５】
一方、ステップＳ２１１では、ヘッダ情報判定処理部１０５ａは、パケット長倍数規則識別子が『１』(２の累乗の倍数規則パケット)であるか否かを判定する。パケット長倍数規則識別子が『１』と判定された場合に（ステップＳ２１１肯定）、ステップＳ２１２へ移り、パケット長倍数規則識別子が『１』であると判定されなかった場合に（ステップＳ２１１否定）、ステップＳ２１６へ移る。
【００６６】
ステップＳ２１２では、除算処理部１０５ｂは、ワークメモリに記憶する変数であるＵ（非除算値）およびＶ（除算値）に、それぞれ『ＬＥＮ』および『Ｙ』（『Ｙ』は、図４に示される、２の累乗の形の整数である）をセットし、剰余演算（ｍｏｄ演算）によりＵをＶで除算した剰余を算出する。そして、剰余演算結果である剰余を、ワークメモリに記憶する変数であるＰそれぞれにセットする。
【００６７】
続いて、パケット長正常判定処理部１０５ｄは、Ｐ＝０であるか否かを判定する（ステップＳ２１３）。Ｐ＝０であると判定された場合に（ステップＳ２１３肯定）、ステップＳ２１４へ移り、Ｐ＝０であると判定されなかった場合に（ステップＳ２１３否定）、ステップＳ２１５へ移る。
【００６８】
ステップＳ２１４では、パケット長正常判定処理部１０５ｄは、判定結果に『判定ＯＫ（受信データのデータサイズが２の累乗の倍数であり、正常である）』をセットする。また、ステップＳ２１５では、パケット長正常判定処理部１０５ｄは、判定結果に『判定ＮＧ（受信データのデータサイズが２の累乗の倍数でなく、正常でない）』をセットする。これらの処理が終了すると、ステップＳ２１０へ移る。
【００６９】
また、ステップＳ２１６では、パケット長正常判定処理部１０５ｄは、『ＬＥＮ』と、『Ｚ』（『Ｚ』は、図４に示される固定パケット長を示す整数である）とが等しいか否か（ＬＥＮ＝Ｚか否か）を判定する。ＬＥＮ＝Ｚであると判定された場合に（ステップＳ２１６肯定）、ステップＳ２１７へ移り、ＬＥＮ＝Ｚであると判定されなかった場合に（ステップＳ２１６否定）、ステップＳ２１８へ移る。
【００７０】
ステップＳ２１７では、パケット長正常判定処理部１０５ｄは、判定結果に『判定ＯＫ（受信データのデータサイズが、あらかじめレジスタ設定記憶部１０４に記憶されている固定パケット長の値に等しく、正常である）』をセットする。また、ステップＳ２１８では、パケット長正常判定処理部１０５ｄは、判定結果に『判定ＮＧ（受信データのデータサイズが、あらかじめレジスタ設定記憶部１０４に記憶されている固定パケット長の値に等しくなく、正常でない）』をセットする。これらの処理が終了すると、ステップＳ２１０へ移る。
【００７１】
上記ステップＳ２０２、ステップＳ２１１の処理のように、パケット長倍数規則識別子の値に応じて処理を分岐させるので、より効率的に受信データのデータサイズが正常であるか否かの判定をおこなうことが可能になる。
【００７２】
次に、図６に示したパケットチェック処理の具体例を説明する。図７−１は、５の倍数チェックを４の剰余演算で実現する計算例を示す図であり、図７−２は、９の倍数チェックを８の剰余演算で実現する計算例を示す図である。
【００７３】
先ず、図７−１を参照して、パケット長が０〜３１［Ｂｙｔｅ］である場合に、パケット長が５（＝２２＋１）の倍数であるか否かを２の累乗値である４（２２）を用いて判定する場合を説明する。パケット長が４、８、９、１２〜１４、１６〜３１［Ｂｙｔｅ］の場合は、パケット長を４で除算（１回目の除算）した結果の商Ｍ１と剰余Ｎ１とを比較したとき、Ｍ１＞Ｎ１（すなわち、Ｍ１−Ｎ１＞０）であるので、このＭ１−Ｎ１を４によって除算（２回目の除算）する。
【００７４】
この除算結果の商Ｍ２と剰余Ｎ２とを比較すると、パケット長が１６、２１、２６、３１の場合は、Ｍ２＞Ｎ２（すなわち、Ｍ−Ｎ＞０）であるので、このＭ２−Ｎ２を４によって除算（３回目の除算）する。すると、この除算結果の商Ｍ３と剰余Ｎ３とを比較すると、いずれも、Ｍ３＜Ｎ３（すなわち、Ｍ３−Ｎ３＜０）となるので、パケットチェック処理は終了し、いずれも、Ｍ３≠Ｎ３であるので、１６、２１、２６、３１は、いずれも５の倍数ではないと判定される。
【００７５】
また、パケット長が４、８、９、１２〜１４、１７〜１９、２２〜２４、２７〜２９の場合は、いずれも、２回目の除算で、Ｍ２＜Ｎ２（すなわち、Ｍ２−Ｎ２＜０）となるので、パケットチェック処理は終了し、いずれも、Ｍ２≠Ｎ２であるので、４、８、９、１２〜１４、１７〜１９、２２〜２４、２７〜２９は、いずれも５の倍数ではないと判定される。
【００７６】
また、パケット長が２０、２５、３０の場合は、いずれも、２回目の除算で、Ｍ２＝Ｎ２となるので、パケットチェック処理は終了し、２０、２５、３０は、いずれも５の倍数であると判定される。
【００７７】
また、パケット長が１〜３、６、７、１１の場合は、いずれも、１回目の除算で、Ｍ１＜Ｎ１（すなわち、Ｍ１−Ｎ１＜０）となるので、パケットチェック処理は終了し、いずれも、Ｍ１≠Ｎ１であるので、１〜３、６、７、１１は、いずれも５の倍数ではないと判定される。
【００７８】
また、パケット長が０、５、１０、１５の場合は、いずれも、１回目の除算で、Ｍ１＝Ｎ１となるので、パケットチェック処理は終了し、０、５、１０、１５は、いずれも５の倍数であると判定される。
【００７９】
同様に、図７−２を参照して、パケット長が０〜３１［Ｂｙｔｅ］である場合に、パケット長が９（＝２３＋１）の倍数であるか否かを２の累乗値である８（２３）を用いて判定する場合を説明する。パケット長が８、１６、１７、２４〜２６［Ｂｙｔｅ］の場合は、パケット長を８で除算（１回目の除算）した結果の商Ｍ１と剰余Ｎ１とを比較したとき、Ｍ１＞Ｎ１（すなわち、Ｍ１−Ｎ１＞０）であるので、このＭ１−Ｎ１を８によって除算（２回目の除算）する。
【００８０】
この除算結果の商Ｍ２と剰余Ｎ２とを比較すると、いずれも、Ｍ２＜Ｎ２（すなわち、Ｍ２−Ｎ２＜０）となるので、パケットチェック処理は終了し、いずれも、Ｍ３≠Ｎ３であるので、８、１６、１７、２４〜２６は、いずれも９の倍数ではないと判定される。
【００８１】
また、パケット長が１〜８、１０〜１５、１９〜２３、２８〜３１の場合は、いずれも、１回目の除算で、Ｍ１＜Ｎ１（すなわち、Ｍ１−Ｎ１＜０）となるので、パケットチェック処理は終了し、いずれも、Ｍ１≠Ｎ１であるので、１〜８、１０〜１５、１９〜２３、２８〜３１は、いずれも９の倍数ではないと判定される。
【００８２】
また、パケット長が０、９、１８、２７の場合は、いずれも、１回目の除算で、Ｍ１＝Ｎ１となるので、パケットチェック処理は終了し、０、９、１８、２７は、いずれも９の倍数であると判定される。
【００８３】
以上に示したパケットチェック処理（倍数判定処理）の妥当性を、以下に示す。ここで、受信パケットの実パケット長『ＬＥＮ』（非負の整数）を被除算数、２αを（αは自然数）除算数とし、被除算数を除算数で除算した商をＭ１、剰余をＮ１とすると、次式のようになる。
【００８４】
【数１】
0005169760.tif 000002
【００８５】
ここで、Ｍ１＞Ｎ１（すなわち、Ｍ１−Ｎ１＞０）が成り立つ場合は、Ｍ１−Ｎ１を被除算数とし、上記（１）式と同様に、２αを除算数として、被除算数を除算数で除算した商をＭ２、剰余をＮ２とすると、次式のようになる。
【００８６】
【数２】
0005169760.tif 000003
【００８７】
同様に、Ｍｉ−１＞Ｎｉ−１（すなわち、Ｍｉ−１−Ｎｉ−１＞０、ｉは３≦ｉ≦ｎ−１なる自然数，ｎは４以上の自然数）が成り立つ場合は、Ｍｉ−１−Ｎｉ−１を被除算数とし、上記（２）式と同様に、２αを除算数として、被除算数を除算数で除算した商をＭｉ、剰余をＮｉとすると、次式のようになる。
【００８８】
【数３】
0005169760.tif 000004
【００８９】
同様の演算を、ｉ＝ｎ（ｎは自然数）となるまでおこなった結果、被除算数を除算数で除算した商をＭｎ、剰余をＮｎとすると、Ｍｎ＜Ｎｎ（すなわち、Ｍｎ−Ｎｎ＜０）となったとする。この場合の、被除算数を除算数で除算した結果は、次式のようになる。
【００９０】
【数４】
0005169760.tif 000005
【００９１】
そして、上記（１）式、（２）式、３≦ｉ≦ｎ−１のすべてのｉにかかる（３）式および（４）式の辺々をそれぞれ加算して整理すると、次式のように、ＬＥＮを２α＋１で除算した商と剰余がわかる。
【００９２】
【数５】
0005169760.tif 000006
【００９３】
ここで、上記（５）式の剰余の２α、２αＭｎおよびＮｎは、いずれも２α＋１では割り切れないので、ＬＥＮが２α＋１で割り切れるためには、２αＭｎ＋Ｎｎが２α＋１では割り切れる、すなわち、次式に示すように、Ｍｎ＝Ｎｎが必要十分条件となる。
【００９４】
【数６】
0005169760.tif 000007
【００９５】
すなわち、Ｍｎ＝Ｎｎとすると、上記（５）式は、次式のようになり、ＬＥＮが２α＋１で割り切れる、すなわち、ＬＥＮが２α＋１の倍数であることになる。
【００９６】
【数７】
0005169760.tif 000008
【００９７】
上記実施例１は、次のような課題を解決するためになされた。従来から、例えば、携帯電話無線通信網のデータを処理する装置間通信およびＩＰパケットなどのデータを送受信する装置間通信において、パケット受信時にパケットの正当性をチェックするために、装置間で規定したパケット固有の長さの規則性（例えば５の倍数であるなど)に基づいた適合判定を行い、正当性を確認できたもののみパケットの処理を行い、対向装置へ送信されるようになっている。
【００９８】
従来の通信中継装置において、パケットの受信から送信までの制御は、以下の流れで処理をおこなっていた。通信装置から受信した受信パケットをハードウェア制御部で受信制御を行い、パケット長およびヘッダ情報をソフトウェア制御部へ通知する。
【００９９】
そして、ソフトウェア制御部は、ヘッダ情報からパケット種別を判別し、該当パケットの規則性に基づくパケット長の正当性チェックを行い、判定結果をハードウェア制御部へ通知する。
【０１００】
そして、ハードウェア制御部は、ソフトウェア制御部から受けた判定結果がＮＧであれば受信制御で受けたパケットを廃棄し、ＯＫであればパケット処理後、通信装置と対向する他の通信装置へ送信する。
【０１０１】
より高速かつ大容量のパケットを送受信処理する従来の通信装置において、パケット受信時の正常性チェック処理を、パケット受信の都度、ソフトウェアへ演算処理をおこなっていたので、通信装置としての処理性能（処理速度）のボトルネックとなっていた。
【０１０２】
また、従来の通信装置において、ある長さの倍数判定を行うための剰余演算処理をハードウェア制御で行うには、多大な回路規模を必要とし、制御が困難な場合がある。ある長さの倍数判定を行う処理をハードウェア回路で実現する場合、例えば、２の倍数であるか否かのチェックを行う際は、ｍｏｄ演算を用いて容易に判定が可能である。この場合は処理速度も低減することはない。これは二進数演算を得意とするハードウェア回路では、２の累乗の剰余演算は、非除算数の桁数に依存せず、割る値の最上位桁より上が商、下が剰余なので、容易に演算可能であるためである（例えば、１０２３（ｂ１１１１１１１１１１）÷４（ｂ１００）→商２５５（ｂ１１１１１１１１）、剰余３（ｂ１１))。
【０１０３】
しかしながら、５や９などの２の累乗＋１で表現される値の倍数チェックに、この処理を適用すると、処理負荷が大きくなるため、２の倍数チェック時と比べ処理速度が大幅に低下し、回路規模も増大するため、実装に適さない。
【０１０４】
上記実施例は、以上の課題を解決し、より簡易なアルゴリズムで倍数判定をおこなうため、例えば、受信パケットの正常性のチェックの際に、より処理負荷が軽く、また処理回路もより簡易な構成でハードウェア実装可能となるので、通信装置の処理能力を向上させることが可能になる。
【０１０５】
上記では、除算数を２αとした場合の議論をおこなったが、除算数の値の範囲を、すべての自然数にまで拡張することが可能である。以下では、除算数をすべての自然数とした場合の倍数判定処理の議論をおこなう。なお、２以上の自然数である『ＬＥＮ』が整数Ａ＋１（Ａは自然数）の倍数であるか否かを判定することを前提とする。
【０１０６】
『ＬＥＮ』を被除算数、Ａを除算数とし、被除算数を除算数で除算した商をＭ１、剰余をＮ１とすると、次式のようになる。
【０１０７】
【数８】
0005169760.tif 000009
【０１０８】
ここで、Ｍ１＞Ｎ１（すなわち、Ｍ１−Ｎ１＞０）が成り立つ場合は、Ｍ１−Ｎ１を被除算数とし、上記（８）式と同様に、Ａを除算数として、被除算数を除算数で除算した商をＭ２、剰余をＮ２とすると、次式のようになる。
【０１０９】
【数９】
0005169760.tif 000010
【０１１０】
同様に、Ｍｉ−１＞Ｎｉ−１（すなわち、Ｍｉ−１−Ｎｉ−１＞０、ｉは３≦ｉ≦ｎ−１なる自然数、ｎは４以上の自然数）が成り立つ場合は、Ｍｉ−１−Ｎｉ−１を被除算数とし、上記（９）式と同様に、Ａを除算数として、被除算数を除算数で除算した商をＭｉ、剰余をＮｉとすると、次式のようになる。
【０１１１】
【数１０】
0005169760.tif 000011
【０１１２】
同様の演算を、ｉ＝ｎ（ｎは自然数）となるまでおこなった結果、被除算数を除算数で除算した商をＭｎ、剰余をＮｎとすると、Ｍｎ＜Ｎｎ（すなわち、Ｍｎ−Ｎｎ＜０）となったとする。この場合の、被除算数を除算数で除算した結果は、次式のようになる。
【０１１３】
【数１１】
0005169760.tif 000012
【０１１４】
そして、上記（８）式、（９）式、３≦ｋ≦ｎのすべてのｋにかかる（１０）式および（１１）式の辺々をそれぞれ加算して整理すると、次式のように、ＬＥＮをＡ＋１で除算した商と剰余がわかる。
【０１１５】
【数１２】
0005169760.tif 000013
【０１１６】
ここで、上記（１２）式の剰余のＡ、ＡＭｎおよびＮｎは、いずれもＡ＋１では割り切れないので、ＬＥＮがＡ＋１で割り切れるためには、ＡＭｎ＋ＮｎがＡ＋１では割り切れる、すなわち、次式に示すように、Ｍｎ＝Ｎｎが必要十分条件となる。
【０１１７】
【数１３】
0005169760.tif 000014
【０１１８】
すなわち、Ｍｉ＝Ｎｉとすると、上記（１２）式は、次式のようになり、ＬＥＮがＡ＋１で割り切れる、すなわち、ＬＥＮがＡ＋１の倍数であることになる。
【０１１９】
【数１４】
0005169760.tif 000015
【０１２０】
数学的には、上記のアルゴリズムを利用して、自然数Ａが自然数Ｂの倍数であるか否かを判定することが可能である。しかし、現状の演算装置では、データを２進数で取り扱うため、２の累乗での除算であれば、高速におこなうことができるが、２の累乗以外の除算は、回路構成が大規模になり、演算速度が低くなる。よって、現状の演算装置では、除算数を２の累乗とする、ある自然数Ａが２の累乗＋１の倍数であるか否かを判定することが好適である。
【０１２１】
しかし、２ｎ（ｎは自然数）進数以外のｍ進数（ｍは３以上の自然数）の演算を高速におこなう演算回路であれば、上記のアルゴリズムを利用して、自然数Ａが自然数Ｂの倍数であるか否かを、コンパクトな回路構成の演算回路で、高速に判定することが可能である。
【実施例２】
【０１２２】
上記実施例１では、通信中継装置において受信パケットのパケット長が正常であるか否かを判定するパケット長正常判定処理をおこなう実施例を示したが、パケットチェック処理部１０１ａ−２は、ほぼ同様の構成で、倍数判定回路として実施することが可能である。
【０１２３】
先ず、実施例２にかかる倍数判定回路の構成について説明する。図８は、倍数判定回路の構成を示す機能ブロック図である。倍数判定回路２００は、除算処理部２０１と、正数判定処理部２０２と、倍数判定処理部２０３とを有する。
【０１２４】
除算処理部２０１は、被除算値および除算値を、それぞれ変数Ｕおよび変数Ｖとして、ワークメモリに記憶する。除算処理部２０１は、先ず、Ｕに、入力された被除算数Ａ（Ａは非負の整数）をセットする。続いて、除算処理部２０１は、Ｖに、入力された除算数Ｂ（Ｂは２以上の整数）から１を減算した値（Ｂ−１）をセットする。
【０１２５】
続いて、除算処理部２０１は、正数判定処理部２０２によって、ＵをＶで除算した結果の商Ｍ０から剰余Ｎ０を減算した減算結果（Ｍ０−Ｎ０）が正数であると判定されたならば（Ｍ０−Ｎ０＞０）、この減算結果（Ｍ０−Ｎ０）をＵに上書きセットする。
【０１２６】
続いて、除算処理部２０１は、ＵをＶで除算する。正数判定処理部２０２は、その商Ｍ１から剰余Ｎ１を減算した減算結果（Ｍ１−Ｎ１）が正数であるか否かを判定する。除算処理部２０１は、この減算結果（Ｍ１−Ｎ１）が整数であれば（Ｍ１−Ｎ１＞０）、この減算結果（Ｍ１−Ｎ１）をＵに上書きセットする。
【０１２７】
続いて、除算処理部２０１は、正数判定処理部２０２によって、ＵをＶで除算した結果の商から剰余を減算した減算結果が正数でないと判定されるまで、減算結果をＶで除算する処理を繰り返す。
【０１２８】
そして、倍数判定処理部２０３は、減算結果が正数でなくなったときの商および剰余の一致を判定し、一致すれば、『ＡがＢの倍数である』と判定し、一致しなければ、『ＡはＢの倍数でない』と判定して、判定結果を出力する。
【０１２９】
次に、実施例２にかかる倍数判定回路でおこなわれる倍数判定処理について説明する。図９は、実施例２にかかる倍数判定処理手順を示すフローチャートである。同図に示すように、先ず、除算処理部２０１は、ワークメモリに記憶する変数であるＵ（被除算値）およびＶ（除算値）に、それぞれ『Ａ』および『Ｂ−１』（『Ａ』および『Ｂ』は、それぞれ、入力された被除算数および除算数である）をセットし、ＵをＶで除算する。そして、除算結果である商および剰余を、ワークメモリに記憶する変数であるＭ、Ｎそれぞれにセットする（ステップＳ３０１）。なお、剰余は、ｍｏｄ演算によって算出する。
【０１３０】
続いて、正数判定処理部２０２は、Ｍ−Ｎが０より大（すなわち、Ｍ−Ｎが正数）であるか否かを判定する（ステップＳ３０２）。Ｍ−Ｎが０より大であると判定された場合に（ステップＳ３０２肯定）、ステップＳ３０３へ移り、Ｍ−Ｎが０より大であると判定されなかった場合に（ステップＳ３０２否定）、ステップＳ３０５へ移る。
【０１３１】
ステップＳ３０３では、除算処理部２０１は、ＵにＭ−Ｎを上書きセットし、ＵをＶで除算する。そして、除算結果である商および剰余を、ワークメモリに記憶する変数であるＭ、Ｎそれぞれにセットする。
【０１３２】
続いて、正数判定処理部２０２は、Ｍ−Ｎが０より大であるか否かを判定する（ステップＳ３０４）。Ｍ−Ｎが０より大であると判定された場合に（ステップＳ３０４肯定）、ステップＳ３０３へ移り、Ｍ−Ｎが０より大であると判定されなかった場合に（ステップＳ３０４否定）、ステップＳ３０５へ移る。
【０１３３】
ステップＳ３０５では、倍数判定処理部２０３は、Ｍ＝Ｎであるか否かを判定する。Ｍ＝Ｎであると判定された場合に（ステップＳ３０５肯定）、ステップＳ３０６へ移り、Ｍ＝Ｎであると判定されなかった場合に（ステップＳ３０５否定）、ステップＳ３０７へ移る。
【０１３４】
ステップＳ３０６では、倍数判定処理部２０３は、判定結果に『判定ＯＫ（ＡはＢの倍数である、すなわち、ＡはＢで割り切れる）』をセットする。また、ステップＳ３０７では、倍数判定処理部２０３は、判定結果に『判定ＮＧ（ＡはＢの倍数でない、すなわち、ＡはＢで割り切れない）』をセットする。
【０１３５】
続いて、ステップＳ３０８では、倍数判定処理部２０３は、外部装置へ、上記判定結果を出力する。
【０１３６】
なお、除算処理部２０１が、実施例１に示したレジスタ設定記憶部１０４と同様のレジスタ設定記憶部を含み、このレジスタ設定記憶部が、実施例１に示したレジスタ設定記憶テーブルと同様のテーブルを格納することとしてもよい。この場合、除算処理部２０１は、実施例２の倍数判定処理の最初で、実施例１のステップＳ２０１およびステップＳ２１１と同様の処理をおこなうこととなる。
【０１３７】
上記実施例２は、より簡易なアルゴリズムで倍数判定をおこなうため、例えば、画像入力装置または画像出力装置などで、画素の座標を決定する際に、より処理負荷が軽く、また処理回路もより簡易な構成でハードウェア実装可能となるので、画像入力装置および画像出力装置の処理能力を向上させることが可能になる。
【実施例３】
【０１３８】
次に、図１０〜図１３を参照して、実施例３にかかる通信中継装置の構成について説明する。実施例３は、パケット長倍数規則が（２α＋１）（ただし、αは自然数）の形式で表現される素数である場合を説明したが、実施例３では、パケット長倍数規則が（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される整数である場合を説明する。以下では、実施例１との差異部分のみについて説明する。
【０１３９】
図１０は、実施例３にかかるパケット長倍数規則識別子の一例を示す図である。同図に示すように、パケット長倍数規則識別子が『０』であれば、パケット長倍数規則性が『（２α＋２β）（Ｂｙｔｅ、ただし、α、βはα＞β≧０を満たす自然数、以下同様）の倍数』であり、パケット長倍数規則識別子が『１』であれば、パケット長倍数規則性が『２の累乗の倍数』であり、パケット長倍数規則識別子が『２』であれば、パケット長倍数規則性が『固定長』であることを示す。
【０１４０】
このとき、次式のように（２α＋２β）を変形する。
【０１４１】
【数１５】
0005169760.tif 000016
【０１４２】
そして、受信したパケット長ＬＥＮ（Ｂｙｔｅ）が（２α＋２β）で割り切れることと、受信したパケット長ＬＥＮが２βで割り切れ、かつ、（２α−β＋１）で割り切れることとは等価である。よって、受信したパケット長ＬＥＮが２βで割り切れ、かつ、（２α−β＋１）で割り切れるかを判定する。
【０１４３】
ＬＥＮが２βで割り切れるか否かの判定は、通常のシフト演算（ｍｏｄ演算）によりおこなう。ＬＥＮが２βで割り切れる場合、続いてＬＥＮが（２α−β＋１）で割り切れるかの判定は、実施例１に示した方式により行う。この様にして、実施例１に示した受信パケット長チェック処理を応用して、（２α＋２β）のパケット長倍数規則性を有する受信パケットのパケット長が正常であるか異常であるかを判定することが出来る。
【０１４４】
なお、図１１は、実施例３にかかるレジスタ設定記憶テーブルの一例を示す図である。同図には、上記図１０の説明で説明した『パケット長倍数規則識別子』及び対応するパケット長倍数規則値が格納されている。
【０１４５】
次に、図１２を参照して、実施例３にかかるパケットチェック処理手順について説明する。実施例３にかかるパケットチェック処理手順の説明は、実施例１にかかるパケットチェック処理手順との差異部分についてのみおこなう。同一の処理には同一のステップ番号を付与している。
【０１４６】
実施例３にかかるパケットチェック処理では、ステップＳ２０１に続き、ヘッダ情報判定処理部１０５ａは、パケット長倍数規則識別子が『０』(（２α＋２β）の倍数規則パケット)であるか否かを判定する（ステップＳ２０２ａ）。パケット長倍数規則識別子が『０』と判定された場合に（ステップＳ２０２ａ肯定）、ステップＳ２０２ｂへ移り、パケット長倍数規則識別子が『０』であると判定されなかった場合に（ステップＳ２０２ａ否定）、ステップＳ２１１ａへ移る。
【０１４７】
ステップＳ２０２ｂでは、ヘッダ情報判定処理部１０５ａは、（２α＋２β）のβが０であるか否かを判定する。（２α＋２β）のβが０であると判定された場合（ステップＳ２０２ｂ肯定）、ステップＳ２０３へ移り、（２α＋２β）のβが０であると判定されなかった場合（ステップＳ２０２ｂ否定）、ステップＳ２１１ａへ移る。なお、βが０である場合、以下、実施例１で示した（２α＋１）の倍数規則性判定処理と同様の処理を行う。
【０１４８】
ステップＳ２１１ａでは、ヘッダ情報判定処理部１０５ａは、受信パケット長が２γ（γ＞０）の倍数規則パケットであるか否かを判定する。受信パケット長が２γの倍数規則パケットであると判定された場合（ステップＳ２１１ａ肯定）、ステップＳ２１２へ移り、受信パケット長が２γの倍数規則パケットであると判定されなかった場合（ステップＳ２１１ａ否定）、ステップＳ２１６へ移る。なお、ステップＳ２１１ａは、図６のステップＳ２１１と実質的に同一である。
【０１４９】
ステップＳ２１４に続き、ステップＳ２１４ａでは、パケット長正常判定処理部１０５ｄは、Ｐ＝０であるか否かを判定する。Ｐ＝０であると判定された場合（ステップＳ２１４ａ肯定）、ステップＳ２１０へ移り、Ｐ＝０であると判定されなかった場合（ステップＳ２１４ａ否定）、ステップＳ２０３へ移る。
【０１５０】
図１３に示す様に、図示されている表においてハッチングされている部分がシフト演算（従来技術）、実施例１及び実施例３による倍数判定方式によって倍数規則性判定によるパケットチェック処理可能な自然数を表わしている。例えば、「５」は、従来技術ではシフト演算のみでは倍数規則性を判定できなかったが、実施例１及び実施例３によって倍数規則性判定が可能となっている。
【０１５１】
さらに、例えば、「６」は、従来技術及び実施例１ではシフト演算のみでは倍数規則性を判定できなかったが、実施例３によって倍数規則性判定が可能となっている。同図に示す様に、例えば「１」から「１００」までの自然数のうち、従来技術では、７％の数値で
のみしか倍数規則性判定によるパケットチェック処理を行い得なかった。また、実施例１では、１３％の数値で倍数規則性判定によるパケットチェック処理を行い得る。さらに実施例３に示したパケット長チェック処理によって、２８％の数値で倍数規則性判定によるパケットチェック処理を行い得る。
【０１５２】
この様に、実施例３のパケットチェック方式では、シフト演算のみによるパケットチェック方式の４倍程度の数値で倍数規則性判定によるパケットチェック処理を行い得るので、柔軟に様々なパケット長の倍数規則性判定を高速に行うことが可能になる。よって、パケットチェック回路（または倍数判定回路）の規模縮小化及び省電力化の低減を図ることが出来る。
【０１５３】
図１４は、携帯電話のＬ２階層図と実施例１〜３の適用箇所を示す図である。携帯電話のＬａｙｅｒ２は、ＰＤＣＰ（Packet  Data  Convergence  Protocol、パケット圧縮・解凍機能、復号機能およびセル再選択機能）と、ＲＬＣ（Radio  Link  Control、無線リンク制御）と、ＭＡＣ（Media  Access  Control、媒体アクセス制御）の３つのサブレイヤに分かれる。
【０１５４】
ＰＤＣＰは、ＳＡＥ（System  Architecture  Evolution）  Bearersと、Radio  Bearersとで区切られるサブレイヤである。ＰＤＣＰは、ＲＯＨＣ（Robust  Header  Compression、ヘッダ圧縮機能）２０１ａ、・・・２０１ｎと、Security（復号機能）２０２ａ、・・・、２０２ｎとを有する。
【０１５５】
ＲＬＣは、Radio  Bearersと、Logical  Channels（論理チャネル制御機能）２０４とで区切られるサブレイヤである。ＲＬＣは、Segment  ARQ（Automatic  Repeat  Request：自動再送制御機能）２０３ａ、・・・、２０３ｎを有する。
【０１５６】
Logical  Channels２０４は、実施例１〜３を適用した通信装置１００を含む。すなわち、実施例１〜３は、Logical  Channels２０４において、ＭＡＣ〜ＲＬＣ間で受信されたパケット長チェックに適用される。
【０１５７】
ＭＡＣは、Logical  Channels２０４と、Transport  Channelsとで区切られるサブレイヤである。ＭＡＣは、Scheduling／Priority  Handling（スケジュールおよび優先制御機能）２０５と、Multiplexing（出力分岐スイッチ）２０６と、ＨＡＲＱ（Hybrid  Automatic  Repeat  Request、再送制御機能）２０７とを有する。
【０１５８】
上記実施例１〜実施例３で示した倍数判定方法は、整数Ａが整数Ｂの倍数であるか否か（すなわち、ＡがＢで割り切れるか否か）を判定するために、先ず、Ａを（Ｂ−１）で除算して、その商Ｍ１および剰余Ｎ１の差（Ｍ１−Ｎ１）が正であれば、（Ｍ１−Ｎ１）を（Ｂ−１）で除算する。そして、この除算結果である商Ｍ２および剰余Ｎ２の差（Ｍ２−Ｎ２）が正であれば、さらに（Ｍ２−Ｎ２）を（Ｂ−１）で除算する。
【０１５９】
そして、商と剰余の差が正である限り、商および剰余の差を（Ｂ−１）で除算し続け、商および剰余の差が初めて正でなくなったときの商と剰余とが一致するか否かを判定する。そして、商および剰余の差が初めて正でなくなったときの商と剰余とが一致する場合は、ＡがＢの倍数である（すなわち、ＡがＢで割り切れる）と判定され、商と剰余の差が初めて正でなくなったときの商と剰余とが一致しない場合は、ＡがＢの倍数でない（すなわち、ＡがＢで割り切れない）と判定される。
【０１６０】
このようにすると、簡単で、計算量の少ない計算で、整数Ａが整数Ｂの倍数であるか否か（すなわち、ＡがＢで割り切れるか否か）を判定することが可能になる。倍数判定のアルゴリズムが簡易となるため、ハードウェア実装した場合にも、回路構成が簡易となるうえ、処理速度が格段に向上する。なお、ソフトウェア実装した場合であっても、ソフトウェアがコンパクトとなり、ハードウェア実装には及ばないものの、処理速度の向上が期待できる。
【０１６１】
以上、本発明の実施例を説明したが、本発明は、これに限られるものではなく、特許請求の範囲に記載した技術的思想の範囲内で、更に種々の異なる実施例で実施されてもよいものである。また、実施例に記載した効果は、これに限定されるものではない。
【０１６２】
また、上記実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記実施例で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【０１６３】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示のように構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１６４】
以上の実施例１〜実施例３を含む実施形態に関し、さらに以下の付記を開示する。
【０１６５】
（付記１）対向する通信装置から受信した受信データのデータサイズが（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、
被除算数に値を設定する被除算数設定部と、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定部と、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定部と、
前記剰余判定部によって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定部と、
前記第二除算数設定部によって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部と
を有し、
前記剰余判定部は、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、
前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする通信装置。
【０１６６】
（付記２）対向する通信装置から受信した受信データのデータサイズが（２α＋１）（ただし、αは自然数）の形式で表現される素数である所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、
被除算数に値を設定する被除算数設定部と、
前記素数から１を減算した値である前記２αを除算数に設定する除算数設定部と、
前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部と
を有し、
前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする通信装置。
【０１６７】
（付記３）対向する通信装置から受信した受信データのデータサイズが所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置であって、
被除算数に値を設定する被除算数設定部と、
前記所定整数から１を減算した値を除算数に設定する除算数設定部と、
前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定部と
を有し、
前記被除算数設定部は、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合は、前記減算結果を前記被除算数に設定する
ことを特徴とする通信装置。
【０１６８】
（付記４）前記除算部は、ｍｏｄ演算によって前記剰余を算出することを特徴とする付記１、２または３に記載の通信装置。
【０１６９】
（付記５）複数の前記所定整数の候補値を書き換え可能に記憶するレジスタ部と、
前記受信データのデータサイズの種別に応じて、前記レジスタ部によって記憶される複数の前記所定整数の候補値から一の候補値を選択して前記所定整数とする候補値選択部と
をさらに有することを特徴とする付記１〜４の何れか一つに記載の通信装置。
【０１７０】
（付記６）対向する通信装置から受信した受信データのデータサイズが、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置がおこなう受信データサイズチェック方法であって、
被除算数に値を設定する被除算数設定ステップと、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定ステップと、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定ステップと、
前記剰余判定ステップによって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定ステップと、
前記第二除算数設定ステップによって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定ステップと
を有し、
前記剰余判定ステップは、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、
前記被除算数設定ステップは、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする受信データサイズチェック方法。
【０１７１】
（付記７）対向する通信装置から受信した受信データのデータサイズが（２α＋１）（ただし、αは自然数）の形式で表現される素数である所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置がおこなう受信データサイズチェック方法であって、
被除算数に値を設定する被除算数設定ステップと、
前記素数から１を減算した値である前記２αを除算数に設定する除算数設定ステップと、
前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって、前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定ステップと
を含み、
前記被除算数設定ステップは、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする受信データサイズチェック方法。
【０１７２】
（付記８）対向する通信装置から受信した受信データのデータサイズが所定整数の倍数であるか否かを判定することによって、前記受信データのデータサイズが正常であるか否かを判定する通信装置がおこなう受信データサイズチェック方法であって、
被除算数に値を設定する被除算数設定ステップと、
前記所定整数から１を減算した値を除算数に設定する除算数設定ステップと、
前記被除算数設定ステップによって前記被除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定ステップと
を含み、
前記被除算数設定ステップは、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする受信データサイズチェック方法。
【０１７３】
（付記９）第一の整数が、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される第二の整数の倍数であるか否かを判定する倍数判定回路であって、
被除算数に値を設定する被除算数設定部と、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定部と、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定部と、
前記剰余判定部によって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定部と、
前記第二除算数設定部によって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定部と
を有し、
前記剰余判定部は、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定し、
前記被除算数設定部は、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定回路。
【０１７４】
（付記１０）第一の整数が、（２α＋１）（ただし、αは自然数）の形式で表現される素数である第二の整数の倍数であるか否かを判定する倍数判定回路であって、
被除算数に値を設定する被除算数設定部と、
前記第二の整数から１を減算した値である前記２αを除算数に設定する除算数設定部と、
前記被除算数設定部によって前記被除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定部と
を有し、
前記被除算数設定部は、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定回路。
【０１７５】
（付記１１）第一の整数が第二の整数の倍数であるか否かを判定する倍数判定回路であって、
除算数に前記第二の整数から１を減算した値を設定する除算数設定部と、
被除算数に値を設定する被除算数設定部と、
前記被除算数設定部によって前記被除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算部と、
前記除算部によって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定部と、
前記正数判定部によって前記減算結果が正数であると判定されなかった場合、前記除算部によって算出された前記商および前記剰余の一致を判定する一致性判定部と、
前記一致性判定部によって、前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定部と
を有し、
前記被除算数設定部は、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定部によって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定回路。
【０１７６】
（付記１２）前記除算部は、ｍｏｄ演算によって前記剰余を算出することを特徴とする付記９、１０または１１に記載の倍数判定回路。
【０１７７】
（付記１３）複数の前記第二の整数の候補値を書き換え可能に記憶するレジスタ部と、
前記第一の整数の種別に応じて、前記レジスタ部によって記憶される複数の前記第二の整数の候補値から一の候補値を選択して前記第二の整数とする候補値選択部と
をさらに有することを特徴とする付記９〜１２の何れか一つに記載の倍数判定回路。
【０１７８】
（付記１４）第一の整数が、（２α＋２β）（ただし、α、βはα＞β≧０を満たす自然数）の形式で表現される第二の整数の倍数であるか否かを判定する倍数判定方法であって、
被除算数に値を設定する被除算数設定ステップと、
前記２α＋２βを２β（２α−β＋１）と変形したものを除算数に設定する第一除算数設定ステップと、
前記被除算数を前記２β（２α−β＋１）の因数である前記２βで除算した剰余が０であるか否かを判定する剰余判定ステップと、
前記剰余判定ステップによって前記被除算数を前記２βで除算した剰余が０であると判定された場合、前記２β（２α−β＋１）の因数である前記（２α−β＋１）から１を減算した２α−βを前記除算数に設定する第二除算数設定ステップと、
前記第二除算数設定ステップによって前記除算数に値が設定されると、前記被除算数を前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって前記商および前記剰余が一致すると判定された場合、前記受信データのデータサイズが正常であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記受信データのデータサイズが正常でないと判定するデータサイズ正常判定ステップと
を含み、
前記剰余判定ステップは、前記被除算数を前記２βで除算した剰余が０であると判定しなかった場合、前記受信データのデータサイズが正常でないと判定し、
前記被除算数設定ステップは、前記被除算数に初期値として前記受信データのデータサイズを設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定方法。
【０１７９】
（付記１５）第一の整数が、（２α＋１）（ただし、αは自然数）の形式で表現される素数である第二の整数の倍数であるか否かを判定する倍数判定回路がおこなう倍数判定方法であって、
除算数に前記第二の整数から１を減算した値である前記２αを設定する除算数設定ステップと、
被除算数に値を設定する被除算数設定ステップと、
前記被除算数設定ステップによって前記被除算数に値が設定されると、前記被除算数を、前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって、前記商および前記剰余が一致すると判定された場合、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定ステップと
を含み、
前記被除算数設定ステップは、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合、前記減算結果を前記被除算数に設定する
ことを特徴とする倍数判定方法。
【０１８０】
（付記１６）第一の整数が第二の整数の倍数であるか否かを判定する倍数判定回路がおこなう倍数判定方法であって、
除算数に前記第二の整数から１を減算した値を設定する除算数設定ステップと、
被除算数に値を設定する被除算数設定ステップと、
前記被除算数設定ステップによって前記被除算数に値が設定されると、前記被除算数を、前記除算数で除算した商および剰余を算出する除算ステップと、
前記除算ステップによって算出された前記商から前記剰余を減算した減算結果が正数であるか否かを判定する正数判定ステップと、
前記正数判定ステップによって前記減算結果が正数であると判定されなかった場合に、前記除算ステップによって算出された前記商および前記剰余の一致を判定する一致性判定ステップと、
前記一致性判定ステップによって、前記商および前記剰余が一致すると判定された場合に、前記第一の整数が前記第二の整数の倍数であると判定し、前記商および前記剰余が一致すると判定されなかった場合に、前記第一の整数が前記第二の整数の倍数でないと判定する倍数判定ステップと
を含み、
前記被除算数設定ステップは、前記被除算数に初期値として前記第一の整数を設定するとともに、前記正数判定ステップによって前記減算結果が正数であると判定された場合には、前記減算結果を前記被除算数に設定することを特徴とする倍数判定方法。
【産業上の利用可能性】
【０１８１】
本発明は、通信装置において、簡易な構成で、パケット長のチェック処理などに必要な倍数判定処理回路を、コンパクトなハードウェアで実現し、倍数判定処理を高速におこないたい場合に有用である。
【図面の簡単な説明】
【０１８２】
【図１】実施例１にかかる通信中継装置の構成を示す機能ブロック図である。
【図２】実施例１にかかる通信中継装置のパケット受信制御部の構成を示す機能ブロック図である。
【図３−１】パケットフォーマットの一例を示す図である。
【図３−２】パケット長倍数規則識別子の一例を示す図である。
【図４】レジスタ設定記憶テーブルの一例を示す図である。
【図５】実施例１にかかる通信中継処理を示すシーケンス図である。
【図６】実施例１にかかるパケットチェック処理手順を示すフローチャートである。
【図７−１】５の倍数チェックを４の剰余演算で実現する計算例を示す図である。
【図７−２】９の倍数チェックを８の剰余演算で実現する計算例を示す図である。
【図８】実施例２にかかる倍数判定回路の構成を示す機能ブロック図である。
【図９】実施例２にかかる倍数判定処理手順を示すフローチャートである。
【図１０】実施例３にかかるパケット長倍数規則識別子の一例を示す図である。
【図１１】実施例３にかかるレジスタ設定記憶テーブルの一例を示す図である。
【図１２】実施例３にかかるパケットチェック処理手順を示すフローチャートである。
【図１３】実施例１および実施例３にかかるパケットチェック処理が適用可能な数値例を示す図である。
【図１４】携帯電話のＬ２階層図と実施例１〜３の適用箇所を示す図である。
【符号の説明】
【０１８３】
１００    通信中継装置
１０１、１０２    パケット中継処理部
１０１ａ、１０２ａ    パケット受信制御部
１０１ａ−１    パケット受信部
１０１ａ−２    パケットチェック処理部
１０１ａ−３    廃棄判定処理部
１０１ｂ、１０２ｂ    パケット処理部
１０１ｃ、１０２ｃ    パケット送信制御部
１０３    制御部
１０４    レジスタ設定記憶部
１０５ａ    ヘッダ情報判定処理部
１０５ｂ    除算処理部
１０５ｃ    正数判定処理部
１０５ｄ    パケット長正常判定処理部
２００    倍数判定回路
２０１    除算処理部
２０２    正数判定処理部
２０３    倍数判定処理部
２０１ａ、・・・、２０１ｎ    ＲＯＨＣ
２０２ａ、・・・、２０２ｎ    Security
２０２ａ、・・・、２０３ｎ    Segment  ARQ
２０４    Logical  Channels
２０５    Scheduling／Priority  Handling
２０６    Multiplexing
２０７    ＨＡＲＱ
３００ａ、３００ｂ    通信装置
【図１】
0005169760.tif 000017
【図２】
0005169760.tif 000018
【図３−１】
0005169760.tif 000019
【図３−２】
0005169760.tif 000020
【図４】
0005169760.tif 000021
【図５】
0005169760.tif 000022
【図６】
0005169760.tif 000023
【図７−１】
0005169760.tif 000024
【図７−２】
0005169760.tif 000025
【図８】
0005169760.tif 000026
【図９】
0005169760.tif 000027
【図１０】
0005169760.tif 000028
【図１１】
0005169760.tif 000029
【図１２】
0005169760.tif 000030
【図１３】
0005169760.tif 000031
【図１４】
0005169760.tif 000032