(57)【特許請求の範囲】
【請求項１】
ビタビ復号処理で現れるパスメトリックと枝メトリックをそれぞれ１ワード幅で記憶するメモリと、上位側および下位側にそれぞれ１ワード幅のデータを一時記憶する少なくとも２ワード幅のレジスタを複数有するレジスタファイルと、このレジスタファイルの任意のレジスタへ前記メモリからバスを介して読み込んだパスメトリックおよび枝メトリックを用いて所定の演算式に基づき新たなパスメトリックを算出する演算手段とを有するビタビ復号処理装置であって、
前記演算手段は、前記各レジスタのうち所定の２つのレジスタを入力オペランドとしてとり、その一方の第１のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を前記レジスタのうちの第３のレジスタの上位側に格納するとともに、前記他方の第２のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を第３のレジスタの下位側に格納する比較演算器を備え、
前記バスは、２ワード幅のデータバスからなり、
前記レジスタファイルは、前記第３のレジスタの上位側と下位側に格納されている２ワード幅のデータを同時に読み出し前記データバスを介して前記メモリ上の隣り合ったアドレスにストアすることを特徴とするビタビ復号処理装置。
【請求項２】
請求項１記載のビタビ復号処理装置において、
前記比較演算器で実行された２つの比較演算の比較結果をそれぞれ表す２ビットの値を同時に格納する履歴レジスタをさらに備えることを特徴とするビタビ復号処理装置。
【請求項３】
請求項１記載のビタビ復号処理装置において、
前記比較演算器は、前記比較演算の際、前記２つの値のうち所定命令に応じていずれか大きい方または小さい方の値を選択することを特徴とするビタビ復号処理装置。
【請求項４】
請求項１記載のビタビ復号処理装置において、
前記演算手段は、前記レジスタのうち所定の２つのレジスタを入力オペランドとしてとり、その一方の第４のレジスタの上位側と他方の第５のレジスタの上位側の値を用いた第１の加算と、第４のレジスタの下位側と第５のレジスタの下位側の値を用いた第２の加算とを並列して実行し、第１の加算の結果を前記第１のレジスタの上位側に格納するとともに、第２の加算の結果を前記第１のレジスタの下位側に格納する第１の加減算器と、これら第４および第５のレジスタを入力オペランドとしてとり、第４のレジスタの上位側と第５のレジスタの上位側の値を用いた第１の減算と、第４のレジスタの下位側と第５のレジスタの下位側の値を用いた第２の減算とを並列して実行し、第１の減算の結果を前記第２のレジスタの上位側に格納するとともに、第２の減算の結果を第２のレジスタの下位側に格納する第２の加減算器とをさらに備えることを特徴とするビタビ復号処理装置。
【請求項５】
請求項４記載のビタビ復号処理装置において、
前記メモリは、トレリス線図上での当該時点における１つの状態へ直前時点における２つの状態から遷移する２つの枝に関する１ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ記憶し、
前記レジスタファイルは、前記メモリに記憶されている前記２つの枝メトリックを前記データバスを介して同時に読み出して前記第５のレジスタの上位側と下位側にロードすることを特徴とするビタビ復号処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ビタビ復号（Viterbi Decoding）処理装置に関し、特に品質の高いディジタル通信を実現するビタビ復号処理を行うビタビ復号処理装置に関するものである。
【０００２】
【従来の技術】
ディジタル無線通信では、伝送路で発生するビット誤りによる影響を抑制し品質の良い通信を実現するために、畳み込み符号化とビタビ復号の組み合わせが広く用いられている。このビタビ復号の処理は、通信機器に組み込まれたディジタル信号処理プロセッサ（以下、ＤＳＰという：Digital Signal Processer）によって実現される。そのため近年ＤＳＰには、ビタビ復号処理を効率良く実現できるアーキテクチャを有することが求められている。
ビタビ復号は、畳み込み符号の持つ繰り返し構造を利用して軟判定による最尤復号を効率的に実行するものであり、加算・比較・選択（ＡＣＳ：Add Compare Select）処理と呼ばれる一連の処理の繰り返しと、最終的にデータを復号するトレースバック操作とにより実現される。
【０００３】
このビタビ復号処理では、その畳み込み符号の符号器の内部状態とその遷移を示すトレリス線図において、情報ビット１ビットに対する受信データ系列を得るごとに、その新たな時点での各状態で生き残りパスを順次選択することにより、受信データ系列に最も近しい生き残りパスすなわち本来の符号化データ系列を得ている。
このとき、生き残りパスの選択基準として、各生き残りパスが示す符号化データ系列と受信データ系列との信号間距離すなわちパスメトリックをそれぞれ算出する必要があり、上記加算・比較・選択処理が繰り返し実行される。
【０００４】
したがって、ＤＳＰがビタビ復号を効率よく実現するためには、この加算・比較・選択処理を効率良く実行することが重要となる。図４は加算・比較・選択処理を示す説明図である。
一般に、トレリス線図は、符号器の符号化率と拘束長が決定されると各時点の状態とこれら状態の遷移を示す枝のパターンが、単純な繰り返しにより表現される。時点ｔ＋１において、トレリス線図上で隣接する２つの状態、すなわち各状態に対応する符号化データ系列（出力シンボル）の値（２進数）が隣接する２つの状態Ｓｃ（ｔ＋１），Ｓｃ＋１（ｔ＋１）に着目した場合、これら状態Ｓｃ（ｔ＋１）と状態Ｓｃ＋１（ｔ＋１）のパスメトリックｐｍ'（ｃ）とｐｍ'（ｃ＋１）は、以下の式（１），（２）で与えられる。
【０００５】
ｐｍ'（ｃ）＝ＭＡＸ（ｐｍ（ａ）＋ｂｍ，ｐｍ（ｂ）−ｂｍ）…（１）
ｐｍ'（ｃ＋１）＝ＭＡＸ（ｐｍ（ａ）−ｂｍ，ｐｍ（ｂ）＋ｂｍ）…（２）
ここで、ｐｍ（ａ）およびｐｍ（ｂ）は、状態Ｓｃ（ｔ＋１）とＳｃ＋１（ｔ＋１）に接続されうる２つの状態Ｓａ（ｔ）とＳｂ（ｔ）のパスメトリックの値である。またｂｍと−ｂｍは、図４に示すように、各状態を接続する枝に関連付けられた、その枝に対応するパスと受信データ系列とのハミング距離すなわち枝メトリックである。
なお、本発明では、値ｘ，ｙのうちいずれか大きい方の値を選択する関数をＭＡＸ（ｘ，ｙ）と表記し、値ｘ，ｙのうちいずれか小さい方の値を選択する関数をＭＩＮ（ｘ，ｙ）と表記する。上記式において、枝メトリックの表現方法によってはＭＡＸに代えてＭＩＮを用いる場合もある。
【０００６】
このような加算・比較・選択処理を効率良く処理するために、従来、複数の加減算器と比較器を設け、加算・比較・選択処理を並列に処理することが可能なＤＳＰのプロセッサアーキテクチャが提案されている（例えば、特開平１１−２６１４２６号公報：文献１、特開平１１−７４８０１号公報：文献２、など参照）。
図５に、上記文献１にかかる従来のビタビ復号処理装置のブロック図を示す。この場合、加減算器５２，５３に入力されるオペランド（アドレス情報）や演算結果の値は、レジスタファイル５１に設けられている複数のレジスタのいずれかへ一時的に格納される。
【０００７】
加減算器５２，５３は、それぞれ２個のレジスタＲｉ，Ｒｊを入力オペランドとしてとり、これらレジスタの上位側Ｒｉ（Ｈ），Ｒｊ（Ｈ）および下位側Ｒｉ（Ｌ），Ｒｊ（Ｌ）に対する並列加減演算をする。それぞれの加減算の結果はレジスタＲｋの上位側Ｒｋ（Ｈ），下位側Ｒｋ（Ｌ）にそれぞれ格納される。
比較器５４，５６は、それぞれ１個のレジスタＲｉをオペランドとしてとり、その上位側Ｒｉ（Ｈ）と下位側Ｒｉ（Ｌ）とで大小比較演算を行い、例えば大きい方の値をレジスタＲｋに格納する。同時に、その比較演算の結果１ビットをそれぞれの履歴レジスタ５５，５７に格納する。
【０００８】
このようなビタビ復号処理装置において、２つの状態に対する加算・比較・演算処理は次のような手順で実行される。
まず、枝メトリックの値ｂｍと−ｂｍの値がそれぞれメモリ５９から読み出されレジスタＲ０の上位側と下位側に格納されるとともに、パスメトリックの値ｐｍ（ａ），ｐｍ（ｂ）がメモリ５９から読み出され、レジスタＲ１の上位側と下位側にそれぞれ格納される。
そして、加減算器５２では、レジスタＲ０とレジスタＲ１の並列加算が行われ、レジスタＲ２の上位側にはｐｍ（ａ）＋ｂｍの値が格納され、下位側にはｐｍ（ｂ）−ｂｍの値が格納される。
【０００９】
また、加減算器５３では、レジスタＲ０とレジスタＲ１の並列減算が行われ、レジスタＲ３の上位側にはｐｍ（ａ）−ｂｍの値が格納され、下位側にはｐｍ（ｂ）＋ｂｍの値が格納される。
続いて比較器５４では、レジスタＲ２の上位側と下位側が比較されて、大きい方の値がレジスタＲ４に格納され、同時に比較結果を示す１ビットが履歴レジスタ５５に格納される。このときＲ４に格納された値は式（１）のｐｍ'（ｃ）に等しい。また、履歴レジスタ５４に格納されたビットは後にトレースバックと呼ばれる処理で用いられる。
【００１０】
また、比較器５６によってレジスタＲ３の上位側と下位側が比較され、大きい方の値がレジスタＲ５に格納され、同時に比較結果を示す１ビットが履歴レジスタ５７に格納される。このときレジスタＲ５に格納された値は式（２）のｐｍ'（ｃ＋１）に等しい。最後にレジスタＲ４の内容とレジスタＲ５の内容がメモリ５９に格納される。
なお、文献２では、演算器のオペランドや演算結果を直接メモリとやりとりするアーキテクチャが提案されており、上記のようなレジスタファイルを利用するアーキテクチャとは異なっている。しかし、２組の加減算器と比較器を有して加算・比較・選択処理を並列に実行するという意味において、本質的に同一である。
【００１１】
【発明が解決しようとする課題】
しかしながら、このような従来のビタビ復号処理装置では、メモリからレジスタファイルへのデータのロードやレジスタファイルからメモリへのデータのストアに時間がかかるという問題があった。例えば上記のように２つの状態に対する加算・比較・選択処理を行うためには、２つのパスメトリックと２つの枝メトリックをレジスタへ読み込むために４回のロードが必要となり、得られた新たな２つのパスメトリックをメモリへ格納するために２回のストアが必要となる。これを効率良く処理するためには、装置全体の動作速度を向上する必要があり、プロセッサ規模と消費電力が増大することにつながる。
本発明はこのような課題を解決するためのものであり、動作速度の高速化や複雑な処理を必要とすることなく効率良く加算・比較・選択処理を行うことができるビタビ復号処理装置を提供することを目的としている。
【００１２】
【課題を解決するための手段】
このような目的を達成するために、本発明にかかるビタビ復号処理装置は、ビタビ復号処理で現れるパスメトリックと枝メトリックをそれぞれ１ワード幅で記憶するメモリと、上位側および下位側にそれぞれ１ワード幅のデータを一時記憶する少なくとも２ワード幅のレジスタを複数有するレジスタファイルと、このレジスタファイルの任意のレジスタへ前記メモリからバスを介して読み込んだパスメトリックおよび枝メトリックを用いて所定の演算式に基づき新たなパスメトリックを算出する演算手段とを有するビタビ復号処理装置であって、その演算手段に、各レジスタのうち所定の２つのレジスタを入力オペランドとしてとり、その一方の第１のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値をレジスタのうちの第３のレジスタの上位側に格納するとともに、他方の第２のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を第３のレジスタの下位側に格納する比較演算器を備え、バスとして２ワード幅のデータバスを用い、レジスタファイルで、第３のレジスタの上位側と下位側に格納されている２ワード幅のデータを同時に読み出しデータバスを介してメモリ上の隣り合ったアドレスにストアするようにしたものである。
【００１３】
この場合、その後のトレースバック処理を考慮して、比較演算器で実行された２つの比較演算の比較結果をそれぞれ表す２ビットの値を同時に格納する履歴レジスタをさらに設けてもよい。
上記比較演算器での比較演算の際、２つの値のうち所定命令に応じていずれか大きい方または小さい方の値を選択するようにしてもよい。
【００１４】
また、加減算処理を効率よく行うため、演算手段に、レジスタのうち所定の２つのレジスタを入力オペランドとしてとり、その一方の第４のレジスタの上位側と他方の第５のレジスタの上位側の値を用いた第１の加算と、第４のレジスタの下位側と第５のレジスタの下位側の値を用いた第２の加算とを並列して実行し、第１の加算の結果を第１のレジスタの上位側に格納するとともに、第２の加算の結果を第１のレジスタの下位側に格納する第１の加減算器と、これら第４および第５のレジスタを入力オペランドとしてとり、第４のレジスタの上位側と第５のレジスタの上位側の値を用いた第１の減算と、第４のレジスタの下位側と第５のレジスタの下位側の値を用いた第２の減算とを並列して実行し、第１の減算の結果を第２のレジスタの上位側に格納するとともに、第２の減算の結果を第２のレジスタの下位側に格納する第２の加減算器とをさらに設けてもよい。
【００１５】
加算・比較・選択処理で用いる枝メトリックについて、メモリで、トレリス線図上での当該時点における１つの状態へ直前時点における２つの状態から遷移する２つの枝に関する１ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ記憶し、レジスタファイルで、メモリに記憶されている２つの枝メトリックをデータバスを介して同時に読み出して第５のレジスタの上位側と下位側にロードするようにしてもよい。
【００１７】
【発明の実施の形態】
次に、本発明の実施の形態について図面を参照して説明する。
図１は本発明の一実施の形態にかかるビタビ復号処理装置を示すブロック図である。このビタビ演算処理装置には、演算手段１０、レジスタファイル１１、履歴レジスタ１５、メモリ１６、データバス１７，１８およびプログラム制御部１９が設けられている。また、演算手段１０には、２つの加減算器１２，１３と、比較演算器１４とが設けられている。
レジスタファイル１１には、演算器への入力オペランド（入力データを格納しておく場所）や演算手段１０からの演算結果などを一時的に格納するための複数個のレジスタが設けられている。
【００１８】
図２にレジスタの構成例を示す。ここでは、１つのレジスタ２０が４０ビット幅を有し、上位側８ビット（２１）は積和演算器のアキュムレータとして用いる場合のヘッドルームであり、Ｒｉ（Ｅ）と表記する。これ以外の３２ビットは演算手段１０への入力オペランドや演算結果の格納に用いることもできるし、上位側に相当する上位側１６ビットＲｉ（Ｈ）と下位側に相当する下位側１６ビットＲｉ（Ｌ）とに分離して１６ビットレジスタ（２２，２３）として用いることもできる。なお、ここではレジスタのビット数を４０ビット、ヘッドルームを８ビット、上位側と下位側をそれぞれ１６ビットとした例を示したが、ビット数は必ずしもこれに従う必要はない。
【００１９】
加減算器１２，１３は、２個のレジスタＲｉとＲｊをオペランドとしてとり、その上位側Ｒｉ（Ｈ），Ｒｊ（Ｈ）および下位側Ｒｉ（Ｌ），Ｒｊ（Ｌ）に対する並列加減演算をすることが可能である。加算および減算の結果は、それぞれレジスタＲｋの上位側Ｒｋ（Ｈ）と下位側Ｒｋ（Ｌ）にそれぞれ格納される。
比較演算器１４は、２個のレジスタＲｉ，Ｒｊを入力オペランドとしてとり、２つの比較演算を並列に行う。同時に、その２つの比較演算の結果を表す２ビットをあわせて履歴レジスタ１５に格納する。
【００２０】
図３に、比較演算器１４と履歴レジスタ１５の機能をより詳細に示す。
レジスタＲｉ（３１）の上位側Ｒｉ（Ｈ）とＲｉ（Ｌ）を比較器３３によって大小比較演算を行い、命令によって大きい方あるいは小さい方の値をレジスタＲｋ（３５）の上位側Ｒｋ（Ｈ）に格納する。同時に、２番目のオペランドであるレジスタＲｊ（３２）の上位側Ｒｊ（Ｈ）とＲｊ（Ｌ）を比較器３４によって大小比較演算を行い、命令によって大きい方あるいは小さい方の値をレジスタＲｋの下位側Ｒｋ（Ｌ）に格納する。
比較器３３，３４から、その演算結果を表すそれぞれ１ビットが出力される。履歴レジスタ１５の中は固定したビット数のレジスタ３６からなり、その内容が２ビット右にシフトされ、比較器３３，３４から出力された２ビットが履歴レジスタ１５内にあるレジスタ３６の上位側２ビットに同時に格納される。
【００２１】
メモリ１６は、ビタビ復号処理で用いるパスメトリックや枝メトリックを１ワード幅で記憶しており、それぞれ２ワード幅のバス１７，１８を介してレジスタファイル１１と接続されている。このメモリ１６はマルチバンクメモリあるいはデュアルポートメモリ構成とすることで、２本のバス１７，１８を介して並列的にロード／ストアが可能になっている。
バス１７，１８は、それぞれの２ワード幅を生かして、メモリ１６上に隣り合ったアドレスにある２ワードのデータを同時に転送し、レジスタＲｉの上位側と下位側へロードできる。またこれとは逆に、レジスタＲｉの上位側と下位側に格納されている２ワードのデータを同時に転送し、メモリ１６上の隣り合ったアドレスにストアできる。
【００２２】
プログラム制御部１９は、所定のプログラム１９Ａに基づいて、順次、命令１０Ａを出力することにより上記した各回路部を制御することにより加算・比較・演算処理を実行し、ビタビ復号処理を行う。
比較演算器１４では、加減算器１２，１３を用いて算出した新たなパスメトリックに基づき生き残りパスを選択する際、この命令１０Ａに基づき比較条件（ＭＡＸ／ＭＩＮ）の切り替えを行う。
【００２３】
次に、本実施の形態の動作について説明する。
図１のビタビ復号処理装置では、情報ビット１ビットに対する受信データ系列を得るごとに、次のような手順で各状態に関する加算・比較・演算処理を実行する。
まず、プログラム制御部１９では、所定の回路部（図示せず）を用いて、トレリス線図における直前時点の状態から当該時点の状態へ遷移する各枝についてそれぞれ枝メトリックを算出し、予めメモリ１６に格納しておく。このときメモリ１６には、トレリス線図上での直前時点の２つの状態から当該時点の同一の状態へ遷移する２つの枝に関する１ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ格納しておく。
【００２４】
そして、命令１０Ａを図１の各回路部へ出力し、当該時点における各状態について順に加算・比較・演算処理を行うことにより、それぞれ生き残りパスの選択を行う。
本実施の形態は、トレリス線図上で隣接する位置にある当該時点の２つの状態に着目し、これら２つの状態に関する加算・比較・演算処理での共通性を生かして、効率よく加算・比較・演算処理を行うようにしたものである。
以下では、前述した図４を例として、当該時点ｔ＋１におけるトレリス線図上で隣接する２つの状態Ｓｃ（ｔ＋１），Ｓｃ＋１（ｔ＋１）に関する加算・比較・演算処理について説明する。
【００２５】
状態Ｓｃ（ｔ＋１）へ変遷する状態Ｓａ（ｔ），Ｓｂ（ｔ）からの２つの枝に関する枝メトリックｂｍ，−ｂｍは、上記のようにして予めメモリ１６上の隣り合ったアドレスに格納されている。レジスタファイル１１では、これら枝メトリックｂｍ，−ｂｍの値をメモリ１６から同時に読み出し、２ワード幅のバス１７またはバス１８を介してレジスタファイル１１のレジスタＲ０（第４のレジスタ）の上位側と下位側に格納する。また、パスメトリックの値ｐｍ（ａ），ｐｍ（ｂ）をメモリ１６から読み出し、バス１７またはバス１８を介してレジスタＲ１（第５のレジスタ）の上位側と下位側へそれぞれ格納する。なお、ｐｍ（ａ），ｐｍ（ｂ）は、そのＳａ（ｔ），Ｓｂ（ｔ）が常に隣接する位置関係にないため、メモリ１６上では隣り合うアドレスには格納されておらず、それぞれ別個に読み出される。
【００２６】
加減算器１２では、レジスタＲ０とレジスタＲ１の並列加算が行われ、レジスタＲ２（第１のレジスタ）の上位側にはｐｍ（ａ）＋ｂｍの値が格納され、下位側にはｐｍ（ｂ）−ｂｍの値が格納される。加減算器１３では、レジスタＲ０とレジスタＲ１の並列減算が行われ、レジスタＲ３（第２のレジスタ）の上位側にはｐｍ（ａ）−ｂｍの値が、下位側にはｐｍ（ｂ）＋ｂｍの値が格納される。
続いて、比較演算器１４において、レジスタＲ２の上位側と下位側およびレジスタＲ３の上位側と下位側がそれぞれ比較され、大きい方の値がレジスタＲ４（第３のレジスタ）の上位側と下位側にそれぞれ格納されるとともに、その比較結果を示す２ビットが履歴レジスタ１５に格納される。
【００２７】
このとき、レジスタＲ４の上位側に格納された値は上記式（１）のｐｍ'（ｃ）に等しく、レジスタＲ４の下位側に格納された値は式（２）のｐｍ'（ｃ＋１）に等しい。また、履歴レジスタ１５に格納された２ビットは、最後に残った１つの生き残りパスを用いた最終的な復号のためのトレースバック処理で用いられる。
そして、レジスタＲ４の上位側と下位側から、トレリス線図上で隣接する状態Ｓｃ（ｔ＋１），Ｓｃ＋１（ｔ＋１）の新たなパスメトリックｐｍ'（ｃ），ｐｍ'（ｃ＋１）が読み出され、メモリ１６の隣り合うアドレスへ同時にストアされる。
【００２８】
このように、２つのレジスタＲ２（第１のレジスタ）とレジスタＲ３（第２のレジスタ）を入力オペランドとしてとり、レジスタＲ２の上位側と下位側を比較演算し、その比較結果に応じて選択した値を別のレジスタＲ４（第３のレジスタ）の上位側に格納し、またレジスタＲ３の上位側と下位側を比較演算し、その比較結果に応じて選択した値をレジスタＲ４の下位側に格納し、このレジスタＲ４の上位側と下位側のデータを同時に読み出し、２ワード幅のバス１７またはバス１８を介してメモリ１６上の隣り合ったアドレスにストアするようにしたので、従来のように２つの比較器でそれぞれ選択され異なるレジスタに格納された２つの新たなパスメトリックを別個にメモリへストアする場合と比較して、メモリへのストア動作が１回で済み、加算・比較・選択処理を効率よく実行することが可能となる。したがって、動作速度の高速化や複雑な処理を必要とすることなく効率良く加算・比較・選択処理を行うことができる。
【００２９】
一般に、トレリス線図を用いて加算・比較・演算処理を行う場合、トレリス線図上に配置された各状態の位置関係に基づき順に処理が行われる。これは、プログラム処理を効率よく実行することを目的とするものである。上記のように、加算・比較・選択処理で得られた２つの新たなパスメトリックについても、メモリ１６内でトレリス線図上の位置関係に応じて連続するアドレスに格納することにより、さらにプログラムすなわちソフトウェア資源とハードウェア資源との整合性がよくなり、プログラム処理を効率よく実行できるだけでなくプログラム開発に要する作業負担をも軽減できる。
【００３０】
また、メモリ１６において、トレリス線図上での直前時点における任意の状態から当該時点における２つの新たな状態へ移行する２つの枝に関する１ワード幅の枝メトリックを、隣り合ったアドレスにそれぞれ記憶しておき、加算・比較・選択処理の際、これら２つの枝メトリックを２ワード幅のバス１７またはバス１８を介して同時に読み出してレジスタＲ１（第５のレジスタ）の上位側と下位側にロードするようにしたので、従来のように、２つの枝メトリックをメモリから別個にロードする場合と比較して、メモリからのロード動作が１回で済み、加算・比較・選択処理を効率よく実行することが可能となる。
【００３１】
したがって、パスメトリックのロード動作と合わせて合計３回のロード動作と１回のストア動作で２つの状態に対する加算・比較・選択処理を実行できることになるため、従来のように４回のロード動作と２回のストア動作を行う場合と単純に比較しても、動作に必要なサイクルを約２／３にまで削減できる。
さらに、本実施の形態では、２ワード幅の２つのバス１７，１８を設けるとともに、これら２つのバスを介してメモリ１６とレジスタファイル１１の間で並列的に上記のロード動作やストア動作を実行できるようにしたので、パイプライン処理が可能となり、平均して２サイクル分で２つの状態に対する加算・比較・選択処理を実行できることになり、従来と比較して動作に必要なサイクルを約１／３にまで削減できる。
【００３２】
また、履歴レジスタ１５では、比較演算器１４で実行された２つの比較演算の比較結果をそれぞれ表す２ビットの値を同時に格納するようにしたので、従来のように２つの比較器からの比較結果を１ビットずつ異なる履歴レジスタに格納する場合と比較して、履歴レジスタの数を削減でき回路構成を簡略化できる。
また、比較演算器１４では、比較する２つの値のうちプログラム制御部１９からの命令１０Ａに応じていずれか大きい方または小さい方の値を選択するようにしたので、必要に応じて選択基準を容易に切り替えることが可能となる。
【００３３】
また、加減算器５２，５３を設け、加減算器５２では、２つのレジスタＲ０（第４のレジスタ）とレジスタＲ１（第５のレジスタ）とを入力オペランドとしてとり、その一方のレジスタＲ０の上位側と他方のレジスタＲ１の上位側の値を用いた第１の加算と、レジスタＲ０の下位側とレジスタＲ１の下位側の値を用いた第２の加算とを並列に実行し、第１の加算結果をレジスタＲ２（第１のレジスタ）の上位側に格納するとともに、第２の加算結果をレジスタＲ２の下位側に格納し、加減算器５３では、レジスタＲ０の上位側とレジスタＲ１の上位側の値を用いた第１の減算と、レジスタＲ０の下位側とレジスタＲ１の下位側の値を用いた第２の減算とを並列に実行し、第１の減算結果をレジスタＲ３（第２のレジスタ）の上位側に格納するとともに、第２の減算結果をレジスタＲ３の下位側に格納するようにしたので、２つの状態に関する加減算処理を並列的に効率よく処理できる。
なお、本発明が上記実施の形態に限定されず、本発明の技術思想の範囲内において、適宜変更され得ることは明らかである。
【００３４】
【発明の効果】
以上説明したように、本発明は、所定の２つのレジスタを入力オペランドとしてとり、その一方の第１のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値をレジスタのうちの第３のレジスタの上位側に格納するとともに、他方の第２のレジスタの上位側と下位側の値を比較演算し、その比較結果に応じて選択したいずれか一方の値を第３のレジスタの下位側に格納する比較演算器と、２ワード幅のデータバスとを設け、比較演算器により第３のレジスタの上位側と下位側に格納されている２ワード幅のデータを同時に読み出しデータバスを介してメモリ上の隣り合ったアドレスにストアするようにしたので、従来のように２つの比較器でそれぞれ選択され異なるレジスタに格納された２つの新たなパスメトリックを別個にメモリへストアする場合と比較して、メモリへのストア動作が１回で済み、加算・比較・選択処理を効率よく実行することが可能となる。したがって、動作速度の高速化や複雑な処理を必要とすることなく効率良く加算・比較・選択処理を行うことができる。
【図面の簡単な説明】
【図１】  本発明の一実施の形態にかかるビタビ復号処理装置を示すブロック図である。
【図２】  レジスタの構成例である。
【図３】  比較演算器の動作を示す説明図である。
【図４】  加算・比較・選択処理を示す説明図である。
【図５】  従来のビタビ復号処理装置を示すブロック図である。
【符号の説明】
１０…演算手段、１０Ａ…命令、１１…レジスタファイル、１２，１３…加減算器、１４…比較演算器、１５…履歴レジスタ、１６…メモリ、１７，１８…データバス、１９…プログラム制御部、１９Ａ…プログラム。
【図１】
0003984790.tif 000002
【図２】
0003984790.tif 000003
【図３】
0003984790.tif 000004
【図４】
0003984790.tif 000005
【図５】
0003984790.tif 000006