(57)【要約】【解決手段】線形ブロック符号の効率的な符号化のための方法および装置は、並列に符号化することによりより高速な性能をサポートするためにインパルス応答列を含むルックアップテーブルを使用する。利点は、既存の方式に欠如している拡張性を含む。【選択図】図１７
2004510380.tif 000002
【特許請求の範囲】
【請求項１】
下記工程を具備する方法：
情報信号を受信する、前記情報信号はゼロでない値を有するｐビットを含むｋビットのストリングからなる（ｋおよびｐは整数である）；
ｐ個のインパルス応答を受信する、前記ｐ個のインパルス応答の各々は前記ｐビットのうちの１つに対応する；および
チェックサムを得る、前記チェックサムは前記ｐ個のインパルス応答の加算からなる。
【請求項２】
前記ｐ個のインパルス応答の各々は線形ブロック符号のためのエンコーダのｋビットのストリングに対する応答を表し、前記ストリングは（ｋ−１）個のゼロビットとゼロでないビットをｐ番目の位置に含む、請求項１の方法。
【請求項３】
前記チェックサムは（ｎ−ｋ）ビットのストリングから構成され（ｎは整数である）、前記線形ブロック符号は形式
【数１】
2004510380.tif 000006
の生成元多項式により特徴づけられる、請求項２の方法。
【請求項４】
前記チェックサムは前記ｐ個のインパルス応答の２を法とする加算から構成される、請求項１の方法。
【請求項５】
下記工程を具備する方法：
情報信号を受信する、前記情報信号はゼロでない値を有するｐビットを含むｋビットのストリングから構成される（ｋおよびｐは整数である）；
インパルス応答を受信する、前記ｐ個のインパルス応答の各々は前記ｐビットのうちの１つに対応する；
エンコーダステート信号を受信する、前記エンコーダステート信号は、ゼロでない値を有するｒビットを含む（ｎ−ｋ）ビットのストリングから構成される（ｎおよびｒは整数である）；
ｒ個のゼロ応答を受信する、前記ｒ個のゼロ応答の各々は前記ｒビットのうちの
１つに対応する；および
チェックサムを得る、前記チェックサムは前記ｐ個のインパルス応答と前記ｒ個のゼロ応答の加算である。
【請求項６】
前記ｐ個のインパルス応答の各々は、線形ブロック符号のためのエンコーダの、ｋビットのストリングに対する応答を表し、前記ストリングは（ｋ−１）個のゼロビットとゼロでないビットをｐ番目の位置に含む。
【請求項７】
前記線形ブロック符号は形式
【数２】
2004510380.tif 000007
の生成元多項式により特徴づけられる、請求項６の方法。
【請求項８】
前記チェックサムは前記ｐ個のインパルス応答と前記ｒ個のゼロ応答の２を法とする加算から構成される、請求項５の方法。
【請求項９】
前記ｒ個のゼロ応答の各々はｒ番目のコンポーネントイニシャルステートを有する線形ブロック符号のためのエンコーダのｋ個のゼロビットのストリングに対する応答を表し、
前記ｒ番目のコンポーネントイニシャルステートは（ｎ−ｋ−１）個のゼロビットおよびゼロでないビットをｒ番目の位置に含む長さ（ｎ−ｋ）のストリングである、請求項５の方法。
【請求項１０】
前記線形ブロック符号は形式
【数３】
2004510380.tif 000008
の生成元多項式により特徴づけられる、請求項９の方法。
【請求項１１】
下記工程を具備する方法：
符号化のための信号を受信する；
複数のインパルス応答を受信する；
複数のゼロ応答を受信する；および
チェックサムを得る；
前記チェックサムは少なくとも２つの応答の加算から構成され；
前記少なくとも２つの応答の各々は前記複数のインパルス応答および前記複数のゼロ応答のうちの１つの一部分であり；
前記少なくとも２つの応答の各々は前記符号化のための信号内の所定位置に対応する。
【請求項１２】
前記少なくとも２つの応答の各々はゼロでない値を有するビットにより占有される前記符号化のための信号内の位置に対応する、請求項１１の方法。
【請求項１３】
前記チェックサムは２を法とする加算から構成される、請求項１１の方法。
【請求項１４】
下記工程を具備する方法：
第１情報信号を受信する、前記第１情報信号はゼロでない値を有するｐビットを含むｋビットのストリングから構成される（ｋおよびｐは整数である）；
ｐ個のインパルス応答を受信する、前記ｐ個のインパルス応答の各々は、前記ｐビットの１つに対応する；
第１エンコーダステート信号を受信する、前記第１エンコーダステート信号はゼロでない値を有するｒビットを含む（ｎ−ｋ）ビットのストリングから構成される（ｎおよびｒは整数である）；
ｒ個のゼロ応答を受信する、前記ｒ個のゼロ応答の各々は前記ｒビットの１つに対応する；
第２エンコーダステート信号を得る、前記第２エンコーダステート信号は前記ｐ個のインパルス応答と前記ｒ個のゼロ応答の加算から構成される；
第２情報信号を受信する、前記第２情報信号はｋビットのストリングから構成される；および
チェックサムを得る、前記チェックサムは少なくとも一部が前記第２エンコーダステート信号および前記第２情報信号に基づく。
【請求項１５】
前記ｐ個のインパルス応答の各々は線形ブロック符号のためのエンコーダの、ｋビットのストリングに対する応答を表し、前記ストリングは（ｋ−１）個のゼロビットおよびゼロでないビットをｐ番目の位置に含む、請求項１４の方法。
【請求項１６】
前記線形ブロック符号は形式
【数４】
2004510380.tif 000009
の生成元多項式により特徴づけられる、請求項１５の方法。
【請求項１７】
前記ｒ個のゼロ応答の各々はｒ番目のコンポーネントイニシャルステートを有する線形ブロック符号のためのエンコーダの、ｋ個のゼロビットのストリングに対する応答を表す、請求項１４の方法。
【請求項１８】
前記線形ブロック符号は形式
【数５】
2004510380.tif 000010
の生成元多項式により特徴づけられる、請求項１７の方法。
【請求項１９】
下記工程を具備する方法：
第１情報信号を受信する、前記第１情報信号はゼロでない値を有するｐビットを含むｋビットのストリングから構成される（ｋおよびｐは整数である）；
ｐ個のインパルス応答を受信する、前記ｐ個のインパルス応答の各々は前記ｐビットの１つに対応する；
第１エンコーダステート信号を受信する、前記第１エンコーダステート信号はゼロでない値を有するｒビットを含む（ｎ−ｋ）ビットのストリングから構成される（ｎおよびｒは整数である）；
ｒ個のゼロ応答を受信する、前記ｒ個のゼロ応答の各々は前記ｒビットの１つに対応する；
第２エンコーダステート信号を得る、前記第２エンコーダステート信号は前記ｐ個のインパルス応答と前記ｒ個のゼロ応答の加算でありゼロでない値を有するｓビットを含む（ｎ−ｋ）ビットのストリングから構成される；
第２情報信号を受信する、前記第２情報信号はゼロでない値を有するｑビットを含むｋビットのストリングから構成される；
ｑ個のインパルス応答を受信する、前記ｑ個のインパルス応答の各々は前記ｑビットの１つに対応する；
ｓ個のゼロ応答を受信する、前記ｓ個のゼロ応答の各々は前記ｓビットの１つに対応する；および
チェックサムを得る、前記チェックサムは前記ｑ個のインパルス応答と前記ｓ個のゼロ応答の加算である。
【請求項２０】
前記ｐ個のインパルス応答の各々は、線形ブロック符号のためのエンコーダの、ｋビットのストリングに対する応答を表し、前記ストリングは（ｋ−１）個のゼロビットおよびゼロでないビットをｐ番目の位置に含む、請求項１９の方法。
【請求項２１】
前記線形ブロック符号は形式
【数６】
2004510380.tif 000011
の生成元多項式により特徴づけられる、請求項２０の方法。
【請求項２２】
前記チェックサムは前記ｑ個のインパルス応答と前記ｓ個のゼロ応答の２を法とする加算から構成される、請求項１９の方法。
【請求項２３】
前記ｒ個のゼロ応答の各々は、ｒ番目のコンポーネントイニシャルステートを有する線形ブロック符号のためのエンコーダの、ｋゼロビットのストリングに対する応答を表し、
前記ｒ番目のコンポーネントイニシャルステートは（ｎ−ｋ−１）個のゼロビットとゼロでないビットをｒ番目の位置に含む長さ（ｎ−ｋ）のストリングである、請求項１９の方法。
【請求項２４】
前記線形ブロック符号は形式
【数７】
2004510380.tif 000012
の生成元多項式により特徴づけられる、請求項２３の方法。
【請求項２５】
下記工程を具備する方法：
情報信号を受信する、前記情報信号はゼロでない値を有するｐビットを含むｋビットのストリングから構成される（ｋおよびｐは整数である）；
ｋ個のインパルス応答を受信する、前記ｋ個のインパルス応答の各々は前記ｋビットの１つに対応する；および
チェックサムを得る、前記チェックサムは前記ｋ個のインパルス応答のうちのｐ個の加算から構成される。
【請求項２６】
前記ｋ個のインパルス応答の各々は線形ブロック符号のためのエンコーダの、ｋビットのストリングに対する応答を表し、前記ストリングは（ｋ−１）個のゼロビットおよびゼロでないビットを含む、請求項２５の方法
【請求項２７】
前記線形ブロック符号は形式
【数８】
2004510380.tif 000013
の生成元多項式により特徴づけられる、請求項２６の方法。
【請求項２８】
前記チェックサムはｐ個のインパルス応答の２を法とする加算から構成される、請求項２５の方法。
【請求項２９】
下記を具備する装置：
情報信号を受信し、チェックサムを出力するように構成配置された論理マトリクス；および
線形ブロック符号のためのエンコーダの複数の応答を記憶するように構成配置されたルックアップテーブル；
前記複数の応答の各々は所定の入力ストリングに対するエンコーダの応答から構成され、および
前記チェックサムは前記複数の応答の少なくとも２つの加算から構成される；および
前記複数の応答の前記少なくとも２つは少なくとも一部分が前記情報信号の少なくとも一部分に基づいている。
【請求項３０】
前記情報信号はｋビットのストリングから構成され、ｋは整数であり、および
前記複数の応答はＫ個のインパルス応答を含み、前記ｋ個のインパルス応答の各々は前記情報信号内の位置に対応する。
【請求項３１】
前記ｋ個のインパルス応答の各々はゼロイニシャルステートを有するエンコーダの、ｋビットのストリングに対する応答から構成され、
前記ｋビットのストリングは前記情報信号内の位置に対応する位置にゼロでない値のビットと、ゼロの値の（ｋ−１）ビットを含む、請求項３０の装置。
【請求項３２】
前記論理マトリクスはエンコーダステート信号を受信するようにさらに構成配置され、および
前記複数の応答の前記少なくとも２つは、少なくとも一部分が前記エンコーダステート信号の少なくとも一部にもとづいて選択される、請求項２９の装置。
【請求項３３】
前記エンコーダステート信号は（ｎ−ｋ）ビットのストリングから構成され、ｎは整数であり、および
前記複数の応答は（ｎ−ｋ）個のゼロ応答を含み、前記（ｎ−ｋ）個のゼロ応答の各々は前記エンコーダステート信号内の位置に対応する、請求項３２の装置。
【請求項３４】
前記（ｎ−ｋ）個のゼロ応答の各々はコンポーネントイニシャルステートを有するエンコーダの、ゼロ値を有するｋビットのストリングに対する応答から構成され、
前記コンポーネントイニシャルステートは、前記エンコーダステート信号内の位置に対応する位置にゼロでない値を有するビットと、ゼロ値を有する（ｋ−１）ビットを含む、請求項３３の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明はデジタル信号の転送（すなわち送信および／または記憶）に関する。特に、この発明は線形ブロック符号の符号化に関する。
【０００２】
【関連出願の記載】
デジタル信号は、音声、データおよびビデオ通信および画像、データ、および文書の記憶、処理およびファイル保管のようなアプリケーションに一般に使用されている。残念なことに、記憶媒体および送信チャネルは完全ではないので、それらを通過するデジタル情報にエラーを導入しがちである。例えば記憶媒体において、デジタル信号のいくつかまたはすべてが正しく記憶し、維持し、検索できない欠陥のためにエラーが生じる場合がある。送信チャネルにおいて、エラーは、例えば他の信号からの干渉、またはフェージング処理によるチャネル品質の変化のために起こる場合がある。
【０００３】
データの堅固性を増大するために、デジタル信号からチェック値を計算し、チェック値と一緒に送信するエラー検出方式を採用してもよい。（一般的な方法では、デジタル信号はブロックに分割され、転送する前にブロックからチェック値が計算され各ブロックに付加する。他の方法では、デジタル信号とチェック値は、インターリーブ及び／または時間的にその他の配列を持つようにしてもよい。）信号が検索され受信されるとき、チェック値計算が繰返される。転送前または転送後に計算されたチェック値が一致するなら、転送された信号はエラーが無いとみなしてもよい。チェック値が一致しないなら、信号は少なくとも１つのエラーを含んでいるとみなしてもよい。そのような計算に線形ブロック符号を使用されるとき、その結果得られるチェック値はチェックサムと呼ばれ、巡回符号がそのような計算に使用されると、その結果得られるチェック値は巡回冗長検査またはＣＲＣと呼ばれる。使用される符号の種類および遭遇するエラーの数および種類に応じて、デジタル信号の再送信なしにそのようなエラーを訂正できる場合がある。
【０００４】
（ｎ，ｋ）巡回符号Ｃの場合、ｋ情報シンボルはｎシンボル符号ワードに符号化される。例えば（４８、３２）巡回符号は３２のオリジナル情報シンボルと１６ビットのＣＲＣから構成される４８ビットの符号ワードを形成する。この種の巡回符号は、
【数９】
2004510380.tif 000003
の形式をもつ、次数ｎ−ｋの生成元多項式Ｇ（Ｘ）により固有に定義してもよい。そのような符号に従って計算されたチェックサムはｎ−ｋビットの長さを有する。（ｎ、ｋ）符号のための例示フォーマットを図１に示す。
【０００５】
ガロア域ＧＦ（２）を越えた加算は、論理排他的論理和（ＸＯＲ）演算に帰着し、一方この有限域を越えた乗算は論理論理積演算に帰着する。それゆえ、上述したように、生成元多項式により発生され、ＧＦ（２）を越えて印加される巡回符号の場合、エンコーダは図２に示す論理回路を用いて実現してもよい。この図において、ｇｉは生成元多項式Ｇ（Ｘ）の係数を表し、（ｎ−ｋ）記憶素子の各々は１ビット値を保持し、記憶素子の内容は一斉に更新される（すなわち、値はクロックサイクル毎に記憶素子にシフトされる）。最初のｋシフトの期間、スイッチプル（ｓｗｉｔｃｈ ｐｕｌｌｓ）は上方位置にあり、エンコーダに情報信号がロード可能である（そして所望であれば出力に通過させることができる）。次の（ｎ−ｋ）のシフトの期間、スイッチプルは下方位置に移動し、エンコーダの状態（すなわち記憶素子の順番の決められた内容に対応するビットストリング）がチェックサム信号としてクロック出力される。
【０００６】
エンコーダの設計中に生成元多項式がわかるなら、図２の回路はｉ番目のＡＮＤゲート（ｇｉ＝０の場合）を省略するかまたは接続構造（ｇｉ＝１の場合）と交換することにより簡単化するようにしてもよい。例えば、（バージニア州アーリントンの電気通信産業境界により発行されたＩＳ−２０００規格のパート２の例えばセクション２．２．３．４．２．１および２．１．３．５．２．１に規定されるような）符号多項式
【数１０】
2004510380.tif 000004
を図３に示す論理回路を用いて実現してもよい。
【０００７】
これらのセクションは非常に小さな記憶装置と少ない論理ゲートを用いた非常に低いハードウエア要件を有するが、図２および図３に示すようなシリアルエンコーダの実施はクロック期間あたりわずかに１ビットの入力信号を処理する。そのような性能は遅くて受け入れられない、特にリアルタイムデータストリームを含むアプリケーション（例えば通信アプリケーション）の場合にはそうである。
【０００８】
サイクルあたり１ビット以上で動作するエンコーダはあらかじめ計算されたルックアップテーブルを用いて実現されてきた。これらの実現において、現在のサイクルに対する剰余がルックアップテーブルから値を選択するためのインデックスとして使用され、選択された値は次のサイクルに対する剰余を計算するために使用される。そのようなエンコーダはサイクルあたり複数ビットを処理するけれども、そのサイズが剰余の長さに指数関数的に関係するルックアップテーブルを必要とする。それゆえ、そのような実現は倍率特性が悪く、高速および低記憶消費の両方を必要とするアプリケーションには適さないかもしれない。
【０００９】
【課題を解決するための手段】
この発明の実施形態に従う装置において、論理マトリクスは情報信号および情報信号の部分に対応するインパルス応答を受信する。論理マトリクスはインパルス応答の少なくとも２つの加算に基づくチェックサムを出力する。
【００１０】
【発明の実施の形態】
図４に示すように、この発明の実施形態に従う装置１００は論理マトリクス１２０に入力される幅ｋビットの情報信号２０を受信する。ルックアップテーブル１１０は論理マトリクス１２０の入力の他のセットに所定のエンコーダ応答情報を供給する。論理マトリクス１２０はその入力に関して所定の論理機能を実行し、チェックサム信号３０を出力する。
【００１１】
ルックアップテーブル１１０は、特定の生成元多項式Ｇ（Ｘ）により発生され、所定の始発状態を有する巡回符号のためのエンコーダ（例えば、図２の回路の特定の実施に従うエンコーダ）のインパルス応答に関連する情報を記憶する。特に、ルックアップテーブル１１０はそのようなエンコーダのｋインパルス応答を記憶する。この場合、ｊ番目のインパルス応答（ｊは１乃至ｋの整数である）は、ｊ番目のインパルス（すなわち、ｊ番目のビットのみがゼロでない値を有する長さｋのストリング）入力におけるシフトから得られるエンコーダの状態である。ルックアップテーブル１１０を構築する例示的方法は以下に述べる。
【００１２】
論理マトリクス１２０は情報信号２０のゼロでないビットに対応する、ルックアップテーブル１１０からのインパルス応答を選択し、これらの応答の加算値を出力する。図５はｋ個のＡＮＤゲート１４０と１つのＸＯＲゲート１５０を含む論理マトリクス１２０の例示実施例のブロック図を示す。各ＡＮＤゲート１４０（ｍ）（ｍは１乃至ｋの整数である）は１ビット幅の制御入力と（ｎ−ｋ）ビット幅のデータ入力を有する。ゲート１４０（ｍ）への制御入力が１の値を有するなら、データ入力は出力に通過する。そうでなければ、ゲートの出力はゼロである。マトリクス１２０の各ゲート１４０（ｍ）に対して、制御入力は情報信号２０のｍ番目のビットであり、データ入力はルックアップテーブル１１０から得たｍ番目のインパルス応答である。例示実施例において、ＡＮＤゲート１４０（ｍ）は上述した論理機能を実行するように構成されたより制限された入力キャパシティ（例えば２入力ＮＡＮＤゲート）を有するいくつかのまたは多くの論理ゲートから構成される。
【００１３】
ＸＯＲゲート１５０はＡＮＤゲート１４０（ｍ）のｋ個の出力を受信し、（ｎ−ｋ）ビット幅の出力を生成する。ＸＯＲゲート１５０の出力のＰ番目のビット（ｐは１乃至（ｎ−ｋ）の整数である）は、（ａ）ＡＮＤゲート１４０（ｍ）の出力のｐ番目のビットの奇数が１の値を有するなら１の値を有し、（ｂ）ＡＮＤゲート１４０（ｍ）の出力のｐ番目のビットの偶数が１の値を有するならゼロの値を有する。言い換えればＸＯＲゲート１５０の出力は入力のビットに基づくＸＯＲであり、出力のｐ番目のビットは入力のｐ番目のＸＯＲである。
【００１４】
ＸＯＲゲート１５０はより小さなキャパシティを有するＸＯＲゲートのツリーとして実現してもよい。例えば、図６はどのようにして４入力ＸＯＲゲートが３つの２入力ＸＯＲゲート（各ゲートは他の論理ゲートから実現してもよい）のツリーから構成できるかを示す。例示実施例において、ＸＯＲゲート１５０は、上述した論理機能を実行するように構成されたより制限された入力キャパシティ（例えば２入力ＮＡＮＤゲート）を有するいくつかのまたは多くの論理ゲートから構成される。
【００１５】
留意すべきことは、上述した論理機能を実現する際に、論理マトリクス１２０の実際の構成は、図５に示す特定のもの以外の多くの形態を取るということである。例えば固定のイニシャルエンコーダステートおよび固定のＧ（Ｘ）、ｎおよびｋに対してルックアップテーブルは一定であるので、ＡＮＤゲート１４０（ｍ）への入力のあるビットはゼロであり、それゆえ、これらのゲートの出力の対応するビットもゼロであるということが先験的に知ることができるようにしてもよい。論理マトリクス１２０の動作は論理式を用いて記載することができるので、ゼロであるとわかっている項をこの式から消去するためにそのような先験的知識を印加することができ、式を少なくし、対応する実装（例えば論理ゲート）を簡単化することができる。そのような低減は手動でまたは自動的に実行することができる。この発明の装置に従う一実施形態において、特定のＧ（Ｘ）、ｎおよびｋのための論理マトリクス１２０の構成および特定のイニシャルエンコーダステートの構成は、Ｓｙｎｏｐｓｉｓ社（カリフォルニア州マウンテンビュー）により製造されたデザインコンパイラーのような電子デザインツールを用いてより最適な形態（例えば、図５に示す構成の論理動作に等価な論理動作を実行するためにより少ない論理ゲートを必要とする形態）に低減される。
【００１６】
図７はあらかじめ選択された多項式Ｇ（Ｘ）により発生される巡回符号のためにエンコーダにインパルス入力のシーケンスを入力することによりルックアップテーブル１１０を発生する例示方法のためのフローチャートを示す。この方法において、エンコーダは、（例えば、図２の回路の特定の実施に従って）ハードウエアで実現してもよい。しかしながら、留意すべきことは、一度ルックアップテーブルの構築が完了すると、そのようなエンコーダと無関係に、この発明を実施することが可能である。それゆえ、少なくともエンコーダの一部はソフトウエアで実現することが望ましいかもしれない。ルックアップテーブル１１０に記憶すべき情報が利用可能であると、（図４の装置に示すように）ハードウエアであれ、ソフトウエアであれ、そのようなエンコーダと無関係にこの発明を実施することが可能である。
【００１７】
サブタスクＰ１１０において、カウンタ値ｉは１に設定される。エンコーダの応答はそのイニシャルステートに依存するので、サブタスクＰ１１０は所定のストリングの値をその記憶素子に記憶することによりエンコーダをイニシャライズすることを含む。留意すべきことは、図２に従うエンコーダがゼロステートにイニシャライズされると（すなわち、ゼロのイニシャル値が各記憶素子に記憶される）、ゼロの値のストリングが入力されるとき、エンコーダはそのステートを変えないであろうということである。そのようなストリングは、いくつかのアプリケーションにおいて、共通のリーディングシーケンスであるので、エンコーダを１の値のストリング（またはその他のゼロでないストリングで）イニシャライズすることが望ましいかもしれない。
【００１８】
サブタスクＰ１２０において、ｉ番目のインパルス入力（すなわち、ｉ番目のビットのみがゼロでない値を有する長さｋのストリング）がエンコーダ（またはそのシミュレーション）に入力される。サブタスクＰ１３０において、この入力（すなわち、インパルス入力がロードされた後エンコーダのステートを表す（ｎ−ｋ）ビットのストリング）に対するエンコーダの応答はルックアップテーブル１１０の対応するロケーションに記憶される。サブタスクＰ１４０のテスト及びサブタスクＰ１５０のループメインテナンスおよびイニシャライズ動作を経由して、すべてのｋ個の可能なインパルス入力に対してインパルス応答が記憶されるまでサブタスクＰ１１０、Ｐ１２０およびＰ１３０が、反復される。
【００１９】
図８はサブタスクＰ１２０およびＰ１３０の１つの反復のグラフィック描画である。この例において、ｉ番目のインパルス入力に対するエンコーダの応答はルックアップテーブルのｉ番目の行に記憶される。しかしながら、入力識別子とテーブルロケーションとの間のその他の所定の対応を使用してもよい。図７および図８に示す方法以外に、装置１００に使用するのに適したルックアップテーブル１１０を発生するための多くの他の方法が可能である。
【００２０】
ここに記載した方法および装置は優れた拡張性を示す。例えば、留意すべきは、ルックアップテーブル１１０のサイズは、ｎがｋの定数とともに増加するので、（またはｋが（ｎ−ｋ）の定数と共に増加するので、）線形的にのみ増大する。そのような場合、ＸＯＲゲートを実現するために使用されるＸＯＲゲートのツリーの深さはｌｏｇ２（Ｎ）として成長すると見込まれるであろう。
【００２１】
図９はこの発明の他の実施形態に従う装置２００のためのブロック図を示す。この装置において、論理マトリクス２２０により出力される応答信号６０は次の符号化におけるイニシャルエンコーダステートとして使用するためにエンコーダステートレジスタ３４０に記憶するようにしてもよくおよび／または以下に記載するようにチェックサム信号３０として出力するようにしてもよい。
【００２２】
あるアプリケーションにおいて、ｋビット以上のデータ信号から（ｎ−ｋ）ビットのチェックサムビットを計算するために（ｎ，ｋ）巡回符号を使用することが望ましいかもしれない。装置２００の例示アプリケーションにおいて、符号化されるデータ信号はｋビットの隣接しかつ重複しないストリング（すなわちブロック）に分割され、情報信号２０の例として（更新信号４０と同期して）装置２００に連続的に入力される。図１０は情報信号２０の４つのｋビット例２０−１乃至２０−４に分割されたデータ信号５０の例を示す。
【００２３】
（例えば、図２の回路の特定の実施に従って）ルックアップテーブル２１０は特定の生成元多項式Ｇ（Ｘ）により発生される巡回符号のためのエンコーダのインパルス応答に関連する情報を記憶する。特に、ルックアップテーブル２１０はゼロイニシャルステートを有するエンコーダのｋ個のインパルス応答を記憶する（すなわち、各記憶素子はゼロの値を保持する）。ｊ番目のインパルス応答（ｊは１乃至ｋの整数）はｊ番目のインパルス入力におけるシフトから得られるエンコーダのステートであり、この入力はｊ番目のビットのみがゼロでない値を有する長さｋのストリングである。
【００２４】
エンコーダのイニシャルステートの変化（例えば情報信号２０の１つの例から次の例へ）を説明するために、ルックアップテーブル２１０はまたエンコーダの（ｎ−ｋ）ゼロ応答も記憶する。特に、ｑ番目のゼロ応答（ｑは１乃至（ｎ−ｋ）の整数）は、ｋ個のゼロ値ビットが、ｑ番目のコンポーネントイニシャルステートを有するエンコーダにシフトされると得られる状態である。ｑ番目のコンポーネントイニシャルステートはｑ番目のビットのみがゼロでない値を有する長さ（ｎ−ｋ）のストリングである。
【００２５】
図１１はルックアップテーブル２１０のゼロ応答部分を発生する例示方法のためのフローチャートを示す。この方法は、所定のイニシャルステートのセットの１つを有するあらかじめ選択された多項式Ｇ（Ｘ）により発生される巡回符号のためのエンコーダにゼロ入力を入力することから構成される（なお、この方法は図７のフローチャートに示す方法を含みそのフローチャートのタスクＰ１４０から続く）。上述したように、エンコーダは例えば、図２の回路の特定の実施に従う）ハードウエアで実現してもよい。しかし一度ルックアップテーブル２１０の構築が完了すると、そのようなエンコーダと無関係にこの発明を実施することができる。それゆえ、少なくともエンコーダの一部をソフトウエアで実現することが望ましいかもしれない。ルックアップテーブル２１０に記憶すべき情報が利用可能であると、（例えば、図９の装置で示すように）ハードウエアであれ、ソフトウエアであれ、そのようなエンコーダに無関係にこの発明を実施することが可能である。
【００２６】
サブタスクＰ１６０において、カウンタ値ｑは１に設定される。サブタスクＰ１７０において、カウンタ値ｉはインクリメントされる（または等価的に値（ｋ＋ｑ）に設定される）。サブタスクＰ１８０において、（ｎ−ｋ）値のストリングをその記憶素子に記憶することによりエンコーダはｑ番目のコンポーネントイニシャルステートにイニシャライズされる。ｑ番目の値は１であり、他のすべての値はゼロである。
【００２７】
サブタスクＰ１９０において、ゼロ入力（すなわちｋ個のゼロビットのストリング）はエンコーダ（またはそのシミュレーション）に入力される。サブタスクＰ２００において、この入力（すなわち、ゼロ入力がロードされた後エンコーダのステートを表す（ｎ−ｋ）ビットのストリング）に対するエンコーダの応答はルックアップテーブル２１０の対応するロケーションに記憶される。サブタスクＰ２１０のテストおよびサブタスクＰ２２０におけるループメインテナンス動作を経由して、すべての（ｎ−ｋ）個の可能なコンポーネントイニシャルステートに対してゼロ応答が記憶されるまで、Ｐ１７０、Ｐ１８０、Ｐ１９０およびＰ２００が繰返される。
【００２８】
図１２はサブタスクＰ１８０、Ｐ１９０、およびＰ２００の１つの反復のグラフィック描画である。この例において、ルックアップテーブル２１０の最初のｋ行は上述したルックアップテーブル１１０の最初のｋ行と同じであり、ｑ番目のコンポーネントイニシャルステートを有するエンコーダのゼロ応答はルックアップテーブル２１０のｉ番目の行に記憶される。但し、入力識別子とテーブルロケーションとの間のその他の所定の対応を使用するようにしてもよい。図７、８、１１、および１２に示す方法の他に、ルックアップテーブル２１０に使用するのに適したインパルス応答とゼロ応答のセットを発生する多くの他の方法が可能である。
【００２９】
図１３はｎ個のＡＮＤゲート１４０と１つのＸＯＲゲート２５０を含む、論理マトリクス２２０のブロック図を示す。上述したように、各ＡＮＤゲート１４０（ｒ）（ｒは１乃至ｎの整数）は１ビット幅の制御入力と（ｎ−ｋ）ビット幅のデータ入力を有する。ゲート１４０（ｒ）への制御入力が１の値を有するなら、データ入力は出力に通過され、そうでなければ、ゲートの出力はゼロである。
【００３０】
マトリクス２２０の各ゲート１４０（ｓ）に対して（但し、ｓは１乃至ｋの整数）、制御入力はルックアップテーブル２１０から得た、情報信号２０のｓ番目のビットであり、データ入力はｓ番目のインパルス応答である。マトリクス２２０の各ゲート１４０（ｔ）に対して（ｔは（ｋ＋１）乃至ｎの整数である）、制御入力はエンコーダステート信号８０の（ｔ−ｋ）番目のビットであり、データ入力はルックアップテーブル２１０から得られた（ｔ−ｋ）番目のゼロ応答である。
【００３１】
ＸＯＲゲート２５０はＡＮＤゲート１４０（ｒ）のｎ出力を受信し、（ｎーｋ）ビット幅の出力を生成する。ＸＯＲゲート１５０の出力のｐ番目（ｐは１乃至（ｎ−ｋ）の整数である）のビットは（ａ）ＡＮＤゲート１４０（ｒ）の出力のｐ番目のビットの奇数が１の値を有するなら１の値を有し、（ｂ）ＡＮＤゲート１４０（ｒ）の出力のｐ番目のビットの偶数が１の値を有するならゼロの値を有する。言い換えれば、ＸＯＲゲート２５０の出力はその入力のビットにもとづくＸＯＲであり、その出力のｐ番目のビットはその入力のｐ番目のビットのＸＯＲである。ＸＯＲゲート２５０の出力は更新信号４０の指定された遷移（例えば立ち上がりおよび／または立下り）に応答してＣＲＣレジスタ３４０に記憶される。
【００３２】
ＸＯＲゲートに関して上述したように、例示実施例において、ＸＯＲゲート２５０は、上述した論理機能を実行するように構成されたより制限された入力キャパシティ（例えば２入力ＮＡＮＤゲート）を有するいくつかのまたは多数の論理ゲートから構成してもよい。さらに、論理マトリクス１２０と同様に、留意すべきは、上述した論理機能を実現する際に、論理マトリクス２２０の実際の構成は図１０に示す特定の構成以外の多くの形態を取ることができる。例えば、固定のＧ（Ｘ）、ｎおよびｋに対してルックアップテーブル２１０は一定であるので、ＡＮＤゲート１４０（ｒ）へのデータ入力のあるビットがゼロであり、それゆえ、これらのゲートの出力の対応するビットもゼロであるということを先験的に知ることができるようにしてもよい。この発明に従う装置の一実施形態において、論理マトリクス２２０の構成はＳｙｎｏｐｓｉｓ社（カリフォルニア州、マウンテンビュー）により製造されたデザインコンパイラーのような電子デザインツールを用いてより最適な形態に低減される（例えば、図１３に示す論理動作に等価な論理動作を実行するためにより少ない論理ゲートを必要とする形態）。
【００３３】
エンコーダステート信号１８０はエンコーダステートレジスタ３４０の現在の状態を表す。例示実施において、エンコーダステートレジスタ３４０は所望のエンコーダイニシャルステートを記憶するためにイニシャライズされる。情報信号２０の最初の例２０−１が論理マトリクス２２０の適当な入力に存在するとき、エンコーダステートレジスタ３４０はエンコーダステート信号８０の最初の例８０−０を介して論理マトリクス２２０の適当な入力にこの所望のイニシャルステートを与える。論理マトリクス２２０の出力（すなわち応答信号６０）に対して安定化させるための十分な時間が経過した後、更新信号の指定された遷移によって、エンコーダステートレジスタ３４０は、その出力を記憶し、エンコーダステート信号８０の第２の例８０−１として論理マトリクス２２０に送る。
【００３４】
エンコーダステート信号８０−１が論理マトリクス２２０の適当な入力に存在するとき、情報信号２０の次の例２０−２が論理マトリクス２２０の対応する適当な入力に存在する。応答信号６０に対して、安定化させるための十分な時間が経過した後、更新信号の指定された遷移によって、エンコーダステートレジスタ３４０はその信号を記憶し、エンコーダステート信号８０の第３の例８０−２として論理マトリクス２２０に送る。このプロセスは、情報信号２０の最終例２０−ｘ、およびエンコーダステート信号８０の例８０−（ｘ−１）が論理マトリクス２２０の適当な入力に存在するまで続く。これらの入力に応答して論理マトリクス２２０の出力（すなわち応答信号６０）は元のデータ信号５０の所望のチェックサムを表し、この信号はチェックサム信号３０として出力される。
【００３５】
ほとんどのアプリケーションの場合、装置２００がチェックサム信号３０として応答信号６０の他の例のいずれかを出力する必要はないであろう。それゆえ、他の実現方法として、応答信号６０の他の例がチェックサム信号３０に現われるのを防止するために（更新信号４０に基づいて適当なタイミング信号により制御される）装置２００の出力にレジスタおよび／またはゲートを設けても良い。
【００３６】
データ信号５０の合計ビット数がｋの倍数である必要はないかもしれない。例えば、データ信号５０はｋの倍数である長さにゼロをパディングしてもよい。しかしながら、留意すべきは、そのような場合、パディングしていないデータ信号５０を例えば図２に示すエンコーダにシフトすることにより出力されるであろう結果と等価な結果を得るためにチェックサム信号３０の最終例にリバースサイクリックシフトを実行する必要があるかも知れない。
【００３７】
図１４Ａは信号ストリームの各データ信号５２が幅ｋの情報信号２２の多数の例から構成される信号ストリームを示す。図１４Ｂはチェックサム信号３０を含むように符号化した後どのようにこの信号ストリームを構成するかの一例を示す。
【００３８】
図１５はこの発明のさらなる実施形態に従う装置を示す。エンコーダステートレジスタ３４０に関して、クロック信号７０は図９の装置の更新信号４０の関数に類似するこの装置の関数を実行する。情報信号２２の新しい例と段階的エンコーダステート信号８５がその入力に存在する後に、クロック信号の期間は、少なくとも論理マトリクス２２０が安定化するのに必要な最大時間と同じ時間であることが望ましい。
【００３９】
情報信号２２ａ１の到着が論理マトリクス２２０の入力にあるとして図５に示す装置の例示アプリケーションについて説明を始める。フロー制御４１０は、（例えば以下に記載するように）所望のエンコーダイニシャルステートを有する段階的エンコーダステート信号８５が、情報信号２２ａ１とともに論理マトリクス２２０の入力に存在するように構成される。装置２００の状態を安定可能にする十分な時間の後に、論理マトリクス２２０の結果として得られる出力（すなわち応答信号６０）はクロック信号７０のアサーションによりエンコーダステートレジスタ３４０（およびエンコーダステート信号８０）にクロック入力される。フロー制御４１０はエンコーダステート信号８０を（段階的エンコーダステージ信号８５として）論理マトリクス２２０の入力に渡すように構成される。
【００４０】
今、情報信号２２ａ２が論理マトリクス２２０の入力に到達する。十分な修正時間の後、応答信号６０はクロック信号７０の別のアサーションによりエンコーダステートレジスタ３４０にクロック入力される。（すなわち、Ｇ（Ｘ）により発生される巡回符号を有するデータ信号５０ａの符号化に対応して）所望のチェックサム３０ａがエンコーダステートレジスタ３４０の出力に存在し、必要に応じて装置３００により出力可能である。
【００４１】
同様に、情報信号２２ｂ１は論理マトリクス２２０の入力に到達する、そしてフロー制御４１０は、段階的エンコーダステート信号８５が所望のエンコーダイニシャルステートを論理マトリクス２２０の別の入力に与えるように構成される。マトリクス２２０の結果として得られる出力（すなわち応答信号６０）はクロック信号７０のアサーションにより、エンコーダステートレジスタ３４０（およびエンコーダステート信号８０）にクロック入力される。フロー制御４１０はエンコーダステート信号８０を（段階的エンコーダステート信号８５として）論理マトリクス２２０の入力に渡すように構成される。次に、情報信号２２ｂ２は論理マトリクス２２０の入力に到達する。十分な修正時間の後で、クロック信号７０がアサートされ応答信号をエンコーダステートレジスタ３４０にクロック入力し、それによりレジスタ３４０の出力にクロックし、所望のチェックサム３０ｂとして出力する。例示アプリケーションにおいて、データ信号と対応するチェックサムは次に図１４Ｂに示すように組み立てられる。
【００４２】
論理マトリクス２２０へのイニシャルエンコーダステートの指定時刻における供給はフロー制御４１０を介して自動的に成就される。図１６に示すように、ブロック４１０はマルチプレクサ４４０を含むことができ、マルチプレクサ４４０は段階的エンコーダステート信号８５を論理マトリクス２２０の入力（すなわち図１０のエンコーダステート信号８０を受信するために示される（ｎ−ｋ）入力ラインに）渡す。カウンタ４２０から受信した信号に応じて、マルチプレクサ４４０は段階的エンコーダステート信号８５をエンコーダステート信号８０または（イニシャル値レジスタ４３０に記憶された）（ｎ−ｋ）ビット幅イニシャルエンコーダステートを運ばせる。
【００４３】
カウンタ４２０は所定のパラメータｚに従って動作する。
【００４４】
但し
【数１１】
2004510380.tif 000005
（すなわち、Ｄ／ｋ以上の最も小さな整数）およびＤはデータ信号５０のビット長である。図１６の例において、ｚ＝２である。カウンタ４２０のカウント値はクロック信号７０のサイクル毎にインクリメントされ、ｚクロックサイクルごとにゼロにリセットされる。カウンタ４２０のカウント値がゼロのとき、カウンタ４２０はマルチプレクサ４４０にレジスタ４３０からのイニシャルエンコーダステートを出力させる。そうでなければ、カウンタ４２０はマルチプレクサ４４０にエンコーダステート信号８０を出力させる。必要に応じてエンコーダステート信号８０とイニシャルエンコーダ値を、段階的エンコーダステート信号８５に載せるための他の多くの構成が可能である。
【００４５】
図１７に示すように、この発明のさらなる実施形態に従う装置は、入力レジスタ２３０を含むことができ、入力レジスタ２３０はデータ信号５２を受信し、情報信号２２のｋビット幅例を出力する。入力レジスタ２３０はデータ信号５２の個々の値を直列におよび／または並列に受信することができる。クロック信号７０の各サイクルにおいて、入力レジスタ２３０が情報信号２２の次の例を供給可能とするのに十分なレートでデータ信号がデータを入力レジスタ２３０に供給することが望ましい。例示実現方法において、入力レジスタ２３０は環状キューまたは「リングバッファ」として構成してもよい。他の実現方法において、入力レジスタ２３０はダブルバッファとして構成してもよい。入力レジスタ２３０へのリードアクセスとライトアクセスが衝突する実装において、入力レジスタ２３０はデュアルポート記憶素子を用いて実現できる。
【００４６】
記載した実施形態の上述した提示は当業者がこの発明を作成または使用可能にするために提供される。これらの実施形態に対する種々の変形が可能であり、ここに提示した一般的原理は他の実施形態にも同様に適用可能である。例えば、この発明は一部分または全体を配線で接続された回路として、特定用途向け集積回路に組み立てられた回路構成として、また不揮発性記憶装置にロードされたファームウエアプログラムとして、または機械読み出し可能なコードとしてデータ記憶媒体からロードされるソフトウエアプログラムまたはデータ記憶媒体にロードされるソフトウエアプログラムとして実現可能である。そのようなコードは、マイクロプロセッサ、マイクロコントローラ、または他のデジタルシグナルプロセッシングユニットのような論理素子のアレイにより実行可能な命令群である。従って、この発明は上に示した実施形態に限定することを意図したものではなく、ここに何らかの方法で開示した原理および新規な特徴に一致する最も広い範囲に一致する。
【図面の簡単な説明】
【図１】
図１は符号ワードのフォーマットを示す図である。
【図２】
図２は巡回符号のための一般的なエンコーダのための論理図である。
【図３】
図３は特定の巡回符号のためのエンコーダの論理図である。
【図４】
図４はこの発明の一実施形態に従う装置のブロック図である。
【図５】
図５は論理マトリクス１２０のための回路図である。
【図６】
図６はより小さいキャパシティを有するＸＯＲゲートのツリーから構成されたＸＯＲゲートを示す。
【図７】
図７はルックアップテーブル１１０を発生するための方法のためのフローチャートを示す。
【図８】
図８は図７の方法サブタスクＰ１２０およびＰ１３０の１つの反復を示す。
【図９】
図９はこの発明の他の実施形態に従う装置のためのブロック図である。
【図１０】
図１０は情報信号の例からなるデータ信号のグラフィック描画である。
【図１１】
図１１は図７に示すフローチャートに続くルックアップテーブル２２０を発生するための方法のためのフローチャートを示す。
【図１２】
図１２は図１１の方法のサブタスクＰ１８０、Ｐ１９０、およびＰ２００の１つの反復を示す。
【図１３】
図１３は論理マトリクス２２０のための回路図である。
【図１４Ａ】
図１４Ａはデータ信号の例からなる信号ストリームのグラフィック描画である。
【図１４Ｂ】
図１４Ｂは符号化された信号ストリームのグラフィック描画である。
【図１５】
図１５はこの発明のさらに他の実施形態に従う装置のためのブロック図である。
【図１６】
図１６はフロー制御ブロックのためのブロック図である。
【図１７】
図１７はこの発明のさらに他の実施形態に従う装置のためのブロック図である。
【図１】
2004510380.tif 000014
【図２】
2004510380.tif 000015
【図３】
2004510380.tif 000016
【図４】
2004510380.tif 000017
【図５】
2004510380.tif 000018
【図６】
2004510380.tif 000019
【図７】
2004510380.tif 000020
【図８】
2004510380.tif 000021
【図９】
2004510380.tif 000022
【図１０】
2004510380.tif 000023
【図１１】
2004510380.tif 000024
【図１２】
2004510380.tif 000025
【図１３】
2004510380.tif 000026
【図１４Ａ】
2004510380.tif 000027
【図１４Ｂ】
2004510380.tif 000028
【図１５】
2004510380.tif 000029
【図１６】
2004510380.tif 000030
【図１７】
2004510380.tif 000031
【国際公開パンフレット】
2004510380.tif 000032
2004510380.tif 000033
2004510380.tif 000034
2004510380.tif 000035
2004510380.tif 000036
2004510380.tif 000037
2004510380.tif 000038
2004510380.tif 000039
2004510380.tif 000040
2004510380.tif 000041
2004510380.tif 000042
2004510380.tif 000043
2004510380.tif 000044
2004510380.tif 000045
2004510380.tif 000046
2004510380.tif 000047
2004510380.tif 000048
2004510380.tif 000049
2004510380.tif 000050
2004510380.tif 000051
2004510380.tif 000052
2004510380.tif 000053
2004510380.tif 000054
2004510380.tif 000055
2004510380.tif 000056
2004510380.tif 000057
2004510380.tif 000058
2004510380.tif 000059
2004510380.tif 000060
2004510380.tif 000061
2004510380.tif 000062
2004510380.tif 000063
2004510380.tif 000064
2004510380.tif 000065
2004510380.tif 000066
2004510380.tif 000067
2004510380.tif 000068
2004510380.tif 000069
2004510380.tif 000070
2004510380.tif 000071
2004510380.tif 000072
2004510380.tif 000073
2004510380.tif 000074
2004510380.tif 000075
2004510380.tif 000076
2004510380.tif 000077
2004510380.tif 000078
【国際公開パンフレット（コレクトバージョン）】
2004510380.tif 000079
2004510380.tif 000080
【国際調査報告】
2004510380.tif 000081
2004510380.tif 000082