JP2003530753A - 高速acsビタビデコーダの実行のためにメモリ内の状態の距離を効率的に読出して記憶するための方法および装置 - Google Patents

高速acsビタビデコーダの実行のためにメモリ内の状態の距離を効率的に読出して記憶するための方法および装置

Info

Publication number
JP2003530753A
JP2003530753A JP2001574985A JP2001574985A JP2003530753A JP 2003530753 A JP2003530753 A JP 2003530753A JP 2001574985 A JP2001574985 A JP 2001574985A JP 2001574985 A JP2001574985 A JP 2001574985A JP 2003530753 A JP2003530753 A JP 2003530753A
Authority
JP
Japan
Prior art keywords
block
state
address
distances
source state
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2001574985A
Other languages
English (en)
Inventor
ハンスクイン、デビッド・ダブリュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2003530753A publication Critical patent/JP2003530753A/ja
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations

Landscapes

  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

(57)【要約】 本発明は、メモリ内の状態の距離を効率的に読出して記憶し、高速度ACSビタビデコーダの実行を向上するための方法および装置を記載している。この方法は、プロセスサイクル中にソース状態の距離のアドレス位置を判断するアドレス指定方式を適用することを含む。ソース状態の距離は、プロセスサイクル中にアドレス位置から読出され、ビタビアルゴリズム構成の加算−比較−選択のバタフライ演算へ適用され、目標状態の距離を生成する。次にこの方法では、ソース状態の距離によってこれまで占められていたアドレス位置へ各目標状態の距離を記憶する。この方法はさらに、プロセスサイクルにしたがってインクリメントされて循環されるプロセスサイクルカウンタに基づいて、ソース状態の距離のアドレス位置を判断するアドレス指定方式を提供する。この方法はさらに、所定の関数を採用して、ソース状態の距離のアドレス位置を判断するアドレス指定方式を提供する。

Description

