(57)【要約】符号ブロックの復号繰り返し処理の早期の停止を可能にするために、巡回冗長検査（ＣＲＣ）は、情報ビットを伝送する同じトランスポート・ブロックに属する各符号ブロック・セグメントに付加される。セグメントｋに対するＣＲＣは、セグメント１〜ｋ内のすべてのビットを対象に入れて計算される。これにより、セグメントｋ＋１に付加されたＣＲＣを評価するときに、セグメント１〜ｋに対して誤ってみなしたＣＲＣ検査結果の誤認を発見することも可能になる。
2010537460.tif 000002
【特許請求の範囲】
【請求項１】
デジタル・システムにおけるデータ入力用のチェックサム値を生成する方法であり、
前記入力データを１〜ｎ（ｎは整数である）のインデックスを付けたｎ個のデータ・セグメントに分割するステップと、
前記ｎ個のデータ・セグメントの先頭のデータ・セグメントに対して、当該先頭のデータ・セグメントの総数のビットを使用して第１のチェックサムを計算し、第１のチェックサム値を生成するステップと、
前記ｎ個のデータ・セグメントのうちのｋとインデックス付けされた少なくとも一つのデータ・セグメントに対するチェックサムを計算し、ｋとインデックス付けされたチェックサム値を生成するステップと、
ｋとインデックス付けされたデータ・セグメントに対する前記チェックサムは、１〜ｋ（ｋは整数である）のインデックスを付けた個々のデータ・セグメントの総数のビットを使用して計算され、
前記第１のチェックサム値を前記先頭のデータ・セグメントに付加し、ｋとインデックス付けされた前記チェックサム値をｋとインデックス付けされた前記データ・セグメントに付加するステップと、
を有する方法。
【請求項２】
前記の数ｎは１より大きいの整数であり、
前記の数ｋは２〜ｎの範囲にある整数である、
請求項１に記載の方法。
【請求項３】
ｋとインデックス付けされたデータ・セグメントに対する前記チェックサムを計算する前記ステップは、１〜ｋのインデックスを付けた個々のデータ・セグメントの総数のビット及び（ｋ−ｐ）（ｐは１〜（ｋ−１）の範囲にある整数である）とインデックス付けされたそれより前のデータ・セグメントの少なくとも一つのチェックサムを使用することを含んでなる、
請求項１または請求項２に記載の方法。
【請求項４】
前記計算ステップは、前記ｎ個のデータ・セグメントのうちのｋとインデックス付けされた各データ・セグメントに対する前記チェックサムを計算することを含んでなる、
請求項１から請求項３のいずれかに記載の方法。
【請求項５】
各計算ステップは、巡回冗長検査の計算を実行する、
請求項１から請求項４のいずれかに記載の方法。
【請求項６】
ｋとインデックス付けされたデータ・セグメントに対する前記チェックサムは通しのチェックサムであり、ｋとインデックス付けされた前記データ・セグメントに対する前記通しのチェックサムは、（ｋ−１）とインデックス付けされたそれより前のデータ・セグメントに対する通しのチェックサムとｋとインデックス付けされた当該データ・セグメントの総数のビットを使用して計算されたチェックサムを合わせた結果を含んでなり、
前記先頭のデータ・セグメントに対する通しのチェックサムは、当該先頭のデータ・セグメントの総数のビットのみを使用して計算される、
請求項１から請求項５のいずれかに記載の方法。
【請求項７】
前記先頭のデータ・セグメントに対する前記チェックサムを計算する前に、前記デジタルシステムのすべての巡回冗長検査シフト・レジスタを０に設定することと、
ｋとインデックス付けされた前記データ・セグメントに対する前記チェックサムを計算する際には、（ｋ−１）とインデックス付けされた前記セグメントから得た値に前記巡回冗長検査シフト・レジスタを維持することと、
をさらに含んでなる、請求項６に記載の方法。
【請求項８】
前記巡回冗長検査の計算は、前記ｎ個のデータ・セグメントのうちの少なくとも一つには、前記ｎ個のデータ・セグメントのうちの他の少なくとも一つに使用される生成多項式とは異なる生成多項式を使用することを含んでなる、
請求項５から請求項７のいずれかに記載の方法。
【請求項９】
前記巡回冗長検査の計算は、同じ多項式次数をもつ生成多項式のみを使用することを含んでなる、請求項８に記載の方法。
【請求項１０】
前記巡回冗長検査の計算は、奇数のデータ・セグメントの各々には第１の生成多項式を使用し、偶数のデータ・セグメントの各々には第２の巡回冗長検査用生成多項式を使用することを含んでなる、
請求項８または請求項９に記載の方法。
【請求項１１】
デジタル・システムにおけるデータ入力用のチェックサム値を生成する方法であり、
前記入力データをｎ個のデータ・セグメント（ｎは２以上の整数である）に分割するステップと、
前記ｎ個のデータ・セグメントのうちの少なくとも２つの連続するデータ・セグメントを含んでなる少なくとも一つのデータ・ブロックを形成するステップと、
前記各データ・ブロックを構成する個々のデータ・セグメントの総数のビットを使用することによって前記少なくとも一つのデータ・ブロックに対するチェックサムを計算し、前記各データ・ブロックに対するチェックサム値を生成するステップと、
前記少なくとも一つのデータ・ブロックに対して生成された前記チェックサム値を前記各データ・ブロックに含まれる一つのデータ・セグメントに付加するステップと、
を有する方法。
【請求項１２】
前記計算ステップは、巡回冗長検査の計算を実行する、
請求項１１に記載の方法。
【請求項１３】
前記計算ステップは、前記少なくとも一つのデータ・ブロックに対する通しのチェックサムを計算することを含んでなる、
請求項１１または請求項１２に記載の方法。
【請求項１４】
前記形成ステップは、各ブロックが少なくとも２つの連続するデータ・セグメントを含んでなる、データ・セグメントの連続するブロックを形成することを含んでなり、
前記計算ステップは、各データ・ブロックに対する通しのチェックサムを計算し、各データ・ブロックに対する通しのチェックサム値を生成することを含んでなり、
前記付加ステップは、各データ・ブロックに対して生成された前記通しのチェックサム値を前記各データ・ブロックに含まれる最後のセグメントに付加することを含んでなる、
請求項１１または請求項１２に記載の方法。
【請求項１５】
データ・ブロックに含まれない個々のデータ・セグメントのうちの少なくとも一つに対するチェックサムを、当該各データ・セグメントの総数のビットを使用することによって計算し、当該各データ・セグメントに対するデータ・セグメントのチェックサム値を生成するステップと、
前記データ・セグメントのチェックサム値を当該各データ・セグメントに付加するステップと、
をさらに含んでなる、請求項１０から請求項１４のいずれかに記載の方法。
【請求項１６】
データ・ブロックの前記チェックサムを計算する前記ステップは、当該各データ・ブロックを構成する個々のデータ・セグメントの総数のビット及びそれより前のデータ・ブロックに対して計算された少なくとも一つのチェックサム及び／または前記形成されたデータ・ブロックに含まれないそれより前のデータ・セグメントに対して計算されたデータ・セグメントのチェックサムを使用することを含んでなる、
請求項１１から請求項１５のいずれかに記載の方法。
【請求項１７】
データ・ブロックを構成する個々のデータ・セグメントのうちの少なくとも一つに対するチェックサムを、当該各データ・セグメントの総数のビットを使用することによって計算し、当該各データ・セグメントに対するデータ・セグメントのチェックサム値を生成するステップと、
前記データ・セグメントのチェックサム値を当該各データ・セグメントに付加するステップと、
をさらに含んでなる、請求項１１から請求項１６のいずれかに記載の方法。
【請求項１８】
前記付加ステップにおいて、前記各チェックサム値の一部だけが、最後のデータ・セグメント以外の各々のデータ・セグメントに付加される、
請求項１から請求項１７のいずれかに記載の方法。
【請求項１９】
前記ｎ個のデータ・セグメントの各々のデータ・セグメントは、予め決められたサイズの連続する重複しないデータ・セグメントであり、前記先頭のデータ・セグメントは、前記分割された入力データの一番左のデータ・セグメントである、
請求項１から請求項１８のいずれかに記載の方法。
【請求項２０】
デジタル・システムにおけるデータ入力用のチェックサム値を生成するための装置であり、
前記入力データを１〜ｎ（ｎは整数である）のインデックスを付けたｎ個のデータ・セグメントに分割するための処理部と、
前記ｎ個のデータ・セグメントの先頭のデータ・セグメントに対して、当該先頭のデータ・セグメントの総数のビットを使用して第１のチェックサムを計算し、第１のチェックサム値を生成し、前記ｎ個のデータ・セグメントのうちのｋとインデックス付けされた少なくとも一つのデータ・セグメントに対するチェックサムを計算し、ｋとインデックス付けされたチェックサム値を生成するためのチェックサム計算部と、
ｋとインデックス付けされたデータ・セグメントに対する前記チェックサムは、１〜ｋ（ｋは整数である）のインデックスを付けた個々のデータ・セグメントの総数のビットを使用して計算され、
前記第１のチェックサム値を前記先頭のデータ・セグメントに付加し、ｋとインデックス付けされた前記チェックサム値をｋとインデックス付けされた前記データ・セグメントに付加するための付加部と、
を具備する装置。
【請求項２１】
デジタル・システムにおけるデータ入力用のチェックサム値を生成するための装置であり、
前記入力データをｎ個のデータ・セグメント（ｎは整数である）に分割し、少なくとも２つの連続するデータ・セグメントを含んでなる少なくとも一つのデータ・ブロックを形成するための処理部と、
前記各データ・ブロックを構成する個々のデータ・セグメントの総数のビットを使用することによって前記少なくとも一つのデータ・ブロックに対するチェックサムを計算し、前記各データ・ブロックに対するチェックサム値を生成するためのチェックサム計算部と、
前記チェックサム値を前記各データ・ブロックに含まれる最後のデータ・セグメントに付加するための付加部と、
を具備する装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くは、デジタル・システムにおけるエラー・チェックに関係し、より具体的には、デジタル通信システムにおける巡回冗長検査コードなどのエラー検出コードを付けた送信元から送信先へのパケット送信に関係する。
【背景技術】
【０００２】
エラー・チェックは、デジタル通信システム、すなわち、音声や画像のストリーミング配信、音声／画像通信、及び記憶システムにおいて、転送されたまたは記憶されたメッセージ中またはファイル中のエラーを検出するために一般的に使用される。このようなエラーを検出する方法は、巡回冗長検査（ＣＲＣ）技法を使用することである。ＣＲＣは 、予め決められた固定長の特定の数である除数によって、可変長の入力メッセージ、ファイルまたはデータ・ストリームを割り算し、この割り算の剰余を計算の結果として返すという数学的な計算をデータのブロックに対して実行する。上記除数は、「ＣＲＣ多項式」または「生成多項式」と呼ばれ、計算結果（「チェックサム」）は、一般に巡回冗長検査のチェックサム値（ＣＲＣ値）と呼ばれる。
【０００３】
一般に、ＣＲＣ値は、送信元ノードでデータ・ストリームまたはデータ・ブロックに対して計算され、送信先ノードへ送信されるデータと共に送信される。送信先ノードでデータが受信されるまたは読み出されるとき、受信したまたは読み出されたデータに対して別のＣＲＣ計算が実行され、新たに計算されたＣＲＣチェックサムが受け取ったＣＲＣ値と比較される。これらのＣＲＣ値が一致しない場合には、エラーが発生した、または何らかの方法で受信データまたは記憶データが改ざんされたとみなされる。
【０００４】
ＣＲＣ値のサイズは、計算に使用されるＣＲＣ多項式の長さによって決まる。例えば、次数１６の多項式を使用するＣＲＣは、１６ビットのＣＲＣ値を返す。任意の長さのデータ・ブロックに適用された次数ｎのＣＲＣ多項式はｎビット以下の長さのエラー・バーストを検出可能であるので、一般に、長い多項式は、短い多項式よりも、送信されたデータまたは記憶されたデータ中のエラーを検出する可能性がより高い。
【０００５】
ＣＲＣは任意の有限フィールドを用いて構成され得るが、一般的なＣＲＣは、ＣＲＣ値を生成するために有限フィールドＧＦ（２）を使用し、これは２進割り算と類似し、ＣＲＣ多項式と同じ長さをもつレジスタを使用して容易に実現される。上記レジスタは、ＣＲＣ値を計算し、計算後のＣＲＣ値を少なくとも一時的に記憶するために使用される。上記レジスタは、通常、割り算が実行される前にクリアされた後、ＣＲＣチェックによって検出されることもあり、検出されないこともある無関係な０に起因するエラーを防止するために、すべて１に初期化され得る。
【０００６】
2010537460.tif 000003
【０００７】
2010537460.tif 000004
【０００８】
2010537460.tif 000005
【０００９】
第三世代パートナーシップ・プロジェクト（３ＧＰＰ）の状況における巡回冗長検査の使用、特に、３ＧＰＰ  ＬＴＥ（長期的発展）の物理層におけるトランスポート・ブロックと追加された機能ブロックの現在の関係をダウンリンク共有チャネル（ＤＬ−ＳＣＨ）に関して図１に示す。この関係は、非特許文献２に記載されている。
【００１０】
図１を参照し、ＤＬ−ＳＣＨ物理層モデルを、対応するＤＬ−ＳＣＨ物理層処理チェーンに基づいて説明する。
【００１１】
送信機側（ノードＢ）１００で、処理チェーンは、上位層データを物理層へ受け渡すことで開始し、動的なサイズＳ１，...，ＳＮのＮ個のトランスポート・ブロックが、送信時間間隔（ＴＴＩ）ごとに１回、物理層へ供給される（１０２）。エラー検出の目的のための所望の冗長性（１０４）、例えば、巡回冗長検査のチェックサムなどが次に計算され、トランスポート・ブロック・エラー指示が上位層へ転送される。
【００１２】
符号化及びレート・マッチング（１０６）の処理ステップにおいて、チャネル符号化率が、トランスポート・ブロック・サイズ、変調方式及びリソース割当てとエラー制御方法の組合せによって暗黙的に与えられる。最も具体的には、物理層によってサポートされたハイブリッド自動再送要求（ＨＡＲＱ）の冗長バージョンが指定される（１０８）。増加的冗長性ＨＡＲＱの場合には、対応する第２層ハイブリッドＡＲＱプロセスが、各ＴＴＩでの物理層送信のためにどの冗長バージョンが使用されることになるかを制御する。
【００１３】
このＤＬ−ＳＣＨ物理層モデル内では、上位層によるインタリービングの制御はない（１１０）。例えば、上位層によって設定可能であるという意味において、当該物理層モデルにかかわる処理ステップは、符号化及びレート・マッチング（１０６）、データ変調（１１２）、リソース・マッピング（１１４）及びアンテナ・マッピング（１１６）の各ステップである。
【００１４】
ＭＡＣスケジューラ１１８は、ＱＰＳＫ、１６ＱＡＭ及び６４ＱＡＭなどのデータ変調に使用されるべき変調方式（１２０）を決定し、リソース・ブロックへのマッピングのためのＬ２制御によるリソース割当て（１２２）を指定する。最後の物理層処理ステップ（１１６）（マルチアンテナ処理）に関しては、ＭＡＣスケジューラ１１８は、（各ストリームごとに）割り当てられたリソース・ブロックから利用可能な数のアンテナ・ポートへのマッピング（１２４）を部分的に設定する。
【００１５】
ハイブリッドＡＲＱに関連したシグナリングのサポートに関して、当該ＤＬ−ＳＣＨモデルはまた、ＤＬ−ＳＣＨに関連したハイブリッドＡＲＱに関する情報１２６をユーザ装置（ＵＥ）などの受信機側１２８のピアのＨＡＲＱプロセスへ物理層を介して伝送すること、及び対応するＨＡＲＱ応答１３０を送信機側１００のＤＬ−ＳＣＨへ物理層を介して伝送することを獲得している。
【００１６】
しかし、トランスポート・フォーマットとリソース割当てのシグナリングは、当該物理層モデルでは獲得されていないことに留意すべきである。送信機側１００では、この情報は物理層のコンフィギュレーションから直接引き出すことができる。物理層は、次に、この情報をそのピアの物理層へ無線インタフェースを介して伝送する―この情報は、 おそらく、何らかの方法でＨＡＲＱに関する情報１２６に多重化される。受信機側１２８では、この情報は、ＨＡＲＱに関する情報１２６とは異なり、上位層を通過せずに、ＤＬ−ＳＣＨ復調１３２、復号１３４などのために物理層内で直接使用される。
【００１７】
ＣＲＣ付加の形式は、チャネル符号化チェーンに関する主要な未解決の問題であり、３ＧＰＰ ＴＳＧ ＲＡＮ１ ４９ｂｉｓ会議において、非特許文献３などで集中的に議論された。この文献は、図２と図３にそれぞれ示される、（ａ）トランスポート・ブロックごとにＣＲＣを付加する方式と、（ｂ）符号ブロック・セグメントごとにＣＲＣを付加する方式の二つ方式に分類される、異なる形式のＣＲＣ付加の主な特性を論じたものである。トランスポート・ブロックごとのＣＲＣ方式は、符号ブロックへの分割の前にトランスポート・ブロックに対して一つのＣＲＣを付加するというものであり、一方、符号ブロック・セグメントごとのＣＲＣ方式では、トランスポート・ブロックが先ず符号ブロックまたはセグメントに分割されてからＣＲＣが各セグメントに付加される。
【００１８】
トランスポート・ブロックごとのＣＲＣの主な特徴は、オーバヘッドが小さいことである。分割は６１４４より大きなパケット・サイズにしか使用されないので、オーバヘッドは最悪のケースで０．４％である。符号ブロックごと（すなわち、セグメントごと）のＣＲＣの主な特徴は、ＣＲＣが否定（ＮＧ）であるならばターボ復号を停止することによる、ユーザ装置側での電力節約である。しかし、符号ブロックごとのＣＲＣは、対象ブロックの長さ不一致（ＢＬＥＲ）に左右される。符号ブロックごとの２４ビットＣＲＣは行き過ぎと見られることもあるので、８ビットＣＲＣを使用したハイブリッド方式も提案された。
【００１９】
また、その他のＣＲＣ付加方式の一つを採用するいくつかのＣＲＣ技法が提案された。
【００２０】
特許文献１は、ＡＴＭ通信システム中で転送されるＡＴＭセル用の同期回路を記述し、上記同期回路は、受け取ったＡＴＭセルを構成する入力ビット列をビット順に受け入れ、保持する。これは、シフト・レジスタ・ユニットによって行なわれる。連続的ＣＲＣ演算ユニットが、簡易なＣＲＣ演算プロセスに従って、保持された入力ビット列に対してビット順にＣＲＣ演算を実行する。同期回路は、ＣＲＣ演算結果を受け取ると必要な同期制御を実行し、それによって各ＡＴＭセル中の各ヘッダーに対してＣＲＣ演算を連続的に行なえるようにする。
【００２１】
しかし、特許文献１によると、ＣＲＣ演算ユニットの記憶部に記憶された出力ビット（ＣＲＣビット)は受信チェーンへ送信されない。さらに、ＣＲＣの長さまたは生成多項式はセグメント間で変わらない。
【００２２】
特許文献１と同様に、特許文献２は、ブロックをセグメントに分割し、各セグメントごとに中間ＣＲＣを計算し、中間ＣＲＣから最終的ＣＲＣを生成することによってデータの全体ブロックに対する最終的ＣＲＣを計算するための方法を記述する。「Ｒ」個のエントリーを有する剰余表Ｔが計算され、ＣＲＣはＲビットの長さであり、データ・ブロックの最終的ＣＲＣは、実効ＣＲＣと第２のセグメントの部分的ＣＲＣの和として計算される。
【００２３】
しかし、ＦＥＣ符号化前のセグメントに中間ＣＲＣを付加することによって中間ＣＲＣを受信機へ送信することは行なわない。さらに、ＣＲＣレジスタの内容はセグメント間で維持されていないし、またセグメント間のＣＲＣの長さまたは生成多項式は常に同じである。
【００２４】
従来技術特許文献１及び特許文献２はどちらも、データ・トランスポート・ブロックは一つの最終的な付加ＣＲＣを付けて送信されるので、符号化されたデータ・ブロックのあるデータ・セグメントが送信中に破損されるとしたら、エラーが検出されるまでには移送データ全体に対する復号繰り返し処理が完了されなければならないという欠点をもつ。さらに、上記従来技術は、異なるセグメントに対して同じ長さのＣＲＣまたは同じ生成多項式を使用するため、あるセグメント中のＣＲＣ誤検出を検出できない。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】米国特許５２８２２１５Ａ号明細書
【特許文献２】米国特許７２４３２８９号明細書
【非特許文献】
【００２６】
【非特許文献１】3GPP TS 36.212 v1.3.0, chapter 5.1.1
【非特許文献２】3GPP TS 36.300 v8.1.0
【非特許文献３】R1-072927
【発明の概要】
【発明が解決しようとする課題】
【００２７】
本発明は、上述した従来技術の欠点及び短所を克服することを目指し、その目的は、小さなオーバヘッドの利点とＣＲＣが正常ではない場合にターボ復号を停止する可能性を併せもち、下記の状況において受信機側１２８で復号を早期に停止できるようにする方法とその方法を実現するための装置を提供することである。
・  ＣＲＣがＯＫであれば、セグメント毎にターボ復号繰り返し処理内で早期停止する（「ミクロ停止」）
・  すべての復号繰り返し処理後の単一のセグメントのＣＲＣがＮＧであれば、セグメント復号を早期停止する（「マクロ停止」）
【００２８】
本発明のさらに別の目的は、別のセグメントに付加されたＣＲＣチェック時に、あるセグメント中のＣＲＣ誤検出の検出を可能にすることである。
【課題を解決するための手段】
【００２９】
上記の目的は、独立請求項の主題によって解決される。本発明の有利な実施形態は、従属請求項によって定義される。
【００３０】
有利な実施形態によれば、本発明は、デジタル・システムにおけるデータ入力用のチェックサム値を生成する方法を提供し、当該方法は、入力データを１〜ｎ（ｎは整数である）のインデックスを付けたｎ個のデータ・セグメントに分割するステップと、上記ｎ個のデータ・セグメントの先頭のデータ・セグメントに対して、当該先頭のデータ・セグメントの総数のビットを使用して第１のチェックサムを計算し、第１のチェックサム値を生成するステップと、上記ｎ個のデータ・セグメントのうちのｋとインデックス付けされた少なくとも一つのデータ・セグメントに対するチェックサムを計算し、ｋとインデックス付けされたチェックサム値を生成するステップと、ｋとインデックス付けされたデータ・セグメントに対する前記チェックサムは、１〜ｋ（ｋは整数である）のインデックスを付けた個々のデータ・セグメントの総数のビットを使用して計算され、上記第１のチェックサム値を上記先頭のデータ・セグメントに付加し、ｋとインデックス付けされた上記チェックサム値をｋとインデックス付けされた上記データ・セグメントに付加するステップとを有する。
【００３１】
さらに別の実施形態では、上記の数ｎは２以上の整数であり、上記の数ｋは２〜ｎの範囲にある整数である。
【００３２】
さらに別の実施形態では、ｋとインデックス付けされたデータ・セグメントに対するチェックサムを計算する上記ステップは、１〜ｋのインデックスを付けた個々のデータ・セグメントの総数のビット及び（ｋ−ｐ）（ｐは１〜（ｋ−１）の範囲にある整数である）とインデックス付けされたそれより前のデータ・セグメントの少なくとも一つのチェックサムを使用することを含んでなる。
【００３３】
別の有利名実施形態では、上記計算ステップは、上記ｎ個のデータ・セグメントのうちのｋとインデックス付けされた各データ・セグメントに対するｋ番目のチェックサムを計算することを含んでなる。
【００３４】
さらに別の実施形態では、各計算ステップは、巡回冗長検査の計算を実行する。
【００３５】
さらに別の実施形態では、データ・セグメントｋに対する上記チェックサムは通しのチェックサムであり、ｋとインデックス付けされた上記データ・セグメントに対する上記通しのチェックサムは、（ｋ−１）とインデックス付けされたそれより前のデータ・セグメントに対する通しのチェックサムとｋとインデックス付けされた当該データ・セグメントの総数のビットを使用して計算されたチェックサムを合わせた結果を含んでなり、上記先頭のデータ・セグメントに対する通しのチェックサムは、当該先頭のデータ・セグメントの総数のビットのみを使用して計算される。
【００３６】
別の実施形態では、当該方法は、先頭のデータ・セグメントに対するチェックサムを計算する前に、このデジタルシステムのすべての巡回冗長検査シフト・レジスタを０に設定することと、ｋとインデックス付けされたデータ・セグメントに対するチェックサムを計算する際には、（ｋ−１）とインデックス付けされたセグメントから得た値に上記巡回冗長検査シフト・レジスタを維持することとを含む。
【００３７】
別の実施形態では、前記巡回冗長検査の計算は、上記ｎ個のデータ・セグメントのうちの少なくとも一つには、上記ｎ個のデータ・セグメントのうちの他の少なくとも一つに使用される生成多項式とは異なる生成多項式を使用することを含んでなる。
【００３８】
別の実施形態では、前記巡回冗長検査の計算は、同じ多項式次数をもつ生成多項式のみを使用することを含んでなる。
【００３９】
別の実施形態では、前記巡回冗長検査の計算は、奇数のデータ・セグメントの各々には第１の生成多項式を使用し、偶数のデータ・セグメントの各々には第２の巡回冗長検査用生成多項式を使用することを含んでなる。
【００４０】
本発明はまた、デジタル・システムにおけるデータ入力用のチェックサム値を生成する方法を提供し、当該方法は、入力データをｎ個のデータ・セグメント（ｎは２以上の整数である）に分割するステップと、上記ｎ個のデータ・セグメントのうちの少なくとも２つの連続するデータ・セグメントを含んでなる少なくとも一つのデータ・ブロックを形成するステップと、上記各データ・ブロックを構成する個々のデータ・セグメントの総数のビットを使用することによって上記少なくとも一つのデータ・ブロックに対するチェックサムを計算し、上記各データ・ブロックに対するチェックサム値を生成するステップと、上記少なくとも一つのデータ・ブロックに対して生成された上記チェックサム値を上記各データ・ブロックに含まれる一つのデータ・セグメントに付加するステップとを有する。
【００４１】
さらに別の実施形態では、上記計算ステップは、巡回冗長検査の計算を実行する。
【００４２】
さらに別の実施形態では、上記計算ステップは、上記少なくとも一つのデータ・ブロックに対する通しのチェックサムを計算することを含んでなる。
【００４３】
さらに別の実施形態では、上記形成ステップは、各ブロックが少なくとも２つの連続するデータ・セグメントを含んでなる、データ・セグメントの連続するブロックを形成することを含んでなり、上記計算ステップは、各データ・ブロックに対する通しのチェックサムを計算し、各データ・ブロックに対する通しのチェックサム値を生成することを含んでなり、上記付加ステップは、各データ・ブロックに対して生成された上記通しのチェックサム値を上記各データ・ブロックに含まれる最後のセグメントに付加することを含んでなる。
【００４４】
別の有利な実施形態では、当該方法は、データ・ブロックに含まれない個々のデータ・セグメントのうちの少なくとも一つに対するチェックサムを、当該各データ・セグメントの総数のビットを使用することによって計算し、当該各データ・セグメントに対するデータ・セグメントのチェックサム値を生成するステップと、上記データ・セグメントのチェックサム値を上記各データ・セグメントに付加するステップとをさらに含んでなる。
【００４５】
さらに別の実施形態では、データ・ブロックのチェックサムを計算する上記ステップは、当該各データ・ブロックを構成する個々のデータ・セグメントの総数のビット及びそれより前のデータ・ブロックに対して計算された少なくとも一つのチェックサム及び／または上記形成されたデータ・ブロックに含まれないそれより前のデータ・セグメントに対して計算されたデータ・セグメントのチェックサムを使用することを含んでなる。
【００４６】
別の有利な実施形態では、当該方法は、データ・ブロックを構成するｎ個のデータ・セグメントのうちの少なくとも一つに対するチェックサムを、当該各データ・セグメントの総数のビットを使用することによって計算し、当該各データ・セグメントに対するデータ・セグメントのチェックサム値を生成するステップと、上記データ・セグメントのチェックサム値を当該各データ・セグメントに付加するステップとをさらに含んでなる。
【００４７】
さらに別の実施形態では、上記付加ステップにおいて、上記各チェックサム値の一部だけが、最後のデータ・セグメント以外の各々のデータ・セグメントに付加される。
【００４８】
さらに別の実施形態では、上記ｎ個のデータ・セグメントの各々のデータ・セグメントは、予め決められたサイズの連続する重複しないデータ・セグメントであり、上記先頭のデータ・セグメントは、上記分割された入力データの一番左のデータ・セグメントである。
【００４９】
本発明はまた、デジタル・システムにおけるデータ入力用のチェックサム値を生成するための装置を提供し、当該装置は、入力データを１〜ｎ（ｎは整数である）のインデックスを付けたｎ個のデータ・セグメントに分割するための処理部と、上記ｎ個のデータ・セグメントの先頭のデータ・セグメントに対して、当該先頭のデータ・セグメントの総数のビットを使用して第１のチェックサムを計算し、第１のチェックサム値を生成し、上記ｎ個のデータ・セグメントのうちのｋとインデックス付けされた少なくとも一つのデータ・セグメントに対するチェックサムを計算し、ｋとインデックス付けされたチェックサム値を生成するためのチェックサム計算部と、ｋとインデックス付けされたデータ・セグメントに対する前記チェックサムは、個々のデータ・セグメント１〜ｋ（ｋは整数である）の総数のビットを使用して計算され、上記第１のチェックサム値を上記先頭のデータ・セグメントに付加し、ｋとインデックス付けされた前記チェックサム値をｋとインデックス付けされた上記データ・セグメントに付加するための付加部とを具備する。
【００５０】
最後に、別の有利な実施形態では、本発明は、デジタル・システムにおけるデータ入力用のチェックサム値を生成するための装置を提供し、当該装置は、入力データをｎ個のデータ・セグメント（ｎは整数である）に分割し、少なくとも２つの連続するデータ・セグメントを含んでなる少なくとも一つのデータ・ブロックを形成するための処理部と、上記各データ・ブロックを構成する個々のデータ・セグメントの総数のビットを使用することによって上記少なくとも一つのデータ・ブロックに対するチェックサムを計算し、上記各データ・ブロックに対するチェックサム値を生成するためのチェックサム計算部と、上記少なくとも一つのデータ・ブロックに対して生成された上記チェックサム値を上記各データ・ブロックに含まれる一つののデータ・セグメントに付加するための付加部とを具備する。
【００５１】
言及した従来技術に比較して、本発明の技術的有利性は、「より前の」セグメントの情報部分及びＣＲＣ部分がビット・エラーを有するとき、「より後の」通しのＣＲＣが見逃しを検出できることにある。
【００５２】
さらに本発明は、小さなオーバヘッドの技術的有利性と復号の早期停止の技術的有利性を合わせもつことを可能する。例えば、符号ブロック・セグメントごとのＣＲＣ方式の場合等では、本発明は、あるセグメントに付加されたＣＲＣが最大数の繰り返し処理後に誤りであると検出されれば、復号を早期に停止することを可能にする。本発明はまた、そのセグメントに付加されたＣＲＣが正しいと検出されれば、セグメントの復号繰り返し処理を早期に停止することも可能にする。このような有利性は、トランスポート・ブロックごとのＣＲＣ方式では実現され得ない。
【００５３】
他方、本発明によれば、トランスポート・ブロックごとのＣＲＣ方式とした場合、最後のセグメントに付加されたＣＲＣは、トランスポート・ブロックに付加されたＣＲＣと同一であるので、同一の情報を提供する。対照的に、符号ブロック・セグメントごとのＣＲＣとした場合、最後のデータ・セグメントに付加されたＣＲＣは、その最小のデータ・セグメントに関する情報のみを反映する。
【００５４】
さらなる特徴と利点は、添付された図面において示された発明についての、以降に続くさらなる詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【００５５】
【図１】３ＧＰＰ ＬＴＥ内のノードＢ側での、及びユーザ装置側でのＤＬ−ＳＣＨ物理層モデルを説明するフローチャート図を示す。
【図２】トランスポート・ブロックごとにＣＲＣを付加する方式を説明するフローチャート図を示す。
【図３】符号ブロック・セグメントごとにＣＲＣを付加する方式を説明するフローチャート図を示す。
【図４】データ・セグメントごとにＣＲＣを付加する方式を使用する、本発明の一つの実施形態によるＣＲＣ付加方式の概要図を示す。
【図５】本発明の一つの実施形態によるチェックサム値を生成するための方法を説明するフローチャート図を示す。
【図６】本発明の一つの実施形態によるＣＲＣを計算するためのシフト・レジスタの例の概要図を示す。
【図７】従来技術のソリューションの使用時と本発明の一つの実施形態を使用時に得られたオーバヘッドの比較分析を例示する表を示す。
【図８】本発明の別の有利な実施形態によるＣＲＣ付加方式の概要図を示す。
【図９】本発明の別の有利な実施形態によるＣＲＣ付加方式の概要図を示す。
【図１０】本発明の有利な実施形態によるチェックサム値を生成するための方法を説明するフローチャート図を示す。
【発明を実施するための形態】
【００５６】
本発明により構成された、デジタル・システムにおけるデータ入力用のチェックサム値を生成するための方法及び装置の有利な実施形態を、添付の図面を参照してさらに詳細にこれから説明する。以下では、巡回冗長検査（ＣＲＣ）技法を使用して計算されたチェックサムに関連して本発明を説明するが、ＣＲＣアルゴリズム以外の計算アルゴリズムも想定され得る。
【００５７】
図４は、データ・セグメントごとにＣＲＣを付加する方式を使用する、本発明の第１の実施形態によるＣＲＣ付加方式の概要図を示す。図示した例では、可変数のビットの入力データ・ストリーム４００が、予め決められたサイズのデータの４個のセグメント４０１、４０２、４０３、４０４に分割される。
【００５８】
入力デジタル・データ４００が４ｍビットからなり、同じサイズのデータ・セグメント４０１、４０２、４０３、４０４に分割されると仮定すると、各データ・セグメントはｍビットの長さもつ。しかし、入力データ４００が分割されるデータ・セグメントの数とサイズは限定されない。入力デジタル・データ４００は、同じサイズの複数のデータ・セグメントに分割されてもよいし、あるいはデータ・セグメントのうちのいくつかは異なるサイズを有してもよい。
【００５９】
各データ・セグメント４０１、４０２、４０３、４０４は、次に、各データ・セグメントごとに、それぞれ、部分的ＣＲＣ値４１０、４２０、４３０、４４０を生成するためのＣＲＣ計算処理を受ける。
【００６０】
各部分的ＣＲＣ値４１０、４２０、４３０、４４０は、次に、各々のデータ・セグメント４０１、４０２、４０３、４０４に付加される。
【００６１】
本発明のさらなる態様は、ＦＥＣ符号化の前に各セグメントに部分的ＣＲＣ値を付加することによって部分的ＣＲＣ値が受信機へ送信されることと、ＣＲＣレジスタの内容がセグメント間で維持されることである。この態様は、上記で言及した従来技術のどれにも存在しない。
【００６２】
本発明の別の重要な態様は、各データ・セグメントに付加されるべき部分的ＣＲＣ値を計算するために使用されるデータと方法にある。
【００６３】
図４を参照すると、先頭のデータ・セグメント４０１に付加されたＣＲＣ値４１０は、通常のＣＲＣである、すなわち、先頭のデータ・セグメント４０１の総数のデータ・ビットを使用して計算されたＣＲＣチェックサムである。一方、先頭のデータ・セグメント４０１に続く第２のデータ・セグメントに付加されたＣＲＣ値４２０は、第２のセグメントとその前の第１のセグメントの総数のビットを基にしたものである。同様に、最後のデータ・セグメント４０４に付加されたＣＲＣ値４４０は、その個別のデータ・セグメント４０４に依存するとともに、先頭のセグメント４０１から直前のセグメント４０３までのその前のすべてのセグメントからのデータ・ビットにも依存する。
【００６４】
第１の実施形態による部分的ＣＲＣ値４１０、４２０、４３０、４４０の計算の詳細について、図５を参照してこれから説明する。
【００６５】
図５は、本発明の第１の実施形態によるチェックサム値を生成するための方法５００の例示的な各ステップを説明するフローチャート図を示す。
【００６６】
図４及び図５を参照すると、デジタル・データ・ブロックまたはデータ・ストリーム４００がデジタル・システムに入力されると、入力デジタル・データ４００を所定のサイズの複数のｎ個のデータ・セグメント（ｎは、好ましくは１より大きい任意の整数である）に分割するステップＳ５１０によって方法５００が開始する。ｎが１に等しい場合は、分割Ｓ５１０の機能は、入力をそのまま出力へ流すことに簡略化される。入力データ４００は、ストリームーミング・メディア送信元から送信されてもよいし、あるいは記憶装置から読み出されてもよい。デジタル・データ４００は、ＴＣＰなどのコネクション型プロトコルまたはＵＤＰなどのコネクションレス・プロトコルを使用して受信されてもよいし、あるいはデジタル・システム内にまたは外部記憶装置に記憶されてもよい。入力データ４００の例は、音声データ、画像データ及び音声画像データを含む。
【００６７】
ステップＳ５１０において、入力データ・ブロック４００は、順次に１からｎまでのインデックスまたは番号を付けた一連のｎ個のデータ・セグメントに順次に分割される。好ましくは、各データ・セグメントは、分割された入力データ・ブロック４００の中の一番左のデータ・セグメントまたは一番上のデータ・セグメントである、先頭のデータ・セグメントまたは単純に第１のデータ・セグメントから始まり、一番右のデータ・セグメントまたは一番下のデータ・セグメントである、データ・セグメントｎまでインデックス付けされる。この一連のｎ個のデータ・セグメントは、好ましくは、予め決められたサイズの重複せずに連続する一連のデータ・セグメントであり、すべてのデータ・セグメントが同じビット長をもつ。ただし、入力データ・ブロック４００は、異なるサイズの複数のデータ・セグメントに分割されてもよい。
【００６８】
ステップＳ５２０において、先頭のデータ・セグメント、好ましくは、分割された入力データ・ブロック４００の中の一番左のまたは一番上のデータ・セグメント４０１に対して、先頭のデータ・セグメント４０１の総数のｍ個のビットと予め決められたＣＲＣ多項式ｇ（ｘ）を使用して、通常のＣＲＣ値が計算される。次のステップＳ５３０では、その他のデータ・セグメントの一つ一つに対してＣＲＣの順次の計算が行なわれる。例えば、図４に示した例を参照すると、第２のデータ・セグメント４０２に対するＣＲＣ２値が、先頭のセグメント４０１からと第２のセグメント４０２からの総数のビットを使用して計算される。
【００６９】
しかし、本方法がＣＲＣ計算を行なう対象とするセグメントは、望むとおりに選択可能であると解釈される。一般化して言えば、入力データ・ブロック４００がｎ個のデータ・セグメントに分割されるとすれば、順次計算ステップＳ５３０は、ｋと番号付けされたデータ・セグメントごとにＣＲＣ値を計算し（インデックスｋは２〜ｎの範囲にある整数である）、データ・セグメントｋに対するＣＲＣ値、すなわち、ｋとインデックス付けされたＣＲＣ値を生成する。データ・セグメントｋに対して計算されたＣＲＣである、このＣＲＣ値は、データ・セグメントｋの総数のビットを使用するとともデータ・セグメント１〜（ｋ−１）からの総数のビットを使用して計算される。本好適な実施形態では、ＣＲＣ値は各データ・セグメントｋごとに計算されるが、計算ステップＳ５３０が、先頭のデータ・セグメント４０１以外のただ一つのまたは２、３個のデータ・セグメントに対するＣＲＣ値を計算してもよい。ｎが１に等しい場合には、ステップＳ５３０の機能は無効になることは当業者には明白である。
【００７０】
ステップＳ５４０では、第１のＣＲＣ値４１０を先頭のデータ・セグメント４０１に付加し、データ・セグメントｋに対して各々計算されたＣＲＣ値を各データ・セグメントｋに付加する。
【００７１】
本発明によるＣＲＣの計算を実現する標準的な技術は、ｎビットのフィードバック・シフト・レジスタ回路６００を使用することにある。図６は、本発明の第１の実施形態によるＣＲＣ計算方法を実行するためのシフト・レジスタの例を示す。図示された例では、ＣＲＣ計算は、４個のデータ・セグメント６０１、６０２、６０３、６０４について実行される。各データ・セグメントは、構成要素または情報ビットｕ０，ｕ１，...，ｕｍ−１を有するｍビット長のベクターｕとして表現される。次数５のＣＲＣ多項式 ｇ（ｘ）を使用するとき、各データ・セグメントｕごとに生成されるＣＲＣ値もまた、構成要素または情報ビットｒ０，ｒ１，...，ｕ４を有する５ビットのＣＲＣ値ｒである。
【００７２】
上記回路は、手動で行なう長除法に類似する方法で動作する。図６の個々の記憶素子は、各累乗ｘに対応する除数の係数ｇｉを保持する（ｉは０からｎ−１のうちのある整数である）。割り算アルゴリズムの各サイクルごとに、一つのサイクルの終了時のｒｉ−１係数は、次のサイクルではｒｉ係数になる。次数ｎ−１の生成多項式では、ｎ個の最上位から２番目のビットだけが引き算に影響され得るので、ｎ−１個の記憶素子だけが必要とされる。各引き算（事実上はモジュロ２加算）後に得られた除数の修正された係数がシフト・レジスタに記憶される。
【００７３】
本発明によれば、先頭のデータ・セグメントに対するＣＲＣを計算する前に、すべてのＣＲＣシフト・レジスタは、それらすべてを０に設定することによって初期化される。次のデータ・セグメントｋに対するＣＲＣ値を計算する際には、ＣＲＣシフト・レジスタは初期化されずに、その前の（ｋ−１）データ・セグメントに対して計算されたＣＲＣ値、すなわち、セグメント（ｋ−１）に対する前の計算時に得られたｒ＝［ｒ０ｒ１ｒ２ｒ３ｒ４］を保持することが可能にされる 。したがって、データ・セグメントｋに対して計算されたＣＲＣ値は、データ・セグメント１〜ｋからの情報ビットに対して計算された単一のＣＲＣ値と同一である。
【００７４】
代替的な実施形態では、データ・セグメントｋに対するＣＲＣを計算するステップは、データ・セグメント１〜ｋの総数のビットとそれより前の（ｋ−ｐ）データ・セグメントのいずれかに対して計算されたＣＲＣ値、すなわち、値ＣＲＣ（ｋ−ｐ）（ｐは１からｋ−１のうちのある整数である）を使用することを含んでなり得る。例えば、これは、セグメント（ｋ−ｐ）に対するＣＲＣを計算する前に、セグメント（ｋ−ｐ−１）に対して計算されたＣＲＣをデータ・セグメント（ｋ−ｐ）に含めることによって実現できる。前記のとおり「後続の」データ・セグメントに含めることは、例えば、各々のＣＲＣビットをステップＳ５２０、Ｓ５３０内において、各々の「後続の」データ・セグメントの先頭に付ける、末尾に付け加える、あるいは中に挿入することによって容易に行える。当然、この方法は、実効データ・セグメント・サイズを増加するため、本実施形態では、ステップＳ５４０後に生じる実効セグメント・サイズが等しくなるように、ステップＳ５１０中でｎ個のデータ・セグメントのサイズを選択することが望ましいであろう。
【００７５】
代替的に、ＣＲＣ計算の効率を向上させるために、先頭のデータ・セグメント４０１に対してすでに計算されたＣＲＣ値を、例えば、図６に示したシフト・レジスタの初期値として、第２のデータ・セグメント４０２の第２のＣＲＣ値の計算に使用することができる。続く一連のデータ・セグメントの各ＣＲＣ値は、その後、通しのチェックサムとして計算することができる。この構成では、先頭のデータ・セグメントのＣＲＣ値は、先頭のデータ・セグメントからのすべてのデータ・ビットを使用して計算され、後続のデータ・セグメントのＣＲＣ値の計算に使用されるべく保持または記憶される。この再帰的な計算は、その後、次に続く一連のセグメントに拡張される。一般化して言えば、データ・セグメントｋ（インデックスｋは２からｎのうちで逐次１ずつ増加する可変の整数である）に対するＣＲＣ値は、データ・セグメントｋの総数のビットとその前のデータ・セグメント（ｋ−１）の前もって計算されたＣＲＣ値を使用して計算される。計算されたＣＲＣ値の各々は、各データ・セグメントｋに付加される。
【００７６】
図６に示した実施形態では、すべてのデータ・セグメントｕは、同じ長さｍをもち、同じＣＲＣ多項式を使用して演算される。けれども、本発明は、分割された入力データ・ブロックの異なるデータ・セグメントを演算するために、異なるＣＲＣ多項式の使用をも想定する。例えば、先頭のデータ・セグメントは、その他のデータ・セグメントに付加されることになるＣＲＣを計算するためのＣＲＣ多項式とは多項式次数またはサイズが異なるＣＲＣ多項式によって演算され得る。さらに、異なるデータ・セグメントのＣＲＣを計算するために使用される各ＣＲＣ多項式は、同じサイズであってもよいが、異なる係数をもち得る。例えば、方法５００は、奇数のデータ・セグメントの部分系列と偶数のデータ・セグメントの部分系列のような、ｎ個のデータ・セグメントを分けた２つの部分系列を演算するために、同じサイズの２つ異なるＣＲＣ多項式ｇＡ（ｘ）とｇＢ（ｘ）を使用してもよい。異なるデータセグメントに対して異なるＣＲＣ生成多項式を使用する利点は、「より前の」セグメントの情報部分がビット・エラーを有するとき、「より後の」ＣＲＣが見逃しを検出できることである。
【００７７】
図７は、本発明の第１の実施形態によるソリューションを使用時と従来技術のソリューション、すなわち、（ａ）トランスポート・ブロックごとにＣＲＣを付加する方式、（ｂ）符号ブロックごとにＣＲＣを付加する方式、及びハイブリッド（ａ）＋（ｂ）方式を使用時に得られたオーバヘッドの比較分析を例示する表を示す。また、ＣＲＣ計算時に使用されるデータ・セグメント数の関数として得られたオーバヘッドも比較される。図７に示されるように、本発明のソリューションにかかわるオーバヘッドは、データ・セグメント数に関係なく、従来技術の方式（ｂ）にかかわるオーバヘッドと同等である。さらに、本発明によると、オーバヘッドは、セグメント数２の場合の０．３９％〜０．７８％（最小）からデータ・セグメント数８の場合の０．５８％〜０．７８％（最大）の間にあり、データ・セグメント数によりそれほど大きく変動しない。これに対して、従来技術の方式（ａ）とハイブリッド方式（ａ）＋（ｂ）により得られたオーバヘッドは、かなり低く、データ・セグメント数が増加するにつれ減少する傾向を示す。
【００７８】
代替的な実施形態によれば、計算されたＣＲＣをすべてのデータ・セグメントにわたり実行しない及び／または付加しない。これにより、前述した実施形態に比べてオーバヘッドを減少させ、計算の複雑度を軽減することできる。
【００７９】
図８は、限られた数のデータ・セグメントにわたりＣＲＣが付加される、代替的な実施形態によるＣＲＣ付加方式の概要図を示す。この図示された例では、入力データ・ブロック４００は、４個のデータ・セグメント８０１、８０２、８０３、８０４に分割される。しかし、ＣＲＣはどのデータ・セグメントに対しても計算され、付加されるのではない。そうではなく、ＣＲＣは連続するデータ・セグメントからなるグループに対してのみ計算され、計算されたＣＲＣは各データ・ブロックの最後のデータ・セグメントに付加される。図８に示した例では、最初の２つのデータ・セグメント８０１，８０２が、データ・ブロック８１０を形成するものとして計算手順上扱われ、データ・セグメント８０１と８０２からの総数のデータ・ビットを基にＣＲＣ値が計算される。同様に、第４のセグメント８０４に付加されるＣＲＣ値は、第２のデータ・ブロック８２０を形成するものとして扱われるデータ・セグメント８０３と８０４からの総数のデータ・ビットを基に計算される 。これらのデータ・ブロック８１０、８２０は、入力データ４００のさらなる分割として解釈されるべきではなく、単に各ＣＲＣ値の計算時に使用されるデータ・セグメントのグループを画定するものとして見なされる。
【００８０】
図８に示した例では、形成されたデータ・ブロックは、同じ数のデータ・セグメントを含んでなる。概して言えば、ｎ個のデータ・セグメントは、同じ数または異なる数のデータ・セグメントを含んでなるデータ・ブロックに割り振ることができる。どちらの場合にも、ＣＲＣ値は、各データ・ブロックを構成する個々のデータ・セグメントからのすべてのデータ・ビットを使用して、各データ・ブロックごとに計算される。各データ・ブロックごとに計算されたＣＲＣ値は、次に、各データ・ブロックの所定のデータ・セグメントにのみ、例えば、最後のデータ・セグメントにのみ付加される。
【００８１】
この実施形態は、ＣＲＣ値を付加する対象のセグメントとして減少した数の予め選択されたデータ・セグメントを使用することの利点と、付加された各ＣＲＣにそれより前のデータ・セグメントからのデータ・ビット情報を反映することの利点を合わせもち、その後のＦＥＣ機能がデータ・セグメントごとに実行される場合に最も有利である。
【００８２】
図９は、通しのＣＲＣ値が限られた数のセグメントに付加され、その他のデータ・セグメント９０１、９０２、９０３には通常の巡回冗長検査のチェックサム９１０、９２０、９３０が付加される、本発明の別の有利な実施形態によるＣＲＣ付加方式の概要図を示す。通常のＣＲＣ９１０、９２０、９３０は、そのデータ・セグメントからの総数のデータ・ビットのみを使用して計算され、データ・セグメントのチェックサムと呼ばれる。図９に示した例では、第４のセグメント９０４にだけ、第４のセグメントからの総数のデータ・ビットとそれより前のすべてのデータ・セグメントからの総数のデータ・ビットを使用して計算されたＣＲＣ９４０が付加される。この構成は、並列化の量をより高くできる利点をもつ。
【００８３】
さらに別の展開では、通しのＣＲＣが付加される対象のセグメントとして、２つ以上のだデータ・セグメントを選択できる。
【００８４】
図１０は、図８及び図９を参照して前述した実施形態によるチェックサム値を生成するための方法１０００を説明するフローチャート図を示す。
【００８５】
本方法１０００は、入力データ４００をｎ個のデータ・セグメントに分割するステップＳ１０１０によって開始し、少なくとも２つ連続するデータ・セグメントからなる少なくとも一つのデータ・ブロックを形成するステップＳ１０２０がそれに続く。上記データ・ブロックは、ＣＲＣを計算する次のステップＳ１０３０で使用されるデータ・セグメントのグループをただ単に指定する。次に、データ・ブロックの各々に対して、ＣＲＣが各データ・ブロックを構成する個々のデータ・セグメントの総数のビットを使用して計算され、各データ・ブロックに対するチェックサム値が生成される。データ・ブロックに対して生成されたチェックサム値は、次に、各ブロックに含まれる一つのデータ・セグメントに付加される（Ｓ１０４０）。好ましくは、ＣＲＣが付加されるデータ・セグメントは、各データ・ブロックの最後のまたは一番右のデータ・セグメントである。
【００８６】
本方法１０００は、データ・ブロックに対するＣＲＣは、データ・ブロックを構成する個々のデータ・セグメントにわたる通しのチェックサムとして計算されることにさらに展開可能である。
【００８７】
さらに、前述したように、上記方法１０００は、ｎ個のデータ・セグメントを連続するデータ・ブロック―各ブロックは少なくとも２つの連続するデータ・セグメントからなる―に編成するまたは割り振ることを含むことができる。この構成では、計算ステップＳ１０３０は、各データ・ブロックに対する通しのチェックサムを計算することを含むことができ、各通しのチェックサムは各データ・ブロックに含まれる最後のセグメントに付加される。
【００８８】
本発明は、ｎ個のデータ・セグメントのすべてがデータ・ブロックに割り振られるのではない可能性をも含むので、上記データ・セグメントの少なくとも一つに対して、各データ・セグメントの総数のビットを使用することによって通常のチェックサムを計算し、計算されたチェックサムを各データ・セグメントに付加することが想定され得る。
【００８９】
さらに、データ・ブロックのチェックサムを計算するステップＳ１０３０は、各データ・ブロックにグループ分けされた個々のデータ・セグメントの総数のビットとそれより前のデータ・ブロックに対して計算された少なくとも一つのチェックサム及び／またはどのデータ・ブロックにも含まれないそれより前のデータ・セグメントに対して計算されたチェックサムを使用することを含むことができる。
【００９０】
さらに、この有利な実施形態によれば、データ・ブロックに対して計算されたチェックサムは、そのデータ・ブロックを構成する個々のデータ・セグメントのうちの一つだけに付加されるから、計算ステップＳ１０３０は、データ・ブロックを構成する個々のデータ・セグメントのうちの少なくとも一つに対してデータ・セグメントのチェックサムを計算し、そのチェックサム値を各データ・セグメントに付加することをさらに含むことができる。
【００９１】
上記方法１０００のさらなる展開では、異なるデータ・ブロック及び／またはセグメントのＣＲＣ値を計算するために、異なるＣＲＣ多項式を使用できる。
【００９２】
前述の実施形態において、付加ステップＳ５４０、Ｓ１０４０は、計算されたＣＲＣ値を各データ・セグメントに付加することとして説明された。しかし、本発明は、ＣＲＣ値の全ビットではなく、その一部だけを各データ・セグメントに付加することをも想定する。例えば、ＣＲＣ計算がサイズ１６の多項式を使用するとすれば、１６ビットのＣＲＣが得られ、各データ・セグメントに付加される。そこで、最後のセグメント以外のすべてのセグメントについては、１６ビットの一部だけがセグメントに付加されることが想定され得る。これは、チェックサムの一部を間引くことと解釈され得る。この利点は、このようにしたセグメントではオーバヘッドがより少なくてすみ、（生成多項式当り）単一のＣＲＣ計算ユニットのみを実現及び／または実行すればよいことである。
【００９３】
本発明はまた、上記に提示した方法を実行するように特別に適合されたハードウェア回路構成と、上述した方法によりＣＲＣ値を生成するためのプログラム命令によって制御された汎用ハードウェア回路構成を具備する、電子回路または装置をも提供する。
【図１】
2010537460.tif 000006
【図２】
2010537460.tif 000007
【図３】
2010537460.tif 000008
【図４】
2010537460.tif 000009
【図５】
2010537460.tif 000010
【図６】
2010537460.tif 000011
【図７】
2010537460.tif 000012
【図８】
2010537460.tif 000013
【図９】
2010537460.tif 000014
【図１０】
2010537460.tif 000015
【国際調査報告】
2010537460.tif 000016
2010537460.tif 000017