(57)【要約】【課題】【解決手段】  ＣＲＣエラー検出コードの計算に並列計算（４）を使用する計算手段（２）と、ＣＲＣエラー検出方法論を使ってＣＲＣエラー検出コードの計算に要する計算手段の設定を決定し、計算手段を設定（２５）する、設定手段（３）を有し、ＣＲＣエラー検出方法論を実装し、方法に応じてデータのＣＲＣエラー検出コードを計算する装置（１）であって、設定手段は、複数のＣＲＣエラー検出方法論のそれぞれを使って、各方法に応じたＣＲＣエラー検出コードの並列計算に要する計算手段の設定を決定し、計算手段は、各ＣＲＣエラー検出コードの並列計算の設定を可能に構成されている。【選択図】図１
2009534895.tif 000002
【特許請求の範囲】
【請求項１】
並列計算を用いて周期的冗長検査（以下「ＣＲＣ」という）エラー検出コードを計算する計算手段と、
ＣＲＣエラー検出方法論を用いて、ＣＲＣエラー検出コードの計算に必要な前記計算手段の設定を決定し、それに応じて前記計算手段を設定する、コンフィギュレータ手段（以下「設定手段」という）とを備え、
前記ＣＲＣエラー検出方法論に従ってデータのＣＲＣエラー検出コードを計算するため、前記方法論を実装したＣＲＣエラー検出装置であって、
前記設定手段は、複数のＣＲＣエラー検出方法論をそれぞれ用いて、各方法論に応じたＣＲＣエラー検出コードの並列計算に必要な前記計算手段の設定を決定することができ、
前記計算手段は、各ＣＲＣエラー検出コードの並列計算の設定が可能になっていることを特徴とするＣＲＣエラー検出装置。
【請求項２】
前記計算手段は複数のコンフィギュラブル要素（以下「設定可能要素」という）を有することを特徴とする請求項１記載のＣＲＣエラー検出装置。
【請求項３】
前記設定可能要素の少なくともいくつかの設定は、前記ＣＲＣエラー検出方法論のうちのひとつを用いて前記設定手段により決定されることを特徴とする請求項２記載のＣＲＣエラー検出装置。
【請求項４】
前記設定可能要素の少なくともいくつかは、各設定可能要素がデータの一部を受信し、ＣＲＣエラー検出コードの計算においてデータの一部を使用する、またはＣＲＣエラー検出コードの計算においてデータの一部を使用しないように設定可能であることを特徴とする請求項２または３記載のＣＲＣエラー検出装置。
【請求項５】
前記設定可能要素の少なくともいくつかは、各設定可能要素がデータの一部を受信するデータ経路回路を有し、前記回路が、ＣＲＣエラー検出コードの計算においてデータの一部を使用する、またはＣＲＣエラー検出コードの計算においてデータの一部を使用しないように設定可能であることを特徴とする請求項２乃至４のいずれかに記載のＣＲＣエラー検出装置。
【請求項６】
前記データ経路回路の少なくともいくつかは、ＸＯＲゲート及び設定可能装置を有することを特徴とする請求項５記載のＣＲＣエラー検出装置。
【請求項７】
前記データ経路回路の少なくともいくつかは、それぞれ、前記ＸＯＲゲートがデータの一部を受信し該データをＸＯＲ機能において使用し、前記データ経路回路が設定可能であり、前記ＸＯＲゲートのＸＯＲ機能より信号結果を出力するよう前記設定可能装置を設定して、ＣＲＣエラー検出コードの計算をするにおいてデータの該一部が使用されることを特徴とする請求項６記載のＣＲＣエラー検出装置。
【請求項８】
前記データ経路回路の少なくともいくつかは、それぞれ、前記ＸＯＲゲートがデータの一部を受信し該データをＸＯＲ機能において使用し、前記データ経路回路が設定可能であり、前記ＸＯＲゲートのＸＯＲ機能より信号結果を出力しないよう前記設定可能装置を設定して、ＣＲＣエラー検出コードの計算においてデータの該一部が使用されないことを特徴とする請求項６記載のＣＲＣエラー検出装置。
【請求項９】
前記設定可能装置は前記装置により受信された信号を出力することを特徴とする、請求項８記載のＣＲＣエラー検出装置。
【請求項１０】
前記設定可能要素の少なくともいくつかは、それぞれ制御経路回路を有することを特徴とする請求項２乃至９のいずれかに記載のＣＲＣエラー検出装置。
【請求項１１】
前記制御経路回路の少なくともいくつかは、設定可能装置を有することを特徴とする請求項１０記載のＣＲＣエラー検出装置。
【請求項１２】
前記制御経路回路の少なくともいくつかは、装置構成レジスタを有することを特徴とする請求項１０または１１記載のＣＲＣエラー検出装置。
【請求項１３】
前記設定可能要素の少なくともいくつかのそれぞれは、要素の前記制御経路回路がその要素のデータ経路回路の設定を制御することを特徴とする請求項５乃至１２のいずれかに記載のＣＲＣエラー検出装置。
【請求項１４】
前記設定可能要素の少なくともいくつかのそれぞれは、要素の前記制御経路回路がその要素のデータ経路回路の設定可能装置の設定を制御することを特徴とする請求項１３記載のＣＲＣエラー検出装置。
【請求項１５】
前記設定可能要素の少なくともいくつかのそれぞれは、要素の前記制御経路回路の設定可能装置が、前記要素の制御経路回路の装置構成レジスタの操作を制御して、前記要素のデータ経路回路の設定可能装置の設定を制御することを特徴とする請求項１４記載のＣＲＣエラー検出装置。
【請求項１６】
前記設定可能要素は相互接続された要素配列を有することを特徴とする請求項２乃至１５のいずれかに記載のＣＲＣエラー検出装置。
【請求項１７】
前記要素配列の各行は、一行の要素が相互接続され、ＣＲＣエラー検出コードの一部を集合的に計算することを特徴とする請求項２乃至１５のいずれかに記載のＣＲＣエラー検出装置。
【請求項１８】
前記要素配列の各行は、ＣＲＣエラー検出コードの計算においてデータを使うと設定された一行の各要素が受信したデータが結合され、ＣＲＣエラー検出コードの一部を計算することを特徴とする請求項１６または１７に記載のＣＲＣエラー検出装置。
【請求項１９】
前記要素配列の各行は、一行の前記要素が相互接続され、設定手段から設定データを受信することを特徴とする請求項１６乃至１８のいずれかに記載のＣＲＣエラー検出装置。
【請求項２０】
前記設定可能要素配列の各列は、ＣＲＣエラー検出コードの並列計算のためデータの一部を受信することを特徴とする請求項１６乃至１９のいずれかに記載のＣＲＣエラー検出装置。
【請求項２１】
前記要素配列の各列は、列の前記要素が相互接続され、前記設定手段から設定制御信号を受信することを特徴とする請求項１６乃至２０のいずれかに記載のＣＲＣエラー検出装置。
【請求項２２】
前記計算手段は、ひとつ以上のデータのブロックをふたつ以上の入力装置を用いて受信することを特徴とする請求項１乃至２１のいずれかに記載のＣＲＣエラー検出装置。
【請求項２３】
前記計算手段により受信されたブロックのサイズは、前記計算手段の入力装置の数以下であることを特徴とする請求項２２記載のＣＲＣエラー検出装置。
【請求項２４】
データを受信しない前記または各入力装置は低信号を出力するようにプログラム可能であることを特徴とする請求項２３記載のＣＲＣエラー検出装置。
【請求項２５】
前記計算手段は、ひとつ以上のフィードバック装置を有し、そのうちすくなくともいくつかは、計算されたＣＲＣエラー検出コードの一部を計算手段にフィードバックすることを特徴とする請求項１乃至２４のいずれかに記載のＣＲＣエラー検出装置。
【請求項２６】
前記計算手段は、第１データブロックを用いて第１ＣＲＣエラー検出コードを計算し、前記第１ＣＲＣエラー検出コードを前記計算手段にフィードバックし、それを第２データブロックと結合し、該結合した第２データブロックと前記第１ＣＲＣエラー検出コードを用いて第２ＣＲＣエラー検出コードを計算し、このプロセスを全データが使われ最終ＣＲＣエラー検出コードを計算するするまで継続し、前記最終ＣＲＣエラー検出コードを出力することを特徴とする請求項２５記載のＣＲＣエラー検出装置。
【請求項２７】
前記計算手段は、入力装置の適切な装置をプログラムし前記計算手段のフィードバック装置の適切な装置をプログラムすることにより、可変数のブロックを有するデータを受信するようプログラム可能であることを特徴とする請求項２５または２６に記載のＣＲＣエラー検出装置。
【請求項２８】
それぞれが所定のサイズのＣＲＣ生成多項式を用いた複数のＣＲＣエラー検出方法論を実装するよう設定可能であることを特徴とする請求項１乃至２７のいずれかに記載のＣＲＣエラー検出装置。
【請求項２９】
前記設定手段はＣＲＣエラー検出方法論のＣＲＣ生成多項式を用いて、ＣＲＣエラー検出コードを計算するに要する前記計算手段の設定を決定する、ＣＲＣ  Ｄマトリックスを計算することを特徴とする請求項２８記載のＣＲＣエラー検出装置。
【請求項３０】
前記Ｄマトリックスは０ｓ及び１ｓの一列を有し、１ｓの位置が、前記ＣＲＣエラー検出コードの計算においてデータを使用する前記計算手段の設定可能要素の所要配置を示し、０ｓの位置が、前記ＣＲＣエラー検出コードの計算においてデータを使用しない前記計算手段の設定可能要素の所要配置を示すことを特徴とする請求項２９記載のＣＲＣエラー検出装置。
【請求項３１】
ハードウェア・デバイスを有することを特徴とする請求項１乃至３０のいずれかに記載のＣＲＣエラー検出装置。
【請求項３２】
プロトコロル・プロセッサの一部を有することを特徴とする請求項１乃至３１のいずれかに記載のＣＲＣエラー検出装置。
【請求項３３】
ＣＲＣエラー検出方法論に応じたデータ用のＣＲＣエラー検出コード計算方法おいて、請求項１乃至３２のいずれかに記載の装置を使い、前記ＣＲＣエラー検出方法論を実装し、前記ＣＲＣエラー検出コードを計算することを有することを特徴とするＣＲＣエラー検出コード計算方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば通信ネットワーク等におけるデータのためのエラー検出コードを計算するためのＣＲＣエラー検出装置およびＣＲＣエラー検出コード計算方法に関する。
【背景技術】
【０００２】
通信ネットワークにおいてデータ保全は最も重要とされ、データが的確に送受信されることが必要不可欠である。しかし、例えばキャリア媒体でのノイズが送信データに影響し、エラーを加えることがある。そのため、送信データのエラー検出のために多くの方法論が展開されてきた。
【０００３】
そのような方法論の一つとして、ＣＲＣが知られている。これはエラー検出方法論として周知であり広く使用されており、特にデータリンク層プロトコルを使って送信されたデータ・ペイロードにおけるビット・エラーの検出に用いられる。そのＣＲＣエラー検出方法論は、データのエラー検出コードの計算に用いられ、そのエラー検出コードは概してデータ及び共に送信されたコードとデータに付加にされる。データとエラー検出コードの受信時、コードは、送信中にデータにエラーが発生したかどうかを決定するために使われる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
大なり小なり有効性のある数多くのエラー検出コード計算装置が提案されてきたが、通信ネットワークの多くの要素やそうしたネットワークの用法が増え続ける中、エラー検出コード計算の改善が望ましくなっている。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によれば、並列計算を用いてＣＲＣエラー検出コードを計算する計算手段と、ＣＲＣエラー検出方法論を用いて、ＣＲＣエラー検出コードを計算するのに要求される前記計算手段の設定を決定し、それに応じて前記計算手段を設定する設定手段と、を有し、ＣＲＣエラー検出方法論を実装してＣＲＣエラー検出コードを計算するＣＲＣエラー検出装置において、設定手段は、複数のＣＲＣエラー検出方法論をそれぞれ用いて、各方法論に応じたＣＲＣエラー検出コードの並列計算に要される計算手段の設定を決定し、計算手段は、各ＣＲＣエラー検出コードの並列計算を行うために設定可能に構成されている。
【０００６】
本装置は多様なＣＲＣエラー検出方法論を実装するよう構成されているため、様々なＣＲＣエラー検出方法論が要求される多様なアプリケーションに使うことができる。例えば、通信ネットワークは多くの送信プロトコルを使い、これらは概してエラー検出と関連している。プロトコルには大きく差異があり、新しいプロトコルが絶えず作られ、またレガシー・プロトコルを維持する必要から、通信ネットワークのプロトコル・カバレッジの最大化が要求されている。プロトコル・カバレッジの最大化の方法のひとつは、プロトコルのエラー検出においてコンフィギュラビリティを取り入れることである。
【０００７】
本装置はハードウェア装置を有することができる。計算手段及び設定手段はそのハードウェア装置に実装される。
【０００８】
計算手段は複数の設定可能要素を有することができる。各要素の設定は、ＣＲＣエラー検出方法論のひとつを用いて設定手段により決定できる。各要素はデータの一部を受信し、ＣＲＣエラー検出コードの計算においてデータの一部を使用する、またはＣＲＣエラー検出コードの計算においてデータの一部を使用しないように設定可能にできる。
【０００９】
設定可能要素の少なくともいくつかは、それぞれ、各設定可能要素がデータの一部を受信できるデータ経路回路を有し、ＣＲＣエラー検出コードの計算においてデータの一部を使用する、またはＣＲＣエラー検出コードの計算においてデータの一部を使用しないように設定可能にできる。データ経路回路の少なくともいくつかは、ＸＯＲゲートを有することができる。データ経路回路の少なくともいくつかは、設定可能マルチプレクサのような、設定可能装置を有することができる。データ経路回路の少なくともいくつかは、それぞれ、ＸＯＲゲートがデータの一部を受信し該データをＸＯＲ機能において使用し、データ経路回路が設定可能であり、ＸＯＲゲートのＸＯＲ機能より信号結果を出力するよう設定可能装置を設定して、ＣＲＣエラー検出コードの計算においてデータの該一部が使用されるようにできる。データ経路回路の少なくともいくつかは、それぞれ、ＸＯＲゲートがデータの一部を受信し該データをＸＯＲ機能において使用し、データ経路回路が設定可能であり、ＸＯＲゲートのＸＯＲ機能より信号結果を出力しないよう設定可能装置を設定して、ＣＲＣエラー検出コードの計算をするにおいてデータの該一部が使用されないようにできる。設定可能装置がＸＯＲゲートのＸＯＲ機能より信号結果を出力しない場合、本装置は受信した信号を出力することができる。この場合、本装置を有する設定可能要素は入出力コネクションとして機能することができる。
【００１０】
設定可能要素の少なくともいくつかは、それぞれ制御経路回路を有することができる。制御経路回路の少なくともいくつかは、設定可能マルチプレクサのような、設定可能装置を有することができる。制御経路回路の少なくともいくつかは、設定レジスタを有することができる。設定可能要素の少なくともいくつかのそれぞれは、要素の制御経路回路がその要素のデータ経路回路の設定を制御することができる。設定可能要素の少なくともいくつかのそれぞれは、要素の制御経路回路がその要素のデータ経路回路の設定可能装置の設定を制御することができる。設定可能要素の少なくともいくつかのそれぞれは、要素の制御経路回路の設定可能装置が、その要素の制御経路回路の設定レジスタの操作を制御して、その要素のデータ経路回路の設定可能装置の設定を制御することができる。設定可能要素の少なくともいくつかのそれぞれは、要素の制御経路回路の設定可能装置を開始または停止させ、設定レジスタの操作を制御することができる。
【００１１】
設定可能要素は相互接続された要素配列を有することができる。要素配列の各行において、一行の要素は、ＣＲＣエラー検出コードの一部を集合的に計算するように相互接続される。要素配列の各行において、ＣＲＣエラー検出コードの計算でデータを使うように設定された一行の各要素が受信したデータは、ＣＲＣエラー検出コードの一部を計算するように結合される。要素配列の各行において、一行の要素は、設定手段から設定データを受信するように相互接続される。設定可能要素配列の各列は、ＣＲＣエラー検出コードの並列計算のためにデータの一部を受信する。要素配列の各列において、一列の要素は、それぞれデータの一部を受信するように相互接続される。要素配列の各列において、一列の要素は、設定手段から設定制御信号を受信するように相互接続される。
【００１２】
計算手段は、１個以上のデータブロックでデータを受信することができる。計算手段は、２個以上の入力装置を有してデータブロックを受信することができる。計算手段により受信されたブロックのサイズは、前記計算手段の入力装置の数と等しくなることができる。例えば、計算手段は、２からＮの範囲で入力装置数を提供することができる。計算手段により受信されたブロックのサイズは、前記計算手段の入力装置の数より下になることができる。データを受信しないその入力装置もしくは各入力装置は、低信号を出力するようプログラム可能にできる。プログラム可能な入力装置はプログラム可能なマルチプレクサを有することができる。プログラム可能な入力装置は、本発明のＣＲＣエラー検出装置の実行中にプログラム可能にできる。計算手段は、ひとつ以上の制御装置を有し、プログラム可能な入力装置のプログラミングを制御することができる。プログラム可能な入力装置を提供することは、計算手段によって様々なサイズのデータブロックの受信が可能であることを意味する。よって計算手段は様々な入力ポートサイズを持つ。特に、本装置は、２からＮの範囲、例えば４，８，１６，２４，３２，６４，１２８及びそれ以上のビットのうちのいずれか、のポートサイズを提供することができ、したがってその範囲のデータブロックを受信することができる。
【００１３】
計算手段は、出力レジスタのような、ひとつ以上の出力記憶装置を有することができる。その出力記憶装置または各出力記憶装置は計算されたエラー検出コードを受信し保存することができる。
【００１４】
計算手段は、ひとつ以上のフィードバック装置を有する。少なくともいくつかのフィードバック装置は、計算されたＣＲＣエラー検出コードの一部を計算手段にフィードバックすることができる。例えば、少なくともいくつかのフィードバック装置は、計算されたＣＲＣエラー検出コードの一部を、計算手段の入力装置の少なくともいくつかに、フィードバックすることができる。少なくともいくつかのフィードバック装置は、計算されたＣＲＣエラー検出コードの一部を、計算手段の設定可能要素の少なくともいくつかに、フィードバックすることができる。計算手段は、ＣＲＣエラー検出コードの一部が計算手段へフィードバックされるのを制御するのに用いられる、ひとつ以上の制御装置を有することができる。
【００１５】
好適な実施例において、計算手段は、第１データブロックを用いて第１ＣＲＣエラー検出コードを計算し、第１ＣＲＣエラー検出コードを計算手段にフィードバックし、それを第２データブロックと結合し、該結合した第２データブロックと第１ＣＲＣエラー検出コードを用いて第２ＣＲＣエラー検出コードを計算し、本プロセスを全データが使われ最終ＣＲＣエラー検出コードを計算するするまで継続し、最終ＣＲＣエラー検出コードを出力する。このようにして、全てのデータはＣＲＣエラー検出コードを計算するために使用される。
【００１６】
計算手段は、可変数のブロックを有するデータを受信するようプログラム可能にすることができる。これは、入力装置の適切なデバイスをプログラムし計算手段のフィードバック装置の適切なデバイスをプログラムすることにより、実行できる。例えば、入力装置により受信されたデータの最終ブロックが、その前に受信したブロックよりも小さくてもよい。計算手段は、本発明のＣＲＣエラー検出装置の実行中にプログラム可能である。本装置は、ビットや入力データのブロック・サイズにおけるこのばらつきを処理するようにプログラムできる。
【００１７】
設定手段は、計算手段の設定を決定するのに使用するＣＲＣエラー検出方法論の、ひとつ以上のパラメータを受信するのに使われる、インターフェースを有することができる。設定手段は、パラメータを保存するためのレジスタのような記憶装置をひとつ以上有することができる。設定手段は、ＣＲＣエラー検出方法論のパラメータを受信し、計算手段の設定を決定する、設定データ計算機を有することができる。設定手段は、設定信号及び設定制御信号をその設定のために計算手段に送る、設定回路を有することができる。
【００１８】
設定手段は、ＣＲＣエラー検出コードを計算するために計算手段の全ての設定可能要素に要する設定を決定し、計算手段の全ての要素を一緒に設定することができる。あるいは、設定手段は、ＣＲＣエラー検出コードを計算するために計算手段のいくつかの設定可能要素に要する設定を決定し、計算手段のこれらの要素を一緒に設定することができる。要素が配列（array）を有する場合、設定手段は、ＣＲＣエラー検出コードを計算するために列における要素に要する設定を決定し、列における全ての要素を一緒に設定することができる。設定手段は、列ごとに、計算手段の要素を設定することができる。
【００１９】
本発明のＣＲＣエラー検出装置は、それぞれが所定のサイズのＣＲＣ生成多項式、例えば４からＭの範囲、を用いた複数のＣＲＣエラー検出方法論を実装するよう設定可能にできる。
【００２０】
設定手段は、ＣＲＣ  Ｄマトリックスを計算するために、ＣＲＣエラー検出方法論のＣＲＣ生成多項式を用いることができる。Ｄマトリックスは、ＣＲＣエラー検出コードを計算するに要する計算手段の設定を決定することができる。設定手段は、Ｄマトリックスの行を計算し、これを計算手段の設定可能要素配列の対応する列を設定するのに使用する。Ｄマトリックスの各行（第一行は例外）の計算は前の行の計算結果に基づくので、これにより、設定手段におけるメモリを節約できる。Ｄマトリックスは０ｓ及び１ｓの一列を有し、１ｓの位置が、ＣＲＣエラー検出コードの計算においてデータを使用する計算手段の設定可能要素の所要位置を示し、０ｓの位置が、ＣＲＣエラー検出コードの計算においてデータを使用しない計算手段の設定可能要素の所要位置を示すことができる。Ｄマトリックスのサイズ、したがって設定可能要素配列のサイズは、計算手段により供給された入力装置の数と、本装置に使われるＣＲＣエラー検出方法論のＣＲＣ生成多項式のサイズ、すなわち指数により決定されることができる。入力装置の数は、要素配列の列の数を決定し、ＣＲＣ生成多項式のサイズは、要素配列の行の数を決定することができる。
【００２１】
本発明のＣＲＣエラー検出装置は、さらにフィードバック装置を用意することにより、本装置のポートサイズよりも大きいＣＲＣ生成多項式を用いてＣＲＣエラー検出コードを計算することもできる。さらなるフィードバック装置は、計算されたＣＲＣエラー検出コードの一部を、計算手段のフィードバック装置の適切な装置へと送り込み、また、フィードバック装置は、ＣＲＣエラー検出コードの計算された部分を設定可能要素に送り込むことができる。
【００２２】
本発明のＣＲＣエラー検出装置は、送信されるデータのＣＲＣエラー検出コードを計算するために使用することができる。本装置は、データに計算されたＣＲＣエラー検出コードを付加し、データとＣＲＣエラー検出コードを一緒に送信することができる。
【００２３】
本発明のＣＲＣエラー検出装置は、受信されたデータのＣＲＣエラー検出コードを計算するために使用することができる。本装置は、受信されたデータのＣＲＣエラー検出コードを計算し、計算されたＣＲＣエラー検出コードを、データと共に受信されたＣＲＣエラー検出コードと比較することができる。ＣＲＣエラー検出コードが同一でない場合、それはデータの送信中にエラーが発生したことを示し、本装置は、これを示すひとつ以上の信号を出力することができる。
【００２４】
本発明のＣＲＣエラー検出装置は、プロトコロル・プロセッサの一部を有することができる。
【００２５】
本発明の第２の態様によれば、ＣＲＣエラー検出方法論に応じたデータ用のＣＲＣエラー検出コード計算方法おいて、本発明の第１の態様の装置を使い、ＣＲＣエラー検出方法論を実行し、ＣＲＣエラー検出コードを計算することを有する。
【発明を実施するための最良の形態】
【００２６】
以下、本発明の実施例について、図を参照して、添付の図面の符号のみ用いて説明する。
【００２７】
図１において、ＣＲＣエラー検出装置１は、エラー検出コード計算手段２及び設定（configurator）手段３を有する。計算手段２は、設定可能（configurable）要素４の配列(array)を有する。その要素は３２個の列と３２個の行からなるマトリックスを形成する。しかしながら、他の数の列と行も使うことができる。計算手段はさらにそれぞれがＸＯＲゲートを有する３２個の入力ポート５の行を有する。５個から３２個の入力ポートはさらにマルチプレクサを有し、そのためプログラム可能になっている。入力ポート５はエラー検出コードが計算されるためのデータを受信し、そのデータを設定可能要素４の配列に供給する。計算手段はさらに出力レジスタ６を有する。設定可能要素４の配列の各行はエラー検出コードの一部を計算し、これを出力レジスタ６に出力する。計算手段はさらにプログラム可能なフィードバックマルチプレクサ７の列と、フィードバック回路８を有する。フィードバック回路８は出力レジスタ６から入力ポート５とフィードバックマルチプレクサ７に接続し、計算されたエラー検出コードの一部を要求された通り入力ポート５とフィードバックマルチプレクサ７に供給する。
【００２８】
図２及び図３を参照して、設定可能要素４の配列の構造についてさらに詳細に説明する。各設定可能要素４はデータ経路回路１０及び制御経路回路１１を有する（図２）。データ経路回路１０は、ＸＯＲゲート１２及びマルチプレクサ１３を有する。ＸＯＲゲート１２は、図に示されるように、２つの入力、つまり入力０（エラー検出コードが計算されるためのデータの一部を受信する）と出力１と、１つの出力を有する。マルチプレクサ１３もまた図に示されるように２つの入力と１つの出力を有する。マルチプレクサ１３はさらに、制御経路回路１１に接続されている制御入力１４を有する。ＸＯＲゲート１２の出力は、マルチプレクサ１３の第１入力に接続され、ＸＯＲゲート１２の入力１はマルチプレクサ１３の第２入力に接続されている。
【００２９】
制御経路回路１１は、マルチプレクサ１５と設定（configuration）レジスタ１６を有する。マルチプレクサ１５は図示の通り２つの入力と１つの出力を有する。マルチプレクサ１５はまた制御入力１７を有する。設定レジスタは、図示の通り１つの入力と１つの出力を有する。マルチプレクサ１５の出力はレジスタ１６の入力に接続され、レジスタ１６の出力はデータ経路回路１０のマルチプレクサ１３の制御入力１４に接続される。レジスタ１６の出力はまたマルチプレクサ１５の入力のうちの１つに接続される。
【００３０】
設定可能要素４のそれぞれは、制御経路回路１１のマルチプレクサ１５がConfig Dataと付けられたその入力で設定信号を受信し、マルチプレクサ１５の（Config Enableと付けられた）制御入力１７が高設定制御信号を受信するとき、設定信号は設定レジスタ１６に供給される。これにより要素４のデータ経路回路１０のマルチプレクサ１３の制御入力１４に設定信号（低信号または高信号）が出力される。高設定信号は、マルチプレクサ１３の出力が入力０で受信したデータの部分とＸＯＲゲート１２の入力１で受信した信号の間のＸＯＲ機能の結果となるように、データ経路回路１０を設定する。この場合、データの部分はエラー検出コードの計算に使用される。低設定信号は、マルチプレクサ１３の出力が単純にＸＯＲゲート１２の入力１で受信した信号となるように、データ経路回路１０を設定する。この場合、ＸＯＲゲート１２の入力１で受信したデータの部分はエラー検出コードの計算に使用されない。
【００３１】
設定可能要素４は、相互接続された配列に配置される。図３は、要素４のうちの１６個が如何に相互接続されているかを示している。各行について、その行における要素４のそれぞれが相互接続されていることがわかる。各行は、第１要素４のデータ経路回路１０のマルチプレクサ１３の出力が、第２要素４のデータ経路回路１０のＸＯＲゲート１２の入力１に接続され、第２要素４のデータ経路回路１０のマルチプレクサ１３の出力が、第３要素４のデータ経路回路１０のＸＯＲゲート１２の入力１に接続され、以下同様に続く。この接続配置は、行の最終要素まで繰り返される。各行において、要素４の制御経路回路１１のマルチプレクサ１５の（Config Dataと付けられた）入力のひとつは、設定信号の受信のため、共に接続されている。また、各列においては、列の各要素４が相互接続されることも見てわかる。各列において、要素４のデータ経路回路１０のＸＯＲゲート１２の入力０は、計算されるエラー検出コードのデータの受信のため、共に接続されている。各列において、設定制御信号の受信のため、要素４の制御経路回路１１のマルチプレクサ１５の制御入力１７もまたお互いに接続されている。
【００３２】
図１において、装置１の設定手段３は、複数のレジスタ２１それぞれの入力に接続される、マイクロプロセッサ・インターフェース２０を有する。設定手段３はさらに、各レジスタ２１の出力に接続される設定データ計算機２２を有する。設定手段３はまた、設定データ計算機２２に接続される出力を持つプロセス制御信号発生器２３を有する。設定手段３は、設定計算機２２に接続されるカウンタ２４を有する。設定手段３はさらに、設定回路２５を有する。これは設定データ計算機２２に接続される入力と、計算手段２に接続される複数の出力を有する。
【００３３】
特有のＣＲＣエラー検出方法論を参照して装置１の作用を説明する。ＣＲＣは全ての通信ネットワーク主要層２処理プロトコルに使われている主要なエラー検出方法論である。ＣＲＣはデータのエラーを検出する多項式ベースの方法である。エラー検出コードがデータのために計算される。そしてこれはデータと、送信される元のデータとエラー検出コードを含むメッセージと、に付加される。受信機では、メッセージはエラーを検査するために分析される。
【００３４】
このＣＲＣエラー検出方法論は、元のデータと選ばれたＣＲＣ生成多項式のモジュロ２割り算に基づく。前記ＣＲＣ方法は、Ｄマトリックスとして知られるマトリックスを発生させるために前記選ばれたＣＲＣ生成多項式を使う必要がある。Ｄマトリックスは、エラー検出コード計算手段の設定可能要素配列に必要な設定を決定する。Ｄマトリックスは０ｓ及び１ｓの一配列を有し、１ｓの位置はＣＲＣエラー検出コードの計算においてデータを使用する配列の設定可能要素の所要位置を示し、０ｓの位置は、前記ＣＲＣエラー検出コードの計算においてデータを使用しない配列の設定可能要素の所要位置を示す。Ｄマトリックスのサイズ、したがって設定可能要素の配列のサイズは、計算手段により供給された入力装置の数と、選ばれたＣＲＣ生成多項式のサイズ、すなわち指数により決定される。入力装置の数は、配列における列の数を決定し、ＣＲＣ生成多項式の指数は、配列における行の数を決定する。
【００３５】
本実施例の装置は再設定可能なＣＲＣエラー検出装置を有し、その設定可能要素配列は３２個の列と３２個の行を持つ。本装置は、従って、４，８，１６及び３２ビットのサイズで、最大３２ビットのブロックのデータを受信することができ、最大指数３２までのあらゆるＣＲＣ生成多項式のエラー検出コード計算をサポートできる。
【００３６】
指数が３２であるＣＲＣ生成多項式を使った３２ビットを持つブロックに分けられたデータの、エラー検出コードの計算についてまず説明する。ＣＲＣエラー検出方法論のパラメータが、設定手段３のマイクロプロセッサ・インターフェース２０に入力される。これらはサイズ、即ち、選ばれた生成多項式の指数（３２）、入力装置の数（３２）、そしてＣＲＣ生成多項式を含む。これらはレジスタ２１に保存され、設定データ計算機２２に出力される。プロセス制御信号発生器から信号が出力され、設定データを計算し、計算手段２の設定可能要素４の配列を設定するプロセスが開始される。設定手段３はレジスタ２１に保存されたパラメータを使ってまずＣＲＣエラー検出方法論Ｄマトリックスを計算する。そしてＤマトリックスが行ごとに計算される。マトリックスの各行（第１行は除いて）の計算は、その前の行の計算結果に基づくので、これにより必要なメモリが削減される。そして設定手段３はＤマトリックスの各行の計算を使って、計算手段２の設定可能要素４の配列の対応する各列の設定データを決定する。例えば、設定手段３は、Ｄマトリックスの第１行の計算を使って、計算手段２の設定可能要素４の配列の第１列の設定データを決定する。Ｄマトリックスの各行は、一連の０ｓと１ｓを有する。各行は、ＣＲＣエラー検出方法論により０ｓと１ｓの位置が指定される。０ｓの位置は、エラー検出コードの計算においてデータの一部を使用しない、計算手段２の設定可能要素４の配列の対応列における設定可能要素４の位置を示す。１ｓの位置は、エラー検出コードの計算においてデータの一部を使用する、計算手段２の設定可能要素４の配列の対応列における設定可能要素４の位置を示す。
【００３７】
前記配列の列の設定データが決定されたら、このデータは設定手段３の設定回路２５に送られる。この回路は、例えば図３のラインＣ０からＣ３のような設定ラインを介して、設定データを使って設定可能要素４の配列の列を設定する。列の設定データは、配列における各列に提供されるが、図３のラインＣＥ０からＣＥ３のような設定制御信号ラインに提供された設定制御信号は、配列の望ましい列だけが設定されることを保証するために一度に一つずつ高にセットされる。列の各設定可能要素４は、制御経路回路１１のマルチプレクサ１５の制御入力１７（Config Enable）が高設定制御信号を受信し、マルチプレクサ１５がConfig Dataと付けられたその入力で設定信号を受信する。設定信号は、設定レジスタ１６に送られ、設定信号（低または高信号）が要素４のデータ経路回路１０のマルチプレクサ１３の制御入力に出力される。設定信号の高低は、Ｄマトリックスの対応行の対応エントリが１か０かに依る。高設定信号は、要素４のマルチプレクサ１３が入力０で受信したデータ信号と要素４のＸＯＲゲート１２の入力１で受信した信号の間のＸＯＲ機能の結果を出力することを、決定する。低設定信号は、要素４のマルチプレクサ１３が単純に要素４のＸＯＲゲート１２の入力１で受信した信号を出力することを、決定する。
【００３８】
計算手段２の配列における設定可能要素４のそれぞれは上述のように設定される。配列の各接続点にＸＯＲゲートを持ったり持たなかったりする代わりに、ＣＲＣエラー検出方法論によって決定されるように、ＸＯＲゲートを有しＸＯＲゲートのＸＯＲ機能の結果を出力するか否かを設定できる、再設定可能な要素が提供される。このようにして、いかなるＣＲＣエラー検出方法論も、配列の適切な要素のＸＯＲゲートを使うか否かによって、提供することができる。
【００３９】
選ばれたＣＲＣエラー検出方法論により、計算手段２の設定可能要素４の配列が一旦設定されると、計算手段２は、計算手段により受信されたデータのエラー検出コード計算に使われるようになる。データは入力ポート５を介して受信される。１ビットが各入力ポート５により受信されることにより、データは３２ビットのブロックで受信される。各ブロックにおいて、着信データの各ビットは要素配列の全行でひとつの設定可能要素４に送られる。例えば、第１入力ポート５により受信されたデータのビットは、配列の各行の第１要素４に送られ、第２入力ポート５により受信されたデータのビットは、配列の各行の第２要素４に送られ、以下このように続く。データの各ブロックにおいて、データの各ビットは要素４のデータ経路回路のＸＯＲゲート１２の入力０に送られる。
【００４０】
各要素４は、エラー検出コードを計算する際に、入力データビットを使うか否かに設定されている。例えば、図３に示される要素４の配列の第１行を見てみるに、（左から右方向で）最後の２つの要素４だけがそのＸＯＲゲートのＸＯＲ機能の結果を出力するよう設定されているとする。データの第１ビットは行の第１要素４のデータ経路回路１０のＸＯＲゲート１２の入力０に供給され、そして同様に、データの第２ビットは行の第２要素４のデータ経路回路１０のＸＯＲゲート１２の入力０に供給され、以下行の全要素４について同様のことが繰り返される。低信号（０）は行の第１要素４のデータ経路回路１０のＸＯＲゲート１２の入力０に供給される。第１要素４の出力は第２要素４のデータ経路回路１０のＸＯＲゲート１２の入力１に供給され、第２要素４の出力は第３要素４のデータ経路回路１０のＸＯＲゲート１２の入力１に供給され、第３要素４の出力は第４要素４のデータ経路回路１０のＸＯＲゲート１２の入力１に供給される。第４要素４の出力は、データ用に計算されたエラー検出コードの第１部分の第１ビットを有する。その行の第１要素４はＸＯＲゲート１２の入力１で受信した信号を出力するよう設定され、つまり、この要素のＸＯＲゲート１２の入力１で受信された低信号はその行の第２要素４に送られるよう、入出力コネクションとして作動する。よって、第１要素４のＸＯＲゲート１２の入力０で受信された第１データビットはエラー検出コードの計算には使われない。その行の第２要素４もＸＯＲゲート１２の入力１で受信した信号を出力するよう設定される、つまり、低信号はその行の第３要素４に送られるよう、入出力コネクションとして作動する。よって、第２要素４のＸＯＲゲート１２の入力０で受信された第２データビットはエラー検出コードの計算には使われない。その行の第３要素４はそのＸＯＲゲート１２のＸＯＲ機能の結果を出力するよう設定されているので、この要素は、ＸＯＲゲート１２の入力０により受信された第３データビットとＸＯＲゲート１２の入力１により受信された低信号が、共にＸＯＲされ、ＸＯＲ機能の結果、つまり第３データビットが、その行の第４要素４に送られる。その行の第４要素４もそのＸＯＲゲートのＸＯＲ機能の結果を出力するよう設定されているので、この要素は、ＸＯＲゲート１２の入力０により受信された第４データビットとＸＯＲゲート１２の入力１により受信された第３データビットが、共にＸＯＲされ、エラー検出コードの第１部分の第１ビットとしてその行の第４要素４から出力する。データの第１ブロックの第３データビットと第４データビットは、したがって、第１エラー検出コードの計算において使用される。
【００４１】
各行の要素４の設定に応じて、図１の計算手段２の設定可能要素４の配列の各行について同じような処理が行われる。計算手段２への第１データブロック入力は、各行の出力が第１エラー検出コードの１ビットを形成する。これはレジスタ６に保存される。第１エラー検出コードは入力ポート５にフィードバックされる。データの第２ブロックは入力ポート５に供給される。第１エラー検出コードとデータの第２ブロックは入力ポート５でＸＯＲされる。その結果が、設定可能要素４の配列に送られ、前と同じく第２エラー検出コードの計算に使用される。第２エラー検出コードは出力レジスタ６に保存され、入力ポート５にフィードバックされる。データの第３ブロックは入力ポート５に供給される。第２エラー検出コードとデータの第３ブロックは入力ポート５でＸＯＲされる。その結果が設定可能要素４の配列に供給され、第３エラー検出コードの計算に使用される。第３エラー検出コードは出力レジスタ６に保存され、入力ポート５にフィードバックされる。この処理は、全てのデータが入力ポート５に供給され、エラー検出コードの計算に使用されるまで、続けられる。最終エラー検出コードは出力レジスタ６に保存される。こうして、全てのデータが最終エラー検出コードの計算に使用される。
【００４２】
上述は、装置１のポートサイズが３２ビットで、データが３２ビットのブロックに分けられる、実施例について説明している。装置１は、他のサイズのブロックでのデータ受信用に、他のポートサイズも提供できる。これは、第５から第３２入力ポート５のうち適切なもののマルチプレクサをプログラムすることにより実行できる。入力ポート５のマルチプレクサのプログラミングは、装置１の実行中に行うことができる。特に、装置１は４，８，１２または２４ビットのポートサイズの提供、したがって４，８，１２または２４ビットのデータブロックの受信が可能である。例えば、８ビットのみのブロックでのデータの受信を望む、つまりポートサイズを８ビットに変更するのであれば、設定可能要素４の配列に、データビットを送る代わりに、低信号（０）を送るよう、装置１の第９から第３２入力ポート５のマルチプレクサはプログラムされる。装置１により「ポートサイズ設定」が発生され、ポートサイズ、つまり入力ポート５のマルチプレクサのプログラミング、が制御される。
【００４３】
加えて、装置１は実行中に、可変数のバイトを有するデータを受信するようにプログラムできる。これは、装置１の、入力ポート５の適切なマルチプレクサをプログラムし、フィードバックマルチプレクサ７の適切なマルチプレクサをプログラムすることにより、実行できる。装置１により発生される「ポートサイズ設定」信号は、また、可変入力データバイトサイズを処理するように、入力ポート５のマルチプレクサと、フィードバックマルチプレクサ７をプログラムする。例えば、本装置は、指数が３２であるＣＲＣ生成多項式を持つＣＲＣエラー検出方法論を使ってエラー検出コードを計算するよう設定することができ、本装置のポートサイズは３０ビットにプログラムできる。データの最終ブロックがプロセス用に１６ビットのみ含む場合、「ポートサイズ設定」信号は、装置１がこの入力データのビットもしくはバイトサイズの数の変動を処理するようにプログラムする。特に、第１７から第３２入力ポート５のマルチプレクサは、装置１の要素４の配列に低信号を送り込むようプログラムされ、列の左側には、下の１６個のフィードバックマルチプレクサ７が既算のエラー検出コードを受信するようプログラムされ、配列の第１７から第３２行の既算のエラー検出コードは下の１６個のフィードバックマルチプレクサ７に送られる。多くの通信ネットワークが可変サイズのバイトに向けたプロトコルを使用しており、装置１の可変バイト数を有するデータの受信能力は、周知のエラー検出装置に対して、本装置の重要な効果である。
【００４４】
上述に詳細を説明した実施例は、エラー検出コードを、サイズつまり指数が３２のＣＲＣ生成多項式を使って、計算する。本装置は、他のＣＲＣ生成多項式サイズのエラー検出コードも計算できる。そのサイズは本装置のポートサイズより大きくても小さくても良い。ＣＲＣ生成多項式サイズが本装置のポートサイズより大きい場合、追加フィードバック・バスが提供される。このバスは装置１の設定可能要素４の配列の左側のフィードバックマルチプレクサ７の、適切なマルチプレクサに、計算されたエラー検出コードの一部を送る。フィードバックが必要とされない配列のどの行の第１要素４の入力１にも、低信号が供給される。装置１が「ＣＲＣサイズ設定」信号を発生し、フィードバックマルチプレクサ７のプログラミングを制御し、ＣＲＣ多項式のサイズ要求を満たす。
【００４５】
そして、装置１は、例えば指数が１６のＣＲＣ生成多項式を使ったＣＲＣエラー検出コードのような、異なるＣＲＣエラー検出方法論のエラー検出コードの計算に使うことができる。新しいＣＲＣエラー検出方法論が選ばれ、そしてこのＣＲＣ方法の設定データを計算するのに設定手段３が使用される。すると計算手段２は再設定され、新しいエラー検出コードの計算に使われる。装置１の再設定可能な性質によって、異なるＣＲＣエラー検出方法論がひとつの装置のみを使って満たされることになる。
【００４６】
数多くの可能ＣＲＣ生成多項式サイズを、したがって、数多くの可能ＣＲＣエラー検出方法論を支援する、プログラム可能な装置は、本発明の重要な効果であり、データリンク層プロトコルのエラー検出支援だけでなく、上層プロトコル及びデータ暗号化にも望まれる。
【００４７】
本装置は、固定ハードウェア・エンジンとして実装される。これは、設定可能要素の配列を設定するために使われ、つまり以前はソフトウェアを使って行わなければならなかった機能を実行する。
【００４８】
装置１の実装は、Altera Stratix II FPGAテクノロジを使って作られた。実装装置の最高速度は１１７ＭＨｚである。この速度では、フル・ポートサイズ使用（３２ビット）で、このアーキテクチャは３．７７Ｇｂｐｓを処理できる。これはＦＰＧＡ実装では非常にめざましいことである。こうした装置の設計は、技術縮小がフル・ポート使用の１０Ｇｂｐｓのパフォーマンス・ケイパビリティを容易に可能にする、ＡＳＩＣに実装されて最大の価値を持つことになる。しかしながら、装置１に他の実装を使用してもよい。
【００４９】
装置１は、送信されるデータでも受信されたデータでも、エラー検出コードの計算に使うことができる。送信データについては、本装置は計算されたエラー検出コードをデータの最後に付加して、結合したデータとコードを送信することができる。受信データについては、本装置はデータのエラー検出コードを計算してこれをデータに付加されたエラー検出コードと比較することができる。これらが同じ値である場合、それはデータの送信にエラーは発生していないことを示す。これらが同じ値ではない場合は、本装置は、データは切り捨てとなり、データは再送されるべきであることを示す信号を発生することができる。
【図面の簡単な説明】
【００５０】
【図１】本発明の第１の様態に係わるＣＲＣエラー検出装置の配置図。
【図２】図１の装置の設定可能要素の配置図の１例を示す図。
【図３】図１の装置の設定可能要素配列の一部の配置図。
【図１】
2009534895.tif 000003
【図２】
2009534895.tif 000004
【図３】
2009534895.tif 000005
【国際調査報告】
2009534895.tif 000006
2009534895.tif 000007
2009534895.tif 000008