【発明の詳細な説明】
【0001】 発明の背景 発明の分野 本発明は、概ね、ビタビアルゴリズム(Viterbi algorithm)の応用に関する
。とくに、本発明は、ビタビを実現するときの高速の加算−比較−選択(Add-Co
mpare-Select, ACS)のバタフライ演算の実行を向上するために、状態の距離を
記憶して検索するための斬新な方法および装置に関する。
【0002】 関連技術の記載 ビタビアルゴリズムは、畳込みをしてコード化された信号をデコードするため
の方法として、1967年に最初に採用された。その採用以来、ビタビアルゴリ
ズムは、データ通信、データ記録、ディジタル信号処理の分野において広く受け
入れられてきた。ビタビアルゴリズムは種々のディジタル推定の応用、例えば記
憶媒体へのエラーの記憶を低減すること、符号間干渉を取除くこと、並びに文字
およびテキスト認識の向上にうまく使用されてきた。
【0003】 したがって、ビタビアルゴリズムは、畳込みをしてコード化されたデータにつ
いて誤り訂正をしてデコードするための第一位の方法となった。このような応用
では、ビタビアルゴリズムは、一連の測定(observation)に基づいて、最小の
誤り距離(metric)をもつパスを判断し、全ての可能なエンコーダの状態の特徴
を示すトレリス(trellis)をトラバースする。この“最短のパス”に沿う一連
の状態は、畳込みエンコーダによって生成される確率の最も高い順列に対応して
いる。
【0004】 図1aは、一般的な畳込みエンコーダを示している。この畳込みエンコーダ10
0は、8ビットのタップ付きシフトレジスタ110と1対の排他的論理和形の加算器
120とを含み、1対の排他的OR形の加算器120は一連のビットを入力ビット流U
(D)105から出力コード符号C(D)、C(D)の対のシーケンス125へ変
換する。とくに、図1aはレート1/2のコードの例を示しており、レート1/
2のコードは、入力ビット流U(D)105から入力された各ビットごとに、1組
の2つの出力コード化符号C(D)、C(D)を生成する。特定のコードレ
ート、および図示された畳込みエンコーダ100の構成は単なる例であり、本発明
の種々の実施形態の処理および技術的範囲を全く制限していないことに注意すべ
きである。したがって別途記載するように、異なるコードレート、例えば1/3
または3/4のコードレートを本発明の実施形態に関連付けて使用してもよい。
【0005】
【表7】
【0006】 エンコーダ100の拘束長Kは、シフトレジスタ110内の遅延要素の数よりも1つ
多い。例えば、エンコーダ100において、拘束長Kは9に等しい。エンコーダ100
へ入力された入力ビット流U(D)105の各データビットにおいて、シーケンス1
25の出力コード符号の対C(D)、C(D)は入力ビットおよび前のK−1
の入力ビットに依存する。したがって、エンコーダ100は、2K−1の可能なエ
ンコーダ状態にまたがることができる出力コード符号の対を生成する。
【0007】 次に、一般的な通信システムでは、シーケンス125の出力コード符号の対C
(D)、C(D)は変調され、ノイズのあるチャンネル(図示されていない)
を通して送られる。最後にデコーダは、ノイズのある畳込みをしてコード化され
たデータ流を受信して、ビタビアルゴリズムを採用し、ビタビアルゴリズムは、
畳込みコードの特性を利用して、最終的に入力ビット流U(D)105を判断する
【0008】 畳込みコードの1つの長所は、高反復性の構造であることであり、したがって
これは対称コードツリーを与える。このような対称性により、最尤のパスを位置
付ける際に評価する必要のある状態数が低減する。さらに加えて、このような対
称コードをデコーディングするときは、256の可能なエンコーダの状態の各々
へ通じている最尤のローカルなパスのみが対象とされる。ある状態を通る最尤の
全体的なパスは、その状態を通る最尤のローカルなパスを必ず含まなければなら
ないので、他の全てのパスをさらに検討する必要はない。(ビタビアルゴリズム
の幾つかの応用では、何れのローカルなパスが最尤であるかに関する決定は、次
の状態に関係する情報が使用可能になってから行われることに注意すべきである
)。
【0009】 ビタビデコーダはこれらのコード特性に依存して、制限された組の状態遷移を
もつ有限の状態機械として機能する。デコーダは、2K−1の可能なエンコーダ
状態の各々を仮定し、エンコーダがこれらの状態の各々から、次の組の2K−1 の可能なエンコーダ状態の各々へ遷移される確率を判断する。この場合に、遷移
の確率は、受信したノイズのある畳込みをしてコード化されたデータ流から得ら
れた測定に基づいている。
【0010】 各状態遷移の確率は、距離(metric)と呼ばれる量によって表現され、これは
その状態遷移と、入力データ流内のその点において実際に測定されたものとの間
の(例えば、コード空間における)ディスタンス(distance)を表わす。このデ
ィスタンスは、特定の応用に依存して、例えば、ハミング距離(Hamming distan
ce)、ユークリッド距離(Euclidean distance)、または確率値の負の対数として
表わすことができる。距離がより短くなると、発生する確率がより高くなること
は明らかである。距離には2つのタイプ、すなわち状態の距離および分岐の距離
がある。状態の距離は、送られたコード符号の組が特定の状態を通ったという相
対的確率を表わしている。分岐の距離は、(ソース状態が正しいと仮定して)特
定のソース状態から特定の目標状態へ遷移が送られたという条件付き確率を表わ
している。
【0011】 図1bに示したように、ビタビアルゴリズムは加算−比較−選択(Add-Compar
e-Select, ACS)のユニット150を採用することによって効率的に実行される。A
CSのユニット150は目標状態の距離の値を計算し、さらにACSのバタフライ
演算によってソース状態と目標状態との間の関係性を特徴付ける。図2は、単一
のACSのバタフライ演算155を示しており、ACSのバタフライ演算155は、エ
ンコーダ100内の2つの特定の隣合うソース状態において発生する唯一の可能な
状態遷移を評価する。唯一の可能な状態遷移であるという制限は、エンコーダ10
0の状態が所与の時間に1ビットだけ右へけた送りされたエンコーダの前の状態
であるという事実のためでもある。次の(右へけた送りされた)情報ビットは、
ソース状態から何れの遷移が行われたかを判断し、目標状態の最上位のビット(
most significant bit, MSB)として現れることになる。二値データ流では、ソ
ース状態が遷移できる可能な目標状態は2つだけある。したがって、図2に示さ
れているように、エンコーダ100は、ビット流U(D)105の入力データビットの
値に依存して、ソース状態“x0”から目標状態“0x”または“1x”、ある
いはソース状態“x1”から目標状態“0x”または“1x”のみへ遷移するこ
とができる。図2および他の図において、表記“x0”および“x1”は、ソー
ス状態の最下位のビット(least significant bit, LSB)がそれぞれ“0”およ
び“1”であり、一方で上位のビットが“x”によって表わされていることを示
しており、表記“0x”および“1x”は、目標状態のMSBがそれぞれ“0”
または“1”であり、一方で下位のビットが“x”によって表わされていること
を示している。項“x”は、それがソース状態または目標状態の番号に含まれて
いても、いなくても、同じ値(例えば、7-ビット値)を表わす。
【0012】
【表8】
【0013】
【表9】
【0014】 2つの目標状態の各々について、ACS150はソース状態の距離の対と、その
目標状態へ導く分岐の距離の対との和を“比較(compare)”する。各目標状態
への最尤の遷移は、最小の距離の和によって表わされ、次にACS150によって
“選択(select)”され、その目標状態へ目標状態の距離tm0x、tm1xとし
て割り当てられる。
【0015】
【表10】
【0016】 関係する技術の記載を容易にするために、nの受信した符号の2つの連続する
組に対してACSのバタフライ演算を行なうことによって、(K−1)のエンコ
ーダの状態の2つの完全な(かつ連続する)レベルに対して新しい目標状態の距
離を計算するのに必要なクロックサイクル数としてプロセスサイクルを定めるこ
とにする。例えば、図2に示したように、単一のACSのビタビバタフライ155
をもつビタビデコーダは、通常は、クロックサイクルごとに2つの目標状態を生
成し、したがって受信コード符号ごとに128のクロックサイクルを要求して、
エンコーダ100の256の全ての状態(すなわち、1つの完全なレベル)に対し
てACSの演算を行なう。したがって、このようなデコーダにおけるプロセスサ
イクルは、256のクロックサイクルとして定められる。処理速度を高めるため
に、多数のACSのバタフライ155を採用しているACSのバタフライアレイ構
造を使用して、プロセスサイクル当りのクロックサイクル数を低減する。
【0017】 このようなアーキテクチャの1つの例は、図3に示した2×2のACSのバタ
フライアレイ300であり、これは2つの連続する受信コード符号を処理し、処理
速度を向上する。既に記載したように、ACSのバタフライ155は、2つのソー
ス状態(例えば、状態x0およびx1)を読出し、2つの目標状態(例えば、0
xおよびx1)を計算する。拘束長K=9をもつエンコーダ100において、xは
7ビットのプレースホールダー(すなわち、x=[x,x,x,x,x
,x,x])を表わし、128のクロックサイクルの期間において0から
127へインクリメントされる。例えばx=0000000であるとき、2×2
のACSのバタフライアレイ300は、メモリ(例えば、状態RAM145)から、1
ブロックの4つのソース状態=0000 0000,0000 0001, 0
000 0010,および0000 0011を(すなわち、00(H),01
(H),02(H),および03(H)、なおラベル(H)は16進数を示して
いる)読出す。2×2のACSのバタフライアレイ300は、対応するブロックの
4つの目標状態=0000 0000,1000 0000,0100 000
0,1100 0000(すなわち、00(H),80(H),40(H),お
よびCO(H))を計算し、それらをメモリに書込む。出力ブロックにおける目
標状態の少なくとも幾つか(例えば、00(H),80(H),01(H),お
よび81(H))は、入力ブロックにおけるソース状態(例えば、00(H),
01(H),02(H),および03(H))とは異なるエンコーダの状態を表
わしているので、目標状態の出力ブロックは、(例えば、状態RAM145内の)
異なるメモリ位置へ記憶される。このやり方では、バタフライアレイ300は、6
4のクロックサイクルにおいて(K=9について)1つのプロセスサイクルを完
了する。
【0018】 別の例として、図4aおよび4bに示した4×2のACSのバタフライアレイ
400があり、これは1999年10月21日に出願された米国特許出願第09/422,920号(
“High-Speed ACS for Viterbi Decoder Implementations”)に記載されていて
、これは本発明の譲受人に譲渡され、ここでは参考文献として取り上げている。
4×2のACSのバタフライアレイ400は、2つの組の4つのACSのバタフラ
イ155のユニットを並行して実行することによって処理距離を8倍に高めている
。各クロックサイクル中に、アレイ400の第1段では、1つのブロックの8つの
ソース状態を読出し、1組のnの受信コード符号の対応するブロックの8つの中
間の目標状態の距離を計算する。パラメータXは、図4aではソース状態および
目標状態の一部として含まれていて、4ビットのプレースホールダ(すなわち、
X=[X,X,X,X])を表わしており、16のクロックサイクルの期
間において0から15へインクリメントされる。中間の目標状態は再び配置され
、アレイ400の第2段へ(ソース状態として)供給され、対応するブロックの8
つの目標状態の距離は、次の組のnの受信コード符号について計算される。した
がって、バタフライアレイ400は、32のみのクロックサイクルにおいてK=9
について、2組のnの受信コード符号(すなわち、1プロセスサイクル)に対し
て完全な組の目標状態の距離を計算することができる。
【0019】 さらに別の例のアーキテクチャには、図5aおよび5bに示した変更形の8×
1のACSのバタフライアレイ500があり、これも参考文献として取り上げた上
述の米国特許出願第09/422,920号に記載されている。アレイ500も8つの並列の
ACSのバタフライユニット155を並行して実行することによって、処理速度を
8倍に高めていることが好ましい。1組のnの受信コード符号において、8×1
のバタフライアレイ500は全ての8つのバタフライユニット155を使用して、1ブ
ロックの16のソース状態を読出し、1クロックサイクルにおいて(4ビットの
カウンタXによって識別される)対応するブロックの16の目標状態の距離を計
算する。次のクロックサイクル中は、バタフライアレイ500は計算された目標状
態を、次の組のnの受信コード符号に対するソース状態として使用する。したが
って、8×1のバタフライアレイ500は、2つの受信コード符号について、32
のクロックサイクルにおけるエンコーダ100の256の全ての可能な状態につい
て目標状態の距離を計算する。
【0020】 通常は、上述のACSのアーキテクチャは、状態RAMを2つの別々の領域へ
分割することを要求する。ソース状態は1つの領域から読出され、一方で目標状
態は第2の領域へ書込まれる。ソース状態が(例えば、各プロセスサイクルの後
で)消費されているとき、メモリ領域の役割はスイッチされる(すなわち、既に
書き込まれた目標状態が読出され、既に読出されたソース状態が上書きされる)
。256の全ての目標状態が計算されるまで、この二重緩衝の処理が続けられる
。二重緩衝は、(例えば、チップ領域について)浪費的であるが、出力ブロック
において生成された目標状態の少なくとも一部は、それらを生成するのに消費さ
れたソース状態とは異なるエンコーダの状態に対応するので、この技術が使用さ
れてきた。
【0021】 1998年8月4日に出願された米国特許出願第09/129,021号(“Single RAM Add-C
ompare-Select Unit for Serial Viterbi Decoder”)には、二重緩衝の必要を
無くすための技術が提案されており、なお米国特許出願第09/129,021号は本出願
の譲受人に譲渡され、ここでは参考文献として取り上げている。この提案された
技術では、各ソース状態を読出すためのアドレスを判断する斬新なアドレス指定
方式を用意することによって、二重緩衝を克服することを試みている。この技術
では、モジューロNのACSのサイクルカウンタ(なお、Nは特定の構造に依存
する)は、1つの完全な組の2K−1のソース状態を処理するたびにインクリメ
ントされる。各ソース状態ごとにメモリの読出しアドレスを得るために、アドレ
ス指定方式では処理されるソース状態の番号を循環し(rotate)、なお循環する
ビット数はモジューロNのACSサイクルカウンタの値によって示され、各ソー
ス状態の番号は0ないし2K−1の範囲内である。例えば、第1のACSサイク
ルの間、循環は行われない。第2のACSサイクルの間は、各ソース状態ごとの
読出しアドレスは、状態番号を1だけ循環することによって得られる。第3のA
CSサイクルの間は、状態番号を2だけ循環して、各ソース状態ごとに読出しア
ドレスを得る。各後続のACSサイクルでは、ACSのサイクルカウントが、パ
ターンの繰返し点であるN−1に到達するまで、カウンタは連続的に1だけイン
クリメントされる。
【0022】 並列のACSのバタフライ構造では、1度にメモリから読出される(および書
込まれる)状態数を最大にすることが望ましい。さらに加えて、メモリの利用を
最適化するために、計算された目標状態を、消費したソース状態に対応する同じ
メモリ位置(すなわち、読出しアドレス)へ書込むことも望ましい。しかしなが
ら、これを効率的に行なうには、多数のクロックサイクルにおいて書込み処理を
、適切な番号の隣接する目標状態が計算されるまで、遅延することが必要である
。したがって、連続する番号の目標状態が計算されるまで、計算される目標状態
はパイプラインレジスタ内に一時的に記憶され、そのときに連続する目標状態は
、連続するアドレスをもつメモリ位置へ書込まれる。このように実行することに
より二重緩衝が避けられるが、計算される目標状態の数が増加するのにしたがっ
て、それらが要求するパイプラインレジスタの数が増加することに注意すべきで
ある。パイプラインレジスタが増加するのにしたがって、回路の複雑性を増し、
回路領域を増し、電力の使用が非効率的になる。バタフライ演算の実行を向上す
るのに必要とされるパイプラインレジスタの数は、(例えば、上述の2×2およ
び4×2の構成のような)並列のACSのバタフライ155を採用するACSのバ
タフライ構造によってさらに増加する。
【0023】 したがって、高速ACSバタフライ演算の実行を向上するように、単一のメモ
リ内に状態を位置付けて記憶することができる方法および装置が必要とされてい
る。
【0024】 発明の概要 本発明の原理に一致した方法および装置は、高速ACSバタフライ演算の実行
を向上するように、単一のメモリ内に状態を位置付けて記憶することができる方
法および装置を提供することによって、上述で識別した必要に対処している。
【0025】 したがって、例示的な実施形態において、本発明は、プロセスサイクル中にソ
ース状態の距離のアドレス位置を判断するアドレス指定方式の応用を含む。ソー
ス状態の距離は、プロセスサイクル中にアドレス位置から読出され、ビタビアル
ゴリズムを実行する加算−比較−選択のバタフライ演算に適用され、目標状態の
距離を生成する。次にこの方法では、読出されたソース状態の距離によってこれ
まで占められていたアドレス位置へ、目標状態の距離を記憶する。この方法は、
プロセスサイクルにしたがってインクリメントされ循環されるプロセスサイクル
カウンタに基づいて、ソース状態の距離のアドレス位置を判断するアドレス指定
方式も提供する。この方法は、ソース状態の距離のアドレス位置を判断する所定
の機能を採用するアドレス指定方式も提供する。
【0026】 図面の簡単な説明 本明細書の一部に取り入れられ、構成している添付の図面は、本発明の実施形
態を示しており、本発明の記述と一緒に、本発明の目的、長所、および原理を説
明している。
【0027】 好ましい実施形態の詳細な説明 本発明の次の詳細な記述は、本発明に整合する好ましい実施形態を示す添付の
図面を参照している。他の実施形態も可能であり、本発明の意図および技術的範
囲から逸脱することなく、実施形態を変更してもよい。したがって、次の詳細な
記述は、本発明を制限することを意図していない。むしろ本発明の技術的範囲は
、本発明の特許請求項によって規定される。
【0028】 別途記載するように、本発明は、図に示した構成要素におけるソフトウエア、
ファームウエア、およびハードウエアの多くの異なる実施形態において実行され
ている。本発明を実行するのに使用される実際のソフトウエアコードまたは指定
された制御ハードウエアは、本発明を制限していない。したがって、本明細書は
、この技術において普通の技能をもつ者がソフトウエアを設計し、ハードウエア
を制御して、本発明の好ましい実施形態を実行できるように記載されているので
、本発明の動作および振舞いは、実際のソフトウエアコードまたは指定されたハ
ードウエア構成要素をとくに参照せずに記載されている。
【0029】 図6は、本発明の実施形態にしたがって構成されて動作するプロセスを示す高
レベルのフローチャートである。このようなプロセスは、記憶デバイス、例えば
コンピュータシステムの(不揮発性)メモリ、光ディスク、磁気テープ、または
磁気ディスク内に記憶されている。さらに、このようなプロセスは、コンピュー
タシステムが製造されるときにプログラムされるか、または後でコンピュータ読
出し媒体を介してプログラムされる。このような媒体には、記憶デバイスに関し
て既に記載した形態の何れか、さらに加えて、例えば変調または操作された搬送
波を含むことができ、このような搬送波はコンピュータ、マイクロプロセッサ、
ディジタル信号プロセッサ、または論理素子の他のアレイが読出す、復調/デコ
ードする、および/または実行する命令を構成している機械読出し可能コードを
伝達する。
【0030】 図6のプロセスをサポートするのに使用される状態RAMは複数のバンクへ分
割され、各バンクは複数のメモリ位置を含み、各メモリ位置は複数の状態に適応
している。使用されるバンク数は、所望のアーキテクチャ、速度、およびパイプ
ラインレジスタの数に依存する。さらに加えて、各メモリ位置内に記憶される状
態数が増加するほど、必要なパイプラインレジスタの数が増加する。メモリを複
数のバンクに分割することによって、必要なパイプラインレジスタの数が低減し
、パイプラインレジスタの遅延が低減することになる。このような構成では、よ
り複雑なアドレス生成論理を犠牲にして、より少ない数のレジスタで、より迅速
に目標状態を書込むことができる。
【0031】 上述の4×2のACSのバタフライアレイ400のような、1つの例示的な構成
では、状態RAMは2つのバンク(例えば、バンク0およびバンク1)へ分割さ
れ、各バンクは32の部分をもち、各部分は4つの状態を記憶する(図7参照)
。各バンク内の32の部分の各々は、ユニークな6ビットのアドレス(例えば、
,b,b,b,b,b)によって識別され、LSB(すなわち、
)はバンク選択パラメータとして働き、上位の5ビット(すなわち、b
,b,b,b)は、選択されたバンク内の部分のアドレスを指定する
。この特定の例では、記憶された状態レベルmないしmは、図4bのソース
状態ラベル00(H)ないし07(H)にそれぞれ対応するか、または別の対応
が使用されることもある。各バンク内の32の部分の各々は、両バンクの256
の状態の全てを記憶するために、256の可能な状態の中の4つを記憶する。
【0032】 上述の8×1のACSのバタフライアレイ500のような、1つの例示的な構成
では、状態RAMは、ここでも2つのバンクへ分割され、各バンクは16の部分
をもち、各部分は8つの状態を記憶する(図8参照)。各バンク内の16の部分
の各々は、ユニークな5ビットのアドレス(例えば、b,b,b,b
)によって識別され、LSB(すなわち、b)はバンク選択パラメータと
して働き、上位の4ビット(すなわち、b,b,b,b)は、選択され
たバンク内の部分のアドレスを指定する。この特定の例では、記憶された状態ラ
ベルmないしm15は、図5bのソース状態ラベル00(H)ないし0F(H
)に対応するか、または別の対応が使用されることもある。各バンク内の16の
部分の各々は、両バンクの256の状態の全てを記憶するために、256の可能
な状態の中の8つを記憶する。
【0033】 ブロックB610、B615、およびB660に示されているように、プロセ
スは、所望の数のプロセスサイクルが完了するまで実行される。ブロックB61
7に示されているように、プロセスサイクル内のソース状態の各ブロックごとに
、ブロックB620ないしB650のタスクが(例えば、ループ方式またはパイ
プライン方式で)実行される。
【0034】 ブロックB620では、状態RAM内のソース状態の各ブロックの読出しアド
レスを判断するアドレス指定方式が適用される。別途記載されるように、バタフ
ライのACSの演算を介して、消費されたソース状態によってこれまで占められ
ていたメモリ位置へ、計算された目標状態を記憶することによって、緩衝要件が
低減される。状態RAM内に記憶されたソース状態が一度消費された値をもつと
、その状態は、次のプロセスサイクルまでは、読出しのために再び訪れないので
、この演算は許容可能である。
【0035】 しかしながら、このような演算を実行するために、1ブロック当りの状態数を
法とするブロック内で、かつ二値ラベルcないしcによって指示された(i
は量([(ソース状態数)/(1ブロック当りの状態数)])について2を基数と
する対数である)ソース状態の1つのソース状態のブロック番号(0ないし2 −1 の範囲内の数として規定される)にしたがってソース状態を状態RAMから
読出すことは望ましくないことに注意すべきである。さらに加えて、複数の分割
されたバンクの各々の中の同じ相対的な位置からソース状態のブロックの各部分
を読出すことも望ましくない。別途記載するように、ソース状態のブロックの読
出しアドレスは、対応する生成された目標状態ブロックをブロック番号にしたが
って状態RAM内に(例えば、順次に)記憶するようなやり方で判断される。(
その代わりに、本発明の実施形態の異なる構成では、目標状態のブロックの書込
みアドレスは(例えば、順次に)ブロック番号にしたがってソース状態ブロック
を読出すようなやり方で判断することもできる)。
【0036】 1つの例示的な構成では、ソース状態のブロックの読出しアドレスは、モジュ
ーロNのサイクルカウンタ(なお、Nは特定のアーキテクチャに依存する)にし
たがって、ブロック番号を循環することによって判断される。2K−1のソース
状態の完全な組が処理されるたびに、モジューロNのACSサイクルカウンタが
インクリメントされる。このアドレス指定方式では、処理されるソース状態の各
ブロックに対するブロック番号をACSサイクルのカウントにしたがって循環し
て、そのブロックの読出しアドレスを求める。例えば、並列のACSのバタフラ
イアレイ400および500では、モジューロNのカウンタは、各プロセスサイクルご
とに2だけインクリメントされる。
【0037】 別の例示的な構成では、各ソース状態のブロック部分の読出しアドレスは、ソ
ース状態のブロック部分の番号およびプロセスサイクル数の所定の読出し関数f
を適用することによって部分的に判断される。
【0038】
【数1】
【0039】 ソース状態のブロック部分の番号は、二値ラベルcないしcによって指定
され、1ブロック部分当りの状態数を法とするブロック部分内では、ソース状態
の1つの(0ないし2K−1の範囲内の)数として規定される。例えば状態RA
Mが2つのバンクに分割される場合に、ブロック部分の数は、ブロック数にc を右側に連結した数になる。特定のソース状態のブロック部分の読出しアドレス
は、ソース状態のブロックの読出しアドレス(すなわち、関数fによって生成さ
れたアドレス)と、その部分がバンク0から読出されるか、またはバンク1から
読出されるかを示すバンク選択パラメータcとを組合せて定められる。
【0040】 関数fは、特定のバタフライアレイ構成に依存し、プロセスサイクル数、ソー
ス状態のブロック部分の数(すなわち、ソース状態のブロック数およびラベルc )、並びに循環を使用して、ソース状態のブロック部分の読出しアドレスを計
算する。とくに、関数fは、指定されたプロセスサイクル中に、バンク選択パラ
メータとブロック番号内の一定のビット値との排他的論理和(exclusive-or, XO
R)の演算を実行し、プロセスサイクル数が進行するときに、ブロック番号を左
へ循環することによって、ソース状態のブロック部分の読出しアドレスを生成す
る。
【0041】 例えば、変更形の8×1のACSバタフライアレイ500について、1つの可能
な状態のブロック部分の読出しアドレスの関数fは、テーブル1−Aに示した。
テーブル1−Aに示されているように、5ビットのブロック部分の番号cない
しcおよびプロセスサイクル数が与えられるとき、関数fは、4ビットのブロ
ック読出しアドレスbないしbを判断する。変更形の8×1のACSのバタ
フライアレイ500では、16のソース状態の全て、すなわち各バンクから1つの
8つの状態部分を読出す。テーブル1−Aに示されているように、プロセスサイ
クル#0において、ソース状態は各バンク内の位置b,b,b,b=c ,c,c,cから読出される。プロセスサイクル#1では、ブロック番
号は左へ2回循環され、ブロックc=1の1つの部分において、その部分がバ
ンク1から読出されるとき、およびブロックc=0の他の部分において、その
部分がバンク0(内の恐らく異なるアドレス)から読出されるとき、読出しアド
レスはb,b,b,b=c,c,(cXOR c),cであ
る。したがって、モジューロNの剰余がないサイクル数では、2つのブロック部
分が各バンク内の同じ位置から読出され、一方でモジューロ4の剰余をもつサイ
クル数では、2つのブロック部分が各バンク内の異なる位置から読出される。こ
の構成では、ラベルcはバンク選択パラメータとして働くことに注意すべきで
ある。
【0042】 テーブル1−Bは、この特定の形態の読出し関数fに基づいて、各プロセスサ
イクル中にブロック部分を読出すパターンを示している(各セル内の16進数は
、表の左側の列のブロック部分の番号によってアドレス指定される部分の第1の
状態に対応し、ブロック部分の番号はbないしbとcとを連結している)
。このテーブル1Bから分かるように、開始のブロック部分のアドレスは、4プ
ロセスサイクル(すなわち、N=4)の後で再び訪ずれる。
【0043】
【表11】
【0044】
【表12】
【0045】 さらに説明することによって、図9aおよび9bは、(図8に示したように分
割された)状態RAM内のソース状態番号(図9a参照)とそのソース状態の位
置(図9b参照)との間の(上記のテーブル1−Aとして示されている)関数f
によって規定された関係を示している。図9aでは、二値ラベルcないしc はブロック部分の番号を示しており、一方で二値ラベルdないしdは指定さ
れたブロック部分内の8つのソース状態の特定の1つを識別する。関数fを上述
のcないしcへ適用した後で、この状態の位置は図9bに示され、なお二値
ラベルbないしbは関数fによって出力された値を示し、値cはバンク選
択パラメータとして働く。
【0046】 4×2のACSのバタフライアレイにおける1つの可能な読出し関数fは、テ
ーブル2−Aに示した。6ビットのブロック部分の番号cないしcおよびプ
ロセスサイクル数が与えられるとき、この関数fは5ビットのブロックの読出し
アドレスbないしbを判断する。既に記載したように、4×2のACSのバ
タフライアレイ400は、8つのソース状態の全て、すなわち各バンクから1つの
4つの状態の部分を読出す。テーブル2−Aに示されているように、プロセスサ
イクル#0において、ソース状態は、各バンク内のメモリのアドレスb,b ,b,b,b=c,c,c,c,cから読出される。プロセス
サイクル#1では、ブロック番号は左へ2回循環され、ブロックの一方の部分で
はc=1であり、ブロックの他方の部分ではc=0であるとき(ここでも、
ラベルcはバンク選択パラメータとして働く)、読出しアドレスはb,b
,b,b,b=c,c,c,(c XOR c),cになる。
【0047】 テーブル2−Bでは、各セル内の16進数は、テーブル2−Bの左側の列のブ
ロック部分の番号によってアドレス指定される部分の第1の状態に対応し、ブロ
ック部分の番号はbないしbとcとを連結したものである。ブロック番号
内のビット数は基数(すなわち、5)であるので、この構成において最初のアド
レスを再び訪ずれるには、アドレスを2だけ循環するより多くの繰返し回数が要
求される。したがって、テーブル2−Bから分かるように、12のプロセスサイ
クル(すなわち、N=12)の後で、最初のアドレスが再び訪ずれる(しかしな
がら、代わりの構成では、10回のみの繰返しが必要である)。
【0048】
【表13】
【0049】
【表14】
【0050】
【表15】
【0051】
【表16】
【0052】 さらに説明することによって、図10aおよび10bは、(図7に示されてい
るように分割された)状態RAM内のソース状態番号(図10a参照)とそのソ
ース状態の位置(図10b参照)との間の(上記のテーブル2−Aに示されてい
る)関数fによって規定されている関係を示している。図10aでは、二値ラベ
ルcないしcはブロック部分の番号を示しており、一方で二値ラベルd
いしdは指示されたブロック部分内の4つのソース状態の特定の1つを識別す
る。上述のように関数fをcないしcへ適用した後で、この状態の位置は図
10bに示され、なお二値ラベルbないしbは関数fによって出力される値
を示し、値cはバンク選択パラメータとして働く。
【0053】 図6のプロセスに戻ると、(ブロックB620の)アドレス指定方式によって
表わされたアドレス位置はブロックB630において読出される。ブロックB6
40では、読出しソース状態に対応する目標状態は、ACSのバタフライ演算に
したがって計算される。既に記載したように、4×2のACSのバタフライアレ
イ400は、1つの受信コード符号ごとに8つの目標状態を計算し、中間の目標状
態を再配置し、それらをソース状態としてフィードバックし、次に受信コード符
号について8つの対応する目標状態を計算する。4×2のACSのバタフライア
レイ400は、各クロックサイクル中に、8つのソース状態を読出し、全部で8つ
の目標状態を計算する。したがって、4×2のACSのバタフライアレイ400は
、32のクロックサイクルまたは1プロセスサイクル中に、2組のnの受信コー
ド符号について256の全ての状態(すなわち、合計で512の状態)を計算す
る。
【0054】 同様のやり方では、8×1のバタフライアレイ500は、1クロックサイクル中
に1組のnの受信コード符号について16の目標状態を計算し、計算された目標
状態をソース状態として使用して、次のクロックサイクル中に次の組のnの受信
コード符号について16の対応する目標状態を計算する。8×1のACSのバタ
フライアレイ500は、各クロックサイクル中に、16のソース状態を読出し、1
6の目標状態を計算する。したがって、8×1のACSのバタフライアレイ500
は、16のクロックサイクルにおいて、1組のnの受信コード符号について25
6の全ての状態を計算し、32のクロックサイクルまたは1プロセスサイクルに
おいて、両方の組のnの受信コード符号について256の全ての状態を計算する
【0055】 最後に、ブロックB650では、ブロックB620において判断された読出し
アドレスに、累積の目標状態を記憶する。状態RAMを有効に使用するために、
読出しアドレスのメモリ位置のコンテンツは、累積の目標状態値で上書きされる
。既に記載したように、バンクは個々にアドレス指定可能であるので、目標状態
のブロックの各部分は状態RAMへ個々に上書きされる(しかしながら、2以上
の部分を並行して上書きすることができる)。例えば、4×2のACSのバタフ
ライアレイ400では、目標状態は4つの状態の部分に上書きされる。同様に、変
更形の8×1のACSのバタフライアレイ500では、目標状態は8つの状態の部分
に上書きされる。
【0056】 図11は、本発明の実施形態にしたがう装置を示している。プロセスサイクル
カウンタ720(例えば、モジューロNカウンタ)は、各完了したプロセスサイク
ルごとにインクリメントされる。アドレス計算器710は、別途記載するように、
プロセスサイクルのカウントを受信し、各ブロック部分ごとにアドレス位置を判
断するように構成されている。状態RAM740は、これらのアドレス位置を受信
し、ソース状態の距離のブロックをACSの計算器730へ出力するように構成さ
れている。ACS計算器730は、ソース状態の距離のブロックと分岐の距離ユニ
ット750によって出力されたデータとから、目標状態の距離のブロックを計算す
るように構成されている。状態RAM740は、さらに、ACS計算器730から目標
状態の距離のブロックを受信し、ソース状態の距離のブロックを読出したアドレ
ス位置内のブロックを記憶して、ソース状態の距離のブロックを上書きするよう
に構成されている。一方のアドレス計算器710、プロセスサイクルカウンタ720、
ACS計算器730、および分岐の距離ユニット750は(全体的または部分的に)、
同じマイクロプロセッサ、ディジタル信号プロセッサ、または論理素子の類似の
アレイに対して実行される1組の命令を含んでおり、他方の別のアドレス計算器
710、プロセスサイクルカウンタ720、ACS計算器730、および分岐の距離ユニ
ット750も同様であることに注意すべきである。
【0057】 したがって、上述の実施形態では、分割されたメモリバンク、パイプラインレ
ジスタ、および回路の複雑性の間で釣り合いをとり、高レートのACSのバタフ
ライ演算の実行を向上するやり方で、単一のメモリ内に状態を位置決めして記憶
することができる方法および装置を提供する。
【0058】 さらに加えて、上述の好ましい実施形態では説明および記述を与えているが、
本発明を網羅するか、または記載されている形態に本発明を正確に制限すること
は意図されていない。変更および変形は、上述の教示と可能な一貫性があるか、
または本発明を実行することによって求められる。例えば、本明細書に記載され
ている実施形態のアーキテクチャは、16×1のアレイまたは32×1のアレイ
のような他のアレイの処理を実行するように容易に拡張することができ、32ま
たは64の状態はクロックサイクルごとに生成することができる。さらに加えて
、クロックサイクル中に1または2組のnの受信した符号を処理する代わりに、
クロックサイクルごとにより多くの組のnの受信した符号を処理するように、実
施形態を適応させることができる。記載した実施形態は、畳込みコードのデコー
ディングに関係しているが、本発明の実施形態は、ビタビアルゴリズムの他の応
用において使用することもできる。したがって、本発明の技術的範囲は、特許請
求項およびそれに相当するものによって規定されることに注意すべきである。
【図面の簡単な説明】
【図1a】 K=9、レート=1/2の畳込みエンコーダを示するブロックレベルの図。
【図1b】 ACSおよびチェーンバックユニットを示すシステムレベルのブロック図。
【図2】 基本的なACSのバタフライ演算を示す遷移図。
【図3】 2×2のACSのバタフライアレイを示す遷移図。
【図4a】 4×2のバタフライアレイを示す遷移図。
【図4b】 4×2のバタフライアレイを示す遷移図。
【図5a】 8×1のACSのバタフライアレイを示す遷移図。
【図5b】 8×1のACSのバタフライアレイを示す遷移図。
【図6】 本発明の実施形態を示す高レベルのフローチャート。
【図7】 本発明の実施形態にしたがう方法または装置をサポートする状態RAMの構成
を示す図。
【図8】 本発明の実施形態にしたがう方法または装置をサポートする状態RAMの構成
を示す図。
【図9a】 ソース状態番号の図。
【図9b】 本発明の実施形態にしたがう方法または装置の状態RAM内の図9aのソース
状態の位置の図。
【図10a】 ソース状態番号の図。
【図10b】 本発明の実施形態にしたがう方法または装置の状態RAMにおける図10aの
ソース状態の位置の図。
【図11】 本発明の実施形態にしたがう装置のブロック図。
───────────────────────────────────────────────────── フロントページの続き (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE,TR),OA(BF ,BJ,CF,CG,CI,CM,GA,GN,GW, ML,MR,NE,SN,TD,TG),AP(GH,G M,KE,LS,MW,MZ,SD,SL,SZ,TZ ,UG,ZW),EA(AM,AZ,BY,KG,KZ, MD,RU,TJ,TM),AE,AG,AL,AM, AT,AU,AZ,BA,BB,BG,BR,BY,B Z,CA,CH,CN,CO,CR,CU,CZ,DE ,DK,DM,DZ,EE,ES,FI,GB,GD, GE,GH,GM,HR,HU,ID,IL,IN,I S,JP,KE,KG,KP,KR,KZ,LC,LK ,LR,LS,LT,LU,LV,MA,MD,MG, MK,MN,MW,MX,MZ,NO,NZ,PL,P T,RO,RU,SD,SE,SG,SI,SK,SL ,TJ,TM,TR,TT,TZ,UA,UG,UZ, VN,YU,ZA,ZW Fターム(参考) 5B001 AA10 AB02 AC01 AD03 AD06 AE02 5J065 AD10 AE06 AF02 AH04 AH06 AH17 AH23

