JP3996858B2 - Arithmetic processing unit - Google Patents
Arithmetic processing unit Download PDFInfo
- Publication number
- JP3996858B2 JP3996858B2 JP2003009709A JP2003009709A JP3996858B2 JP 3996858 B2 JP3996858 B2 JP 3996858B2 JP 2003009709 A JP2003009709 A JP 2003009709A JP 2003009709 A JP2003009709 A JP 2003009709A JP 3996858 B2 JP3996858 B2 JP 3996858B2
- Authority
- JP
- Japan
- Prior art keywords
- unit
- arithmetic processing
- node
- data
- input
- 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 - Fee Related
Links
Images
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は移動通信機器などに組み込まれる演算処理装置に関し、特にビタビ復号のACS(加算、比較、選択)演算の効率的処理を可能にする技術に関する。
【0002】
【従来の技術】
近年、ディジタル信号処理プロセッサ(以下これをDSPと呼ぶ)は、移動体通信分野のディジタル化の動きに合わせて、例えば、携帯電話への機器組込み型プロセッサとして多用されている。移動無線通信回線におけるデータ通信では、ビット誤りが頻繁に発生するため、誤り訂正処理を行う必要がある。誤り訂正の手法には、入力ビットから生成された畳み込み符号を、受信側でビタビ復号により復号する方法があり、この誤り訂正処理にDSPが使用される。
【0003】
ビタビ復号は、加算・比較・選択という単純な処理の繰り返しと、最終的にデータを復号するトレースバック操作とで畳み込み符号の最尤復号を実現する。以下に、ビタビ復号の処理を簡単に説明する。畳み込み符号は、入力ビットとそれに先行する一定数のビットとのmod2加算により生成され、入力ビット1ビットに対応して複数の符号化データが生成される。この符号化データに影響を与える入力情報ビット数のことを拘束長(K)といい、その数はmod2加算に用いられるシフトレジスタの段数に等しい。
【0004】
この符号化データは、入力ビットと、先行する(K−1)個の入力ビットの状態とで決まる。この状態は、新たな情報ビットが入力することによって新たな状態に移る(遷移する)が、遷移可能な状態は、新たな入力ビットが0であるか1であるかによって決まってしまう。この状態の数は、(K−1)このビットのそれぞれが1、0をとりうるから、2K-1 個となる。
【0005】
ビタビ復号では、受信した符号化データ系列を観測し、取り得るすべての状態遷移の中から、最も確からしい状態を推定する。そのために、情報ビット1ビットに対応する符号化データ(受信データ系列)を得るごとに、その時点での各状態へのパスの信号間距離(メトリック)を計算し、同一状態に達するパスのうち、メトリックの少ない方を生き残りパスとして残す操作を順次繰り返す。
【0006】
図25は、拘束長Kの畳み込み符号器において、ある時点における状態S[2n](nは正整数)に対し、1つ前の時点の状態S[n]とS[n+2K-2 ]とから状態遷移を表す2本のパスが延びている様子を示している。例えば、K=3の場合でいえば、n=1のとき、S[2]すなわちS10の状態(先行する2ビットが「1」「0」の順に入力した状態)に対して、S[1]すなわちS01の状態、およびS[3]すなわちS11の状態からの遷移が可能であり、また、n=2のとき、S[4]すなわちS00の状態(下位2ビットの表す状態)に対して、S[2]すなわちS10の状態、およびS[4]すなわちS00の状態からの遷移が可能である。
【0007】
パスメトリックaは、状態S[2n]に入力するパスの出力シンボルと受信データ系列との信号間距離(ブランチメトリックx)と、1つ前の時点の状態S [n]までの生き残りパスのブランチメトリックの総和であるパスメトリックAとの和である。同様にパスメトリックbは、状態S[2n]に入力するパスの出力シンボルと受信データ系列との距離(ブランチメトリックy)と、1つ前の時点の状態S[n+2K-2 ]までの生き残りパスのブランチメトリックの総和であるパスメトリックBとの和である。こうして求めた、状態S[2n]に入力するパスメトリックa,bを比較し、小さい方のパスを生き残りパスとして選択する。
【0008】
ビタビ復号では、このように、パスメトリックを求めるための加算、パスメトリックの比較、パスの選択の各処理を、各時点で2K-1 個の状態に対して実行する。更に、パスの選択において、どちらのパスを選択したかという履歴をパスセレクト信号PS[i]、[i=0〜2K-1 −1]として残しておく必要がある。このとき、選ばれたパスの1つ前の状態の添え字(例えばn)が、選ばれなかった他方のパスの1つ前の状態の添え字(n+2K-2 )よりも小さければ、PS 〔i]=0とし、大きければ、PS[i]=1とする。図25の場合、n< (n+2K-2 )であるから、a>bの時は状態S [n+2K-2 ]が選択されて、PS[S2n]=1となり、a≦bの時は状態S[n]が選択されて、PS[S2n]=0となる。最終的に、トレースバックにより復号する際に、このパスセレクト信号を基に生き残りパスをさかのぼりながら、データを復号していく。
【0009】
従来のDSPで、このビタビ復号用のACS演算処理を、汎用の演算装置であるTMS320C54x(TEXAS INSTRUMENTS 社製、以下これをC54xと呼ぶ)を例に挙げて説明する。GSMセルラー無線システムでは、以下の多項式が畳み込み符号として使用されている。
G1(D)=1+D3 +D4 、 G2(D)=1+D+D3 +D4
【0010】
この畳み込み符号は、図26に示すバタフライ構造のトレリス線図で表される。このトレリス線図は、ある状態から別の状態への畳み込み符号の遷移する様子を表している。今、拘束長Kが5であるとすると、2K-1 =16個の状態または8個のバタフライ構造が各シンボル間ごとに存在することになり、それぞれの状態には2つのブランチが入力され、ACS演算により新しいパスメトリックが決定する。
【0011】
ブランチメトリックを次式で定義する。
M=SD(2* i)* B(J,0)+SD(2* i+1)* B(J,1)
ここで、SD(2* i)は軟判定入力を表すシンボルメトリックの1番目のシンボルであり、SD(2* i+1)はシンボルメトリックの2番目のシンボルである。B(J,0)とB(J,1)は図27に示す畳み込み符号器により生成される符号に一致する。
【0012】
C54xでは、ALUをデュアル16ビットモードにセットすることによってバタフライ構造を高速に処理する。新しいパスメトリック(J)の決定には、DADST命令で、2* Jと2* J+1の2個のパスメトリックとブランチメトリック(Mと−M)を並列に演算し、CMPS命令で比較を行う。新しいパスメトリック(J+8)の決定には、DSADT命令で、2個のパスメトリックとブランチメトリック(Mと−M)を並列に演算する。演算結果はそれぞれ倍精度アキュムレータの上位と下位に格納される。CMPS命令で新しいパスメトリックが決定される。
【0013】
CMPS命令は、アキュムレータの上位と下位を比較し、大きい方をメモリに格納する。また、16ビットのトランディション・レジスタ(TRN)にどちらが選択されたかを、後にトレースバックすることができるように比較を行うたびに更新する。TRNの内容は、各シンボル処理が終わるたびにメモリに格納する。メモリに格納される情報は、トレースバックの過程で最適なパスを探索するのに使われる。図28にビタビ復号のバタフライ演算のマクロプログラムを示す。ブランチメトリックの値は、マクロが呼び出される前にTレジスタに格納する。図29にパスメトリックのメモリマッピング例を示す。
【0014】
1つのシンボル区間で、8個のバタフライ演算が実行され、16個の新しい状態が求められる。この一連の処理を数シンボル区間にわたって繰り返し計算し、処理が終了すると、次にトレースバックを行い、16通りのパスから最適パスを探索し、復号ビット系列が求まる。
【0015】
以上が、汎用のDSPであるC54xのACS演算の機構であり、図28のマクロプログラム例から、C54xでは2個のパスメトリックの更新に4マシンサイクルで実現している。
【0016】
【発明が解決しようとする課題】
今後、移動無線通信によるデータ伝送等の非音声通信の需要は、ますます増加することが見込まれており、非音声通信では従来の音声通信に比べて、より低いビット誤り率(以下、これをBERと呼ぶ)の高伝送品質が要望されている。低BERを達成する一手段に、誤り訂正として使用されるビタビ復号の拘束長Kを大きくする手段がある。拘束長が1つ大きくなると、パスメトリックの数(状態数)が2倍になるため、ビタビ復号における演算量が2倍に増加する。また、一般的に非音声通信は音声通信に比べ情報量が多く、情報量が多ければそれだけビタビ復号に要す処理量(ACS演算など)が増加する。
【0017】
一方、移動無線通信等では、携帯端末のバッテリーの寿命を長時間持続させることが望まれている。また、それと同時に携帯端末の小型化・軽量化・低価格化も望まれている。そのため携帯端末では、従来、専用LSIで処理していた領域もDSP処理による1チップ化が計られている。DSPの処理量が少なければ少ないほどバッテリーを長時間持続させることができる。
【0018】
しかしながら、上記に述べたとおり今後DSPによる演算量は増加する傾向にあり、そのため携帯端末のバッテリーを長時間持続させることは困難であるという問題がある。また、演算量が増加すれば、もはや既存のDSPの処理能力を超えてしまい、DSPによる1チップで実現することができなくなるという問題もあった。さらに、DSPを高機能化させるため、大規模なハードウェア投資はそれだけDSP自身のコストの高騰化を招き、結果携帯端末の低価格化が実現できなくなるという問題もある。
【0019】
本発明は、このような従来の問題を解決するものであり、なるべく少ないハードウェアの投資で、DSPによるビタビ復号の処理、とくにACS演算を効率的に処理する演算処理装置を提供することを目的とする。
【0020】
【課題を解決するための手段】
本発明の演算処理装置は、ディジタル信号処理プロセッサによるビタビ復号が可能な演算処理装置であって、第1のデータと第2のデータとを比較する第1の比較手段と、第3のデータと第4のデータとを比較する第2の比較手段とを有し、前記第1の比較手段と前記第2の比較手段とを、1命令によって、かつ、1サイクルで動作させる構成をとる。
【0029】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を用いて説明する。
(実施の形態1)
図1は実施の形態1における演算処理装置の構成を示すものである。図1において、1はパスメトリックを格納する記憶手段、2は記憶手段1に接続され、データの供給や演算結果の転送を行うバス、3はブランチメトリックを格納する記憶手段、4は記憶手段3に接続され、データの供給を行うバス、5および9は記憶手段1および3からそれぞれバス2および4を介して読み出されたデータの比較を行う比較手段、6および10は記憶手段1および3からそれぞれバス2および4を介して読み出されたデータの加算を行う加算手段、7は比較手段5の比較結果を格納する記憶手段、11は比較手段9の比較結果を格納する記憶手段、8は加算手段6の加算結果を入力し、比較手段5の比較結果に基づいて出力を決定する選択手段、12は加算手段10の加算結果を入力し、比較手段9の比較結果に基づいて出力を決定する選択手段、13は選択手段8および12の選択結果を入力し、記憶手段1に転送するバスである。なお、比較結果を格納する記憶手段7および11は、いずれもバス2に接続され、バス2を介して記憶手段1に比較結果を転送することができる。
【0030】
次に本実施の形態における動作を図2と図3を参照して説明する。以下の説明では、拘束長Kを4、符号化率1/2の場合について考える。パスメトリックとブランチメトリックのデータの型は、いずれも単精度データとする。また、以下の説明では、便宜上、倍精度データを(X,Y)としたとき、Xは倍精度データの上位側を表し、Yは倍精度データの下位側を表す。
【0031】
図2の畳み込み符号器を例に考え、符号化率1/2としたときの4個のブランチメトリックをそれぞれBM0,BM1,BM2,BM3とする。これらのブランチメトリックを用いて拘束長K=4の時のステート(State )の遷移状態を図示すると、図3のようなバタフライ構造になる。ここで旧ステート(Old State ・ )のノードN0とノードN1に着目する。ノードN0とノードN1が遷移するのはノードN’0とノードN’4である。
そのときに取るブランチメトリック(BM)は
・ ノードN0からノードN’0のときはBM0、
・ ノードN1からノードN’0のときはBM1、
・ ノードN0からノードN’4のときはBM1、
・ ノードN1からノードN’4のときはBM0、
である。また、ノードN0のパスメトリックをPM0、ノードN1のパスメトリックをPM1とすると、共通のパスメトリックPM0,PM1にそれぞれブランチメトリックBM0,BM1を交換して加算することで、ノードN’0、ノードN’4のパスメトリックになり得るということがわかる。この関係を利用して、並列処理することで同時に2個のパスメトリックを更新することができる。
【0032】
なお、この関係は図3に示すように以降のノードのペア(図ではノードN2とノードN3のペア、ノードN4とノードN5のペア、ノードN6とノードN7のペア)に関しても成り立つ。そこで、図3に示すように前半のノードN’0からノードN’3のACS演算を比較手段5と加算手段6と比較結果を格納する記憶手段7と選択手段8とで処理を行い、後半のノードN’4からノードN’7のACS演算を比較手段9と加算手段10と比較結果を格納する記憶手段11と選択手段12とで処理を行う。
【0033】
以降はノードN0とノードN1からノードN’0とノードN’4へのACS演算に関して詳細な動作説明を行う。まず、記憶手段1から2個のパスメトリックが(PM1,PM0)として、バス2に出力され、一方記憶手段3から2個のブランチメトリックが(BM1,BM0)として、バス4に出力される。比較手段5では、バス2から2個のパスメトリック(PM1,PM0)を入力し、バス4から2個のブランチメトリック(BM1,BM0)を入力し、
PM1+BM1−PM0−BM0
を計算する。一方、加算手段6では、バス2から2個のパスメトリック(PM1,PM0)を入力し、バス4から2個のブランチメトリック(BM1,BM0)を入力し、
PM1+BM1と、PM0+BM0
を計算し、選択手段8に(PM1+BM1,PM0+BM0)として出力する。
【0034】
選択手段8は、比較手段5の比較結果PM1+BM1−PM0−BM0の符号ビットである最上位ビット(以後これをMSB:Most Significant Bitと呼ぶ)を入力し、MSBの値により上位PM1+BM1を出力するか、下位PM0+BM0を出力するかを選択する。
すなわち、
PM1+BM1≧PM0−BM0
なら、 PM1+BM1−PM0−BM0≧0
であるので、MSBは0となり、このときは下位PM0+BM0を選択し、これを新たにPM’0としてバス13に出力する。
逆に、
PM1+BM1<PM0−BM0
なら、 PM1+BM1−PM0−BM0<0
であるので、MSBは1となり、このときは上位PM1+BM1を選択し、これを新たにPM’0としてバス13に出力する。また、比較手段5の比較結果のMSBは同時に記憶手段7に順次格納される。
【0035】
比較手段9では、バス2から2個のパスメトリック(PM1,PM0)を入力し、バス4から2個のブランチメトリック(BM1,BM0)を入力し、
PM1+BM0−PM0−BM1
を計算する。一方、加算手段10では、バス2から2個のパスメトリック(PM1,PM0)を入力し、バス4から2個のブランチメトリック(BM1,BM 0)を入力し、
PM1+BM0と、PM0+BM1
を計算し、選択手段12に(PM1+BM0,PM0+BM1)として出力する。
【0036】
選択手段12は、比較手段9の比較結果PM1+BM0−PM0−BM1のMSBを入力し、MSBの値により上位PM1+BM0を出力するか、下位PM0+BM1を出力するかを選択する。
すなわち、
PM1+BM0≧PM0−BM1
なら、 PM1+BM0−PM0−BM1≧0
であるので、MSBは0となり、このときは下位PM0+BM1を選択し、これを新たにPM’4としてバス13に出力する。
逆に、
PM1+BM0<PM0−BM1
なら、 PM1+BM0−PM0−BM1<0
であるので、MSBは1となり、このときは上位PM1+BM0を選択し、これを新たにPM’4としてバス13に出力する。
また、比較手段9の比較結果のMSBは同時に記憶手段11に順次格納される。
【0037】
以上のように、その外のノードのペアに関しても同様な処理を行うことで、DSPによるビタビ復号のACS演算を並列に実行することができる。なお、これまでの説明では、拘束長K=4、符号化率1/2の場合の具体例を示したが、拘束長と符号化率の値がそれ以外の値であっても、上記関係は成り立つ為、それに応じた変更を適宜施すことによって同様に実施可能である。
【0038】
(実施の形態2)
図4は実施の形態2における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態1(図1)の演算処理装置と異なるところは、パスメトリックを格納する記憶手段として4バンクからなるRAM14で構成されている点であり、それ以外の構成および動作は実施の形態1とまったく同じである。
【0039】
本実施の形態の演算処理装置は、図5に示すパイプライン構造の演算処理に適している。例えば、命令1においてn+1サイクル目の演算実行ステージでACS演算を実行するためには、予めnサイクル目のメモリアクセス・ステージで読み出すパスメトリックのアドレスをRAM14に供給する必要がある。このときRAM14が偶数番地と奇数番地を連続して読み出すことができる、すなわち倍精度読み出しが可能なRAMであるとすると、以下の状況で偶数アドレスを指定するだけで演算に使用する2つのパスメトリックを読み出すことができる。
・1ステートのパスメトリックは偶数番地、奇数番地の順に連続した番地に格納されており、
・1ステートのパスメトリックを前半と後半に分け、それぞれ別々のバンクに格納されている。
【0040】
4バンクのRAM14には、例えばバンク0に旧ステートの前半のパスメトリック(図3ではPM0,PM1,PM2,PM3を指す)が格納されており、バンク1に旧ステートの後半のパスメトリック(図3ではPM4,PM5,PM6,PM7を指す)が格納されているとき、1サイクルの演算実行(ACS演算実行)で2個のパスメトリックが生成され、それらがバス13を介してそれぞれバンク2、バンク3に格納される。このときバス13は倍精度データを転送することになり、バンク2にノードN’0からノードN’3のパスメトリックが格納され、バンク3にノードN’からノードN’7のパスメトリックが格納される。
【0041】
以上の図3に対応したメモリアクセスの動作例を図6に示す。1ステートのACS演算が終了すると、次ステートでは旧ステートのパスメトリックとしてバンク2および3から読み出しを行い、新ステートのパスメトリックはバンク0とバンク1に格納する。このように4バンクのRAM14を用いて1ステートのACS演算が終了するごとにパスメトリックを読み出すバンクのペアと格納するバンクのペアを切り替えることで、DSPによるビタビ復号のACS演算を並列に実行することが可能となる。
【0042】
なお、これまでの説明では、ペアとなるバンクとしてバンク0とバンク1、バンク2とバンク3を例に説明したが、その他の組み合わせを用いてもメモリアクセスステージで供給するアドレスと格納するときのアドレスが変更するだけで同様に実施可能である。また、本実施の形態では、RAM14を4つのバンクで構成したが、本バンク数は最低限必要な数であり、4つ以上であれば同様に実施可能である。
【0043】
(実施の形態3)
図7は実施の形態3における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態1(図1)の演算処理装置と異なるところはパスメトリックを格納する記憶手段として3バンクからなるデュアルポートRAM15で構成されている点であり、それ以外の構成および動作は実施の形態1とまったく同じである。
【0044】
本実施の形態の演算処理装置も、実施の形態2と同じく図5に示すパイプライン構造の演算処理に適している。パスメトリックを格納する記憶手段がデュアルポートRAM15であることから、1命令において同一バンクへのリードとライトの指定が可能なため、例えば、命令1においてn+1サイクル目の演算実行ステージでACS演算を実行する為に、まずnサイクル目のメモリアクセス・ステージで読み出すパスメトリックのアドレスと書き込むパスメトリックのアドレスをデュアルポートRAM15に供給し、n+1サイクル目で、実施の形態2のRAM14と同じくデュアルポートRAM15から偶数番地と奇数番地を連続して読み出し、ACS演算を行い、さらに同じバンクに1個のパスメトリックを書き込むことが可能となる。
【0045】
本実施の形態3の演算処理装置も、実施の形態2の演算処理装置と同じく以下の状況下で動作する。
・1ステートのパスメトリックは偶数番地、奇数番地の順に連続した番地に格納されており、
・1ステートのパスメトリックを前半と後半に分け、それぞれ別々のバンクに格納されている。
【0046】
デュアルポートRAM15には、例えばバンク0に旧ステートの前半のパスメトリック(図3ではPM0,PM1,PM2,PM3を指す)が格納されており、バンク1に旧ステートの後半のパスメトリック(図3ではPM4,PM5,PM6,PM7を指す)が格納されているとき、1サイクルの演算実行(ACS演算実行)で2個のパスメトリックが生成され、それらがバス13を介してそれぞれバンク0、バンク2に格納される。このときバス13は倍精度データを転送することになり、バンク0にノードN’0からノードN’3のパスメトリックが格納され、バンク2にノードN’4からノードN’7のパスメトリックが格納される。
【0047】
以上の図3に対応したメモリアクセスの動作例を図8に示す。本実施の形態の演算処理装置が実施の形態2の演算処理装置と異なる点は、1ステートのACS演算が終了すると、バンク1とバンク2の切り替えのみ行い、バンク0に関しては切り替えなくても、DSPによるビタビ復号のACS演算を並列に実行することができる点である。なお、本実施の形態では、デュアルポートRAM15を3つのバンクで構成したが、本バンク数は最低限必要な数であり、3つ以上であれば同様に実施可能である。
【0048】
(実施の形態4)
図9は実施の形態4における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態2(図4)の演算処理装置と異なるところは入力レジスタ16、17を具備している点であり、それ以外の構成および動作は実施の形態2とまったく同じである。図9において、本入力レジスタ16、17は、バス2からデータを入力し、比較手段5、9と加算手段6、10にデータを出力する。
【0049】
本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。例えば、命令1においてn+2サイクル目の演算実行ステージでACS演算を実行する為に、予めnサイクル目のメモリアクセス・ステージで読み出すパスメトリックのアドレスをRAM14に供給し、n+1サイクル目のデータ転送ステージでRAM14から出力されたデータがバス2を介して入力レジスタ16、17にラッチする。
【0050】
図10に示すパイプラインは、図5に示したパイプラインのステージにデータ転送の1ステージを演算実行ステージの前に挿入している。すなわち、演算実行ステージの始まりの時点では、RAM14からのデータは各演算器(比較手段5、9と加算手段6、10を指す)手前の入力レジスタで確定しているため、RAM14からのデータ転送に要す時間を省くことが可能となる。
【0051】
したがって、本実施の形態によれば、比較的高速にDSPによるビタビ復号のACS演算を並列に実行することが可能となる。なお、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0052】
(実施の形態5)
図11は実施の形態5における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態4(図9)の演算処理装置と異なるところはスワップ回路18を具備している点であり、それ以外の構成および動作は実施の形態4とまったく同じである。図11において、本スワップ回路18は、ブランチメトリックを格納する記憶手段3からデータを入力し、バス4にデータを出力する。
【0053】
本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。本スワップ回路18は、記憶手段3から例えば{BM1,BM0}の形式で倍精度データとして入力した2つのブランチメトリックの値を、そのまま{BM1,BM0}として出力するか、上位と下位をスワップして{BM0,BM1}として出力するかを、命令などにより切り替える機能を有する。
【0054】
スワップ回路18の動作を説明する。拘束長K=4、符号化率1/2として、図2に示す畳み込み符号器および図3に示すバタフライ構造のパスメトリックの遷移状態を用いて説明する。旧ステート(Old State )のノードN0とノードN1から、ノードN’0およびノードN’4に遷移する時のACS演算と、旧ステート(Old State )のノードN6とノードN7から、ノードN’3およびノードN’7に遷移する時のACS演算とを比較すると図12になる。すなわち、ノードN0とノードN1からノードN’0へのACS演算とノードN6とノードN7からノードN’3へのACS演算は比較手段5と加算手段6で行われるが、両ACS演算では共通のブランチメトリックBM0とBM1を用い、かつBM0とBM1がスワップした関係になっている。これはノードN0とノードN1からノードN’4へのACS演算とノードN6とノードN7からノードN’7へのACS演算の比較手段9と加算手段10でも同じ関係が成り立つ。そのため、ブランチメトリックを格納する記憶手段3には{BM0,BM1}と{BM1,BM0}の両形態で格納しなければならず、冗長なハードウェア資源となる。
【0055】
スワップ回路18は、このような冗長性を解決するもので、ブランチメトリックを格納する記憶手段3には、例えば{BM0,BM1}の形態だけを格納しておき、スワップ回路18には、この{BM0,BM1}を入力し、例えば命令などにより、出力として{BM0,BM1}とするか、{BM1,BM0}とするかを切り替える動作を行うもので、このスワップ回路18により、ブランチメトリックを格納する記憶手段3の冗長性を省くことが可能となる。
【0056】
なお、本実施の形態では、拘束長K=4、符号化率1/2で、旧ステートのノードN0、ノードN1、ノードN6、ノードN7を用いて説明を行ったが、ノードN2、ノードN3、ノードN4、ノードN5でも上記関係が成り立ち、さらに上記以外の拘束長Kと符号化率の組み合わせでも成り立つため、同様に実施可能である。また、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0057】
(実施の形態6)
図13は実施の形態6における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態5(図11)の演算処理装置と異なるところは、比較手段として2つの加算器と1つの比較器で構成し、加算手段として2つの加算器で構成している点であり、それ以外の構成および動作は実施の形態5とまったく同じである。
【0058】
図13において、19および20はバス4と入力レジスタ16からデータを入力し加算する加算器、21は加算器19と加算器20から加算結果を入力して比較し、比較結果を格納する記憶手段7と選択手段8に出力する比較器、22および23はバス4と入力レジスタ16からデータを入力して加算し、加算結果を選択手段8に出力する加算器、24および25はバス4と入力レジスタ17からデータを入力し加算する加算器、26は加算器24と加算器25から加算結果を入力して比較し、比較結果を格納する記憶手段11と選択手段12に出力する比較器、27および28はバス4と入力レジスタ17からデータを入力して加算し、加算結果を選択手段12に出力する加算器である。本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。
【0059】
次に、本実施の形態におけるACS演算の動作を説明する。拘束長K=4、符号化率1/2として、図2に示す畳み込み符号器と、図3に示すバタフライ構造と、図12に示すノードN0,N1からノードN’0,N’4へのACS演算とノードN6,N7からノードN’3,N’7へのACS演算の比較を用いて説明する。
【0060】
図13に示すように、入力レジスタ16、17から2つのパスメトリックが {A,B}として出力され、スワップ回路18から2つのブランチメトリックが{C,D}として出力されると、加算器19では、パスメトリック{A}とブランチメトリック{C}を入力し加算結果{A+C}を出力し、加算器20では、パスメトリック{B}とブランチメトリック{D}を入力し、加算結果{B+ D}を出力し、比較器21では、加算器19の加算結果{A+C}と加算器20の加算結果{B+D}とを入力し、{A+C−(B+D)}の比較を行い、比較結果のMSBを出力する。加算器22では、パスメトリック{A}とブランチメトリック{C}を入力し加算結果{A+C}を出力し、加算器23では、パスメトリック{B}とブランチメトリック{D}を入力し、加算結果{B+D}を出力する。
【0061】
一方、加算器24では、パスメトリック{A}とブランチメトリック{D}を入力し、加算結果{A+D}を出力し、加算器25では、パスメトリック{B}とブランチメトリック{C}を入力し、加算結果{B+C}を出力し、比較器26では、加算器24の加算結果{A+D}と加算器25の加算結果{B+C}とを入力し、{A+D−(B+C)}の比較を行い、比較結果のMSBを出力する。加算器27では、パスメトリック{A}とブランチメトリック{D}を入力し、加算結果{A+D}を出力し、加算器28では、パスメトリック{B}とブランチメトリック{C}を入力し、加算結果{B+C}を出力する。
【0062】
以上の構成および動作により、入力レジスタ16および入力レジスタ17の2つのパスメトリック{A,B}={PM1,PM0}とし、スワップ回路18の出力{C,D}={BM1,BM0}とすると、図12に示す旧ステート(Old State )のノードN0とノードN1から、ノードN’0およびノードN’4に遷移する時のACS演算が実現できる。
【0063】
また、入力レジスタ16および入力レジスタ17の2つのパスメトリック{A,B}={PM1,PM0}とし、スワップ回路18の出力{C,D}={BM0,BM1}とすると、図12に示す旧ステート(Old State )のノードN0とノードN1から、ノードN’0およびノードN’4に遷移する時のACS演算が実現できる。
【0064】
したがって、本実施の形態によれば、2つのパスメトリックの更新がDSPによるパイプライン動作により1マシンサイクルで実現できる。なお、本実施の形態では、拘束長K=4、符号化率1/2で、旧ステートのノードN0、ノードN1、ノードN6、ノードN7を用いて説明を行ったが、ノードN2、ノードN3、ノードN4、ノードN5でも上記関係が成り立ち、さらに上記以外の拘束長Kと符号化率の組み合わせでも成り立つため、同様に実施可能である。また、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0065】
(実施の形態7)
図14は実施の形態7における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態6(図13)の演算処理装置と異なるところは、比較器の一方をALU29で兼用している点であり、またそれに伴い入力レジスタ30、31と、バス32、33、37、38と、セレクタ34、35を具備しており、またブランチメトリックを格納する記憶手段としてレジスタファイル36を具備している点で、それ以外の構成および動作は実施の形態6とまったく同じである。
【0066】
図14において、30は4バンクからなるRAM14からバス37を介してデータを入力する入力レジスタ、31は4バンクからなるRAM14からバス38を介してデータを入力する入力レジスタ、32およびバス33はレジスタファイル36からデータを入力するバス、34はバス32と加算器19と入力レジスタ30からデータを入力し、出力を選択するセレクタ、35はバス33と加算器20と入力レジスタ31からデータを入力し、出力を選択するセレクタ、29はセレクタ34および35からデータを入力して算術論理演算を行い、バス13に算術論理演算結果を出力し、さらに算術論理演算結果のMSBを比較結果を格納する記憶手段7と選択手段8に出力するALUである。本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。
【0067】
本実施の形態においてACS演算を行うときは、セレクタ34は加算器19の出力を選択してALU29に入力し、セレクタ35は加算器20の出力を選択してALU29に入力し、ALU29は入力した2つのデータを減算し、減算結果のMSBを比較結果を格納する記憶手段7と選択手段8に出力する。
【0068】
また、ALUがレジスタ−レジスタ間の算術論理演算を行う時は、レジスタファイル36からバス32とバス33にデータが出力され、セレクタ34とセレクタ35が、それぞれバス32とバス33を選択することで実現可能である。ALUがレジスタ−メモリ間の算術論理演算を行う時は、レジスタファイル36からバス32にデータが出力され、4バンクからなるRAM14からバス38を介して入力レジスタ31にデータが入力され、セレクタ34とセレクタ35がそれぞれバス32と入力レジスタ31を選択することで実現可能である。
【0069】
逆に、ALUがメモリ−レジスタ間の算術論理演算を行う時は、4バンクからなるRAM14からバス37を介して入力レジスタ30にデータが入力され、レジスタファイル36からバス33にデータが出力され、セレクタ34とセレクタ35がそれぞれ入力レジスタ30とバス33を選択することで実現可能である。
【0070】
その外、ALUがメモリ−メモリ間の算術論理演算を行う時は、4バンクからなるRAM14からバス37およびバス38を介して、入力レジスタ30および入力レジスタ31にデータが入力され、セレクタ34とセレクタ35がそれぞれ入力レジスタ30と入力レジスタ31を選択することで実現可能である。
【0071】
このようにして、本実施の形態によれば、ACS演算を行う比較器の一方をALUと兼用することで、演算処理装置をLSI化する場合に、そのチップ面積を削減してコストを低減することができる。なお、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0072】
(実施の形態8)
図15は実施の形態8における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態7(図14)の演算処理装置と異なるところは、比較手段として用いている2つの加算器を、4:2COMPRESSOR39および40で実現している点であり、それ以外の構成および動作は実施の形態7とまったく同じである。
【0073】
図15において、39はバス4と入力レジスタ16からデータを入力し、セレクタ34とセレクタ35に演算結果を出力する4:2COMPRESSOR、40はバス4と入力レジスタ17からデータを入力し比較器26に演算結果を出力する4:2COMPRESSORである。本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。
【0074】
次に、本実施の形態におけるACS演算の動作を説明する。拘束長K=4、符号化率1/2として、図2に示す畳み込み符号器と、図3に示すバタフライ構造と、図12に示すノードN0,N1からノードN’0,N’4へのACS演算とノードN6,N7からノードN’3,N’7へのACS演算の比較を用いて説明する。
【0075】
まず、4:2COMPRESSOR39、40は、図16に示す処理を行なう単体のブロックが単精度ビット数分直列に接続され、通常の全加算器よりも高速に加算処理を行なう。
【0076】
図15に示すように、入力レジスタ16、17から2つのパスメトリックが {A,B}として出力され、スワップ回路18から2つのブランチメトリックが{C,D}として出力されると、4:2COMPRESSOR39では、パスメトリック{A}とブランチメトリック{C}とパスメトリック{B}の反転{ ̄B}とブランチメトリック{D}の反転{ ̄D}を入力し、ALU29では、セレクタ34、35を介して、4:2COMPRESSOR39の2つの出力を入力して加算する。ただし、このとき{B}および{D}の2の補数を実現するために、4:2COMPRESSOR39と、ALU29の最下位のキャリー入力に“1”を入力する。その結果{A+C−(B+D)}が得られ、そのMSBを出力する。加算器22では、パスメトリック{A}とブランチメトリック{C}を入力し加算結果{A+C}を出力し、加算器23では、パスメトリック{B}とブランチメトリック{D}を入力し加算結果{B+D}を出力する。
【0077】
一方、4:2COMPRESSOR40では、パスメトリック{A}とブランチメトリック{D}とパスメトリック{B}のの反転{ ̄B}とブランチメトリック{C}の反転{ ̄C}を入力し、比較器26は、4:2COMPRESSOR39の2つの出力を入力して加算する。ただし、このとき{B}および{C}の2の補数を実現するために、4:2COMPRESSOR40と、比較器26の最下位のキャリー入力に“1”を入力する。その結果{A+D−(B+C)}が得られ、そのMSBを出力する。加算器27では、パスメトリック{A}とブランチメトリック{D}を入力し、加算結果{A+D}を出力し、加算器28では、パスメトリック{B}とブランチメトリック{C}を入力し、加算結果{B+C}を出力する。
【0078】
以上の構成および動作により、入力レジスタ16および入力レジスタ17の2つのパスメトリック{A,B}={PM1,PM0}とし、スワップ回路18の出力{C,D}={BM1,BM0}とすると、図12に示す旧ステート(Old State )のノードN0とノードN1から、ノードN’0およびノードN’4に遷移する時のACS演算が実現できる。
【0079】
また、入力レジスタ16および入力レジスタ17の2つのパスメトリック{A,B}={PM1,PM0}とし、スワップ回路18の出力{C,D}={BM0,BM1}とすると、図12に示す旧ステート(Old State )のノードN0とノードN1から、ノードN’0およびノードN’4に遷移する時のACS演算が実現できる。したがって、2つのパスメトリックの更新がDSPによるパイプライン動作により1マシンサイクルで実現できる。
【0080】
このようにして、本実施の形態によれば、ACS演算を行う比較手段に4:2COMPRESSORを適用することによって、2つの加算器で構成した場合より高速に演算することが可能なため、より高速な演算を実現することができる。なお、例では拘束長K=4、符号化率1/2で、旧ステートのノードN0、ノードN1、ノードN6、ノードN7を用いて説明を行ったが、ノードN2、ノードN3、ノードN4、ノードN5でも上記関係が成り立ち、さらに上記以外の拘束長Kと符号化率の組み合わせでも成り立つため、同様に実施可能である。また、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0081】
(実施の形態9)
図17は実施の形態9における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態8(図15)の演算処理装置と異なるところは、加算手段として倍精度加算器を用い、しかも少なくとも一方は倍精度AUで兼用している点であり、それ以外の構成および動作は実施の形態8とまったく同じである。
【0082】
図17において、41は入力レジスタ16とバス4から倍精度形式のデータを入力し、倍精度算術演算を行う倍精度AU、42は入力レジスタ17とバス4から倍精度形式のデータを入力し、倍精度加算演算を行う倍精度加算器であり、倍精度AU41の出力は選択手段8とバス13に出力し、倍精度加算器42の出力は選択手段12に出力する。本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。
【0083】
本実施の形態においてACS演算を行うときは、倍精度AU41は、入力レジスタ16から2つのパスメトリックを倍精度形式で{A,B}として入力し、スワップ回路18からバス4を介して、2つのブランチメトリックを倍精度形式で{C,D}として入力する。この時、倍精度AU41は倍精度の加算を行うが、図18に示すように、単精度のMSBのビット位置から次段へのキャリーは強制的にゼロにする。これにより、2つのパスメトリックとブランチメトリックの加算{A+C,B+D}が同時に並列演算することができる。
【0084】
一方、倍精度加算器42は、入力レジスタ17から2つのパスメトリックを倍精度形式で{A,B}として入力し、スワップ回路18からバス4を介して、2つのブランチメトリックを倍精度形式で{D,C}として入力する。倍精度加算器42も、倍精度AU41と同様に単精度のMSBのビット位置から次段へのキャリーは強制的にゼロにして、2つのパスメトリックとブランチメトリックの加算{A+D,B+C}を同時に並列演算する。
【0085】
このようにして、本実施の形態によれば、ACS演算を行う加算手段に倍精度AU41を用い、ACS演算時には単精度のMSBのビット位置から次段へのキャリーを強制的にゼロにし、それ以外の倍精度算術演算では、キャリーを伝播させる制御を付加することで、例えば積和演算時の倍精度累積加算器と兼用することが可能で、演算処理装置をLSI化する場合に、そのチップ面積を一段と削減してコストを低減することができる。なお、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0086】
(実施の形態10)
図19は実施の形態10における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態9(図17)の演算処理装置と異なるところは、比較結果を格納する記憶手段としてシフトレジスタを用いている点であり、それ以外の構成および動作は実施の形態9とまったく同じである。
【0087】
図19において、43はALU29の演算結果のMSBを入力とするシフトレジスタ、44は比較器26の演算結果のMSBを入力とするシフトレジスタであり、シフトレジスタ43,44は、両者ともバス2にデータを出力することができる。本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。
【0088】
本実施の形態においてACS演算を行うときは、ALU29による比較結果のMSBをシフトレジスタ43に随時シフトインし、比較器26による比較結果のMSBをシフトレジスタ44に随時シフトインすることで、パスセレクト信号 (2つのパスのうちどちらを選んだかを示す信号で、ACS演算終了後トレースバックするときに使用する)を格納することができる。また、本シフトレジスタ43,44のビット幅が、例えば単精度データ幅である場合には、単精度のビット数回ACS演算を行うと、シフトレジスタ43,44の値をバス2を介して、4バンクからなるRAM14にパスセレクト信号を格納する必要がある。
【0089】
このようにして、本実施の形態によれば、ACS演算を行う比較結果を格納する記憶手段にシフトレジスタ43,44を用いることで、例えば除算系のシフトレジスタを使用する演算命令と兼用することが可能で、演算処理装置をLSI化する場合に、そのチップ面積を一段と削減してコストを低減することができる。なお、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0090】
(実施の形態11)
図20は実施の形態11における演算処理装置の構成を示すものである。本実施の形態の演算処理装置が、実施の形態10(図19)の演算処理装置と異なるところは、入力レジスタ17がバス2から常にパスメトリックデータをスワップして入力して、4:2COMPRESSOR40にはスワップ回路18からのブランチメトリックデータをスワップしないでそのまま入力し、比較器26の比較結果のネゲート値がシフトレジスタ44にシフトインする点であり、それ以外の構成および動作は実施の形態10とまったく同じである。本実施の形態の演算処理装置は、図10に示すパイプライン構造の演算処理に適している。
【0091】
本実施の形態においてACS演算を行うときは、2つのパスメトリック{A,B}が入力レジスタ16にはそのまま{A,B}として入力されるが、入力レジスタ17には、常にスワップした状態{B,A}として入力される。その後、 4:2COMPRESSOR40では、スワップ回路18から2つのブランチメトリックが{C}と{ ̄D}として、入力レジスタ17から2つのパスメトリックが{B}と{ ̄A}として入力され、比較器26では、4:2COMPRESSOR40の2つの出力を入力して加算し、{A+D−B−C}を計算する。一方、倍精度加算器42は、スワップ回路18から2つのブランチメトリックを {C,D}として、入力レジスタから2つのパスメトリックが{B,A}として入力され、{B+C}と{A+D}を同時に並列演算し、選択手段12に{B+C,A+D}の形式で出力する。比較器26は、比較結果のMSBを選択手段12に、比較結果のネゲート値のMSBをシフトレジスタ44に出力する。
【0092】
このようにして、本実施の形態によれば、2つのパスメトリックを格納する入力レジスタの一方をスワップして入力することで、演算実行(EX)ステージで4:2COMPRESSOR40と倍精度加算器42の入力でのスワップがなくなり、より高速なACS演算を行うことが可能となる。なお、パスメトリックを格納する手段としてデュアルポートRAMを用いても同様に実施可能である。
【0093】
(実施の形態12)
図21は実施の形態12における移動局装置の構成を示すものである。図21において、本実施の形態における移動局装置45は、送受信共用のアンテナ部46と、受信部48及び送信部49から成る無線部47と、信号の変調及び復調と符号化及び復号化とを行うベースバンド信号処理部50と、音声を放音するスピーカ58と、音声を入力するマイク59と、送受信するデータを外部装置との間で入出力するデータ入出力部60と、動作状態を表示する表示部61と、テンキーなどの操作部62と、アンテナ部46、無線部47、ベースバンド信号処理部50、表示部61及び操作部62などを制御する制御部63とを備えている。
【0094】
また、ベースバンド信号処理部50は、受信信号を復調する復調部51と、送信信号を変調する変調部52と、1チップのDSP53とで構成され、DSP53は、第1から第11の実施の形態の演算処理装置から成るビタビ復号部55と、送信信号を畳み込み符号化する畳み込み符号化部56と、音声信号の符復号化を行う音声コーデック部57と、送受信のタイミングを計って受信信号を復調部51からビタビ復号部55に、送信信号を畳み込み符号化部56から変調部52に送るタイミング制御部54とを、それぞれソフトウェアで形成している。
【0095】
この移動局装置45の制御部63は、移動局装置45全体の動作を制御し、例えば、操作部62から入力した信号を表示部61に表示したり、操作部62から入力した信号を受けて、発着呼の動作を行うための制御信号を、通信シーケンスに従って、アンテナ部46と、無線部47及びベースバンド信号処理部50などに出力する。
【0096】
移動局装置45から音声が送信される場合には、マイク59から入力した音声信号がAD変換され(図示なし)、DSP53の音声コーデック部57で符号化され、その符号化データが畳み込み符号化部56に入力する。また、データが送信される場合には、外部から入力したデータがデータ入出力部60を介して畳み込み符号化部56に入力する。畳み込み符号化部56は、入力したデータを畳み込み符号化し、タイミング制御部54に出力する。タイミング制御部54は、入力したデータの並び替えや送信出力タイミングの調整を行って、変調部52に出力する。変調部52に入力したデータは、ディジタル変調され、DA変換されて( 図示なし) 、無線部47の送信部49に出力される。送信部49は、これを無線信号に変換してアンテナ部46に送り、アンテナから電波として送信される。
【0097】
一方、受信時には、アンテナ部46で受信された電波が、無線部47の受信部48で受信され、AD変換されて、ベースバンド信号処理部50の復調部51に出力される。復調部51で復調されたデータは、タイミング制御部54でデータの並び替え等が行われた後、ビタビ復号部55に入力し、ここで復号される。ビタビ復号部55で復号されたデータは、音声通信時には、音声コーデック部57で音声復号化され、DA変換された後、スピーカ58から音声として出力される。また、データ通信時には、ビタビ復号部55で復号されたデータは、データ入出力部60を介して外部に出力される。
【0098】
このようにして、本実施の形態による移動局装置45は、ビタビ復号部55、畳み込み符号化部56、音声コーデック部57及びタイミング制御部54の各部を1チップのDSP53のソフトウェアで形成しているため、少ない部品点数で組み立てることができる。また、このビタビ復号部55を第1から第11の実施の形態の演算処理装置形成しているため、DSP53によるパイプライン処理で1マシンサイクルに2つのパスメトリックの更新が実現でき、これにより高速に比較的少ない処理量でDSP53によるビタビ復号のACS演算が実現できる。
【0099】
なお、ここでは、復調部51及び変調部52をDSP53と区別して示しているが、それらをDSP53のソフトウェアで構成することも可能である。また、DSPとして、第6の実施の形態のDSPを使用し、畳み込み符号化部56、音声コーデック部57及びタイミング制御部54をそれぞれ別の部品で構成することも可能である。
【0100】
(実施の形態13)
図22は実施の形態13における移動局装置の構成を示すものである。本実施の形態の移動局装置45Aが、実施の形態12(図26)の移動局装置45と異なるところは、変調部52Aに拡散部65を設け、また、復調部51Aに逆拡散部64を設けたCDMA通信方式のベースバンド信号処理部50Aとした点であり、それ以外の構成及び動作は実施の形態12と多くの点で類似している。なおCDMA通信の場合、タイミング制御部54に、遅延プルファイル等(図示な し)から選択された複数のフィンガを合わせ込むRAKE受信部が含まれることもある。
【0101】
このように、本実施の形態における移動局装置45Aは、復調部51Aに逆拡散部64を、また、変調部52Aに拡散部65を設けることで、CDMA通信に適用することができる。
【0102】
(実施の形態14)
図23は実施の形態14における基地局装置の構成を示すものであり、図21に示したものと同様な機能を有する構成要素には同様な符号を付してある。図23において、本実施の形態における基地局装置68は、受信用のアンテナ66及び送信用のアンテナ67から成るアンテナ部46と、受信部48及び送信部49から成る無線部47と、信号の変調及び復調と符号化及び復号化とを行うベースバンド信号処理部69と、送受信するデータを有線回線との間で入出力するデータ入出力部60と、アンテナ部46、無線部47、ベースバンド信号処理部69などを制御する制御部63とを備えている。
【0103】
また、ベースバンド信号処理部69は、受信信号を復調する復調部51と、送信信号を変調する変調部52と、1チップのDSP53Aとで構成され、DSP53Aは、第1から第11の実施の形態の演算処理装置から成るビタビ復号部55と、送信信号を畳み込み符号化する畳み込み符号化部56と、送受信のタイミングを計って受信信号を復調部51からビタビ復号部55に、送信信号を畳み込み符号化部56から変調部52に送るタイミング制御部54とを、それぞれソフトウェアで形成している。
【0104】
この基地局装置68の制御部63は、基地局装置68の制御の下に送信・受信の動作が行われ、有線回線から入力したデータがデータ入出力部60を介して畳み込み符号化部56に入力する。畳み込み符号化部56は、入力したデータを畳み込み符号化し、タイミング制御部54に出力する。タイミング制御部54は、入力したデータの並び替えや送信出力タイミングの調整を行って、変調部52に出力する。変調部52に入力したデータは、ディジタル変調され、DA変換されて( 図示なし) 、無線部47の送信部49に出力される。送信部49は、これを無線信号に変換してアンテナ部46に送り、アンテナから電波として送信される。
【0105】
一方、受信時には、アンテナ部46で受信された電波が、無線部47の受信部48で受信され、AD変換されて、ベースバンド信号処理部69の復調部51に出力される。復調部51で復調されたデータは、タイミング制御部54でデータの並び替え等が行われた後、ビタビ復号部55に入力し、ここで復号される。ビタビ復号部55で復号されたデータは、データ入出力部60を介して有線回線に出力される。
【0106】
このように、本実施の形態における基地局装置68は、ビタビ復号部55、畳み込み符号化部56、及びタイミング制御部54の各部を1チップのDSP53Aのソフトウェアで形成しているため、少ない部品点数で組み立てることができる。また、このビタビ復号部55を第1から第11の実施の形態の演算処理装置形成しているため、DSP53Aによるパイプライン処理で1マシンサイクルに2つのパスメトリックの更新が実現でき、これにより高速に比較的少ない処理量でDSP53Aによるビタビ復号のACS演算が実現できる。
【0107】
なお、ここでは、復調部51及び変調部52をDSP53Aと区別して示しているが、それらをDSP53Aのソフトウェアで構成することも可能である。また、DSP53Aとして、第6の実施の形態のDSPを使用し、畳み込み符号化部56、音声コーデック部57及びタイミング制御部54をそれぞれ別の部品で構成することも可能である。
【0108】
(実施の形態15)
図24は実施の形態15における基地局装置の構成を示すものである。本実施の形態の基地局装置68Aが、実施の形態14(図24)の基地局装置68と異なるところは、変調部52Aに拡散部65を設け、また、復調部51Aに逆拡散部64を設けたCDMA通信方式のベースバンド信号処理部69Aとした点であり、それ以外の構成及び動作は実施の形態12と多くの点で類似している。なお、CDMA通信の場合、タイミング制御部54に、遅延プルファイル等(図示なし)から選択された複数のフィンガを合わせ込むRAKE受信部が含まれることもある。
【0109】
このように、本実施の形態による基地局装置68Aは、復調部51Aに逆拡散部64を、また、変調部52Aに拡散部65を設けることで、CDMA通信に適用することができる。
【0110】
【発明の効果】
以上のように、本発明の演算処理装置によれば、命令を解読する命令解読手段と、所定のビット幅を有して上位側と下位側に2つのメトリックを保持する記憶手段と、前記記憶手段の上位側と下位側とを並列にアクセスして2つのメトリックを読み出すアクセス手段と、2つのパスメトリックのうちの1つと2つのブランチメトリックのうちの1つとを加算して得られる4通りのデータである第1、第2、第3、第4のデータを入力し、前記第1のデータと前記第2のデータとを比較する第1の比較手段と、この第1の比較手段と並列に動作して前記第3のデータと前記第4のデータとを比較する第2の比較手段とを備えているので、DSPによるパイプライン処理で1マシンサイクルに2つのパスメトリックの更新が実現でき、これにより高速に比較的少ない処理量でDSPによるビタビ復号のACS演算が実現でき、携帯端末の小型化・軽量化・低価格化・バッテリーの長寿命化が可能になるという有利な効果が得られる。
【図面の簡単な説明】
【図1】本発明の実施の形態1における演算処理装置の構成を示すブロック図
【図2】符号化率1/2の畳み込み符号器の例を示すブロック図
【図3】拘束長K=4時のバタフライ構造を示す模式図
【図4】本発明の実施の形態2における演算処理装置の構成を示すブロック図
【図5】本発明の実施の形態2における演算処理装置のパイプライン動作を説明するタイミング図
【図6】本発明の実施の形態2における4バンクのRAM14のメモリアクセスの動作例を示す模式図
【図7】本発明の実施の形態3における演算処理装置の構成を示すブロック図
【図8】本発明の実施の形態3におけるデュアルポートRAM15のメモリアクセスの動作例を示す模式図
【図9】本発明の実施の形態4における演算処理装置の構成を示すブロック図
【図10】本発明の実施の形態4における演算処理装置のパイプライン動作を説明するタイミング図
【図11】本発明の実施の形態5における演算処理装置の構成を示すブロック図
【図12】ノードN0,N1からノードN’0,N’4へのACS演算とノードN6,N7からノードN’3,N’7へのACS演算の比較例を示す一覧図
【図13】本発明の実施の形態6における演算処理装置の構成を示すブロック図
【図14】本発明の実施の形態7における演算処理装置の構成を示すブロック図
【図15】本発明の実施の形態8における演算処理装置の構成を示すブロック図
【図16】本発明の実施の形態8における4:2COMPRESSORの入出力図
【図17】本発明の実施の形態9における演算処理装置の構成を示すブロック図
【図18】倍精度AUのキャリー制御を説明するための図
【図19】本発明の実施の形態10における演算処理装置の構成を示すブロック図
【図20】本発明の実施の形態11における演算処理装置の構成を示すブロック図
【図21】本発明の実施の形態12における移動局装置の構成を示すブロック図
【図22】本発明の実施の形態13における移動局装置の構成を示すブロック図
【図23】本発明の実施の形態14における基地局装置の構成を示すブロック図
【図24】本発明の実施の形態15における基地局装置の構成を示すブロック図
【図25】ビタビ復号における畳み込み符号器の状態遷移のパスを示す状態遷移図(トレリス線図)
【図26】トレリス線図のバタフライ構造を示す模式図
【図27】畳み込み符号器による生成符号例を示す模式図
【図28】チャネル・コーディング(Channel Coding)向けビタビ演算例を示すプログラム図
【図29】ポインタ制御とパスメトリックの格納例を示す模式図
【符号の説明】
1 パスメトリックを格納する記憶手段
2 バス
3 ブランチメトリックを格納する記憶手段
4 バス
5 比較手段
6 加算手段
7 比較結果を格納する記憶手段
8 選択手段
9 比較手段
10 加算手段
11 比較結果を格納する記憶手段
12 選択手段
13 バス
14 4バンクからなるRAM
15 デュアルポートRAM
16 入力レジスタ
17 入力レジスタ
18 スワップ回路
19 加算器
20 加算器
21 比較器
22 加算器
23 加算器
24 加算器
25 加算器
26 比較器
27 加算器
28 加算器
29 ALU
30 入力レジスタ
31 入力レジスタ
32 バス
33 バス
34 セレクタ
35 セレクタ
36 レジスタファイル
37 バス
38 バス
39 4:2COMPRESSOR
40 4:2COMPRESSOR
41 倍精度AU
42 倍精度加算器
43 シフトレジスタ
44 シフトレジスタ
45 移動局装置
46 アンテナ部
47 無線部
48 受信部
49 送信部
50 ベースバンド信号処理部
51 復調部
52 変調部
53 DSP
54 タイミング制御部
55 ビタビ復号部
56 畳み込み符号
57 音声コーデック部
58 スピーカ
59 マイク
60 データ入出力装置
61 表示部
62 操作部
63 制御部
64 逆拡散部
65 拡散部
66 受信アンテナ
67 送信アンテナ
68 基地局装置
69 ベースバンド信号処理部[0001]
BACKGROUND OF THE INVENTION
The present invention relates to an arithmetic processing apparatus incorporated in a mobile communication device or the like, and more particularly to a technique that enables efficient processing of ACS (addition, comparison, selection) operation of Viterbi decoding.
[0002]
[Prior art]
2. Description of the Related Art In recent years, digital signal processors (hereinafter referred to as DSPs) are frequently used as, for example, devices embedded in mobile phones in accordance with the trend of digitization in the mobile communication field. In data communication in a mobile radio communication line, bit errors frequently occur, so it is necessary to perform error correction processing. As an error correction method, there is a method in which a convolutional code generated from input bits is decoded by Viterbi decoding on the receiving side, and a DSP is used for this error correction processing.
[0003]
Viterbi decoding realizes maximum likelihood decoding of a convolutional code by repeating a simple process of addition, comparison, and selection, and finally by a traceback operation for decoding data. The Viterbi decoding process will be briefly described below. A convolutional code is generated by mod2 addition of an input bit and a certain number of bits preceding it, and a plurality of encoded data is generated corresponding to one input bit. The number of input information bits affecting the encoded data is called a constraint length (K), and the number is equal to the number of stages of shift registers used for mod2 addition.
[0004]
This encoded data is determined by the input bits and the state of the preceding (K-1) input bits. This state shifts to a new state when a new information bit is input (transition), but the state that can be transitioned is determined by whether the new input bit is 0 or 1. The number of states is (K-1) because each of these bits can take 1 and 0.K-1 It becomes a piece.
[0005]
In Viterbi decoding, the received encoded data sequence is observed, and the most probable state is estimated from all possible state transitions. Therefore, every time the encoded data (received data series) corresponding to 1 information bit is obtained, the inter-signal distance (metric) of the path to each state at that time is calculated, and among the paths reaching the same state The operation of leaving the one with a smaller metric as a surviving path is sequentially repeated.
[0006]
FIG. 25 shows a state S [n] and a state S [n + 2] at a previous time point with respect to a state S [2n] (n is a positive integer) at a certain time point in a convolutional encoder with a constraint length K.K-2 ] Shows a state in which two paths representing state transitions are extended. For example, in the case of K = 3, when n = 1, for S [2], that is, the state of S10 (the state in which the preceding two bits are input in the order of “1” and “0”), S [1 ], That is, a transition from the state of S01 and S [3], that is, the state of S11, and when n = 2, the state of S [4], that is, the state of S00 (the state represented by the lower 2 bits) , S [2], that is, the state of S10, and S [4], that is, the state of S00.
[0007]
The path metric a is an inter-signal distance (branch metric x) between the output symbol of the path input to the state S [2n] and the received data series, and the branch of the surviving path up to the state S [n] at the previous time point. It is the sum with path metric A which is the sum of metrics. Similarly, the path metric b is the distance (branch metric y) between the output symbol of the path input to the state S [2n] and the received data series, and the state S [n + 2 at the previous time point.K-2 ] With the path metric B, which is the sum of the branch metrics of the surviving paths. The path metrics a and b input to the state S [2n] thus obtained are compared, and the smaller path is selected as the surviving path.
[0008]
In Viterbi decoding, each process of addition, path metric comparison, and path selection for obtaining a path metric is performed at each point in time as described above.K-1 Execute for each state. Further, in selecting a path, the history of which path has been selected is stored in the path select signal PS [i], [i = 0-2.K-1 -1] must be left as it is. At this time, the subscript (for example, n) of the state immediately before the selected path is the subscript (n + 2) of the state before the other path that has not been selected.K-2 ) Is smaller than PS), PS [i] = 0, and larger is PS [i] = 1. In the case of FIG. 25, n <(n + 2K-2 Therefore, when a> b, the state S [n + 2K-2 ] Is selected and PS [S2n] = 1, and when a ≦ b, the state S [n] is selected and PS [S2n] = 0. Finally, when decoding by traceback, the data is decoded while tracing back the surviving path based on this path select signal.
[0009]
This ACS arithmetic processing for Viterbi decoding in a conventional DSP will be described by taking TMS320C54x (manufactured by TEXAS INSTRUMENTS, hereinafter referred to as C54x) as a general-purpose arithmetic unit as an example. In the GSM cellular radio system, the following polynomials are used as convolutional codes.
G1 (D) = 1 + DThree + DFour , G2 (D) = 1 + D + DThree + DFour
[0010]
This convolutional code is represented by a trellis diagram having a butterfly structure shown in FIG. This trellis diagram shows how the convolutional code transitions from one state to another. If the constraint length K is now 5, 2K-1 = 16 states or 8 butterfly structures exist between each symbol, and two branches are input to each state, and a new path metric is determined by ACS operation.
[0011]
The branch metric is defined by the following formula.
M = SD (2* i)* B (J, 0) + SD (2* i + 1)* B (J, 1)
Where SD (2* i) is the first symbol of the symbol metric representing the soft decision input, and SD (2* i + 1) is the second symbol of the symbol metric. B (J, 0) and B (J, 1) match the codes generated by the convolutional encoder shown in FIG.
[0012]
In C54x, the butterfly structure is processed at high speed by setting the ALU to dual 16-bit mode. To determine the new path metric (J), use the DADST instruction to* J and 2* Two path metrics of J + 1 and branch metrics (M and -M) are calculated in parallel, and comparison is performed using a CMPS instruction. To determine a new path metric (J + 8), two path metrics and a branch metric (M and -M) are calculated in parallel with the DSADT instruction. The calculation results are stored in the upper and lower positions of the double precision accumulator, respectively. A new path metric is determined by the CMPS instruction.
[0013]
The CMPS instruction compares the upper and lower accumulators and stores the larger one in the memory. In addition, it is updated each time a comparison is made so that it can be traced back later which is selected in the 16-bit transition register (TRN). The contents of TRN are stored in the memory after each symbol process. Information stored in the memory is used to search for the optimum path during the traceback process. FIG. 28 shows a macro program for butterfly calculation of Viterbi decoding. The value of the branch metric is stored in the T register before the macro is called. FIG. 29 shows an example of path metric memory mapping.
[0014]
In one symbol interval, 8 butterfly operations are performed, and 16 new states are obtained. This series of processing is repeatedly calculated over several symbol intervals, and when the processing is completed, traceback is performed next, the optimum path is searched from 16 paths, and a decoded bit sequence is obtained.
[0015]
The above is the mechanism of ACS operation of C54x, which is a general-purpose DSP. From the example of the macro program in FIG. 28, C54x implements updating of two path metrics in 4 machine cycles.
[0016]
[Problems to be solved by the invention]
In the future, demand for non-voice communication such as data transmission by mobile radio communication is expected to increase more and more, and non-voice communication has a lower bit error rate (hereinafter referred to as this). High transmission quality (referred to as BER) is demanded. One means for achieving a low BER is to increase the constraint length K of Viterbi decoding used as error correction. When the constraint length is increased by one, the number of path metrics (number of states) is doubled, so that the amount of computation in Viterbi decoding is doubled. In general, non-voice communication has a larger amount of information than voice communication, and the larger the amount of information, the more the processing amount (ACS calculation, etc.) required for Viterbi decoding.
[0017]
On the other hand, in mobile radio communication and the like, it is desired to maintain the battery life of the portable terminal for a long time. At the same time, miniaturization, weight reduction, and price reduction of portable terminals are also desired. For this reason, in a portable terminal, an area conventionally processed by a dedicated LSI is also made into one chip by DSP processing. The smaller the DSP throughput, the longer the battery can last.
[0018]
However, as described above, the amount of computation by the DSP tends to increase in the future, and there is a problem that it is difficult to sustain the battery of the mobile terminal for a long time. Further, if the amount of calculation increases, there is a problem that the processing capacity of the existing DSP is no longer exceeded, and it cannot be realized with one chip by the DSP. Furthermore, in order to increase the functionality of the DSP, a large-scale hardware investment causes an increase in the cost of the DSP itself, resulting in a problem that the price of the portable terminal cannot be reduced.
[0019]
The present invention solves such a conventional problem, and an object of the present invention is to provide an arithmetic processing unit that efficiently processes Viterbi decoding processing by a DSP, particularly ACS arithmetic, with as little hardware investment as possible. And
[0020]
[Means for Solving the Problems]
An arithmetic processing apparatus of the present invention is an arithmetic processing apparatus capable of Viterbi decoding by a digital signal processor, wherein first comparison means for comparing first data with second data, third data, Second comparing means for comparing with the fourth data, the first comparing means and the second comparing means.By one instruction andIt is configured to operate in one cycle.
[0029]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
(Embodiment 1)
FIG. 1 shows the configuration of the arithmetic processing apparatus according to the first embodiment. In FIG. 1, 1 is a storage means for storing a path metric, 2 is a bus connected to the storage means 1 for supplying data and transferring operation results, 3 is a storage means for storing branch metrics, and 4 is a storage means 3 And 5 and 9 are comparison means for comparing data read from the storage means 1 and 3 via the
[0030]
Next, the operation in this embodiment will be described with reference to FIGS. In the following description, the case where the constraint length K is 4 and the coding rate is 1/2 is considered. Both path metric and branch metric data types are single precision data. In the following description, for the sake of convenience, when the double precision data is (X, Y), X represents the upper side of the double precision data, and Y represents the lower side of the double precision data.
[0031]
Considering the convolutional encoder of FIG. 2 as an example, the four branch metrics when the coding rate is ½ are BM0, BM1, BM2, and BM3, respectively. Using these branch metrics, the transition state of the state (State) when the constraint length K = 4 is illustrated, and a butterfly structure as shown in FIG. 3 is obtained. Here, attention is paid to the node N0 and the node N1 in the old state (Old State). The node N0 and the node N1 transition at the node N′0 and the node N′4.
The branch metric (BM) taken at that time is
BM0 when node N0 to node N'0
BM1 when node N1 to node N'0
BM1 when node N0 to node N'4
BM0 when node N1 to node N'4
It is. Also, assuming that the path metric of the node N0 is PM0 and the path metric of the node N1 is PM1, the node metrics N0, N1 are exchanged by adding the branch metrics BM0, BM1 to the common path metrics PM0, PM1, respectively. It can be seen that it can be a '4 path metric. Using this relationship, two path metrics can be updated simultaneously by performing parallel processing.
[0032]
As shown in FIG. 3, this relationship also holds for subsequent node pairs (in the figure, a pair of node N2 and node N3, a pair of node N4 and node N5, and a pair of node N6 and node N7). Therefore, as shown in FIG. 3, the ACS calculation of the first half nodes N′0 to N′3 is processed by the comparison means 5, the addition means 6, the storage means 7 for storing the comparison results, and the selection means 8, and the latter half. The ACS operation of the nodes N′4 to N′7 is processed by the comparison means 9, the addition means 10, the storage means 11 for storing the comparison results, and the selection means 12.
[0033]
Hereinafter, detailed operations will be described regarding the ACS operation from the node N0 and the node N1 to the node N′0 and the node N′4. First, two path metrics are output from the
PM1 + BM1-PM0-BM0
Calculate On the other hand, the adding means 6 inputs two path metrics (PM1, PM0) from the
PM1 + BM1 and PM0 + BM0
Is output to the selection means 8 as (PM1 + BM1, PM0 + BM0).
[0034]
The selection means 8 inputs the most significant bit (hereinafter referred to as MSB: Most Significant Bit) which is the sign bit of the comparison result PM1 + BM1−PM0−BM0 of the comparison means 5 and outputs the higher order PM1 + BM1 according to the MSB value. , Select whether to output the lower PM0 + BM0.
That is,
PM1 + BM1 ≧ PM0−BM0
Then, PM1 + BM1-PM0-BM0 ≧ 0
Therefore, the MSB becomes 0. At this time, the lower PM0 + BM0 is selected, and this is newly output to the
vice versa,
PM1 + BM1 <PM0-BM0
Then, PM1 + BM1-PM0-BM0 <0
Therefore, the MSB becomes 1, and at this time, the upper PM1 + BM1 is selected, and this is newly output to the
[0035]
In the comparison means 9, two path metrics (PM1, PM0) are input from the
PM1 + BM0-PM0-BM1
Calculate On the other hand, in the adding means 10, two path metrics (PM1, PM0) are input from the
PM1 + BM0 and PM0 + BM1
Is output to the selection means 12 as (PM1 + BM0, PM0 + BM1).
[0036]
The
That is,
PM1 + BM0 ≧ PM0-BM1
Then, PM1 + BM0-PM0-BM1 ≧ 0
Therefore, the MSB becomes 0. At this time, the lower PM0 + BM1 is selected, and this is newly output to the
vice versa,
PM1 + BM0 <PM0-BM1
Then, PM1 + BM0-PM0-BM1 <0
Therefore, the MSB becomes 1, and at this time, the upper PM1 + BM0 is selected, and this is newly output to the
Further, the MSB of the comparison result of the comparison unit 9 is sequentially stored in the
[0037]
As described above, it is possible to execute the ACS operation of the Viterbi decoding by the DSP in parallel by performing the same processing for the other node pairs. In the above description, a specific example in the case of the constraint length K = 4 and the
[0038]
(Embodiment 2)
FIG. 4 shows the configuration of the arithmetic processing apparatus according to the second embodiment. The arithmetic processing unit of the present embodiment is different from the arithmetic processing unit of the first embodiment (FIG. 1) in that the arithmetic processing unit is composed of four banks of
[0039]
The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG. For example, in order to execute the ACS operation in the operation execution stage of the (n + 1) th cycle in the
・ One-state path metrics are stored in consecutive addresses in the order of even and odd addresses.
-One-state path metrics are divided into the first half and the second half, and stored in separate banks.
[0040]
The four-
[0041]
FIG. 6 shows an example of memory access operation corresponding to FIG. When the one-state ACS operation is completed, in the next state, the path metric of the old state is read from the
[0042]
In the above description,
[0043]
(Embodiment 3)
FIG. 7 shows the configuration of the arithmetic processing apparatus according to the third embodiment. The difference between the arithmetic processing unit of the present embodiment and the arithmetic processing unit of the first embodiment (FIG. 1) is that it is composed of a dual-
[0044]
The arithmetic processing apparatus of this embodiment is also suitable for the arithmetic processing of the pipeline structure shown in FIG. Since the storage means for storing the path metric is the
[0045]
The arithmetic processing apparatus according to the third embodiment also operates under the following conditions, like the arithmetic processing apparatus according to the second embodiment.
・ One-state path metrics are stored in consecutive addresses in the order of even and odd addresses.
-One-state path metrics are divided into the first half and the second half, and stored in separate banks.
[0046]
The
[0047]
FIG. 8 shows an example of memory access operation corresponding to FIG. The arithmetic processing unit of the present embodiment is different from the arithmetic processing unit of the second embodiment in that when the one-state ACS calculation is completed, only the
[0048]
(Embodiment 4)
FIG. 9 shows the configuration of the arithmetic processing apparatus according to the fourth embodiment. The arithmetic processing unit of the present embodiment is different from the arithmetic processing unit of the second embodiment (FIG. 4) in that it includes input registers 16 and 17, and other configurations and operations are the same as those of the first embodiment. It is exactly the same as 2. In FIG. 9, the input registers 16 and 17 receive data from the
[0049]
The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG. For example, in order to execute the ACS operation in the operation execution stage of the n + 2 cycle in the
[0050]
In the pipeline shown in FIG. 10, one stage of data transfer is inserted before the operation execution stage in the stage of the pipeline shown in FIG. That is, at the beginning of the operation execution stage, the data from the
[0051]
Therefore, according to the present embodiment, it is possible to execute the ACS operation of Viterbi decoding by the DSP in parallel at a relatively high speed. Note that the present invention can be similarly implemented even if a dual port RAM is used as means for storing the path metric.
[0052]
(Embodiment 5)
FIG. 11 shows the configuration of the arithmetic processing unit according to the fifth embodiment. The arithmetic processing unit of the present embodiment is different from the arithmetic processing unit of the fourth embodiment (FIG. 9) in that it includes a
[0053]
The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG. The
[0054]
The operation of the
[0055]
The
[0056]
In this embodiment, the description has been given using the node N0, the node N1, the node N6, and the node N7 in the old state with the constraint length K = 4 and the
[0057]
(Embodiment 6)
FIG. 13 shows the configuration of the arithmetic processing apparatus according to the sixth embodiment. The arithmetic processing apparatus of the present embodiment is different from the arithmetic processing apparatus of the fifth embodiment (FIG. 11) in that it comprises two adders and one comparator as comparison means, and two adders as addition means. The other configurations and operations are the same as those in the fifth embodiment.
[0058]
In FIG. 13,
[0059]
Next, the ACS calculation operation in this embodiment will be described. Assuming that the constraint length K = 4 and the
[0060]
As shown in FIG. 13, when the two path metrics are output as {A, B} from the input registers 16 and 17 and the two branch metrics are output as {C, D} from the
[0061]
On the other hand, the
[0062]
With the above configuration and operation, if two path metrics {A, B} = {PM1, PM0} of the
[0063]
Further, when two path metrics {A, B} = {PM1, PM0} of the
[0064]
Therefore, according to the present embodiment, the update of two path metrics can be realized in one machine cycle by the pipeline operation by the DSP. In this embodiment, the description has been given using the node N0, the node N1, the node N6, and the node N7 in the old state with the constraint length K = 4 and the
[0065]
(Embodiment 7)
FIG. 14 shows the configuration of the arithmetic processing apparatus according to the seventh embodiment. The difference between the arithmetic processing unit of the present embodiment and the arithmetic processing unit of the sixth embodiment (FIG. 13) is that one of the comparators is shared by the
[0066]
In FIG. 14, 30 is an input register for inputting data from the
[0067]
In the present embodiment, when performing the ACS operation, the selector 34 selects the output of the
[0068]
In addition, when the ALU performs arithmetic logic operation between the register and the register, data is output from the
[0069]
Conversely, when the ALU performs an arithmetic logic operation between the memory and the register, data is input from the
[0070]
In addition, when the ALU performs an arithmetic logic operation between the memory and the memory, data is input to the
[0071]
As described above, according to the present embodiment, one of the comparators that perform the ACS operation is also used as the ALU, so that the chip area can be reduced and the cost can be reduced when the arithmetic processing unit is implemented as an LSI. be able to. Note that the present invention can be similarly implemented even if a dual port RAM is used as means for storing the path metric.
[0072]
(Embodiment 8)
FIG. 15 shows a configuration of an arithmetic processing apparatus according to the eighth embodiment. The difference between the arithmetic processing unit of the present embodiment and the arithmetic processing unit of the seventh embodiment (FIG. 14) is that two adders used as comparison means are realized by 4: 2 COMPRESOR 39 and 40. Other configurations and operations are the same as those in the seventh embodiment.
[0073]
In FIG. 15, 39 is a data input from the
[0074]
Next, the ACS calculation operation in this embodiment will be described. Assuming that the constraint length K = 4 and the
[0075]
First, the 4: 2COMPRESSORs 39, 40 are connected in series with a single block for the number of single-precision bits for performing the processing shown in FIG. 16, and perform addition processing faster than a normal full adder.
[0076]
As shown in FIG. 15, when two path metrics are output as {A, B} from the input registers 16 and 17, and two branch metrics are output as {C, D} from the
[0077]
On the other hand, in 4:
[0078]
With the above configuration and operation, if two path metrics {A, B} = {PM1, PM0} of the
[0079]
Further, when two path metrics {A, B} = {PM1, PM0} of the
[0080]
In this way, according to the present embodiment, by applying 4: 2COMPRESSOR to the comparison means for performing the ACS operation, it is possible to perform the operation at a higher speed than when configured with two adders. Can be realized. In the example, the description has been given using the node N0, the node N1, the node N6, and the node N7 in the old state with the constraint length K = 4 and the
[0081]
(Embodiment 9)
FIG. 17 shows the configuration of the arithmetic processing apparatus according to the ninth embodiment. The arithmetic processing apparatus of the present embodiment is different from the arithmetic processing apparatus of the eighth embodiment (FIG. 15) in that a double precision adder is used as the adding means, and at least one of them is also used as a double precision AU. Other configurations and operations are the same as those in the eighth embodiment.
[0082]
In FIG. 17, 41 is input double precision format data from the
[0083]
When performing an ACS operation in the present embodiment, the
[0084]
On the other hand, the
[0085]
In this way, according to the present embodiment, the double precision AU41 is used as the adding means for performing the ACS calculation, and the carry from the bit position of the single precision MSB to the next stage is forced to zero during the ACS calculation. In double precision arithmetic operations other than the above, by adding control for propagating the carry, it can be used, for example, as a double precision cumulative adder at the time of product-sum operation. The cost can be reduced by further reducing the area. Note that the present invention can be similarly implemented even if a dual port RAM is used as means for storing the path metric.
[0086]
(Embodiment 10)
FIG. 19 shows the configuration of the arithmetic processing apparatus according to the tenth embodiment. The difference between the arithmetic processing unit of the present embodiment and the arithmetic processing unit of the ninth embodiment (FIG. 17) is that a shift register is used as the storage means for storing the comparison result. The operation is exactly the same as in the ninth embodiment.
[0087]
In FIG. 19, 43 is a shift register that receives the MSB of the calculation result of the
[0088]
In the present embodiment, when the ACS operation is performed, the MSB of the comparison result by the
[0089]
Thus, according to the present embodiment, by using the shift registers 43 and 44 as the storage means for storing the comparison result for performing the ACS operation, it can also be used as, for example, an operation instruction using a division shift register. In the case where the arithmetic processing unit is made into an LSI, the chip area can be further reduced to reduce the cost. Note that the present invention can be similarly implemented even if a dual port RAM is used as means for storing the path metric.
[0090]
(Embodiment 11)
FIG. 20 shows the configuration of the arithmetic processing apparatus according to the eleventh embodiment. The arithmetic processing unit of the present embodiment is different from the arithmetic processing unit of the tenth embodiment (FIG. 19) in that the
[0091]
When performing an ACS operation in the present embodiment, two path metrics {A, B} are directly input to the
[0092]
In this way, according to the present embodiment, one of the input registers for storing two path metrics is swapped and input, so that the 4: 2 COMPRESOR 40 and the
[0093]
(Embodiment 12)
FIG. 21 shows the configuration of the mobile station apparatus in the twelfth embodiment. In FIG. 21, a
[0094]
The baseband
[0095]
The
[0096]
When voice is transmitted from the
[0097]
On the other hand, at the time of reception, the radio wave received by the
[0098]
In this way, in the
[0099]
Here, the
[0100]
(Embodiment 13)
FIG. 22 shows the configuration of the mobile station apparatus in the thirteenth embodiment. The
[0101]
Thus,
[0102]
(Embodiment 14)
FIG. 23 shows the configuration of the base station apparatus according to the fourteenth embodiment. Components having the same functions as those shown in FIG. In FIG. 23, the
[0103]
The baseband
[0104]
The
[0105]
On the other hand, at the time of reception, the radio wave received by the
[0106]
Thus, since the
[0107]
Here, the
[0108]
(Embodiment 15)
FIG. 24 shows the configuration of the base station apparatus in the fifteenth embodiment. The
[0109]
Thus,
[0110]
【The invention's effect】
As described above, according to the arithmetic processing device of the present invention, the instruction decoding means for decoding an instruction, the storage means having a predetermined bit width and holding two metrics on the upper side and the lower side, the memory Access means that reads the two metrics by accessing the upper side and the lower side of the means in parallel, and four types obtained by adding one of the two path metrics and one of the two branch metrics First comparison means for inputting first, second, third, and fourth data, which is data, and comparing the first data and the second data; and parallel to the first comparison means Since the second comparison means for operating the second data and comparing the third data and the fourth data is provided, two path metrics can be updated in one machine cycle by pipeline processing by the DSP. And this DSP ACS operation of the Viterbi decoding can be realized by a relatively small amount of processing speed, an advantageous effect that size reduction, weight reduction and cost reduction and battery life of the mobile terminal is enabled to obtain.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of an arithmetic processing unit according to a first embodiment of the present invention.
FIG. 2 is a block diagram illustrating an example of a convolutional encoder with a coding rate of 1/2.
FIG. 3 is a schematic diagram showing a butterfly structure when the restraint length K = 4.
FIG. 4 is a block diagram showing a configuration of an arithmetic processing unit according to
FIG. 5 is a timing chart for explaining a pipeline operation of the arithmetic processing unit according to the second embodiment of the present invention.
FIG. 6 is a schematic diagram showing an example of memory access operation of the 4-
FIG. 7 is a block diagram showing a configuration of an arithmetic processing unit according to
FIG. 8 is a schematic diagram showing an example of memory access operation of the
FIG. 9 is a block diagram showing a configuration of an arithmetic processing unit according to
FIG. 10 is a timing diagram illustrating pipeline operation of the arithmetic processing unit according to the fourth embodiment of the present invention.
FIG. 11 is a block diagram showing a configuration of an arithmetic processing unit according to a fifth embodiment of the present invention.
FIG. 12 is a list showing a comparative example of the ACS operation from the nodes N0 and N1 to the nodes N′0 and N′4 and the ACS operation from the nodes N6 and N7 to the nodes N′3 and N′7.
FIG. 13 is a block diagram showing a configuration of an arithmetic processing unit according to the sixth embodiment of the present invention.
FIG. 14 is a block diagram showing a configuration of an arithmetic processing unit according to a seventh embodiment of the present invention.
FIG. 15 is a block diagram showing a configuration of an arithmetic processing unit according to an eighth embodiment of the present invention.
FIG. 16 is an input / output diagram of 4: 2COMPRESSOR in the eighth embodiment of the present invention;
FIG. 17 is a block diagram showing a configuration of an arithmetic processing unit according to the ninth embodiment of the present invention.
FIG. 18 is a diagram for explaining carry control of a double precision AU.
FIG. 19 is a block diagram showing a configuration of an arithmetic processing unit according to the tenth embodiment of the present invention.
FIG. 20 is a block diagram showing a configuration of an arithmetic processing unit according to the eleventh embodiment of the present invention.
FIG. 21 is a block diagram showing a configuration of a mobile station apparatus in
FIG. 22 is a block diagram showing a configuration of a mobile station apparatus in
FIG. 23 is a block diagram showing a configuration of a base station apparatus according to
FIG. 24 is a block diagram showing a configuration of a base station apparatus according to
FIG. 25 is a state transition diagram (trellis diagram) showing a state transition path of a convolutional encoder in Viterbi decoding;
FIG. 26 is a schematic diagram showing a butterfly structure of a trellis diagram.
FIG. 27 is a schematic diagram illustrating an example of a generated code by a convolutional encoder.
FIG. 28 is a program diagram showing an example of a Viterbi operation for channel coding.
FIG. 29 is a schematic diagram showing an example of storing pointer control and path metrics.
[Explanation of symbols]
1 Storage means for storing path metrics
2 buses
3 Storage means for storing branch metrics
4 Bus
5 comparison means
6 addition means
7 Storage means for storing comparison results
8 selection means
9 Comparison means
10 Addition means
11 Storage means for storing comparison results
12 Selection means
13 Bus
14 4 banks of RAM
15 Dual port RAM
16 Input register
17 Input register
18 Swap circuit
19 Adder
20 Adder
21 Comparator
22 Adder
23 Adder
24 Adder
25 Adder
26 Comparator
27 Adder
28 Adder
29 ALU
30 Input register
31 Input register
32 buses
33 Bus
34 Selector
35 selector
36 Register file
37 bus
38 bus
39 4: 2COMPRESSOR
40 4: 2COMPRESSOR
41 double precision AU
42 double precision adder
43 Shift register
44 Shift register
45 Mobile station equipment
46 Antenna
47 Radio section
48 Receiver
49 Transmitter
50 Baseband signal processor
51 Demodulator
52 Modulator
53 DSP
54 Timing control unit
55 Viterbi decoder
56 convolutional codes
57 Audio codec section
58 Speaker
59 Microphone
60 Data input / output device
61 Display
62 Operation unit
63 Control unit
64 Despreading section
65 Diffusion part
66 Receiving antenna
67 Transmitting antenna
68 Base station equipment
69 Baseband signal processor
Claims (4)
第1のデータと第2のデータとを比較する第1の比較手段と、
第3のデータと第4のデータとを比較する第2の比較手段とを有し、
前記第1の比較手段と前記第2の比較手段とを、1命令によって、かつ、1サイクルで動作させる演算処理装置。An arithmetic processing device capable of Viterbi decoding by a digital signal processor,
First comparison means for comparing the first data and the second data;
Second comparison means for comparing the third data and the fourth data;
An arithmetic processing unit that operates the first comparison unit and the second comparison unit in one cycle by one instruction .
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003009709A JP3996858B2 (en) | 1997-06-30 | 2003-01-17 | Arithmetic processing unit |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17387897 | 1997-06-30 | ||
JP9-173878 | 1997-06-30 | ||
JP2003009709A JP3996858B2 (en) | 1997-06-30 | 2003-01-17 | Arithmetic processing unit |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002327296A Division JP3634333B2 (en) | 1997-06-30 | 2002-11-11 | Digital signal processor |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003234656A JP2003234656A (en) | 2003-08-22 |
JP3996858B2 true JP3996858B2 (en) | 2007-10-24 |
Family
ID=27790281
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003009709A Expired - Fee Related JP3996858B2 (en) | 1997-06-30 | 2003-01-17 | Arithmetic processing unit |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3996858B2 (en) |
-
2003
- 2003-01-17 JP JP2003009709A patent/JP3996858B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003234656A (en) | 2003-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3338374B2 (en) | Arithmetic processing method and apparatus | |
KR100439211B1 (en) | The arithmetic processing unit | |
US20050157823A1 (en) | Technique for improving viterbi decoder performance | |
WO2005011129A1 (en) | Viterbi decoder | |
US7506239B2 (en) | Scalable traceback technique for channel decoder | |
JP3996858B2 (en) | Arithmetic processing unit | |
JP3634333B2 (en) | Digital signal processor | |
JP3383661B2 (en) | Arithmetic processing unit | |
US20030028845A1 (en) | High performance turbo and viterbi channel decoding in digital signal processors | |
JP3191442B2 (en) | Arithmetic unit for Viterbi decoding | |
US6125153A (en) | Data processor and data processing method | |
JPH10178356A (en) | Arithmetic processing unit and ratio station equipment using the same | |
JP2002217747A (en) | Viterbi decoding processing unit | |
JP3231647B2 (en) | Viterbi decoder | |
KR100430823B1 (en) | The structure of trace-back survival memory in viterbi decoder apparatus | |
JP2001024526A (en) | Viterbi decoder | |
JPH10242871A (en) | Data processor and data processing method | |
SC140 | How to Implement a Viterbi Decoder on the | |
JP2001352255A (en) | Operating unit for communication apparatus and recording medium and operating method | |
JP2002185337A (en) | Base station device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061128 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070124 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20070417 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070615 |
|
A911 | Transfer of reconsideration by examiner before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20070621 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20070710 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070803 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130810 Year of fee payment: 6 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R360 | Written notification for declining of transfer of rights |
Free format text: JAPANESE INTERMEDIATE CODE: R360 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |