(57)【特許請求の範囲】
【請求項１】
デコーダ・システムであって、
状態メトリック・メモリとカスケード形加算／比較／選択（ＡＣＳ）ユニットとを含む状態メトリック更新ユニットであって、
前記カスケード形ＡＣＳユニットが、前記状態メトリック・メモリとともに複数のＡＣＳ処理を実行する複数の直列結合されたＡＣＳステージを含み、
１つのＡＣＳステージが、複数の経路判断を識別し、該識別された経路判断をそれに結合された次のＡＣＳステージに伝えるように動作可能である、
状態メトリック更新ユニットと、
トレースバック・ユニットであって、これに関連したトレースバック・メモリに１組の累積経路判断を格納し、該１組の累積経路判断に対してトレースバックを実行する、トレースバック・ユニットと、
を具備し、
前記ＡＣＳステージおよび前記次のＡＣＳステージに関連した前記経路判断が、前記トレースバック・メモリに書き込まれる前に前記ＡＣＳ処理中に１組として累積され、これにより、前記トレースバック・メモリに対するアクセスを最小限にする、
デコーダ・システム。
【請求項２】
前記識別された経路判断が、該識別された経路判断をＡＣＳ処理中に前記ＡＣＳステージから前記次のＡＣＳステージに送ることによって、１組として累積される、請求項１記載のデコーダ・システム。
【請求項３】
前記状態メトリック更新ユニットが、ＡＣＳ処理中に、１組のブランチ・メトリック値を選択して１組の状態メトリック値と同期させるよう動作可能なブランチ・メトリック選択ユニットをさらに含む、請求項１記載のデコーダ・システム。
【請求項４】
複数のＡＣＳステージに関して前記１組のブランチ・メトリックを同期させる遅延回路をさらに含む、請求項３記載のブランチ・メトリック選択ユニット。
【請求項５】
前記カスケード形ＡＣＳユニットのステージに対する状態メトリック値を識別する状態メトリック・メモリ・アドレス指定とブランチ・メトリック選択用の状態インデックスとを提供する状態インデックス発生器をさらに含む、請求項３記載のブランチ・メトリック選択ユニット。
【請求項６】
ユーザ供給コード多項式を格納し、複数のコンボルーション・コードに対してフレキシブルな処理をイネーブルする１組のコード多項式レジスタをさらに含む、請求項３記載のブランチ・メトリック選択ユニット。
【請求項７】
前記ユーザ供給コード多項式を受けるブランチ・メトリック・インデックス・ロジック回路であって、該ブランチ・メトリック・インデックス・ロジックが、状態インデックスと状態カウンタとを受けて、多数のＡＣＳステージに対するブランチ・メトリック・インデックスを発生し、正しいブランチ・メトリックを選択する、ブランチ・メトリック・インデックス・ロジック回路をさらに含む、請求項６記載のブランチ・メトリック選択ユニット。
【請求項８】
前記状態メトリック更新ユニットと前記トレースバック・ユニットとの両方に動作上結合されたＤＳＰインターフェース回路をさらに含み、該ＤＳＰインターフェース回路が、ＤＳＰからの前記ブランチ・メトリックを前記トレースバック・ユニットに伝え、デコードされた出力ビットを前記トレースバック・ユニットから前記ＤＳＰに送る、
請求項１記載のデコーディング・システム。
【請求項９】
前記ＤＳＰが、ブランチ・メトリック計算およびデパンクチャを実行し、これにより、前記デコーディング・システムのフレキシブルな動作を容易にする、請求項８記載のデコーディング・システム。
【請求項１０】
トレースバック処理が、複数の抑制長コードに対して実行される、請求項１記載のトレースバック・ユニット。
【請求項１１】
ビタビ・デコーディングの方法であって、
加算／比較／選択（ＡＣＳ）処理を複数のＡＣＳステージに渡って実行するステップと、
前記ＡＣＳ処理中に経路判断を判定するステップと、
前記ＡＣＳ処理に基づいて前記経路判断を累積するステップと、
前記累積された経路判断を前記複数のＡＣＳステージの続くＡＣＳステージに送るステップと、
前記累積された経路判断を１組としてトレースバック・メモリに供給してトレースバック・メモリ・アクセスを減少させるステップと、
を具備する、方法。
【請求項１２】
前記経路判断を累積するステップが、前記ＡＣＳ処理に基づいて経路判断の受けるＡＣＳデータ経路を広げるステップを含む、請求項１１記載の方法。
【請求項１３】
前記累積された経路判断を送るステップが、
現在のＡＣＳステージの識別された経路判断に基づいて続くＡＣＳステージの前記累積された経路判断をルーティングするステップと、
前記識別され累積された経路判断を前記続くＡＣＳステージの前記経路判断と組み合わせるステップと、をさらに含む、
請求項１１記載の方法。
【請求項１４】
前記累積された経路判断を１組としてトレースバック・メモリに供給するステップが、前記累積された経路判断を前記続くＡＣＳステージに関連した１組の経路判断に添付するステップをさらに含む、請求項１１記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的には、ビタビ・デコーディング・システムに関し、詳細には、無線およびその他のタイプの通信応用のためのコンボルーション・コードについての（ビタビ・アルゴリズムに基づく）フレキシブルで高速かつ低電力のデコーディングを提供するシステムおよび方法に関する。
【０００２】
【従来の技術】
最近の社会は、無線通信の劇的な増大を目にしている。無線技術（例えば、衛星，マイクロ波）は、セルラおよび他の通信に対する必要性が絶えず増大するようなシステムを提供している。増大しかつ信頼性のある通信能力に対する要求を満足するために、よりフレキシブルでパワーがあり効率的なシステムが必要である。特に、増大する無線通信に対する社会のニーズを満たすため、順方向エラー訂正（forward error correction）システムを改善しなければならない。
【０００３】
順方向エラー訂正システムは、今日の通信システムの多くにおいては必要なコンポーネントである。これらシステムは、一般には、無線データの送信および受信の間に発生することのあるエラーを実質的に訂正することによって通信システムに対しロバスト性を付加するものである。このことは、電力および／または帯域幅が制限されたシステムに対しては特に当てはまる。しばしば、そのような順方向エラー訂正システムでは、コンボルーション・コーディングが鍵となる部分となる。一般に、コンボルーション・コーディング・システムは、冗長データを無線データ送信に導入し、それによって、送信内に発生するランダム・エラーが訂正される高い可能性をもつようにする。その結果、デコーディング・システム（例えば、ビタビ・デコーダ）を適所に設けることによって、その送信データを受信したときにコンボルーション・コーディングされたデータをデコードし、それにより、実際のデータ送信を再構成できるようにしなければならない。
【０００４】
従来技術の図１を参照すると、無線通信システム１０は、従来の無線システムに提示されたある特定の問題を示している。送信機２０は、通信信号２４を衛星システム３０に向けている。衛星システム３０は、通信信号２４を受信したとき、通信信号２４ａを地上の基地局３２に向け、ここで、その信号を意図された宛先に対して処理する。通信信号２４および通信信号２４ａの送信中においてはいつでも、ノイズ３４が伝送の一部分を破壊して（エラーを生じさせ）、これにより、基地局３２において適正でない信号受信を生じさせるおそれがある。エラー訂正システムが設けられていないならば、その信号は、基地局３２において適正に受信されるためには、おそらくその再送信を行わなければならなくなる。このため、非効率およびコスト上昇が生じるおそれが高い。
【０００５】
図２は、ノイズの存在に拘わらず送信信号が適正に通信される確率を増大させるためにコンボルーション・エンコーディングおよびビタビ・デコーディングを用いている従来技術のエラー訂正システム４０を示している。入力データ４２（例えば、オーディオ，ビデオ，コンピュータのデータ）は、コンボルーション・エンコーダ４４に入力される。エンコードされたデータは、１シーケンスのデータ・ビット４６（エンコード符号とも呼ぶ）として提供され、これは、実際のデータと冗長的に付加されたデータとからなり、通信リンク４８を介して送信する。通信リンク４８はノイズをそのデータ送信に導入することがあり、したがって、送信データ・ビット４６は、それらの宛先に達するときまでに破壊されることがある。各受信（破壊されている可能性のある）データ・ビット４６ａは、ビタビ・デコーダ５０によって処理されてデコード出力データ５２を提供する。（１９６７年にアンドリュー・ビタビによって最初に提案されたビタビ・アルゴリズムに基づく）ビタビ・デコーダ５０は、ノイズが送信（コンボルーション処理された）データ４６のいくつかに影響を与えたとしても元々送信された入力データ４２を高い確率で判定することができるデコーディング・システムを提供する。一般には、入力データ４２は、コンボルーション処理されたエンコード・データ４６ａから得た入力データ４２に対する最尤シーケンスを計算することによって、判定することができる。
【０００６】
コンボルーション・エンコーディングは、入力データ・ビット４２をエンコーダを介して１つ以上の前の入力ビット４２とコンボルーション処理（冗長的に加算）することによって、実行される。コンボルーション・レート１／２で抑制長９のコンボルーション・エンコーダ４４の一例が、従来技術の図３に示されている。入力ビット４２は、種々の位置において出力Ｘ0〜Ｘ8を供給するシフトレジスタ４４ａのような一連の遅延素子６０に入力される。これら出力Ｘ0〜Ｘ8は、ＸＯＲ関数６２ａ，６２ｂによって組み合わされて、エンコード符号セットＧ0，Ｇ1を発生する。ＸＯＲ関数６２ａ，６２ｂに接続（タップ）された出力Ｘ0〜Ｘ8は、所与の入力データ・シーケンス４２に対してＧ0およびＧ1の出力コード・シーケンスを決定する。この入力−出力関係は、エンコーダ出力Ｇ0，Ｇ1に対しコード多項式で記述することができる。例えば、図３に示したエンコーダ４４に対しては、コード多項式は次の通りに与えられる。
【０００７】
Ｇ0＝Ｘ0＋Ｘ1＋Ｘ3＋Ｘ6＋Ｘ8＝１＋Ｘ1＋Ｘ3＋Ｘ6＋Ｘ8
Ｇ1＝Ｘ0＋Ｘ2＋Ｘ3＋Ｘ7＋Ｘ8＝１＋Ｘ2＋Ｘ3＋Ｘ7＋Ｘ8
注）ＴＭＳ320C54xファミリのビタビ・デコーディング技術，１９９６年，テキサス・インスツルメンツ・アプリケーション・レポートＳＰＲＡ０７１は、コンボルーション・エンコーダおよびそのコード多項式に関する更なる詳細を示しており、また、この言及により本文に援用される。
【０００８】
図示のように、図３のエンコーダ４４は、すべての入力ビット４２に対してエンコード符号セットＧ0，Ｇ1を発生する。このようにして、エンコーダは、１／２のレート（１入力／２出力）を有する。抑制長（Ｋ）は、遅延素子６０の数の関数である、エンコーダによって用いられる組合せの全スパンを表す。抑制長Ｋ＝９は、２(9-1)＝２５６のエンコーダ状態（第９ビットが入力ビット）があることを意味する。これら状態は、状態Ｓ０（２進数“００００００００”）から状態Ｓ２５５（２進数“１１１１１１１１”）で表される。
【０００９】
コンボルーション・エンコード・データは、ビタビ・アルゴリズムに従ってデコードすることができる。ビタビ・アルゴリズムの基本は、過去の入力データ４２に対する所与のデータ状態の依存性に基づいて１つの所与の状態から次の状態への可能なエンコーダ４４出力状態遷移についての知識を用いる（例えば、エンコーダを模擬する）ことによって、コンボルーション・エンコード・データをデコードすることである。許容可能な状態遷移は、代表的には、入力データ４２のエンコーディング・プロセスに基づいて受信データ・シーケンスに対する可能な状態経路を提供するトレリス図（コンボルーション状態図に類似）で表される。トレリス構造は、上述のコンボルーション・エンコーダ４４の構造全体およびコード多項式コンフィギュレーションによって決まる。ビタビ・アルゴリズムは、送信エンコーダ４４出力シーケンスをデコーダにおける受信データ・シーケンスと一致させる最高の確率をもつものにその経路を限定することによって、トレリスを通る状態経路の数を最小にする方法を提供する。
【００１０】
図４は、トレリス６６の一部分の例示であり、基本的なビタビ・アルゴリズム・バタフライ計算を示している。現在状態ノード６８ａ，６８ｂから次状態ノード６８ｃ，６８ｄへの４つの可能なエンコーダ遷移７０ａ〜７０ｄが示されている。図示のように、２つの遷移経路（ブランチ）は、各現在状態ノード６８ａ，６８ｂから各次状態ノード６８ｃ，６８ｄへと存在する。ビタビ・アルゴリズムは、２つの可能な遷移経路のうちの最も可能性のあるものが判定されたのちに“生存者”経路の一部分として選択されるプロセスを提供する。例えば、ブランチ７０ａ，７０ｂは、次状態ノード６８ｃへの２つの可能な遷移経路を提供する。同様に、ブランチ７０ｃ，７０ｄは、次状態ノード６８ｄへの２つの可能な遷移経路を提供する。遷移経路７０ａ〜７０ｄは、入力ビット４２によって指示されるようにコンボルーション・エンコーダ４４によって発生される次の最尤状態への可能な方向を提供する。一旦（複数のバタフライ・ステージを通して）１つのシーケンスの生存者経路が判定されると、コンボルーション・エンコーダ４４への最も可能性のあるデータ入力シーケンス４２を再構成することができ、これにより、コンボルーション・エンコーディング・データがデコードされる。
【００１１】
デコーダ動作は、一般には、ブランチ・メトリック計算と、加算／比較／選択（ACS）処理と、トレースバック処理とを含む。ブランチ・メトリック計算は、現在状態から次状態への所与の遷移経路が正しいことの可能性の尺度を提供する。ブランチ・メトリック計算では、受信データ値、代表的には入力信号の電圧または電流の大きさを表す８ビットまたは１６ビットのデジタル値が処理されて、現在状態から次状態への状態遷移から生ずる、受信データ値とノイズによって破壊されていないすべての可能な実際のデータ値との間のユークリッド距離または等価距離（更なる詳細については上記ＴＩの文献を参照）を判定する。
【００１２】
このため、抑制長Ｋをもつレート１／Ｒのコンボルーション・デコーダからのデータ信号をデコードすることは、このデコーダに入力された各エンコード符号に対し全部で２Rブランチ・メトリック値を判定する必要がある。記述したように、２Rブランチ・メトリック値の組は、１つの特定の受信入力符号に対する完全なブランチ・メトリック組として定められる。
【００１３】
次のデコーダ・ステップでは、すべての可能な状態遷移に対する先に計算されたブランチ・メトリック値が処理され、次状態への経路の各々に対する“累積距離”を判定する。実現例に依存して最小または最大の距離（すなわち、最大の確率）をもつ経路が、生存者経路として選択される。これは、加算／比較／選択またはＡＣＳ処理として知られている。ＡＣＳ処理は、２つの基本処理に分解できる。加算処理すなわち経路メトリック計算と、比較／選択処理とである。経路メトリック加算処理は、受信データ入力シーケンスに対するブランチ・メトリック値をもつ（ビタビ処理の開始時にユーザが初期化し、状態から状態へと前方に運ばれる）現在状態値の累積である。比較／選択処理は、加算処理からの２つの値を計算し比較して、その最小値（または、実現例に依存して最大値）を判定し、１つ以上の“トレースバック・ビット”を記憶してその選択され生存者経路を指示する。
【００１４】
最後のデコーディング・ステップは、トレースバック処理である。このステップは、最初の２つのステップによって判定されたように、状態遷移のトレリスを通る最尤経路をトレースし、トレリスを通る最も可能性のある経路を再構成して、エンコーダ４４に入力された元データを抽出する。
【００１５】
【発明が解決しようとする課題】
従来は、デジタル信号プロセッサ（ＤＳＰ）を用いることにより、種々のビタビ・デコーディング応用を取り扱っている。多くのＤＳＰは、ビタビ・デコーディング・アルゴリズムのために特に設計された特別の命令を有している。例えば、今日のセルラ電話応用の多くはＤＳＰ解決法を含む。しかし、上述のコード（Ｋ＝９）のようなコードを高いデータ・レート（３８４kbits／sec〜２Mbits／sec）とともに用いると、高い計算レートが一般に必要とされる。これは、毎秒当たり４９×１０6から２５６×１０6のビタビＡＣＳ処理を必要とすることがある。これらの計算処理は、例えば多数のボイス／データ・チャンネルがセルラ基地局のＤＳＰによって処理される場合には、その何倍にも増大する。このため、ビタビ・デコーディングは、ＤＳＰの計算帯域幅の大部分を消費することがある。この結果、増大する計算要求を満たすために、より高い性能のシステムが必要である。
【００１６】
従来のデコーディング・システムが直面する別の問題は、種々の形態のコンボルーション・コードをデコードする必要性である。多くのデコーディング・システムは、ある特定のタイプのコンボルーション・コードを処理するようにハードワイヤ接続されているかハード・コード化されている。例えば、上述の抑制長Ｋは、１つのエンコーディング・システムから次のエンコーディング・システムへと変化することがある（例えば、Ｋ＝９，８，７，６，５など）。また、上記のコード多項式は、たとえ抑制長が変化しないままであったとしても、システムからシステムへと変化することがある。ハードワイヤ接続されたまたはハード・コード化されたデコーディング・システムは、これらの異なるエンコーディング要求に応えるためには、再設計する必要がある。種々の他のパラメータも、エンコーディング／デコーディング・プロセスにおいて変化させる必要が生ずることがある。したがって、デコーディング・システムが種々の形態のエンコード・データの処理において高度のフレキシビリティを提供することが望ましい。
【００１７】
従来のデコーディング・システムが直面するさらに別の問題は、増大された電力要求である。データがより高いレートでデコードされるにつれて、デコーディング・システムの計算要求は、しばしば、デコーダ（例えば、ＤＳＰ，処理システム）の電力要求を増大させる。多くの従来のシステムは、デコーディング処理中に広範なレジスタおよびメモリ・アクセスを必要とする。これは、一般に、デコーダで消費される電力を増大させ、また、デコーダ性能（例えば、速度，信頼性）を一般に低下させる。
【００１８】
したがって、従来のデコーディング・システムに関連した上述の問題に鑑み、増大されたデコーディング性能および低い電力要求で高度のフレキシビリティを提供するビタビ・デコーディング・システムおよび方法を有することが望ましい。
【００１９】
【課題を解決するための手段】
本発明は、プログラマブルＤＳＰシステム内で動作することができ、また、フレキシビリティ，低電力および高データ・スループット・レートを提供する、無線または他のタイプの応用のためのビタビ・デコーダ用のＶＬＳＩアーキテクチャに向けられたものである。このアーキテクチャは、セルラ基地局およびモバイル・ハンドセットを含む多数の応用領域のためのコスト効果のある解決法を提供することを意図されている。
【００２０】
本デコーダは、好ましくは、レート１／ｎで抑制長Ｋ＝９（２５６状態）以下の複数の共通の線形コンボルーション・コードに対して動作し、Ｋ＝９の場合には２．５Ｍｂｐｓの実質的に高いスループット・レートが可能である。特に、高データ・スループット・レートは、いくつかのトレリス・ステージに渡って同時に動作するカスケード形ＡＣＳシステムによって達成される。さらに、カスケード形ＡＣＳは、ＡＣＳ処理の間に部分プレトレースバック処理を多数のトレリス・ステージに渡って実行する。これは、デコードされた出力ビットを検索する最終のトレースバック処理の複雑さを減少させることによって、また、これに関連したメモリ・アクセスの数を実質的に減少させることによって、システム・スループットを増大させる。
【００２１】
この高いデータ・スループット・レートは、デコーダが次世代セルラ基地局用の実質的に数百のボイス・チャンネルを取り扱うことができるようにする。これは、システムが必要とするＤＳＰプロセッサの数を大いに減少させ、純粋なＤＳＰベース・システムのシステム・コストを低下させるのに有望である。これらのタイプのデータ・レートおよびコードは、衛星通信からセルラ電話までの種々の無線用途において広範囲に用いられる。
【００２２】
特定のエンコーディング用途間およびビタビ・デコーディング問題の正確な構造に関するいくつかのデコーディング用途内には変動があるため、デコーディング・アーキテクチャにおけるフレキシビリティを提供する。特に、上記のカスケード形ＡＣＳシステムは、Ｋ＝９に対してトレリスの多数のステージに渡って動作することによって、可変抑制長コードに対して動作するように構成することができる。これは、状態メトリック・メモリとともにサブトレリス・アーキテクチャに対して動作することによって達成される。Ｋ＜９の場合に対しては、特定のＡＣＳステージは選択的にバイパスされる。
【００２３】
本発明は、高度のフレキシビリティを組み込むことにより、デコーダを多くの変動する状況において用いることができるようにする。デコーダのフレキシビリティは、可変の抑制長と、ユーザ供給の多項式コード係数と、コード・レートと、収束距離およびフレーム構造のようなトレースバック・セッティングとを含む。
【００２４】
本発明のデコーダとＤＳＰとの間の高データ・レート転送を可能にするようにメモリ・マッピングされるＤＳＰインターフェースが設けられている。これは、ＤＳＰの処理負担を大きく低減し、よりパワフルなシステム全体を提供する。デコーダ内には、かなりのバッファ処理も提供される。本発明は、実行完了，入力バッファ・ローおよび送受ブロック転送完了のような種々のトリガ信号を含むインテリジェントなデータ転送および同期機構もサポートする。
【００２５】
さらに、本発明は、高データ・レートで動作し、高エネルギー効率（すなわち、低電力）であるように設計されている。低電力動作は、レジスタ動作およびメモリ・アクセスを最小限にすることによって、また、デコーディング・プロセスの特定の態様を並列にかつストリームライン化することによって達成する。例えば、上述したＡＣＳ処理は、ＡＣＳ処理の間、プレトレースバック処理を実行する。さらに、トレリスの多数のステージに渡り同時に動作することによって、メモリ・アクセスが減少される。
以上の目的およびそれに関係する目的を達成するために、本発明は、以下に詳述する特徴を有する。以下の記述および添付の図面は、本発明のある一定の実施形態を詳細に示すものである。しかし、これら実施形態は代表的なものであるが、本発明の原理を用いる種々の方法のうちのいくつかに過ぎない。本発明の以下の詳細な説明を図面とともに考慮することにより、本発明の他の目的，利点および新規な特徴が明らかとなる。
【００２６】
【実施の形態】
次に、本発明について、図面を参照して説明する。なお、図面では、同じ要素を参照するために、同じ参照符号を使用する。
本発明によれば、ビタビ・デコーダ１１０（図６）は、カスケード形ＡＣＳ１２２（図７）を介して複数のトレリス・ステージ（図５）を同時にデコードする。これは、実質上、メモリ・アクセス・サイクルを低減し、それによって、電力要求を低下させ、かつ、システム・スループットを増大させる。カスケード形ＡＣＳ処理の間、トレリスの部分的トレースバックは、固有のレジスタ交換アーキテクチャ（図８）を介してＡＣＳ動作の間に同時に生じる。これもまた、電力要求を低下させ、かつ、システム・スループットを増大させる。更に、可変の抑制長コードは、カスケード形ＡＣＳ１２２内に実装されたバイパス・システムを介して解決することができ、また、種々のエンコーディング構造をデコードするために複数のユーザ供給コード多項式を用いることができる（図９）。これは、デコーダ１１０にかなりの度合いのフレキシビリティを提供する。
【００２７】
最初に図５を参照すると、トレリス図が、本発明の一実施形態に従って示されている。トレリスは、１６の状態（Ｋ＝５）を有する一個のシフトレジスタ・コードからのコンボルーション・エンコーダに対応している。この１６状態は、状態インデックス０〜１５（例えば、１００ａ，１００ｂ，１００ｃ）によって表されており、状態インデックス０〜１５は、コラムＣ１〜Ｃ５に示されており、特定の時点（例えば、１つのエンコーダ状態から次のエンコーダ状態への遷移）に対応する。コラム間の遷移は、ステージ（例えば、ステージ１，ステージ２など）とも呼ばれることがある。各ステージは、先行状態（左）から現在または次の状態（右）への左から右への入力−出力ビット・マッピングを提供し、また、１組のブランチ（例えば、１０２ａ，１０２ｂ）は、ステージ間の可能なビット遷移を表している。この入力−出力（ステージからステージ）ビット・マッピングは、エンコーダ・コンフィギュレーションを記述するとともにユーザによって供給される１組のコード多項式によって提供されている。
【００２８】
状態インデックスは、先行ステージからの累積状態メトリック（後で詳述）を保持するメモリ・ロケーションへのポインタとして生成される。各コラム内の各状態インデックスはこの図の右の次のステージ内の２つの他の定められた状態インデックスに遷移すること（出力を与えること）ができるだけであることに注意されたい。同様に、１つのコラムの右の１つのコラム内の各状態インデックスは、左にある定められた状態インデックスから２つの入力を受けるだけである。例えば、コラムＣ１内の状態８は、コラムＣ２，Ｃ３，Ｃ４などの各々内の状態０または状態１に遷移できるだけである。同様に、任意のコラム内の状態１２は、コラムＣ１，Ｃ２，Ｃ３など内の状態６または状態１４からの入力を受けることができるだけである。
【００２９】
以下で詳細に説明するように、エンコーダへの原入力データを最終的に判定するトレリス中の１つの可能な経路は、本発明では、各状態に入る各１組のブランチに対してＡＣＳ（加算／比較／選択）動作を実行することによって、判定される。１組のブランチ・メトリック（以下で詳述）は、先行ステージからの累積状態メトリック（最初は、コラムＣ１内の累積状態メトリックは、所望の所定の値（例えば、０の値または非常に大きな数）にリセットされることができる）に加算される（ＡＣＳの加算部分）。次に、どのブランチが次のステージに対して最も低い累積状態メトリックまたは好ましくは最も高い累積状態メトリックを発生するかに基づいて、各ＡＣＳ動作から１つのブランチを選択する（ＡＣＳの比較および選択部分）。ＡＣＳ動作を介して多数のステージを解決した後、選択されたブランチが、１つの全体経路に収束し始めることになる。選択されたブランチから各ステージを通る１つの経路をトレースバックすることによって（以下で詳述）、デコードされたデータを判定することができる。
【００３０】
図６には、本発明によるビタビ・デコーディング・システム１１０のトップ・レベルの概略ブロック図が示されており、これは、一般に、２つの主要なユニットすなわち状態メトリック更新ユニット１２０とトレースバック・ユニット１３０とから成っている。状態メトリック更新ユニット１２０は、カスケード形ＡＣＳ１２２と、状態メトリック・メモリ１２６と、トレースバック・ユニット１３０からブランチ・メトリック１３４を受信するとともにブランチ・メトリック１３４をＡＣＳ１２２と同期させるブランチ・メトリック選択ユニット１３８とを備えている。
【００３１】
カスケード形ＡＣＳ１２２は、状態メトリック・メモリ１２６とともに、デコーディング・プロセスが時間で前方に進むにつれて、トレリス内の各ステージに対して、１組の累積状態メトリック（ＳＭ）１２５（経路メトリックとも呼ぶ）を判定する。カスケード形ＡＣＳ１２２は、１組の入来ブランチ・メトリック１３４により加算，減算および比較を実行し、経路判断値１２４を決定する新たな状態メトリックを選択する。これは、各状態におけるメトリックを評価して、２つの入来ブランチのどちらが所望の特定のアルゴリズム実現に依存して最も小さなまたは好ましくは最も大きな次の状態メトリック１２５を提供するかを判定することによって、達成される。その評価は、ブランチが出た状態インデックスによってアドレスされる状態メトリック・メモリ１２６にブランチ・メトリック１３４を加算することによって、ＡＣＳ１２２によって実行される。以下に詳細に説明するように、（好ましくは、周辺ＤＳＰ１４０によって決定された）ブランチ・メトリック１３４は、デコーダへのコンボルーション処理された入力データから取得されるとともに代表的には受信側（入力）ソフト判断と既知の変調点との間の距離尺度である数の複数の組（トレリス・ステージ当たり１つの組）である。しかしながら、他の形態のブランチ・メトリック・データも用いることができ、このようなデータ形態は、本発明の範囲内に入ると考えるものである。
【００３２】
好ましくは、ＳＲＡＭメモリ１２６は、継続的に読み出され更新され書き戻されるその組の状態メトリック１２５を格納する。経路判断値１２４は、カスケード形ＡＣＳ１２２によってトレースバック・ユニット１３０およびこれに関連のメモリ１３２に供給され、ここで、経路判断値１２４は、以下で詳述するように、デコードされたデータのトレースバック判定に用いられる。
【００３３】
アドレス／制御ブロック１３６は、トレリスを通るデータを監督し、状態メトリック・メモリ１２６用のメモリ・アドレス指定を提供する。以下で詳述するアドレス／制御ブロック１３６は、ユーザ供給の抑制長に基づく状態インデックス生成を担当する。アドレス／制御ブロック１３６は、ブランチ・メトリック選択ユニット１３８で受信されたブランチ・メトリック１３４をＡＣＳ１２２と同期させることも担当する。
【００３４】
トレースバック・ユニット１３０は、本発明による他の一次ユニットであり、多数の機能を果たす。トレースバック・ユニット１３０は、カスケード形ＡＣＳ１２２から受けた経路判断１２４を格納し、それからトレースバックを実行する。トレースバックのプロセスは、出力（デコードされた）ビットを作成し、そのデコードされた出力および入来ブランチ・メトリック１３４に対する記憶を提供する。トレースバック・ユニット１３０は、好ましくは、そのようなデータを格納する１つ以上のメモリ１３２を備えている。
【００３５】
デコーディング・システム１１０の固有の特徴は、デコーディング・システム１１０とシステム１１０がサポートを提供する好ましくはＤＳＰ１４０との間でのデコーディング・プロセス全体の分割にある。ブランチ・メトリック計算のすべては、好ましくは、システム１１０の外部、好ましくはＤＳＰ１４０において実行される。同様に、デパンクチャ（depuncture）操作も、ＤＳＰ１４０によって実行されるようにできる（例えば、ヌルまたは他の補償値を入力ストリームに挿入）。これは、これら機能（例えば、ブランチ・メトリック計算，デパンクチャなど）に対するより一層のユーザ制御を提供する。
【００３６】
デコーダ・システム１１０は、動作がフレキシブルである。つまり、５から９の抑制長に対して動作することができ、４つのトレリス・ステージ上の２５６状態まで同時に処理することができる。システム１１０は、ユーザ供給コード係数の任意の組をもつレート１／２およびレート１／３の場合を処理する。また、このビット・レートは可変とすることができる（例えば、デコーダは、ビット・レートに拘わらず、固定サイズの受信データ・フレームを検出することによって、動作するようにできる）。システム１１０は、データの尾部（特定の状態を強制するために挿入された入力ビット）が状態ゼロへの復帰を強制したりシステムが強制状態のない継続的なデコード・モードでランするフレーム化入力データを処理する。１つのフレームの開始時に状態メトリックを有効にプリセットするためのある種のオプションも利用可能である。例えば、ユーザは、状態ゼロの初期メトリックを最も大きい値にセットするとともにその他のすべての状態を最も小さな値にセットして、そのフレームの開始時にすべてのトレースバック経路を状態ゼロに復帰することを強制したい場合がある。トレースバック・プロセスが出力ビットを発生する前に利用する収束距離（convergence distance）も、調節可能なパラメータであり、ユーザによって供給される。
【００３７】
ＤＳＰインターフェース回路１４４は、デコーダ・システム１１０に対するメモリ・マッピング・インターフェースを提供する。ＤＳＰインターフェース１４４は、入来ブランチ・メトリックおよび出立（outgoing）デコード・ビットのブロック・データ転送を利用して動作する（バス１４６として示す）。これら転送は、ＤＭＡ（または、その他）の周辺ＤＳＰサポートを用いて実行され得る。このため、バスが効率的に利用され、最小の相互作用がＤＳＰ１４０から必要とされる。
【００３８】
次に、図７を参照すると、カスケード形ＡＣＳ１２２のより詳細なブロック図を本発明に従って示されている。ＡＣＳユニット１２２は、（図６の状態メトリック・メモリ１２６からの）１組の状態メトリック１２５を、（集合的に１３４と符号された、トレースバック・メモリ１３２から受信される）対応する１組のブランチ・メトリック１３４ａ〜１３４ｄと一緒に処理する。これは、時間で前方にステージからステージへ累積状態メトリックとして図５に示したトレリス中を運ばれるその組の状態メトリック１２５を処理することによって、実現される。ＡＣＳステージ１５０ｂ〜１５６ｂに対応するトレリスの各ステージでは、累積状態メトリックが、現ステージのブランチ・メトリック・データ１３４を利用して更新される。状態メトリック更新は、先行のトレリス状態からの２つの可能なトレリス・ブランチから最適ブランチ（識別された経路判断）を判定することによって、達成される。１つのＡＣＳ処理はトレリス・ステージ当たり１つのコラム内の各ノードに対して提供されることに注意されたい。例えば、図５では、１６個のＡＣＳ処理がコラムＣ２，Ｃ３，Ｃ４，Ｃ５に対して提供され、したがって、各コラムは、図７のＡＣＳステージ１５０ｂ，１５２ｂ，１５４ｂ，１５６ｂ当たり１６個のＡＣＳ処理を含む。
【００３９】
最適ブランチとは、最も小さいまたは好ましくは最も大きい次の状態メトリックを生ずるブランチ（識別された経路）を指し、これは、トレリス・ブランチが出てきたトレリス状態の累積状態メトリック１２５にブランチ・メトリック１３４を加算することによって、定められる。各トレリス・ブランチは、１組の可能な出力ビットに対応し、また、ブランチ・メトリックは、出力ビットから受信入力データへの距離測定値に対応している。その出力ビットは、好ましくは、送信される衛星点（constellation point）にマップされ、また、ブランチ・メトリックは、受信データと衛星点との間のユークリッド距離である。ブランチ・メトリック計算は、当該分野においてはよく知られており、これに関する更なる説明については、簡略のため省略する。
【００４０】
ＡＣＳプロセスが実行されるとき、トレリスの各ステージでの各状態に対する選択されたブランチ（例えば、経路判断）が記録される。このため、各状態への最適経路（例えば、識別された経路）は、既知となる。次に、デコーダ・システム１１０の出力が、以上から選択されたブランチに沿って逆方向にトレリスを横切ることによって、判定される。ある一定の距離（収束距離として知られている）の後、他のトレリス状態からの識別された経路はすべて、単一の経路に収束していく可能性が高い。この収束した時点で、有効なデコード出力ビットが、以下で詳述するトレースバック・プロセスから得られる。
【００４１】
図７に示すように、本発明のＡＣＳユニット１２２は、カスケードを形成し、ブロック間に遅延レジスタ１６０ａ〜１６０ｆおよびクロス・スイッチ１６２〜１６４のグルーピングを有する４つのＡＣＳブロック１５０ｂ〜１５６ｂから成っている。各ＡＣＳブロックは、トレリスの１つのステージに対し、複数の基数（radix）２またはバタフライの加算／比較／選択処理を実行する。ＡＣＳカスケード１２２は、トレリスの４つのステージに対し、基数１６・ＡＣＳ処理を実行する。基数Ｎは、処理を行う対象のサブトレリスのサイズを指す。Ｎは、状態の数を指し、２の累乗としなければならない。以下に詳細に説明するように、図５に示したトレリスは、Ｋ＝９に対しステージ当たり２５６までの多数の状態に、図５に示したトレリスを多数状態に対するサブトレリスとして用いることにより、適用することができる。基本カスケード構造処理については、さらに、“高速ビタビ・デコーディング用のアルゴリズムおよびアーキテクチャ（“Algorithms and Architectures for high speed Viterbi decoding”, Ph. D. Dissertation, Dept. of Electrical Engineering. Stanford University, 1993, by Peter Black）”を参照することができ、これはその全体を本言及により本文に含めるものとする。
【００４２】
基数１６のＡＣＳは、１６状態トレリスに対し処理を行い、トレリスの４つのステージの１つの前方ステップに対し新たな状態メトリックを計算する。このカスケード実現は、各中間ステージ（ＡＣＳブロック１５０ｂ〜１５６ｂ内の基数２のＡＣＳユニット当たり２つの状態）に対し状態メトリックを計算して、累積された状態メトリックを受け渡すことによって、これを達成し、その際、次のカスケード・ステージへの適当な再順序付け（reorder）をする（現ステージの出力を次のステージの正しい入力にルーティングする）。ＡＣＳブロック１５０ｂ〜１５６ｂ間のレジスタ１６０ａ〜１６０ｆおよびクロス・スイッチ１６２〜１６６は、特定のトレリス・ステージによって定められる再順序付けを実行する。クロス・スイッチは、トレリスのどの部分に対して処理を行おうとしているかに依存して、データをそのまま通したり、そのデータを２つのバス（バスＡおよびバスＢとして示す）上で交換する。クロス・スイッチ・セッティングは、デコーダ１１０の動作中に設定レートで変化することがある。
【００４３】
２５６状態を有するコンボルーション・コードに対する処理に関して、トレリスは、サイズ１６の１６個のサブトレリスのインターリーブからなると考えることができる。このため、これらサブトレリスは、シーケンシャルな形式でカスケードＡＣＳデータ経路１２２に１つまた１つと供給される。各サブトレリスの正しいノードは、ＳＭメモリ１２６から読み出され、ＡＣＳデータ経路１２２に供給され、次に、その結果がＳＭメモリ１２６に記憶し戻される。すべての抑制長の場合（Ｋ＝９から５）に対しては、“インプレース・スケジューリング（in-place scheduling）”が用いられ、したがって、状態メトリックの１つのみのコピーが格納される。「インプレース・スケジューリング」は、ＡＣＳ計算が完了した後に、先行の状態メトリックを新たな状態メトリック結果によって上書きすることを指す。
【００４４】
「インプレース・スケジューリング」が行われるトレリスをサブトレリスに分割する方法は、２つのフェーズ、すなわち、フェーズＡとフェーズＢとを有し、これらは、トレリス中を前方に移動するときに繰り返される。例えば、図５の１６個の状態トレリスは、２つのステージに対し、サイズ４のサブトレリスに分割することができる。フェーズＡは、ステージ１とステージ２とをカバーし、ここで、サブトレリスは織り交ぜられている。フェーズＢは、ステージ３とステージ４とをカバーし、ここで、サブトレリスは、分離され、各１つが別のものの上に現れる。これは、メモリ・アドレスおよび状態インデックスを発生するための２つの区別できるフェーズをもたらす。
【００４５】
一時にトレリスのたった１つのステージにしか処理を行うことができないより伝統的なアプローチと比べ、本発明の基数１６のカスケード・アプローチは、よりエネルギー効率がよい。伝統的なアプローチは、ステージ当たり１回すべての状態メトリックの読出しおよび書込みを必要とするのに対し、本発明はこれを４ステージ当たり１回に減少する。したがって、メモリＩ／Ｏトランザクションが大きな電力を消費するため、電力の節約ができる。
【００４６】
より効率的なトレースバック処理（後述）を提供するために、長さ４の部分トレースバック（partial traceback）を実現する新規な方法が、カスケードＡＣＳ処理中に実施される。プレトレースバックは、部分トレースバックが経路判断情報を後のトレースバック完了のため格納する前に各トレリス状態に対して実行されることを意味する。本発明によれば、プレトレースバックを実施するのに用いられるシステムは、固有レジスタ交換（図８の１７０ａ，１７０ｂ）と、ＡＣＳブロック１５０ｂ〜１５６ｂ間に位置する再順序付けハードウェア１６０ａ〜１６０ｆ，１６２，１６３，１６４の拡張との組合せである。
【００４７】
図８には、本発明によるプレトレースバック・システムが示されている。再順序付け構造のＡＣＳデータ経路の一部分であるレジスタ１６６は、（ｎ）としてより広くして、累積するプレトレースバック経路をこれらが保持できるようにしている。レジスタ１６６はまた、先行のステージからの１０ビットの累積状態メトリック値を提供する。ここで、どのトレリスもこの時点では解決（ＡＣＳ経路判定）されていないため、図７のステージ１５０ｂの前ではｎは０ビットに等しいことに留意すべきである。ステージ１５２ｂでは、１つのステージが判定（経路選択）されているため、ｎは１ビットに等しく、また、ステージ１５４ｂではｎ＝２ビット、ステージ１５６ｂではｎ＝３ビットである。各ＡＣＳブロック１６８ａ，１６８ｂの後（ＡＣＳブロックの上半部１６８ａが上バタフライ・ノードに対する経路を判定し、ＡＣＳブロックの下半部１６８ｂが下バタフライ・ノードに対する経路を判定する）、追加の１ビットがＡＣＳ処理の結果として次のステージに供給される。
【００４８】
この追加ビットは、ＡＣＳ処理の結果として先行ステージからどの経路が選択されていたかを示す。ビット１７２ａ，１７２ｂは、ＡＣＳブロック１６８ａ，１６８ｂから追加ビットとして供給されて、現ステージからの選択経路に添付すべき先行ステージから前方（前送（forwarding））に運ばれてきた選択経路１７４ａ〜１７４ｄを（マルチプレクサ１７０ａ，１７０ｂを介して）選択する。先行ステージからの選択されたプレトレースバック・ビット（マルチプレクサ１７０ａ，１７０ｂの出力）に現ステージからのこれら追加ビットを添付する機能は、参照符号１７６ａ，１７６ｂで示されている。次に、次のステージへのレジスタ経路は、ｎ＋１として表されて、次の連続するステージに送り出される部分プレトレースバック・ビットの累積を示す。
【００４９】
部分プレトレースバックに対して上述したレジスタ交換は、カスケード形ＡＣＳ１２２と組み合わさって、メモリ・アクセスおよび電力消費を低減するための独特のデコーディング・アーキテクチャを提供する。本発明のカスケード形ＡＣＳと関連するレジスタ交換は、トレリスの４つのステージに対する経路を判定した後にトレースバック・メモリ（後述）を更新する。これは、メモリ・アクセスを４の係数で減少させる。これは、電力消費を実質的に減少させ、また、デコーダ１１０の性能を実質的に増大させる。
【００５０】
また、カスケード形ＡＣＳ構造１２２は、９未満の抑制長のコード（２５６状態よりも少ない）を判定するのにも用いられる。種々の抑制長コンボルーション・エンコーダで動作するフレキシビリティを提供するこの特徴を実現する実施形態は、２つある。
【００５１】
好ましい実施形態は、インプレース・スケジュールの方法（過去の状態メトリック判定を現ステージからの状態メトリック判定で継続的に上書きする）におけるのと同じように、トレリスのジオメトリと調和した状態に留まる。図５に示したトレリスのジオメトリは、メモリ長（Ｋ−１）に等しい距離の後に繰り返す。抑制長コードは、２つのフェーズに分割され、これは、対称的なものではないようにできるが、それら２つのフェーズの長さ（ステージの数）の和が常にメモリ長と等しくなるようにする。特に、Ｋ＝８で１２８状態に対しては、基数１６のフェーズI計算は、トレリスの４ステージで判定され、基数８のフェーズII計算は、トレリスの３ステージで判定される。同様に、Ｋ＝７に対しては、フェーズIは基数１６の４つのステージで計算され、フェーズIIは基数４の２つのステージで判定される。Ｋ＝６に対しては、フェーズIは基数１６の４つのステージで計算され、フェーズIIは基数２の１つのステージで判定される。Ｋ＝５に対しては、フェーズIは基数１６の４つのステージで計算され、フェーズIIは不必要である。
【００５２】
例えば基数８で３ステージ状況に対してカスケードＡＣＳ構造を動作させるには、第１のＡＣＳステージ１５０ｂはバイパスされ、また、メトリックは、データ経路回路１６０ａ，１６０ｂ，１６２を流れ、第２のＡＣＳブロック１５２ｂ中に効果的に供給される。同様に、基数４で２ステージの動作に関しては、データは、第３のＡＣＳブロック１５４ｂに効果的に供給される。基数２動作に関しては、データは、最後のＡＣＳブロック１５６ｂに効果的に供給される。バイパス機構は、ＡＣＳブロック内で用いることができ、累積状態メトリック・データをＡＣＳブロック中をデジタル的にルーティングするとともにどのような計算変更も受けずにハードウェアを再順序付けするための任意の周知のスイッチング・システム（例えば、バイパス用に選択されたマルチプレクサ）とすることができる。代替の実施形態では、ＡＣＳブロックとデータ経路とは、計算のために必要な第１のＡＣＳブロックの前に完全にバイパスされることもできる。例えば基数８の場合は、図７に示した回路１５０ｂ，１６０ａ，１６０ｂ，１６２をバイパスすることが必要となる。
【００５３】
好ましい実施形態の利点は、状態インデックスまたはメモリ・アドレスを発生することが比較的直線的となることである。理解されるべきであるが、各抑制長の場合に対し必要な順序付けは、より一般的な順序付けアルゴリズムの場合として表現することもできる。例えば、固有のアドレス発生器は、この実施形態に対し設計することができる。代替の実施形態は、Ｋ＞４と仮定したとき、トレリスの４ステージに渡って基数１６動作を常に実行することにより動作する。しかし、アドレス発生は、より複雑となる。
【００５４】
カスケード・データ経路内の各ＡＣＳブロック１５０ｂ〜１５６ｂは、すべての状態が処理されるまで、単一のトレリス・ステージに対して動作する。これは、所与の１つのステージに対するブランチ・メトリックの組１３４が関連のＡＣＳブロックで使用するために状態メトリック更新ユニット１２０に供給されることを意味する。しかし、ＡＣＳブロックの各バタフライ動作は現データ組から特定のブランチ・メトリックを必要とし、また、特定のブランチ・メトリックは判定され選択されるべきである。このブランチ・メトリック選択は、トレリス状態インデックスとユーザ供給コード多項式とに依存する。
【００５５】
本発明の好ましい実施形態は、適当なブランチ・メトリックをＡＣＳブロック１５０ｂ〜１５６ｂに供給する等しいサイズで実質的に同一構造の２つの等価なハードウェア・ブロックを提供する。一方のブランチ・メトリック（ＢＭ）選択ユニット１３８は最初の２つのＡＣＳブロック１５０ｂ，１５２ｂに作用し、また、他方のＢＭ選択ユニット１３８は最後の２つのＡＣＳブロック１５４ｂ，１５６ｂに作用する。
【００５６】
図９は、１つのそのようなブランチ・メトリック選択ユニット１３８の一般的な構造を示している。各ＢＭ選択ユニット１３８は、トレリスに対する状態インデックスを提供する状態インデックス発生器２０２と、ブランチ・メトリック・インデックス・ブロック２０４とを含む。理解されるべきであるが、状態インデックス発生器２０２は、図６に示したアドレス／制御ブロック１３６の一部分と考えることもできる。ブランチ・メトリック・インデックス・ブロック２０４は、第１の組のＢＭインデックス２０６と第２の組のＢＭインデックス２０８とを各ＡＣＳブロック２１０，２１２に対し１つずつ発生する。第２組のインデックス２０８は、これらのインデックスをＢＭ選択マルチプレクサ２１６ａに（ＡＣＳ計算に同期された）正確な時間で到達させる遅延レジスタのチェーン２１４を通して供給される。遅延２１４は、ＡＣＳカスケード２１０，２１２と上記関連の再順序付けハードウェアとを通る遅延に従う。
【００５７】
ＢＭ選択マルチプレクサ２１６ａ，２１６ｂは、ブランチ・メトリック・インデックス・ロジック２０４からのインデックスを利用し、ブランチ・メトリック保持レジスタ２１８ａ，２１８ｂから、ＡＣＳステージに対するブランチ・メトリックの組から正しいＢＭを選択する。インデックスの１つのビット２２０ａ，２２０ｂも、ＡＣＳブロック２１０，２１２に供給され、特定のブランチ・メトリックの符号を示す。結果として、ブランチ・メトリックの半分のみが格納され転送される。理解されるべきであるが、ブランチ・メトリックをもっと格納することを必要とする他のコンボルーション・コーディング手法も用いることができ、したがって、これも本発明では考慮に入れられている。
【００５８】
状態インデックス発生器（残りの１／２ブランチ・メトリック選択ユニットからの図示しない１つの発生器）は、ＡＣＳカスケード・データ経路中に供給されるトレリス状態に対する状態インデックスのシーケンスを表す同じシーケンスを生成する。第２の状態インデックス発生器（不図示）は、第１の状態インデックス発生器２０２に対して相対的に遅延された開始を提供して、カスケード・ステージ３，４との適正な時間整合を保証する。ＢＭインデックス・ブロック２０４は、各状態インデックスをコード多項式とともに（コンボルーション・エンコーダが出力ビットを発生するのと同様の方法で）用いることにより、各ブランチ・メトリック・インデックスを発生する。
【００５９】
理解されるべきであるが、状態シーケンス順序は、各ＡＣＳカスケード・ステージで異なっており、したがって、カスケード・ステージ２，３，４で追加の動作が行われなければならない。事実上、各ＡＣＳステージに対する正しい状態インデックスは、入来するインデックスから得られる。入来インデックスは、第１のカスケード・ステージ・シーケンスとして発生されるが、トレリスのジオメトリに続くカスケード構造の再順序付けに起因して所要のインデックスに直接関係している。このため、所要の次のステージのインデックスは、新たな空のスロットを満たす０および１の適当な添付を伴う入来インデックスのシフトによって得ることができる（状態メトリック・コラム・アドレス）。０および１の適当な組は、状態とトレリス内の状態インデックス位置との間の既知のトレリス接続により定まる。カウンティング機構２２２を用いることにより、添付ビットを提供し、いつ任意の特定のカスケード・ステージに対し異なった組のインデックスを利用するかを判定することができる。例えば、カスケード・ステージ２に対しては１ビットを添付し、ステージ３に対しては２ビットを添付し、ステージ４に対しては３ビットを添付する。
【００６０】
本発明の状態インデックス発生をさらに例示するため、図５のトレリスに戻って参照して、ステージ１のものからのステージ２に対する状態インデックスをさらに詳細に説明する。トレリスのバタフライ構造のプロパティに関係して、バタフライ当たりたった１つの状態インデックスしか必要とされない。また、１つのインデックスまたはノードをある特定のステージに関して参照するとき、そのインデックスまたはノードはそのステージの左側を参照している、ということに注意されたい。
【００６１】
コラムＣ１の下側バタフライ・インデックスは、最初は、８つのインデックスのシーケンスすなわち８，９，１０，１１，１２，１３，１４，１５を発生するステージ１に対し発生される。バタフライの正確な順序でステージ２に対する状態インデックスを発生することは、コラムＣ２のトップから始まるステージ２の最初の４つのバタフライを観察する。ここで、コラムＣ２のこれらのインデックスの各々のトップ・ノードは、ステージ１の最初の４つのバタフライのものであるステージ１の下側のノードに接続する。詳細には、インデックス８，９，１０，１１をもつバタフライである。これらインデックスを直接操作することにより、ステージ２に対する最初の４つのインデックスを以下の通り発生する。すなわち、それらのインデックスを４ビットの番号として解釈し、各インデックスを左にシフトし、その最上位ビットを落とし、最下位ビットを“０”とする。これは、これらノードのいずれかにありかつ入力ビットに対し“０”が与えられたときに、コンボルーション・エンコーダのアクションを模倣する。その結果生じる４つのインデックスは、コラムＣ２の０，２，４，６である。したがって、ステージ２の最初の４つのバタフライに対するインデックスがトップ・ノードに対して発生される。
【００６２】
次に、図５のステージ２の最後の４つのバタフライを参照すると、ボトム・ノードは、ステージ１の最後の４つのバタフライのボトム・ノードに接続している。このため、ステージ１からのインデックス１２，１３，１４，１５は左にシフトされ、その最上位ビットが落とされ、その最下位ビットが“１”にセットされる。これは、コンボルーション・エンコーダを模倣しかつ入力ビットが“１”に等しいとみなすことにより、コラムＣ２のインデックス９，１１，１３，１５を発生する。同じプロセスは、ステージ３およびステージ４に対し繰り返すことができる。添付ビット（上記の最下位ビット）は、セットされたパターンに続くことを示すことができる。詳細には、トップからボトムまでのカウンティング・パターンである。上記の例では、そのパターンは、４つの連続したバタフライの各々に対して、“０”そして次に“１”である。次のステージに対しては、このパターンは、２つの連続したバタフライの各々に対して、“００”，“０１”，“１０”，“１１”となる。
【００６３】
ブランチ・メトリック状態インデックスを発生することは、例えば図３に示したコンボルーション・エンコーダ４４の所与の状態に対して１つの組の出力ビットを発生することと類似している。しかし、各ブランチ・メトリック・インデックスに対しては、バタフライの上側または下側の状態インデックスのいずれかに加えて、仮定の入力ビットに対する何らかの選択が必要となる。入力ビットは、状態インデックスがトップ・バタフライ・ノードに対するときは“０”に、反対の場合には“１”に単純にセットすることもできる。また、上記の説明から分かるように、“０”が次のステージのトップ・ノードに達するために添付され、“１”が次のステージのボトム・ノードに達するために添付されるため、入力ビットは先行ステージのインデックスから生成された状態インデックスの最下位ビットと同じである。
【００６４】
図４に戻って参照すると、ノード６８ａが“０”の最上位ビットを有するインデックスであり、ノード６８ｃが“０”の最下位ビットを有するインデックスである場合、ブランチ７０ａ，７０ｂは“０”の入力ビットで横断することができ、ブランチ７０ｃ，７０ｄは“１”の入力ビットで横断することができる。さらに、周知のように、ブランチ７０ａからの出力ビットは、ブランチ７０ｄのものと同じになる。このプロパティを上で利用することにより、仮定の入力ビットが各ケースで水平ブランチを選択するようにセットされていることを条件に、バタフライのトップ・インデックス６８ａまたはボトム・インデックス６８ｂのいずれかが各ブランチ・メトリック・インデックスを発生するのに利用できるようにする。
【００６５】
再び図９を参照すると、上述の状態シーケンス順序付け動作を実施するようにできる種々の実施形態がある。好ましい実施形態では、任意のコード多項式が設けられ、この場合、コード多項式レジスタ２２４ａ〜２２４ｃは多項式を保持することができる。ビット毎に、各多項式は、上からの得られた状態インデックスと論理的にＡＮＤ演算し、この結果のビットを互いに排他的論理和演算して１ビットの各ブランチ・メトリック・インデックスを形成する（コンボルーション・エンコーディングに類似）。代替的には、ある一定の数の異なったコードのみを実現する場合、ハードウェアは、それらコードに対し専用に設けることもできる。これは、状態インデックス，カウンティング・インデックスおよび固定コード多項式に関して、各ブランチ・メトリック・インデックス（ビット毎）に対する各コード多項式に関して論理式を書き出すことにより行うことができる。このとき、ロジック合成を用いることにより、コンパクトな表現を生成することができる。いずれの場合でも、同じ１つのハードウェアが、不要な上位のアドレス・ビットを論理的にカットオフ（例えば、シフト操作、ローテーション）することにより、異なった抑制長のコードを取り扱うことができる。理解されるべきであるが、コード多項式の数はコード・レートに依存して変化するようにできる。図９に示した実施形態は、１／２および１／３のコード・レートに対して動作する。さらに理解されるべきであるが、ここで開示する本発明は複数の他のコード・レート（例えば、１／４，１／５など）にも適用することができる。
【００６６】
また、単一の状態インデックス発生器２０２を用いて、４つのすべてのブランチ・メトリック・インデックスを計算する１つのブランチ・メトリック・インデックス・ブロックに供給することもでき、各インデックスは必要な遅延チェーンを介して各ブランチ・メトリック選択マルチプレクサに送られる。また、各ＡＣＳブロック用の発生器を適当な遅延開始時間でもって用い、これにより、遅延レジスタを取り除くようにすることができる。
【００６７】
図６に戻って参照して、トレースバック・ユニット１３０について詳細に説明する。トレースバック・ユニット１３０の主な機能は、上述のＡＣＳ処理中にトレースバック・メモリ１３２に格納された部分プレトレースバック判断に対してトレースバック処理を実行することである。トレースバック・ユニット１３０はまた、デコードされた出力データを累積し格納する機能を実行し、ＤＳＰ１４０から状態メトリック更新ユニット１２０へのそれらのルート上のブランチ・メトリックに対するバッファ記憶として作用する。
【００６８】
トレースバック処理は、各新たなデータ・アイテムが構成するのに役立つ経路に続く経路判断データを通して後方に横断することから成っている。一旦トレースバック・プロセスの十分なステップが達成されると（収束距離）、デコードされた出力ビットを累積でき、これは同じデータから得たものである。基本のトレースバック処理は周知である。トレースバック・ユニット１３０の中心部は、経路判断がメモリ１３２に格納されるような方法で命じられるビタビ・アルゴリズムの直接実現として構成される。本発明のトレースバック処理は、それが種々の抑制長コードに対してかつ種々の長さのプレトレースバックで動作する点で、独特のものである。また、トレースバック・ユニット１３０は、判断記憶，トレースバック，デコードされた出力の記憶およびブランチ・メトリックの記憶を同時に提供する。この種々の記憶に必要なものは、１つ以上のメモリ回路によって提供することができる。
【００６９】
例えば最も普通の状況である長さ４のプレトレースバックでのトレースバック処理に関しては、以下で詳述する３２ビット・ワードをトレースバック・メモリ１３２から読み出し、状態インデックス・シフトレジスタ（不図示）の下位ビット（最下位）を用いて３２ビット・ワードから４ビットを選択する。４ビットは、これらアイテムが既に後方にトレースされているために、次の状態インデックスに必要でかつ直ちにその一部分となる次のプレトレースバック・アイテムである。この状態インデックスのＭＳＢの一部分は、可変循環カウントと一緒に利用することにより、メモリ・アドレスを形成する。
【００７０】
４未満のプレトレースバック長またはこれより小さな抑制長のコードでトレースバックを実行するとき、ハードウェアは、メモリ・ワードから必要な長さのみを選択するように構成される。状態インデックス・レジスタからのビットの数および位置も、それに応じて調節される。このようにして、多数のコードがイネーブルされる。
【００７１】
一旦収束長（生存経路距離）がトレースバック・プロセスで通過されると、デコードされた出力ビットは累積され得る。デコードされた出力ビットは、状態インデックスに供給されるメモリ・ワードの選択された部分から直接来る。これらのビットは、プレトレースバック長と同じサイズのグループで来て、３２ビットのレジスタに累積され、必要に応じてトレースバック・メモリ１３２に格納される。
【００７２】
ＳＭ更新ユニット１２０から到来するプレトレースバック判断ビットも、トレースバック・メモリ１３２に書き込まれる前に、３２ビットのレジスタに累積される。この情報は、レジスタ内およびメモリ１３２でシーケンシャルに配列され、これにより、構成された状態インデックスの諸部分を上述の情報へのポインタとして利用できるようにする。
【００７３】
トレースバック・ユニット１３０は、トレースバック・メモリ１３２に関するＩ／Ｏ動作およびバッファ管理のすべてを制御する。デコードされた出力の記憶，ブランチ・メトリックの記憶および判断データの記憶はすべて、循環バッファを必要とする。
【００７４】
図１０を参照すると、トレースバック・ユニット１３０のより詳細な回路ブロック図が示されている。特に、図１０は、どのようにしてトレースバック・ユニットが図６に示したカスケード形ＡＣＳ１２２から受け取った判断データ１２４（すなわち、部分トレースバック・データ）を格納するかについて示している。Ｉ／Ｏメモリ１３２ａは、デコードされた出力ワード３００を格納し、出力ワード３００ａを図６に示した外部ＤＳＰ１４０に供給するために含めている。Ｉ／Ｏメモリ１３２ａも、ＤＳＰ１４０からの入来ブランチ・メトリック・ワード３１０を格納し、適当なブランチ・メトリック・ワード１３４を状態メトリック・ユニット１２０に供給する。トレースバック・ユニット１３０も、以下に詳述するように、トレースバック処理を実行し、そのすべてを十分に制御し、アドレス生成およびＦＩＦＯ管理を提供する。
【００７５】
図１０には、トレースバック・ユニット１３０の動作用の複数のマルチプレクサが示されている。これらの内のいくつかは、図示された入力ビット・ベクトルの１つを出力として選択するだけである標準のマルチプレクサである。しかし、他のマルチプレクサは、一般化されたマルチプレクサである。これらは、複雑な記述を有し、マルチプレクサへの制御ビットに依存する入力のカスタム選択に続くことによって、入力から出力を選択する。すなわち、これらマルチプレクサは、すべての入力ベクトルを互いにグループ化された各ビットとしてみなすようにでき、任意の順序でこれらのビットの任意のものを選択された出力ビットして選択することができる。これらは、ＶＨＤＬプロセス内の制御ビットに依存するビット選択用の特定の定義を提供することによって、構築される。これは、次に、通常は伝統的なマルチプレクサの層状の構造に合成される。
【００７６】
トレースバック・メモリ・マルチプレクサ３１２は、標準のマルチプレクサであり、トレースバック・メモリ１３２に提示するために判断記憶アドレス３１４またはトレースバック・アドレス３１６のいずれかを選択する。判断マルチプレクサ３１８は、一般化されたマルチプレクサであり、判断３１８ａ，３１８ｂの８ビットが３２ビット・レジスタ３２０内の非オーバーラップ位置内に置かれるように判断入力ベクトルおよびいくつかのフィードバック・ビットを選択する。この結果、それらのベクトルは、レジスタ３２０内に到着順でスタックされ、３２ビットすなわち４つのベクトル組が到着した後にメモリ１３２に格納される。Ｉ／Ｏメモリ・データ・マルチプレクサ３２２は、標準のマルチプレクサであり、Ｉ／Ｏメモリ１３２ａにおける格納のために出力ワード３００またはブランチ・メトリック・ワード３１０を選択する。
【００７７】
トレースバック・マルチプレクサ３２４は、標準のマルチプレクサであり、３２ビットの入力ベクトル３２４ａをすべて線形順序で各々４ビットから成る８つのベクトルとしてみなす。マルチプレクサ３２４は、４ビット・ベクトルの１つ（ワードで先に記憶された３１８ａまたは３１８ｂ）を出力３２４ｂとして選択する。４ビット３２４ｂの各々は、部分プレトレースバック経路セグメントである（すなわち、先に記憶された４ビット判断の１つであるが、時には、たった１ビット，２ビットまたは３ビットが上述のバイパス操作のために無効とされることがある）。その後、４ビット部分プレトレースバック判断３２４ｂは、標準のマルチプレクサ３２６ａ，３２６ｂ，３２６ｃを介してルーティングされる。
【００７８】
一般化マルチプレクサ３２８は、トレースバック・ワードの正しい部分を選択するために次のサイクルで使用するため、６入力ビット３２８ａ，３２８ｂから正しい３ビットを選択する。これらの６入力ビット３２８ａ，３２８ｂは、トレースバック・プロセスにおける現在の状態インデックスの一部分を表している。マルチプレクサ３２８の選択は、コンボルーション・コードの抑制長と、トレリスのどれ程多くのステージが処理されているかということとに依存する。
【００７９】
一般化マルチプレクサ３３０は、現在の状態インデックス３３０ａまたは３３０ｂの８ビットから選択し、デコードされた出力ビットとなる１組の４ビットを選択する。しかし、時には、抑制長に依存して有効となる３ビット，２ビットまたは１ビットのみがある。
【００８０】
一般化マルチプレクサ３３２は、デコードされた出力ビット３３６を累積レジスタ３３８中に効果的にスタックする。３２の有効ビットが累積レジスタ３３８に格納されると、それらはＩ／Ｏメモリ１３２ａに一般化マルチプレクサ３４０を介して送られる。マルチプレクサ３４０は、累積レジスタ３３８の３５ビットからの有効なデコードされた出力ビットである正しい３２ビットを選択する。この選択は、抑制長とトレリス・ステージの数とに依存する。
【００８１】
一般化トレースバック・アドレス・マルチプレクサ３４２は、次のトレースバック・ワード３２４ａ用のトレースバック・アドレス３４２ｄの下位部分を形成する。マルチプレクサ３４２は、３つの異なったベクトル３４２ａ，３４２ｂ，３４２ｃからの９ビットの入力から正しいアドレス・ビットを選択する。再び、この選択は、抑制長とステージの数とに依存する。完全なトレースバック・アドレスは、矢印線３４２ａ，３４２ｅとして示されているトレースバック・ポインタ３４２ｆの上位ビット３４２ｅと下位アドレス・ビット３４２ｄを連結することによって構築される。ポインタ３２４ｆは、トレースバック・コントローラ３３４内のカウンタ（不図示）から来て、トレースバックを実現するためにトレースバック・メモリ１３２中での後方移動を提供する。トレースバック・ポインタ・ビット３４２ａの内の一部分も、種々の抑制長コードに対して、必要に応じて、マルチプレクサ３４２を介して下位アドレス・ビット３４２ｄを形成するのに使用され得る。
【００８２】
トレースバック・コントローラ３３４は、トレースバック・ユニット１３０を制御するためのすべてのロジックを含み、先に説明した処理を制御するためにまたアドレス発生およびメモリ・データ管理を制御するために必要なものである多くのカウンタ，レジスタおよびマルチプレクサを備えている。
【００８３】
図１１を参照すると、本発明によるビタビ・デコーディング・システム用の方法が示されている。ステップ４００では、複数のＡＣＳ処理が、上述のようにカスケード形ＡＣＳユニット１２２を介して複数のＡＣＳステージを通して実行される（例えば図７参照）。ステップ４１０に進むと、経路判断が、ステップ４００のＡＣＳ処理の結果としてＡＣＳ１２２の１つのステージに入るすべてのブランチに対して判定される（例えば図７および図８参照）。ステップ４２０に進み、経路判断が、ＡＣＳのデータ経路を広くすることによりＡＣＳ処理中に累積される（例えば、経路判断ビットをＡＣＳデータ経路に添付する。例えば図８参照）。
【００８４】
ステップ４３０では、累積された経路判断が、続くＡＣＳステージに送られる（例えば図８参照）。これは、例えば、続くＡＣＳステージの識別された経路判断に基づいてその累積された経路判断を続くＡＣＳステージにルーティングすることによって、行うことができる（例えば、続くステージの経路判断ビットは、先行ステージからの累積された経路をマルチプレクサ回路を介して選択する）。この累積された経路判断は、次に、マルチプレクサ回路を介して続くＡＣＳステージの経路判断と組み合わされる（例えば図８参照）。
【００８５】
ステップ４４０では、複数のＡＣＳステージに渡る１組の累積経路判断が、トレースバック・メモリに供給される。例えば、累積経路判断は、続くＡＣＳステージの経路判断に添付される。添付された経路判断は、次に、広くされたＡＣＳデータ経路に記憶される（例えば図８参照）。ステップ４４０を完了した後、このプロセスはステップ４００に戻り、これにより、デコーディング処理がさらに実行されるようにできる。
【００８６】
以上、本発明について一定の好ましい実施形態または実施形態で図示し記述したが、この明細書および添付図面を読み理解すれば、等価な変更および修正が当業者にはできることが明らかである。特に、上述のコンポーネント（アセンブリ，デバイス，回路など）によって実行される種々の機能に関しては、そのようなコンポーネントを記述するのに使用された用語（「手段」に対する言及も含む）は、本発明の図示された例示の実施形態における機能を実行する開示された構造に構造上等価でないとしても、そうでないと指示しない限り、記述されたコンポーネントの特定の機能を実行する任意のコンポーネントに対応するもの（すなわち、等価の機能）であることを意図している。また、本発明の特定の特徴についていくつかの実施形態の１つのみで開示したが、このような特徴は、希望に応じて他の実施形態の１つ以上の他の特徴並びに任意の所与のまたは特定の応用に対する利点と組み合わせることもできる。
【図面の簡単な説明】
【図１】従来技術の無線通信システムのブロック図である。
【図２】従来技術のコンボルーション・エンコーダおよびビタビ・デコーダのブロック図である。
【図３】従来技術のコンボルーション・エンコーダの概略ブロック図である。
【図４】現在の状態ノードから次の状態ノードへの可能なエンコーダ遷移を示す従来技術のビタビ・アルゴリズムのバタフライ構造である。
【図５】本発明によるビタビ・デコーディングに対する４ステージで１６状態のトレリス図である。
【図６】本発明によるビタビ・デコーダの概略ブロック図である。
【図７】本発明によるビタビ・デコーダに対するカスケード形ＡＣＳユニットの概略ブロック図である。
【図８】本発明によるビタビ・デコーダに対するＡＣＳユニットのより詳細な概略ブロック図である。
【図９】本発明によるビタビ・デコーダに対するブランチ・メトリック選択ユニットの概略ブロック図である。
【図１０】本発明によるトレースバック・ユニットの概略ブロック図である。
【図１１】本発明によるビタビ・デコーディングに対する方法を示すフローチャート図である。
【符号の説明】
１１０  ビタビ・デコーダ
１２０  状態メトリック更新ユニット
１２２  カスケード形ＡＣＳ
１２４  経路判断値
１２５  累積状態メトリック（ＳＭ）
１２６  状態メトリック・メモリ
１３０  トレースバック・ユニット
１３２  トレースバック・メモリ
１３４  ブランチ・メトリック
１３６  アドレス／制御ブロック
１３８  ブランチ・メトリック選択ユニット
【図１】
0004331371.tif 000002
【図２】
0004331371.tif 000003
【図３】
0004331371.tif 000004
【図４】
0004331371.tif 000005
【図５】
0004331371.tif 000006
【図６】
0004331371.tif 000007
【図７】
0004331371.tif 000008
【図８】
0004331371.tif 000009
【図９】
0004331371.tif 000010
【図１０】
0004331371.tif 000011
【図１１】
0004331371.tif 000012