Claims (30)

    【特許請求の範囲】
  1. 【請求項1】 複数のアドレス位置を判断し、各アドレス位置が、ソース状
    態の距離のブロックの複数のブロック部分の中の1つに対応していることと、 前記アドレス位置から、ソース状態の距離の前記ブロックを読出すことと、 複数の加算−比.較−選択の処理を行なって、目標状態の距離のブロックを
    計算し、目標状態の距離の前記ブロックの中の各々が、ソース状態の距離の前記
    ブロックの中の対応する1つから少なくとも部分的に求められることと、 目標状態の距離の前記ブロックを前記アドレス位置へ記憶することとを含み
    、 前記記憶することが、前記複数のブロック部分に上書きすることを含む方法
  2. 【請求項2】 前記加算−比較−選択の処理の中の各々が、 ソース状態の距離の前記ブロックの中の第1のものへ第1の分岐の距離を加
    算して、第1の和を求めることと、 ソース状態の距離の前記ブロックの中の第2のものへ第2の分岐の距離を加
    算して、第2の和を求めることと、 前記第1の和を前記第2の和と比較することと、 前記比較にしたがって前記第1の和と前記第2の和の中の一方を選択するこ
    ととを含む請求項1記載の方法。
  3. 【請求項3】 前記複数のアドレス位置が、第1のバンク位置と第2のバン
    ク位置とを含み、 前記第1のバンク位置が第1のバンク内にあり、前記第2のバンク位置が第
    2のバンク内にある請求項2記載の方法。
  4. 【請求項4】 前記読出しが、前記第1のバンク位置から前記複数のブロッ
    ク部分の中の第1のものを読出すことと、前記第2のバンク位置から前記複数の
    ブロック位置の中の第2のものを読出すこととを含む請求項3記載の方法。
  5. 【請求項5】 前記複数の加算−比較−選択の処理が、8×1の加算−比較
    −選択のバタフライ構造によって実行され、 ソース状態の距離の前記ブロックが16のソース状態の距離を含む請求項4
    記載の方法。
  6. 【請求項6】 前記判断が、プロセスサイクルカウンタを参照することを含
    む請求項5記載の方法。
  7. 【請求項7】 前記判断が、次の表に示すように所定の関数を適用すること
    を含み、 【表1】 前記複数のブロック部分の中の各々において、 cないしcが前記ブロック部分のブロック部分の番号を指定し、前記ブ
    ロック部分の番号がソース状態の番号によって定められ、前記ソース状態が、前
    記ブロック部分内のソース状態の距離の中の1つに対応していて、 bないしbが、前記ブロック部分に対するブロックのアドレス位置を指
    定し、 前記ブロック部分に対応するアドレス位置が、cを組合せたブロックアド
    レスの位置によって定められ、cがバンク選択パラメータとして働く請求項6
    記載の方法。
  8. 【請求項8】 前記複数の加算−比較−選択の処理が、4×2の加算−比較
    −選択のバタフライ構造によって実行され、 ソース状態の距離の前記ブロックが、8つのソース状態の距離を含む請求項
    4記載の方法。
  9. 【請求項9】 前記判断が、プロセスサイクルカウンタを参照することを含
    む請求項8記載の方法。
  10. 【請求項10】 前記判断が、次に示すように所定の関数を適用することを
    含み、 【表2】 前記複数のブロック部分の中の各々において、 cないしcが前記ブロック部分のブロック部分の番号を指定し、前記ブ
    ロック部分の番号がソース状態の番号によって定められ、前記ソース状態が、前
    記ブロック部分内のソース状態の距離の中の1つに対応していて、 bないしbが、前記ブロック部分に対するブロックのアドレス位置を指
    定し、 前記ブロック部分に対応するアドレス位置が、cを組合せたブロックアド
    レスの位置によって定められ、cがバンク選択パラメータとして働く請求項9
    記載の方法。
  11. 【請求項11】 状態ランダムアクセスメモリ(random-access memory, RA
    M)と、 (A)前記状態RAM内の複数のアドレス位置を判断し、各アドレス位置は
    、ソース状態の距離のブロックの複数のブロック部分の中の1つに対応していて
    、(B)複数のアドレス位置を前記状態RAMへ供給するアドレス計算器と、 (C)前記状態RAMからソース状態の距離の前記ブロックを受信し、(D
    )目標状態の距離のブロックを計算し、目標状態の距離の前記ブロックの中の各
    々が、ソース状態の距離の前記ブロックの中の対応する1つから少なくとも部分
    的に求められ、(E)目標状態の距離の前記ブロックを前記状態RAMへ供給する
    ための加算−比較−選択の計算器とを含む装置であって、 前記状態RAMが、目標状態の距離の前記ブロックを前記アドレス位置へ記
    憶することによって前記複数のブロック部分を上書きするように構成されている
    装置。
  12. 【請求項12】 前記加算−比較−選択の計算器が、複数の加算−比較−選
    択の処理を実行するように構成されていて、 前記加算−比較−選択の処理の中の各々が、 ソース状態の距離の前記ブロックの中の第1のものへ第1の分岐の距離を加算
    して、第1の和を求めることと、 ソース状態の距離の前記ブロックの中の第2のものへ第2の分岐の距離を加
    算して、第2の和を求めることと、 前記第1の和を前記第2の和と比較することと、 前記比較にしたがって前記第1の和および前記第2の和の中の1つを選択す
    ることとを含む請求項11記載の装置。
  13. 【請求項13】 前記複数のアドレス位置が、第1のバンク位置と第2のバ
    ンク位置とを含み、 前記第1のバンク位置が前記状態RAMの第1のものの中にあり、前記第2
    のバンク位置が前記状態RAMの第2のものの中にある請求項12記載の装置。
  14. 【請求項14】 前記複数のブロック位置の中の第1のものに対応するアド
    レス位置が前記第1のバンク位置であり、 前記複数のブロック位置の中の第2のブロックに対応するアドレス位置が前
    記第2のバンク位置である請求項13記載の装置。
  15. 【請求項15】 前記加算−比較−選択の計算器が、8×1の加算−比較−
    選択のバタフライ構造を含み、 ソース状態の距離の前記ブロックが、16のソース状態の距離を含む請求項
    14記載の装置。
  16. 【請求項16】 前記アドレス計算器が、プロセスサイクルカウンタを参照
    するように構成されている請求項15記載の装置。
  17. 【請求項17】 前記アドレス計算器が、次に示すように所定の関数を適用
    するように構成されていて、 【表3】 前記複数のブロック部分の中の各々において、 cないしcが前記ブロック部分のブロック部分の番号を指定し、前記ブ
    ロック部分の番号がソース状態の番号によって定められ、前記ソース状態が、前
    記ブロック部分内のソース状態の距離の中の1つに対応していて、 bないしbが、前記ブロック部分のブロックアドレスの位置を指定し、 前記ブロック部分に対応するアドレス位置が、cを組合せたブロックのア
    ドレス位置によって定められ、cがバンク選択パラメータとして働く請求項1
    6記載の装置。
  18. 【請求項18】 前記複数の加算−比較−選択の計算器が、4×2の加算−
    比較−選択のバタフライ構造を含み、 ソース状態の距離の前記ブロックが、8つのソース状態の距離を含む請求項
    14記載の装置。
  19. 【請求項19】 前記アドレス計算器が、プロセスサイクルカウンタを参照
    するように構成されている請求項18記載の装置。
  20. 【請求項20】 前記アドレス計算器が、次に示すように所定の関数を適用
    するように構成されていて、 【表4】 前記複数のブロック部分の中の各々において、 cないしcが前記ブロック部分のブロック部分の番号を指定し、前記ブ
    ロック部分の番号がソース状態の番号によって定められ、前記ソース状態が、前
    記ブロック部分内のソース状態の距離の中の1つに対応していて、 bないしbが、前記ブロック部分に対するブロックのアドレス位置を指
    定し、 前記ブロック部分に対応するアドレス位置が、cと組合せたブロックアド
    レスの位置によって定められ、cがバンク選択パラメータとして働く請求項1
    9記載の装置。
  21. 【請求項21】 機械読出しコードを記憶したデータ記憶媒体であって、機
    械読出しコードは論理素子のアレイによって実行可能な命令を含んでおり、この
    方法を規定する命令は、 複数のアドレス位置を判断し、各アドレス位置がソース状態の距離のブロッ
    クの複数のブロック部分の中の1つに対応していることと、 前記アドレス位置から、ソース状態の距離の前記ブロックを読出すことと、 複数の加算−比較−選択の動作を実行して、目標状態の距離のブロックを計
    算し、前記目標状態の距離のブロックの中の各々が、ソース状態の距離の前記ブ
    ロックの中の対応するものから少なくとも部分的に求められることと、 目標状態の距離の前記ブロックを前記アドレス位置へ記憶することとを含み
    、 前記記憶することが、前記複数のブロック部分を上書きすることを含むデー
    タ記憶媒体。
  22. 【請求項22】 前記加算−比較−選択の処理の中の各々が、 ソース状態の距離の前記ブロックの中の第1のものへ第1の分岐の距離を加
    算して、第1の和を求めることと、 前記ソース状態の距離のブロックの中の第2のものへ第2の分岐の距離を加
    算して、第2の和を求めることと、 前記第1の和を前記第2の和と比較することと、 前記比較にしたがって前記第1の和および前記第2の和の中の一方を選択す
    ることとを含む請求項21記載の媒体。
  23. 【請求項23】 前記複数のアドレス位置が第1のバンク位置と第2のバン
    ク位置とを含み、 前記第1のバンク位置が第1のバンクの中にあり、前記第2のバンク位置が
    第2のバンクの中にある請求項22記載の媒体。
  24. 【請求項24】 前記読出しが、前記第1のバンク位置から前記複数のブロ
    ック部分の中の第1のものを読出すことと、前記第2のバンク位置から前記複数
    のブロック部分の中の第2のものを読出すこととを含む請求項23記載の媒体。
  25. 【請求項25】 前記複数の加算−比較−選択の処理が、8×1の加算−比
    較−選択のバタフライ構造によって実行され、 ソース状態の距離の前記ブロックが16のソース状態の距離を含む請求項2
    4記載の媒体。
  26. 【請求項26】 前記判断することが、プロセスサイクルカウンタを参照す
    ることを含む請求項25記載の媒体。
  27. 【請求項27】 前記判断が、次に示すように所定の関数を適用することを
    含み、 【表5】 前記複数のブロック部分の中の各々において、 cないしcが前記ブロック部分のブロック部分の番号を指定し、前記ブ
    ロック部分の番号がソース状態の番号によって定められ、前記ソース状態が、前
    記ブロック部分内のソース状態の距離の中の1つに対応していて、 bないしbが、前記ブロック部分に対するブロックのアドレス位置を指
    定し、 前記ブロック部分に対応するアドレス位置が、cを組合せたブロックアド
    レスの位置によって定められ、cがバンク選択パラメータとして働く請求項2
    6記載の媒体。
  28. 【請求項28】 前記複数の加算−比較−選択の処理が、4×2の加算−比
    較−選択のバタフライ構造によって実行され、 ソース状態の距離の前記ブロックが、8つのソース状態の距離を含む請求項
    24記載の媒体。
  29. 【請求項29】 前記判断が、プロセスサイクルカウンタを参照することを
    含む請求項28記載の媒体。
  30. 【請求項30】 前記判断が、次に示すように所定の関数を適用することを
    含み、 【表6】 前記複数のブロック部分の中の各々において、 cないしcが前記ブロック部分のブロック部分の番号を指定し、前記ブ
    ロック部分の番号がソース状態の番号によって定められ、前記ソース状態が、前
    記ブロック部分内のソース状態の距離の中の1つに対応していて、 bないしbが、前記ブロック部分に対するブロックのアドレス位置を指
    定し、 前記ブロック部分に対応するアドレス位置が、cを組合せたブロックのア
    ドレスの位置によって定められ、cがバンク選択パラメータとして働く請求項
    29記載の媒体。
