JP3984790B2 - ビタビ復号処理装置 - Google Patents
ビタビ復号処理装置 Download PDFInfo
- Publication number
- JP3984790B2 JP3984790B2 JP2001006066A JP2001006066A JP3984790B2 JP 3984790 B2 JP3984790 B2 JP 3984790B2 JP 2001006066 A JP2001006066 A JP 2001006066A JP 2001006066 A JP2001006066 A JP 2001006066A JP 3984790 B2 JP3984790 B2 JP 3984790B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- viterbi decoding
- stored
- comparison
- registers
- 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.)
- Expired - Lifetime
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6563—Implementations using multi-port memories
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6566—Implementations concerning memory access contentions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6569—Implementation on processors, e.g. DSPs, or software implementations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
- H03M13/4169—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
Description
【発明の属する技術分野】
本発明は、ビタビ復号(Viterbi Decoding)処理装置に関し、特に品質の高いディジタル通信を実現するビタビ復号処理を行うビタビ復号処理装置に関するものである。
【0002】
【従来の技術】
ディジタル無線通信では、伝送路で発生するビット誤りによる影響を抑制し品質の良い通信を実現するために、畳み込み符号化とビタビ復号の組み合わせが広く用いられている。このビタビ復号の処理は、通信機器に組み込まれたディジタル信号処理プロセッサ(以下、DSPという:Digital Signal Processer)によって実現される。そのため近年DSPには、ビタビ復号処理を効率良く実現できるアーキテクチャを有することが求められている。
ビタビ復号は、畳み込み符号の持つ繰り返し構造を利用して軟判定による最尤復号を効率的に実行するものであり、加算・比較・選択(ACS:Add Compare Select)処理と呼ばれる一連の処理の繰り返しと、最終的にデータを復号するトレースバック操作とにより実現される。
【0003】
このビタビ復号処理では、その畳み込み符号の符号器の内部状態とその遷移を示すトレリス線図において、情報ビット1ビットに対する受信データ系列を得るごとに、その新たな時点での各状態で生き残りパスを順次選択することにより、受信データ系列に最も近しい生き残りパスすなわち本来の符号化データ系列を得ている。
このとき、生き残りパスの選択基準として、各生き残りパスが示す符号化データ系列と受信データ系列との信号間距離すなわちパスメトリックをそれぞれ算出する必要があり、上記加算・比較・選択処理が繰り返し実行される。
【0004】
したがって、DSPがビタビ復号を効率よく実現するためには、この加算・比較・選択処理を効率良く実行することが重要となる。図4は加算・比較・選択処理を示す説明図である。
一般に、トレリス線図は、符号器の符号化率と拘束長が決定されると各時点の状態とこれら状態の遷移を示す枝のパターンが、単純な繰り返しにより表現される。時点t+1において、トレリス線図上で隣接する2つの状態、すなわち各状態に対応する符号化データ系列(出力シンボル)の値(2進数)が隣接する2つの状態Sc(t+1),Sc+1(t+1)に着目した場合、これら状態Sc(t+1)と状態Sc+1(t+1)のパスメトリックpm'(c)とpm'(c+1)は、以下の式(1),(2)で与えられる。
【0005】
pm'(c)=MAX(pm(a)+bm,pm(b)−bm)…(1)
pm'(c+1)=MAX(pm(a)−bm,pm(b)+bm)…(2)
ここで、pm(a)およびpm(b)は、状態Sc(t+1)とSc+1(t+1)に接続されうる2つの状態Sa(t)とSb(t)のパスメトリックの値である。またbmと−bmは、図4に示すように、各状態を接続する枝に関連付けられた、その枝に対応するパスと受信データ系列とのハミング距離すなわち枝メトリックである。
なお、本発明では、値x,yのうちいずれか大きい方の値を選択する関数をMAX(x,y)と表記し、値x,yのうちいずれか小さい方の値を選択する関数をMIN(x,y)と表記する。上記式において、枝メトリックの表現方法によってはMAXに代えてMINを用いる場合もある。
【0006】
このような加算・比較・選択処理を効率良く処理するために、従来、複数の加減算器と比較器を設け、加算・比較・選択処理を並列に処理することが可能なDSPのプロセッサアーキテクチャが提案されている(例えば、特開平11−261426号公報:文献1、特開平11−74801号公報:文献2、など参照)。
図5に、上記文献1にかかる従来のビタビ復号処理装置のブロック図を示す。この場合、加減算器52,53に入力されるオペランド(アドレス情報)や演算結果の値は、レジスタファイル51に設けられている複数のレジスタのいずれかへ一時的に格納される。
【0007】
加減算器52,53は、それぞれ2個のレジスタRi,Rjを入力オペランドとしてとり、これらレジスタの上位側Ri(H),Rj(H)および下位側Ri(L),Rj(L)に対する並列加減演算をする。それぞれの加減算の結果はレジスタRkの上位側Rk(H),下位側Rk(L)にそれぞれ格納される。
比較器54,56は、それぞれ1個のレジスタRiをオペランドとしてとり、その上位側Ri(H)と下位側Ri(L)とで大小比較演算を行い、例えば大きい方の値をレジスタRkに格納する。同時に、その比較演算の結果1ビットをそれぞれの履歴レジスタ55,57に格納する。
【0008】
このようなビタビ復号処理装置において、2つの状態に対する加算・比較・演算処理は次のような手順で実行される。
まず、枝メトリックの値bmと−bmの値がそれぞれメモリ59から読み出されレジスタR0の上位側と下位側に格納されるとともに、パスメトリックの値pm(a),pm(b)がメモリ59から読み出され、レジスタR1の上位側と下位側にそれぞれ格納される。
そして、加減算器52では、レジスタR0とレジスタR1の並列加算が行われ、レジスタR2の上位側にはpm(a)+bmの値が格納され、下位側にはpm(b)−bmの値が格納される。
【0009】
また、加減算器53では、レジスタR0とレジスタR1の並列減算が行われ、レジスタR3の上位側にはpm(a)−bmの値が格納され、下位側にはpm(b)+bmの値が格納される。
続いて比較器54では、レジスタR2の上位側と下位側が比較されて、大きい方の値がレジスタR4に格納され、同時に比較結果を示す1ビットが履歴レジスタ55に格納される。このときR4に格納された値は式(1)のpm'(c)に等しい。また、履歴レジスタ54に格納されたビットは後にトレースバックと呼ばれる処理で用いられる。
【0010】
また、比較器56によってレジスタR3の上位側と下位側が比較され、大きい方の値がレジスタR5に格納され、同時に比較結果を示す1ビットが履歴レジスタ57に格納される。このときレジスタR5に格納された値は式(2)のpm'(c+1)に等しい。最後にレジスタR4の内容とレジスタR5の内容がメモリ59に格納される。
なお、文献2では、演算器のオペランドや演算結果を直接メモリとやりとりするアーキテクチャが提案されており、上記のようなレジスタファイルを利用するアーキテクチャとは異なっている。しかし、2組の加減算器と比較器を有して加算・比較・選択処理を並列に実行するという意味において、本質的に同一である。
【0011】
【発明が解決しようとする課題】
しかしながら、このような従来のビタビ復号処理装置では、メモリからレジスタファイルへのデータのロードやレジスタファイルからメモリへのデータのストアに時間がかかるという問題があった。例えば上記のように2つの状態に対する加算・比較・選択処理を行うためには、2つのパスメトリックと2つの枝メトリックをレジスタへ読み込むために4回のロードが必要となり、得られた新たな2つのパスメトリックをメモリへ格納するために2回のストアが必要となる。これを効率良く処理するためには、装置全体の動作速度を向上する必要があり、プロセッサ規模と消費電力が増大することにつながる。
本発明はこのような課題を解決するためのものであり、動作速度の高速化や複雑な処理を必要とすることなく効率良く加算・比較・選択処理を行うことができるビタビ復号処理装置を提供することを目的としている。
【0012】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかるビタビ復号処理装置は、ビタビ復号処理で現れるパスメトリックと枝メトリックをそれぞれ1ワード幅で記憶するメモリと、上位側および下位側にそれぞれ1ワード幅のデータを一時記憶する少なくとも2ワード幅のレジスタを複数有するレジスタファイルと、このレジスタファイルの任意のレジスタへ前記メモリからバスを介して読み込んだパスメトリックおよび枝メトリックを用いて所定の演算式に基づき新たなパスメトリックを算出する演算手段とを有するビタビ復号処理装置であって、その演算手段に、各レジスタのうち所定の2つのレジスタを入力オペランドとしてとり、その一方の第1のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値をレジスタのうちの第3のレジスタの上位側に格納するとともに、他方の第2のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を第3のレジスタの下位側に格納する比較演算器を備え、バスとして2ワード幅のデータバスを用い、レジスタファイルで、第3のレジスタの上位側と下位側に格納されている2ワード幅のデータを同時に読み出しデータバスを介してメモリ上の隣り合ったアドレスにストアするようにしたものである。
【0013】
この場合、その後のトレースバック処理を考慮して、比較演算器で実行された2つの比較演算の比較結果をそれぞれ表す2ビットの値を同時に格納する履歴レジスタをさらに設けてもよい。
上記比較演算器での比較演算の際、2つの値のうち所定命令に応じていずれか大きい方または小さい方の値を選択するようにしてもよい。
【0014】
また、加減算処理を効率よく行うため、演算手段に、レジスタのうち所定の2つのレジスタを入力オペランドとしてとり、その一方の第4のレジスタの上位側と他方の第5のレジスタの上位側の値を用いた第1の加算と、第4のレジスタの下位側と第5のレジスタの下位側の値を用いた第2の加算とを並列して実行し、第1の加算の結果を第1のレジスタの上位側に格納するとともに、第2の加算の結果を第1のレジスタの下位側に格納する第1の加減算器と、これら第4および第5のレジスタを入力オペランドとしてとり、第4のレジスタの上位側と第5のレジスタの上位側の値を用いた第1の減算と、第4のレジスタの下位側と第5のレジスタの下位側の値を用いた第2の減算とを並列して実行し、第1の減算の結果を第2のレジスタの上位側に格納するとともに、第2の減算の結果を第2のレジスタの下位側に格納する第2の加減算器とをさらに設けてもよい。
【0015】
加算・比較・選択処理で用いる枝メトリックについて、メモリで、トレリス線図上での当該時点における1つの状態へ直前時点における2つの状態から遷移する2つの枝に関する1ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ記憶し、レジスタファイルで、メモリに記憶されている2つの枝メトリックをデータバスを介して同時に読み出して第5のレジスタの上位側と下位側にロードするようにしてもよい。
【0017】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図1は本発明の一実施の形態にかかるビタビ復号処理装置を示すブロック図である。このビタビ演算処理装置には、演算手段10、レジスタファイル11、履歴レジスタ15、メモリ16、データバス17,18およびプログラム制御部19が設けられている。また、演算手段10には、2つの加減算器12,13と、比較演算器14とが設けられている。
レジスタファイル11には、演算器への入力オペランド(入力データを格納しておく場所)や演算手段10からの演算結果などを一時的に格納するための複数個のレジスタが設けられている。
【0018】
図2にレジスタの構成例を示す。ここでは、1つのレジスタ20が40ビット幅を有し、上位側8ビット(21)は積和演算器のアキュムレータとして用いる場合のヘッドルームであり、Ri(E)と表記する。これ以外の32ビットは演算手段10への入力オペランドや演算結果の格納に用いることもできるし、上位側に相当する上位側16ビットRi(H)と下位側に相当する下位側16ビットRi(L)とに分離して16ビットレジスタ(22,23)として用いることもできる。なお、ここではレジスタのビット数を40ビット、ヘッドルームを8ビット、上位側と下位側をそれぞれ16ビットとした例を示したが、ビット数は必ずしもこれに従う必要はない。
【0019】
加減算器12,13は、2個のレジスタRiとRjをオペランドとしてとり、その上位側Ri(H),Rj(H)および下位側Ri(L),Rj(L)に対する並列加減演算をすることが可能である。加算および減算の結果は、それぞれレジスタRkの上位側Rk(H)と下位側Rk(L)にそれぞれ格納される。
比較演算器14は、2個のレジスタRi,Rjを入力オペランドとしてとり、2つの比較演算を並列に行う。同時に、その2つの比較演算の結果を表す2ビットをあわせて履歴レジスタ15に格納する。
【0020】
図3に、比較演算器14と履歴レジスタ15の機能をより詳細に示す。
レジスタRi(31)の上位側Ri(H)とRi(L)を比較器33によって大小比較演算を行い、命令によって大きい方あるいは小さい方の値をレジスタRk(35)の上位側Rk(H)に格納する。同時に、2番目のオペランドであるレジスタRj(32)の上位側Rj(H)とRj(L)を比較器34によって大小比較演算を行い、命令によって大きい方あるいは小さい方の値をレジスタRkの下位側Rk(L)に格納する。
比較器33,34から、その演算結果を表すそれぞれ1ビットが出力される。履歴レジスタ15の中は固定したビット数のレジスタ36からなり、その内容が2ビット右にシフトされ、比較器33,34から出力された2ビットが履歴レジスタ15内にあるレジスタ36の上位側2ビットに同時に格納される。
【0021】
メモリ16は、ビタビ復号処理で用いるパスメトリックや枝メトリックを1ワード幅で記憶しており、それぞれ2ワード幅のバス17,18を介してレジスタファイル11と接続されている。このメモリ16はマルチバンクメモリあるいはデュアルポートメモリ構成とすることで、2本のバス17,18を介して並列的にロード/ストアが可能になっている。
バス17,18は、それぞれの2ワード幅を生かして、メモリ16上に隣り合ったアドレスにある2ワードのデータを同時に転送し、レジスタRiの上位側と下位側へロードできる。またこれとは逆に、レジスタRiの上位側と下位側に格納されている2ワードのデータを同時に転送し、メモリ16上の隣り合ったアドレスにストアできる。
【0022】
プログラム制御部19は、所定のプログラム19Aに基づいて、順次、命令10Aを出力することにより上記した各回路部を制御することにより加算・比較・演算処理を実行し、ビタビ復号処理を行う。
比較演算器14では、加減算器12,13を用いて算出した新たなパスメトリックに基づき生き残りパスを選択する際、この命令10Aに基づき比較条件(MAX/MIN)の切り替えを行う。
【0023】
次に、本実施の形態の動作について説明する。
図1のビタビ復号処理装置では、情報ビット1ビットに対する受信データ系列を得るごとに、次のような手順で各状態に関する加算・比較・演算処理を実行する。
まず、プログラム制御部19では、所定の回路部(図示せず)を用いて、トレリス線図における直前時点の状態から当該時点の状態へ遷移する各枝についてそれぞれ枝メトリックを算出し、予めメモリ16に格納しておく。このときメモリ16には、トレリス線図上での直前時点の2つの状態から当該時点の同一の状態へ遷移する2つの枝に関する1ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ格納しておく。
【0024】
そして、命令10Aを図1の各回路部へ出力し、当該時点における各状態について順に加算・比較・演算処理を行うことにより、それぞれ生き残りパスの選択を行う。
本実施の形態は、トレリス線図上で隣接する位置にある当該時点の2つの状態に着目し、これら2つの状態に関する加算・比較・演算処理での共通性を生かして、効率よく加算・比較・演算処理を行うようにしたものである。
以下では、前述した図4を例として、当該時点t+1におけるトレリス線図上で隣接する2つの状態Sc(t+1),Sc+1(t+1)に関する加算・比較・演算処理について説明する。
【0025】
状態Sc(t+1)へ変遷する状態Sa(t),Sb(t)からの2つの枝に関する枝メトリックbm,−bmは、上記のようにして予めメモリ16上の隣り合ったアドレスに格納されている。レジスタファイル11では、これら枝メトリックbm,−bmの値をメモリ16から同時に読み出し、2ワード幅のバス17またはバス18を介してレジスタファイル11のレジスタR0(第4のレジスタ)の上位側と下位側に格納する。また、パスメトリックの値pm(a),pm(b)をメモリ16から読み出し、バス17またはバス18を介してレジスタR1(第5のレジスタ)の上位側と下位側へそれぞれ格納する。なお、pm(a),pm(b)は、そのSa(t),Sb(t)が常に隣接する位置関係にないため、メモリ16上では隣り合うアドレスには格納されておらず、それぞれ別個に読み出される。
【0026】
加減算器12では、レジスタR0とレジスタR1の並列加算が行われ、レジスタR2(第1のレジスタ)の上位側にはpm(a)+bmの値が格納され、下位側にはpm(b)−bmの値が格納される。加減算器13では、レジスタR0とレジスタR1の並列減算が行われ、レジスタR3(第2のレジスタ)の上位側にはpm(a)−bmの値が、下位側にはpm(b)+bmの値が格納される。
続いて、比較演算器14において、レジスタR2の上位側と下位側およびレジスタR3の上位側と下位側がそれぞれ比較され、大きい方の値がレジスタR4(第3のレジスタ)の上位側と下位側にそれぞれ格納されるとともに、その比較結果を示す2ビットが履歴レジスタ15に格納される。
【0027】
このとき、レジスタR4の上位側に格納された値は上記式(1)のpm'(c)に等しく、レジスタR4の下位側に格納された値は式(2)のpm'(c+1)に等しい。また、履歴レジスタ15に格納された2ビットは、最後に残った1つの生き残りパスを用いた最終的な復号のためのトレースバック処理で用いられる。
そして、レジスタR4の上位側と下位側から、トレリス線図上で隣接する状態Sc(t+1),Sc+1(t+1)の新たなパスメトリックpm'(c),pm'(c+1)が読み出され、メモリ16の隣り合うアドレスへ同時にストアされる。
【0028】
このように、2つのレジスタR2(第1のレジスタ)とレジスタR3(第2のレジスタ)を入力オペランドとしてとり、レジスタR2の上位側と下位側を比較演算し、その比較結果に応じて選択した値を別のレジスタR4(第3のレジスタ)の上位側に格納し、またレジスタR3の上位側と下位側を比較演算し、その比較結果に応じて選択した値をレジスタR4の下位側に格納し、このレジスタR4の上位側と下位側のデータを同時に読み出し、2ワード幅のバス17またはバス18を介してメモリ16上の隣り合ったアドレスにストアするようにしたので、従来のように2つの比較器でそれぞれ選択され異なるレジスタに格納された2つの新たなパスメトリックを別個にメモリへストアする場合と比較して、メモリへのストア動作が1回で済み、加算・比較・選択処理を効率よく実行することが可能となる。したがって、動作速度の高速化や複雑な処理を必要とすることなく効率良く加算・比較・選択処理を行うことができる。
【0029】
一般に、トレリス線図を用いて加算・比較・演算処理を行う場合、トレリス線図上に配置された各状態の位置関係に基づき順に処理が行われる。これは、プログラム処理を効率よく実行することを目的とするものである。上記のように、加算・比較・選択処理で得られた2つの新たなパスメトリックについても、メモリ16内でトレリス線図上の位置関係に応じて連続するアドレスに格納することにより、さらにプログラムすなわちソフトウェア資源とハードウェア資源との整合性がよくなり、プログラム処理を効率よく実行できるだけでなくプログラム開発に要する作業負担をも軽減できる。
【0030】
また、メモリ16において、トレリス線図上での直前時点における任意の状態から当該時点における2つの新たな状態へ移行する2つの枝に関する1ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ記憶しておき、加算・比較・選択処理の際、これら2つの枝メトリックを2ワード幅のバス17またはバス18を介して同時に読み出してレジスタR1(第5のレジスタ)の上位側と下位側にロードするようにしたので、従来のように、2つの枝メトリックをメモリから別個にロードする場合と比較して、メモリからのロード動作が1回で済み、加算・比較・選択処理を効率よく実行することが可能となる。
【0031】
したがって、パスメトリックのロード動作と合わせて合計3回のロード動作と1回のストア動作で2つの状態に対する加算・比較・選択処理を実行できることになるため、従来のように4回のロード動作と2回のストア動作を行う場合と単純に比較しても、動作に必要なサイクルを約2/3にまで削減できる。
さらに、本実施の形態では、2ワード幅の2つのバス17,18を設けるとともに、これら2つのバスを介してメモリ16とレジスタファイル11の間で並列的に上記のロード動作やストア動作を実行できるようにしたので、パイプライン処理が可能となり、平均して2サイクル分で2つの状態に対する加算・比較・選択処理を実行できることになり、従来と比較して動作に必要なサイクルを約1/3にまで削減できる。
【0032】
また、履歴レジスタ15では、比較演算器14で実行された2つの比較演算の比較結果をそれぞれ表す2ビットの値を同時に格納するようにしたので、従来のように2つの比較器からの比較結果を1ビットずつ異なる履歴レジスタに格納する場合と比較して、履歴レジスタの数を削減でき回路構成を簡略化できる。
また、比較演算器14では、比較する2つの値のうちプログラム制御部19からの命令10Aに応じていずれか大きい方または小さい方の値を選択するようにしたので、必要に応じて選択基準を容易に切り替えることが可能となる。
【0033】
また、加減算器52,53を設け、加減算器52では、2つのレジスタR0(第4のレジスタ)とレジスタR1(第5のレジスタ)とを入力オペランドとしてとり、その一方のレジスタR0の上位側と他方のレジスタR1の上位側の値を用いた第1の加算と、レジスタR0の下位側とレジスタR1の下位側の値を用いた第2の加算とを並列に実行し、第1の加算結果をレジスタR2(第1のレジスタ)の上位側に格納するとともに、第2の加算結果をレジスタR2の下位側に格納し、加減算器53では、レジスタR0の上位側とレジスタR1の上位側の値を用いた第1の減算と、レジスタR0の下位側とレジスタR1の下位側の値を用いた第2の減算とを並列に実行し、第1の減算結果をレジスタR3(第2のレジスタ)の上位側に格納するとともに、第2の減算結果をレジスタR3の下位側に格納するようにしたので、2つの状態に関する加減算処理を並列的に効率よく処理できる。
なお、本発明が上記実施の形態に限定されず、本発明の技術思想の範囲内において、適宜変更され得ることは明らかである。
【0034】
【発明の効果】
以上説明したように、本発明は、所定の2つのレジスタを入力オペランドとしてとり、その一方の第1のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値をレジスタのうちの第3のレジスタの上位側に格納するとともに、他方の第2のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を第3のレジスタの下位側に格納する比較演算器と、2ワード幅のデータバスとを設け、比較演算器により第3のレジスタの上位側と下位側に格納されている2ワード幅のデータを同時に読み出しデータバスを介してメモリ上の隣り合ったアドレスにストアするようにしたので、従来のように2つの比較器でそれぞれ選択され異なるレジスタに格納された2つの新たなパスメトリックを別個にメモリへストアする場合と比較して、メモリへのストア動作が1回で済み、加算・比較・選択処理を効率よく実行することが可能となる。したがって、動作速度の高速化や複雑な処理を必要とすることなく効率良く加算・比較・選択処理を行うことができる。
【図面の簡単な説明】
【図1】 本発明の一実施の形態にかかるビタビ復号処理装置を示すブロック図である。
【図2】 レジスタの構成例である。
【図3】 比較演算器の動作を示す説明図である。
【図4】 加算・比較・選択処理を示す説明図である。
【図5】 従来のビタビ復号処理装置を示すブロック図である。
【符号の説明】
10…演算手段、10A…命令、11…レジスタファイル、12,13…加減算器、14…比較演算器、15…履歴レジスタ、16…メモリ、17,18…データバス、19…プログラム制御部、19A…プログラム。
Claims (5)
- ビタビ復号処理で現れるパスメトリックと枝メトリックをそれぞれ1ワード幅で記憶するメモリと、上位側および下位側にそれぞれ1ワード幅のデータを一時記憶する少なくとも2ワード幅のレジスタを複数有するレジスタファイルと、このレジスタファイルの任意のレジスタへ前記メモリからバスを介して読み込んだパスメトリックおよび枝メトリックを用いて所定の演算式に基づき新たなパスメトリックを算出する演算手段とを有するビタビ復号処理装置であって、
前記演算手段は、前記各レジスタのうち所定の2つのレジスタを入力オペランドとしてとり、その一方の第1のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を前記レジスタのうちの第3のレジスタの上位側に格納するとともに、前記他方の第2のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を第3のレジスタの下位側に格納する比較演算器を備え、
前記バスは、2ワード幅のデータバスからなり、
前記レジスタファイルは、前記第3のレジスタの上位側と下位側に格納されている2ワード幅のデータを同時に読み出し前記データバスを介して前記メモリ上の隣り合ったアドレスにストアすることを特徴とするビタビ復号処理装置。 - 請求項1記載のビタビ復号処理装置において、
前記比較演算器で実行された2つの比較演算の比較結果をそれぞれ表す2ビットの値を同時に格納する履歴レジスタをさらに備えることを特徴とするビタビ復号処理装置。 - 請求項1記載のビタビ復号処理装置において、
前記比較演算器は、前記比較演算の際、前記2つの値のうち所定命令に応じていずれか大きい方または小さい方の値を選択することを特徴とするビタビ復号処理装置。 - 請求項1記載のビタビ復号処理装置において、
前記演算手段は、前記レジスタのうち所定の2つのレジスタを入力オペランドとしてとり、その一方の第4のレジスタの上位側と他方の第5のレジスタの上位側の値を用いた第1の加算と、第4のレジスタの下位側と第5のレジスタの下位側の値を用いた第2の加算とを並列して実行し、第1の加算の結果を前記第1のレジスタの上位側に格納するとともに、第2の加算の結果を前記第1のレジスタの下位側に格納する第1の加減算器と、これら第4および第5のレジスタを入力オペランドとしてとり、第4のレジスタの上位側と第5のレジスタの上位側の値を用いた第1の減算と、第4のレジスタの下位側と第5のレジスタの下位側の値を用いた第2の減算とを並列して実行し、第1の減算の結果を前記第2のレジスタの上位側に格納するとともに、第2の減算の結果を第2のレジスタの下位側に格納する第2の加減算器とをさらに備えることを特徴とするビタビ復号処理装置。 - 請求項4記載のビタビ復号処理装置において、
前記メモリは、トレリス線図上での当該時点における1つの状態へ直前時点における2つの状態から遷移する2つの枝に関する1ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ記憶し、
前記レジスタファイルは、前記メモリに記憶されている前記2つの枝メトリックを前記データバスを介して同時に読み出して前記第5のレジスタの上位側と下位側にロードすることを特徴とするビタビ復号処理装置。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001006066A JP3984790B2 (ja) | 2001-01-15 | 2001-01-15 | ビタビ復号処理装置 |
US10/466,302 US20040054958A1 (en) | 2001-01-15 | 2001-12-05 | Viterbi decoder |
EP01273082A EP1355431B1 (en) | 2001-01-15 | 2001-12-05 | Viterbi decoding processor |
DE60117705T DE60117705T2 (de) | 2001-01-15 | 2001-12-05 | Viterbi-Decodierungsprozessor |
PCT/JP2001/010624 WO2002056480A1 (fr) | 2001-01-15 | 2001-12-05 | Decodeur de viterbi |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001006066A JP3984790B2 (ja) | 2001-01-15 | 2001-01-15 | ビタビ復号処理装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002217747A JP2002217747A (ja) | 2002-08-02 |
JP3984790B2 true JP3984790B2 (ja) | 2007-10-03 |
Family
ID=18874020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001006066A Expired - Lifetime JP3984790B2 (ja) | 2001-01-15 | 2001-01-15 | ビタビ復号処理装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20040054958A1 (ja) |
EP (1) | EP1355431B1 (ja) |
JP (1) | JP3984790B2 (ja) |
DE (1) | DE60117705T2 (ja) |
WO (1) | WO2002056480A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4408783B2 (ja) * | 2004-09-29 | 2010-02-03 | Necエレクトロニクス株式会社 | 復号装置及び復号方法 |
CN101889401B (zh) | 2007-10-26 | 2014-12-31 | 高通股份有限公司 | 优化的维特比解码器和全球导航卫星系统接收器 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3237267B2 (ja) * | 1992-07-23 | 2001-12-10 | 松下電器産業株式会社 | 演算装置 |
US5440504A (en) * | 1993-02-19 | 1995-08-08 | Matsushita Electric Industrial Co., Ltd. | Arithmetic apparatus for digital signal processor |
JP3092534B2 (ja) * | 1996-12-13 | 2000-09-25 | 日本電気株式会社 | ブロックiirプロセッサ |
JP3338374B2 (ja) * | 1997-06-30 | 2002-10-28 | 松下電器産業株式会社 | 演算処理方法および装置 |
US5987490A (en) * | 1997-11-14 | 1999-11-16 | Lucent Technologies Inc. | Mac processor with efficient Viterbi ACS operation and automatic traceback store |
JP3336986B2 (ja) * | 1999-02-03 | 2002-10-21 | 日本電気株式会社 | 信号処理プロセッサ及びそれに用いる丸め機能付き積和演算器 |
US6601215B1 (en) * | 2000-02-01 | 2003-07-29 | Agere Systems Inc. | Traceback buffer management for VLSI Viterbi decoders |
-
2001
- 2001-01-15 JP JP2001006066A patent/JP3984790B2/ja not_active Expired - Lifetime
- 2001-12-05 EP EP01273082A patent/EP1355431B1/en not_active Expired - Lifetime
- 2001-12-05 US US10/466,302 patent/US20040054958A1/en not_active Abandoned
- 2001-12-05 WO PCT/JP2001/010624 patent/WO2002056480A1/ja active IP Right Grant
- 2001-12-05 DE DE60117705T patent/DE60117705T2/de not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
EP1355431A4 (en) | 2005-06-22 |
EP1355431A1 (en) | 2003-10-22 |
EP1355431B1 (en) | 2006-03-08 |
JP2002217747A (ja) | 2002-08-02 |
DE60117705T2 (de) | 2006-08-17 |
DE60117705D1 (de) | 2006-05-04 |
WO2002056480A1 (fr) | 2002-07-18 |
US20040054958A1 (en) | 2004-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3241210B2 (ja) | ビタビ復号方法及びビタビ復号回路 | |
US7139968B2 (en) | Processing unit and processing method | |
JP3358996B2 (ja) | 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ | |
US5742621A (en) | Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor | |
JP3984790B2 (ja) | ビタビ復号処理装置 | |
US20100002793A1 (en) | Method and apparatus for coding relating to a forward loop | |
US7661059B2 (en) | High performance turbo and Viterbi channel decoding in digital signal processors | |
EP1058392A1 (en) | Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system | |
JP3191442B2 (ja) | ビタビ復号用演算装置 | |
JP3711290B2 (ja) | ディジタル演算回路 | |
JPH04352518A (ja) | 演算装置 | |
JP3996858B2 (ja) | 演算処理装置 | |
JP3634333B2 (ja) | ディジタル信号処理プロセッサ | |
JP3383661B2 (ja) | 演算処理装置 | |
JPH0746145A (ja) | 演算装置 | |
JP2001222408A (ja) | プロセッサ | |
JP3250363B2 (ja) | 演算装置 | |
JP3231647B2 (ja) | ビタビ復号器 | |
JP3193830B2 (ja) | 演算回路 | |
JPH0457521A (ja) | ビタビデコーダ | |
KR20040007035A (ko) | 비터비 디코더의 가지 메트릭 계산 방법 및 그 회로 | |
KR20030008794A (ko) | 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로 | |
JPH10107652A (ja) | 演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040727 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040927 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20050208 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20050310 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20050310 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20070117 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070709 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100713 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3984790 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110713 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120713 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130713 Year of fee payment: 6 |
|
EXPY | Cancellation because of completion of term |