JP2001574985A 2000-04-06 2001-04-05 高速acsビタビデコーダの実行のためにメモリ内の状態の距離を効率的に読出して記憶するための方法および装置 Pending JP2003530753A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/544,324 2000-04-06
US09/544,324 US6757864B1 (en) 2000-04-06 2000-04-06 Method and apparatus for efficiently reading and storing state metrics in memory for high-speed ACS viterbi decoder implementations
PCT/US2001/011361 WO2001078239A2 (en) 2000-04-06 2001-04-05 Method and apparatus for efficiently reading and storing state metrics in memory for high-speed acs viterbi decoder implementations

Publications (1)

Publication Number Publication Date
JP2003530753A true JP2003530753A (ja) 2003-10-14

Family

ID=24171718

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001574985A Pending JP2003530753A (ja) 2000-04-06 2001-04-05 高速acsビタビデコーダの実行のためにメモリ内の状態の距離を効率的に読出して記憶するための方法および装置

Country Status (10)

Country Link
US (1) US6757864B1 (ja)
EP (1) EP1269636A2 (ja)
JP (1) JP2003530753A (ja)
KR (1) KR100785671B1 (ja)
CN (1) CN1446406A (ja)
AU (1) AU2001251428A1 (ja)
CA (1) CA2405483A1 (ja)
IL (1) IL152117A0 (ja)
MX (1) MXPA02009796A (ja)
WO (1) WO2001078239A2 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050264906A1 (en) * 2004-05-25 2005-12-01 Haratsch Erich F Method and apparatus for reduced-state Viterbi detection in a read channel of a magnetic recording system
KR100437697B1 (ko) * 2001-07-19 2004-06-26 스프레드텔레콤(주) 다수준 격자부호변조방식의 복호 방법 및 장치
US7043682B1 (en) * 2002-02-05 2006-05-09 Arc International Method and apparatus for implementing decode operations in a data processor
EP1432190A1 (en) * 2002-12-18 2004-06-23 Texas Instruments Incorporated RSSE using hardware acceleration
EP1450493A1 (en) * 2003-02-19 2004-08-25 Nokia Corporation Viterbi decoder with path metric calculations over two trellis columns and routing of path metrics in the memory
US20050071734A1 (en) * 2003-09-26 2005-03-31 Broadcom Corporation Methods and systems for Viterbi decoding
US7287212B2 (en) * 2003-09-26 2007-10-23 Broadcom Corporation Methods and systems for Viterbi decoding
US8020067B2 (en) * 2004-12-13 2011-09-13 Freescale Semiconductor, Inc. Apparatus and method for detecting an end point of an information frame
US20080152044A1 (en) * 2006-12-20 2008-06-26 Media Tek Inc. Veterbi decoding method for convolutionally encoded signal
CN101320979B (zh) * 2008-07-17 2010-06-02 北京天碁科技有限公司 一种维特比译码器及其路径度量计算方法
US8413010B1 (en) * 2009-03-12 2013-04-02 Western Digital Technologies, Inc. Data storage device employing high quality metrics when decoding logical block address appended to a data sector

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB788241A (en) * 1955-06-23 1957-12-23 Atomic Energy Authority Uk Improvements in or relating to the production of zirconium tetrachloride
US4583078A (en) * 1984-11-13 1986-04-15 Communications Satellite Corporation Serial Viterbi decoder
JPS62233933A (ja) * 1986-04-03 1987-10-14 Toshiba Corp ヴイタビ復号法
US4979175A (en) * 1988-07-05 1990-12-18 Motorola, Inc. State metric memory arrangement for a viterbi decoder
US5220570A (en) * 1990-11-30 1993-06-15 The Board Of Trustees Of The Leland Stanford Junior University Programmable viterbi signal processor
US5502735A (en) * 1991-07-16 1996-03-26 Nokia Mobile Phones (U.K.) Limited Maximum likelihood sequence detector
US5416787A (en) 1991-07-30 1995-05-16 Kabushiki Kaisha Toshiba Method and apparatus for encoding and decoding convolutional codes
US5619514A (en) 1994-12-29 1997-04-08 Lucent Technologies Inc. In-place present state/next state registers
US5742621A (en) * 1995-11-02 1998-04-21 Motorola Inc. Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
JPH09232973A (ja) 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
US5881075A (en) * 1996-03-18 1999-03-09 Samsung Electronics Co., Ltd. Viterbi decoder
KR100484127B1 (ko) * 1997-08-07 2005-06-16 삼성전자주식회사 비터비디코더
KR100311504B1 (ko) * 1998-01-22 2001-11-22 서평원 비터비디코더의스태이트메트릭메모리및이를이용한복호화방법
US6269130B1 (en) * 1998-08-04 2001-07-31 Qualcomm Incorporated Cached chainback RAM for serial viterbi decoder
WO2000008768A1 (en) 1998-08-04 2000-02-17 Qualcomm Incorporated Viterbi decoder with reduced size path metric memory
KR100285067B1 (ko) * 1998-09-25 2001-03-15 윤종용 비터비 디코더의 가산 비교 선택 회로
AU5032299A (en) 1999-07-06 2001-01-22 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Viterbi decoder
DE10010238C2 (de) 2000-03-02 2003-12-18 Infineon Technologies Ag Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer

Also Published As

Publication number Publication date
US6757864B1 (en) 2004-06-29
CN1446406A (zh) 2003-10-01
WO2001078239A2 (en) 2001-10-18
WO2001078239A3 (en) 2002-03-14
MXPA02009796A (es) 2003-05-27
KR20030005267A (ko) 2003-01-17
CA2405483A1 (en) 2001-10-18
KR100785671B1 (ko) 2007-12-14
EP1269636A2 (en) 2003-01-02
IL152117A0 (en) 2003-05-29
AU2001251428A1 (en) 2001-10-23

Similar Documents

Publication Publication Date Title
US6324226B1 (en) Viterbi decoder
JPH10107651A (ja) ビタビ復号装置
US6333954B1 (en) High-speed ACS for Viterbi decoder implementations
JP2003530753A (ja) 高速acsビタビデコーダの実行のためにメモリ内の状態の距離を効率的に読出して記憶するための方法および装置
US7277507B2 (en) Viterbi decoder
US7590928B2 (en) Apparatus and method for Viterbi decoding
US8401126B2 (en) Viterbi decoding apparatus
US7958437B2 (en) MAP detector with a single state metric engine
JPH07212336A (ja) 減少長トレースバック
JP2798123B2 (ja) ビタビ復号装置
US20070201586A1 (en) Multi-rate viterbi decoder
JP2904271B2 (ja) ビタビ復号器用パスメモリユニットおよび復号方法
EP1192719A1 (en) Viterbi decoder
JP3253906B2 (ja) データ処理装置及びデータ処理方法
JP3231647B2 (ja) ビタビ復号器
KR0148060B1 (ko) Viterbi 복호기의 ACS를 위한 메모리 최적 구조
JP2002198827A (ja) 最尤復号方法及び最尤復号器
WO2007000708A1 (en) Viterbi decoder and decoding method thereof
JPH07202725A (ja) ビタビ復号器
JP2001186025A (ja) ビタビ復号装置
JP2002185337A (ja) 基地局装置
JP2004120791A (ja) ビタビ復号器
JP2002111518A (ja) ビタビ復号方法及びその装置
JPH047849B2 (ja)