JP3996858B2 - Arithmetic processing unit - Google Patents

Arithmetic processing unit Download PDF

Info

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
Application number
JP2003009709A
Other languages
Japanese (ja)
Other versions
JP2003234656A (en
Inventor
隆太朗 山中
秀俊 鈴木
英之 蕪尾
稔 岡本
ケヴィン・ストーン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Priority to JP2003009709A priority Critical patent/JP3996858B2/en
Publication of JP2003234656A publication Critical patent/JP2003234656A/en
Application granted granted Critical
Publication of JP3996858B2 publication Critical patent/JP3996858B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 buses 2 and 4, respectively, and 6 and 10 are storage means 1 and 3. Adding means for adding the data read from the buses 2 and 4 respectively, 7 is a storage means for storing the comparison result of the comparison means 5, 11 is a storage means for storing the comparison result of the comparison means 9, 8 Is a selection unit that inputs the addition result of the addition unit 6 and determines an output based on the comparison result of the comparison unit 5, and 12 is an input of the addition result of the addition unit 10, and is based on the comparison result of the comparison unit 9 Selection means for determining the force 13 enter the selection result of the selection means 8 and 12, a bus for transferring the storage means 1. The storage means 7 and 11 for storing the comparison results are both connected to the bus 2 and can transfer the comparison results to the storage means 1 via the bus 2.
[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 storage unit 1 as (PM1, PM0) to the bus 2, while two branch metrics are output from the storage unit 3 to the bus 4 as (BM1, BM0). In the comparison means 5, two path metrics (PM1, PM0) are input from the bus 2, two branch metrics (BM1, BM0) are input from the bus 4,
PM1 + BM1-PM0-BM0
Calculate On the other hand, the adding means 6 inputs two path metrics (PM1, PM0) from the bus 2, and inputs two branch metrics (BM1, BM0) from the bus 4.
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 bus 13 as PM'0.
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 bus 13 as PM'0. Further, the MSB of the comparison result of the comparison means 5 is sequentially stored in the storage means 7 at the same time.
[0035]
In the comparison means 9, two path metrics (PM1, PM0) are input from the bus 2, and two branch metrics (BM1, BM0) are input from the bus 4.
PM1 + BM0-PM0-BM1
Calculate On the other hand, in the adding means 10, two path metrics (PM1, PM0) are input from the bus 2, and two branch metrics (BM1, BM 0) are input from the bus 4.
PM1 + BM0 and PM0 + BM1
Is output to the selection means 12 as (PM1 + BM0, PM0 + BM1).
[0036]
The selection unit 12 inputs the MSB of the comparison result PM1 + BM0−PM0−BM1 of the comparison unit 9, and selects whether to output the upper PM1 + BM0 or the lower PM0 + BM1 depending on the value of the MSB.
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 bus 13 as PM'4.
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 bus 13 as PM'4.
Further, the MSB of the comparison result of the comparison unit 9 is sequentially stored in the storage unit 11 at the same time.
[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 coding rate 1/2 has been shown. However, even if the values of the constraint length and the coding rate are other values, the above relationship Therefore, it can be similarly implemented by making appropriate changes accordingly.
[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 RAM 14 as storage means for storing path metrics. Other configurations and operations are the same as those in the first embodiment.
[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 instruction 1, it is necessary to supply the RAM 14 with a path metric address read in advance in the memory access stage of the nth cycle. At this time, assuming that the RAM 14 can continuously read even addresses and odd addresses, that is, a RAM capable of double-precision reading, the two path metrics used for calculation can be used simply by specifying even addresses in the following situations. Can be read out.
・ 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-bank RAM 14 stores, for example, the first-half path metrics of the old state in bank 0 (referring to PM0, PM1, PM2, and PM3 in FIG. 3). 3 indicates PM4, PM5, PM6, and PM7), two path metrics are generated by one cycle of operation execution (ACS operation execution), and these are respectively sent to bank 2, Stored in bank 3. At this time, the bus 13 transfers double precision data, the path metrics from the nodes N′0 to N′3 are stored in the bank 2, and the path metrics from the node N ′ to the node N′7 are stored in the bank 3. Is done.
[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 banks 2 and 3, and the path metric of the new state is stored in the banks 0 and 1. By switching between the bank pair for reading the path metric and the bank pair to be stored every time one-state ACS operation is completed using the four banks of RAM 14 as described above, the Viterbi decoding ACS operation by the DSP is executed in parallel. It becomes possible.
[0042]
In the above description, bank 0 and bank 1 and bank 2 and bank 3 have been described as an example of a pair of banks. However, even when other combinations are used, addresses supplied at the memory access stage are stored. It can be similarly implemented only by changing the address. In the present embodiment, the RAM 14 is composed of four banks. However, the number of banks is a minimum required number, and can be similarly implemented if the number is four or more.
[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-port RAM 15 consisting of three banks as storage means for storing path metrics. Other configurations and operations are the same as those in the first embodiment.
[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 dual port RAM 15, it is possible to specify reading and writing to the same bank in one instruction. For example, in the instruction 1, the ACS operation is executed at the operation execution stage of the (n + 1) th cycle. Therefore, first, the address of the path metric to be read and the address of the path metric to be written are supplied to the dual port RAM 15 in the memory access stage of the nth cycle, and from the dual port RAM 15 in the same way as the RAM 14 of the second embodiment in the n + 1th cycle. It is possible to read even and odd addresses in succession, perform ACS operation, and write one path metric to the same bank.
[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 dual port RAM 15 stores, for example, the path metric of the first half of the old state in bank 0 (referring to PM0, PM1, PM2, PM3 in FIG. 3), and the path metric of the second half of the old state stored in bank 1 (FIG. 3). , PM4, PM5, PM6, and PM7) are stored, two path metrics are generated by one cycle of operation execution (ACS operation execution). 2 is stored. At this time, the bus 13 transfers double precision data, the path metrics from the nodes N′0 to N′3 are stored in the bank 0, and the path metrics from the nodes N′4 to N′7 are stored in the bank 2. Stored.
[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 bank 1 and the bank 2 are switched, and the bank 0 is not switched. This is that the ACS operation of the Viterbi decoding by the DSP can be executed in parallel. In the present embodiment, the dual port RAM 15 is composed of three banks. However, the number of banks is a minimum required number, and can be similarly implemented if the number is three or more.
[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 bus 2 and output the data to the comparison means 5 and 9 and the addition means 6 and 10.
[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 instruction 1, the path metric address read in the memory access stage of the n cycle is supplied to the RAM 14 in advance, and in the data transfer stage of the n + 1 cycle. Data output from the RAM 14 is latched in the input registers 16 and 17 via the bus 2.
[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 RAM 14 is determined by the input register before each operation unit (referring to the comparison means 5 and 9 and the addition means 6 and 10). It is possible to save the time required for.
[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 swap circuit 18, and other configurations and operations are the same as those of the fourth embodiment. Exactly the same. In FIG. 11, the swap circuit 18 inputs data from the storage means 3 that stores the branch metrics and outputs the data to the bus 4.
[0053]
The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG. The swap circuit 18 outputs the values of two branch metrics inputted as double precision data in the form of {BM1, BM0} from the storage means 3 as {BM1, BM0} as they are, or swaps the upper and lower levels. And {BM0, BM1} to be output by an instruction or the like.
[0054]
The operation of the swap circuit 18 will be described. The constraint length K = 4 and the coding rate 1/2 will be described using the transition state of the path metric of the convolutional encoder shown in FIG. 2 and the butterfly structure shown in FIG. An ACS operation when transitioning from the node N0 and the node N1 in the old state to the node N'0 and the node N'4, and from the node N6 and the node N7 in the old state (node N'3) FIG. 12 is a comparison of the ACS operation when transitioning to the node N′7. That is, the ACS operation from the node N0 and the node N1 to the node N′0 and the ACS operation from the node N6 and the node N7 to the node N′3 are performed by the comparison unit 5 and the addition unit 6, but both ACS operations are common. The branch metrics BM0 and BM1 are used, and BM0 and BM1 are swapped. The same relationship holds in the comparing means 9 and the adding means 10 of the ACS operation from the node N0 and the node N1 to the node N'4 and the ACS operation from the node N6 and the node N7 to the node N'7. For this reason, the storage means 3 for storing branch metrics must be stored in both {BM0, BM1} and {BM1, BM0} forms, resulting in redundant hardware resources.
[0055]
The swap circuit 18 solves such redundancy. The storage means 3 for storing branch metrics stores only the form {BM0, BM1}, for example, and the swap circuit 18 stores this { BM0, BM1} is input and, for example, an instruction or the like is used to switch between {BM0, BM1} and {BM1, BM0} as an output, and the branch metric is stored by this swap circuit 18 Therefore, it is possible to omit the redundancy of the storage means 3 to be performed.
[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 coding rate 1/2, but the node N2, the node N3 The above relationship is also established in the node N4 and the node N5, and further, a combination of the constraint length K and the coding rate other than the above is also established. Further, the present invention can be similarly implemented by using a dual port RAM as means for storing the path metric.
[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, reference numerals 19 and 20 denote adders for inputting and adding data from the bus 4 and the input register 16, and reference numeral 21 denotes a storage means for inputting and comparing the addition results from the adder 19 and the adder 20 and storing the comparison results. 7 and a comparator for outputting to the selecting means 8, 22 and 23 are input by adding data from the bus 4 and the input register 16, and an adder for outputting the addition result to the selecting means 8, and 24 and 25 are inputs to the bus 4. An adder for inputting and adding data from the register 17; and 26, a comparator for inputting and comparing the addition results from the adder 24 and the adder 25, and outputting the comparison results to the storage means 11 and the selecting means 12, 27 Reference numerals 28 and 28 denote adders which input data from the bus 4 and the input register 17 and add them, and output the addition result to the selection means 12. The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG.
[0059]
Next, the ACS calculation operation in this embodiment will be described. Assuming that the constraint length K = 4 and the coding rate 1/2, the convolutional encoder shown in FIG. 2, the butterfly structure shown in FIG. 3, and the nodes N0 and N1 shown in FIG. A description will be given by comparing the ACS operation and the ACS operation from the nodes N6 and N7 to the nodes N′3 and N′7.
[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 swap circuit 18, the adder 19 Then, the path metric {A} and the branch metric {C} are input and the addition result {A + C} is output. The adder 20 inputs the path metric {B} and the branch metric {D}, and the addition result {B + D }, And the comparator 21 inputs the addition result {A + C} of the adder 19 and the addition result {B + D} of the adder 20, compares {A + C− (B + D)}, and compares the MSB of the comparison result Is output. The adder 22 inputs the path metric {A} and the branch metric {C} and outputs the addition result {A + C}. The adder 23 inputs the path metric {B} and the branch metric {D}, and the addition result. {B + D} is output.
[0061]
On the other hand, the adder 24 inputs the path metric {A} and the branch metric {D} and outputs the addition result {A + D}, and the adder 25 inputs the path metric {B} and the branch metric {C}. , The addition result {B + C} is output, and the comparator 26 inputs the addition result {A + D} of the adder 24 and the addition result {B + C} of the adder 25, and compares {A + D− (B + C)}. The MSB of the comparison result is output. The adder 27 inputs the path metric {A} and the branch metric {D} and outputs the addition result {A + D}. The adder 28 inputs the path metric {B} and the branch metric {C} and adds them. The result {B + C} is output.
[0062]
With the above configuration and operation, if two path metrics {A, B} = {PM1, PM0} of the input register 16 and the input register 17 are set, and the output {C, D} = {BM1, BM0} of the swap circuit 18 is set. The ACS operation when transitioning from the node N0 and the node N1 in the old state shown in FIG. 12 to the node N′0 and the node N′4 can be realized.
[0063]
Further, when two path metrics {A, B} = {PM1, PM0} of the input register 16 and the input register 17 are set and the output {C, D} = {BM0, BM1} of the swap circuit 18 is shown in FIG. It is possible to realize an ACS operation when transitioning from the node N0 and the node N1 in the old state to the node N′0 and the node N′4.
[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 coding rate 1/2, but the node N2, the node N3 The above relationship is also established in the node N4 and the node N5, and further, a combination of the constraint length K and the coding rate other than the above is also established. Further, the present invention can be similarly implemented by using a dual port RAM as means for storing the path metric.
[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 ALU 29, and the input registers 30, 31 are accordingly associated. And other buses 32, 33, 37, and 38, selectors 34 and 35, and a register file 36 as a storage means for storing branch metrics. This is exactly the same as Form 6.
[0066]
In FIG. 14, 30 is an input register for inputting data from the RAM 14 consisting of 4 banks via the bus 37, 31 is an input register for inputting data from the RAM 14 consisting of 4 banks via the bus 38, and 32 and the bus 33 are registers. A bus for inputting data from the file 36, a selector 34 for inputting data from the bus 32, the adder 19 and the input register 30 and selecting an output, and 35 for inputting data from the bus 33, the adder 20 and the input register 31. , A selector for selecting an output, 29 receives data from the selectors 34 and 35, performs arithmetic logic operation, outputs an arithmetic logic operation result to the bus 13, and further stores the MSB of the arithmetic logic operation result as a comparison result An ALU output to the means 7 and the selection means 8. The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG.
[0067]
In the present embodiment, when performing the ACS operation, the selector 34 selects the output of the adder 19 and inputs it to the ALU 29, the selector 35 selects the output of the adder 20 and inputs it to the ALU 29, and the ALU 29 inputs The two data are subtracted, and the MSB of the subtraction result is output to the storage means 7 for storing the comparison result and the selection means 8.
[0068]
In addition, when the ALU performs arithmetic logic operation between the register and the register, data is output from the register file 36 to the bus 32 and the bus 33, and the selector 34 and the selector 35 select the bus 32 and the bus 33, respectively. It is feasible. When the ALU performs an arithmetic logic operation between the register and the memory, data is output from the register file 36 to the bus 32, and data is input from the RAM 14 having four banks to the input register 31 via the bus 38. This can be realized by the selector 35 selecting the bus 32 and the input register 31, respectively.
[0069]
Conversely, when the ALU performs an arithmetic logic operation between the memory and the register, data is input from the RAM 14 consisting of four banks to the input register 30 via the bus 37, and data is output from the register file 36 to the bus 33. This can be realized by the selector 34 and the selector 35 selecting the input register 30 and the bus 33, respectively.
[0070]
In addition, when the ALU performs an arithmetic logic operation between the memory and the memory, data is input to the input register 30 and the input register 31 from the RAM 14 having four banks via the bus 37 and the bus 38, and the selector 34 and the selector 34 are selected. 35 can be realized by selecting the input register 30 and the input register 31, respectively.
[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 bus 4 and the input register 16, and 4: 2COMPRESSOR outputs the operation result to the selector 34 and the selector 35, and 40 is a data input from the bus 4 and the input register 17 to the comparator 26. 4: 2COMPRESSOR that outputs the calculation result. The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG.
[0074]
Next, the ACS calculation operation in this embodiment will be described. Assuming that the constraint length K = 4 and the coding rate 1/2, the convolutional encoder shown in FIG. 2, the butterfly structure shown in FIG. 3, and the nodes N0 and N1 shown in FIG. A description will be given by comparing the ACS operation and the ACS operation from the nodes N6 and N7 to the nodes N′3 and N′7.
[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 swap circuit 18, 4: 2COMPRESSOR39 Then, the path metric {A}, the branch metric {C}, the inversion {} B} of the path metric {B}, and the inversion { ̄D} of the branch metric {D} are input. In the ALU 29, the selectors 34 and 35 are used. Then, the two outputs of 4: 2COMPRESSOR39 are input and added. However, at this time, in order to realize the two's complement of {B} and {D}, “1” is input to the 4: 2COMPRESSOR 39 and the lowest carry input of the ALU 29. As a result, {A + C- (B + D)} is obtained, and the MSB is output. The adder 22 inputs the path metric {A} and the branch metric {C} and outputs the addition result {A + C}. The adder 23 inputs the path metric {B} and the branch metric {D} and adds the result { B + D} is output.
[0077]
On the other hand, in 4: 2COMPRESSOR 40, path metric {A}, branch metric {D}, inversion { ̄B} of path metric {B}, and inversion { ̄C} of branch metric {C} are input to comparator 26. Inputs and adds the two outputs of 4: 2COMPRESSOR39. However, at this time, in order to realize the two's complement of {B} and {C}, “1” is input to the 4: 2COMPRESSOR 40 and the lowest carry input of the comparator 26. As a result, {A + D- (B + C)} is obtained, and the MSB is output. The adder 27 inputs the path metric {A} and the branch metric {D} and outputs the addition result {A + D}. The adder 28 inputs the path metric {B} and the branch metric {C} and adds them. The result {B + C} is output.
[0078]
With the above configuration and operation, if two path metrics {A, B} = {PM1, PM0} of the input register 16 and the input register 17 are set, and the output {C, D} = {BM1, BM0} of the swap circuit 18 is set. The ACS operation when transitioning from the node N0 and the node N1 in the old state shown in FIG. 12 to the node N′0 and the node N′4 can be realized.
[0079]
Further, when two path metrics {A, B} = {PM1, PM0} of the input register 16 and the input register 17 are set and the output {C, D} = {BM0, BM1} of the swap circuit 18 is shown in FIG. It is possible to realize an ACS operation when transitioning from the node N0 and the node N1 in the old state to the node N′0 and the node N′4. Therefore, the update of two path metrics can be realized in one machine cycle by the pipeline operation by the DSP.
[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 coding rate 1/2. However, the node N2, the node N3, the node N4, Since the above relationship is also established at the node N5, and the combination of the constraint length K and the coding rate other than the above is also established, it can be similarly implemented. Further, the present invention can be similarly implemented by using a dual port RAM as means for storing the path metric.
[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 input register 16 and the bus 4, double precision AU for performing double precision arithmetic operation, 42 is input double precision format data from the input register 17 and the bus 4, The double precision adder performs a double precision addition operation. The output of the double precision AU 41 is output to the selection means 8 and the bus 13, and the output of the double precision adder 42 is output to the selection means 12. The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG.
[0083]
When performing an ACS operation in the present embodiment, the double precision AU 41 inputs two path metrics from the input register 16 in the double precision format as {A, B}, and 2 from the swap circuit 18 via the bus 4. Two branch metrics are entered as {C, D} in double precision format. At this time, the double precision AU 41 performs double precision addition, but as shown in FIG. 18, the carry from the bit position of the single precision MSB to the next stage is forced to zero. Thereby, the addition {A + C, B + D} of the two path metrics and the branch metrics can be performed in parallel at the same time.
[0084]
On the other hand, the double precision adder 42 inputs the two path metrics from the input register 17 in the double precision format as {A, B}, and the two branch metrics from the swap circuit 18 via the bus 4 in the double precision format. Input as {D, C}. Similarly to the double precision AU 41, the double precision adder 42 forces the carry from the bit position of the single precision MSB to the next stage to zero and simultaneously adds the two path metrics and branch metrics {A + D, B + C}. Operate in parallel.
[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 ALU 29, 44 is a shift register that receives the MSB of the calculation result of the comparator 26, and both the shift registers 43 and 44 are connected to the bus 2. Data can be output. The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG.
[0088]
In the present embodiment, when the ACS operation is performed, the MSB of the comparison result by the ALU 29 is shifted into the shift register 43 as needed, and the MSB of the comparison result from the comparator 26 is shifted into the shift register 44 as needed. A signal (a signal indicating which of the two paths has been selected and used when tracing back after the ACS operation is completed) can be stored. Further, when the bit width of the shift registers 43 and 44 is, for example, a single precision data width, when the ACS operation is performed several times with single precision bits, the values of the shift registers 43 and 44 are transferred via the bus 2. It is necessary to store the path select signal in the RAM 14 having four banks.
[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 input register 17 always swaps and inputs path metric data from the bus 2 to the 4: 2 COMPRESOR 40. Is that the branch metric data from the swap circuit 18 is input as it is without swapping, and the negated value of the comparison result of the comparator 26 is shifted into the shift register 44. Other configurations and operations are the same as those of the tenth embodiment. Exactly the same. The arithmetic processing apparatus of this embodiment is suitable for the arithmetic processing of the pipeline structure shown in FIG.
[0091]
When performing an ACS operation in the present embodiment, two path metrics {A, B} are directly input to the input register 16 as {A, B}, but the input register 17 is always swapped { B, A}. Thereafter, in the 4: 2COMPRESSOR 40, the two branch metrics are input from the swap circuit 18 as {C} and { ̄D}, and the two path metrics are input from the input register 17 as {B} and { ̄A}. Then, the two outputs of 4: 2COMPRESSOR40 are input and added, and {A + D−B−C} is calculated. On the other hand, the double precision adder 42 receives two branch metrics as {C, D} from the swap circuit 18 and two path metrics as {B, A} from the input register, and {B + C} and {A + D}. Simultaneously calculate in parallel and output to the selection means 12 in the form of {B + C, A + D}. The comparator 26 outputs the MSB of the comparison result to the selection unit 12 and the MSB of the negation value of the comparison result to the shift register 44.
[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 double precision adder 42 are connected in the operation execution (EX) stage. There is no swapping at the input, and it is possible to perform a faster ACS operation. Note that the present invention can be similarly implemented even if a dual port RAM is used as means for storing the path metric.
[0093]
(Embodiment 12)
FIG. 21 shows the configuration of the mobile station apparatus in the twelfth embodiment. In FIG. 21, a mobile station apparatus 45 in the present embodiment performs a transmission / reception antenna unit 46, a radio unit 47 including a reception unit 48 and a transmission unit 49, and modulation and demodulation of signals, encoding and decoding. Baseband signal processing unit 50 for performing, speaker 58 for emitting sound, microphone 59 for inputting sound, data input / output unit 60 for inputting / outputting data to be transmitted / received to / from an external device, and operation status display And a control unit 63 for controlling the antenna unit 46, the radio unit 47, the baseband signal processing unit 50, the display unit 61, the operation unit 62, and the like.
[0094]
The baseband signal processing unit 50 includes a demodulation unit 51 that demodulates a reception signal, a modulation unit 52 that modulates a transmission signal, and a one-chip DSP 53. The DSP 53 includes the first to eleventh embodiments. A Viterbi decoding unit 55 comprising a form of arithmetic processing unit, a convolutional encoding unit 56 for performing convolutional encoding of a transmission signal, an audio codec unit 57 for encoding / decoding an audio signal, and a reception signal by measuring transmission / reception timing A timing control unit 54 that sends a transmission signal from the convolutional coding unit 56 to the modulation unit 52 is formed by software from the demodulation unit 51 to the Viterbi decoding unit 55, respectively.
[0095]
The control unit 63 of the mobile station device 45 controls the operation of the entire mobile station device 45, for example, displays a signal input from the operation unit 62 on the display unit 61 or receives a signal input from the operation unit 62. A control signal for performing an incoming / outgoing call operation is output to the antenna unit 46, the radio unit 47, the baseband signal processing unit 50, and the like according to the communication sequence.
[0096]
When voice is transmitted from the mobile station device 45, the voice signal input from the microphone 59 is AD converted (not shown), encoded by the voice codec unit 57 of the DSP 53, and the encoded data is convolutionally encoded. 56. When data is transmitted, data input from the outside is input to the convolutional encoding unit 56 via the data input / output unit 60. The convolutional coding unit 56 performs convolutional coding on the input data and outputs the data to the timing control unit 54. The timing control unit 54 rearranges input data and adjusts transmission output timing, and outputs the result to the modulation unit 52. The data input to the modulation unit 52 is digitally modulated, D / A converted (not shown), and output to the transmission unit 49 of the radio unit 47. The transmission part 49 converts this into a radio signal, sends it to the antenna part 46, and is transmitted as a radio wave from the antenna.
[0097]
On the other hand, at the time of reception, the radio wave received by the antenna unit 46 is received by the receiving unit 48 of the radio unit 47, AD converted, and output to the demodulating unit 51 of the baseband signal processing unit 50. The data demodulated by the demodulator 51 is rearranged by the timing controller 54 and then input to the Viterbi decoder 55 where it is decoded. The data decoded by the Viterbi decoding unit 55 is audio-decoded by the audio codec unit 57 and DA-converted during audio communication, and then output as audio from the speaker 58. During data communication, the data decoded by the Viterbi decoding unit 55 is output to the outside via the data input / output unit 60.
[0098]
In this way, in the mobile station apparatus 45 according to the present embodiment, the Viterbi decoding unit 55, the convolutional encoding unit 56, the audio codec unit 57, and the timing control unit 54 are formed by the software of the DSP 53 of one chip. Therefore, it can be assembled with a small number of parts. Further, since the Viterbi decoding unit 55 is formed of the arithmetic processing unit of the first to eleventh embodiments, two path metrics can be updated in one machine cycle by pipeline processing by the DSP 53, thereby achieving high speed. In addition, it is possible to realize the ACS operation of Viterbi decoding by the DSP 53 with a relatively small processing amount.
[0099]
Here, the demodulator 51 and the modulator 52 are shown separately from the DSP 53, but they can also be configured by software of the DSP 53. Further, the DSP of the sixth embodiment can be used as the DSP, and the convolutional encoding unit 56, the audio codec unit 57, and the timing control unit 54 can be configured by separate components.
[0100]
(Embodiment 13)
FIG. 22 shows the configuration of the mobile station apparatus in the thirteenth embodiment. The mobile station device 45A of the present embodiment is different from the mobile station device 45 of the twelfth embodiment (FIG. 26) in that a modulator 65A is provided with a spreader 65, and a demodulator 51A is provided with a despreader 64. The baseband signal processing unit 50A of the provided CDMA communication system is used, and other configurations and operations are similar in many respects to the twelfth embodiment. In the case of CDMA communication, the timing controller 54 may include a RAKE receiver that combines a plurality of fingers selected from a delayed pull file or the like (not shown).
[0101]
Thus, mobile station apparatus 45A in the present embodiment can be applied to CDMA communication by providing despreading section 64 in demodulation section 51A and spreading section 65 in modulation section 52A.
[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 base station apparatus 68 in the present embodiment includes an antenna unit 46 including a reception antenna 66 and a transmission antenna 67, a radio unit 47 including a reception unit 48 and a transmission unit 49, and signal modulation. And a baseband signal processing unit 69 that performs demodulation, encoding, and decoding, a data input / output unit 60 that inputs / outputs data to be transmitted / received to / from a wired line, an antenna unit 46, a radio unit 47, and a baseband signal And a control unit 63 that controls the processing unit 69 and the like.
[0103]
The baseband signal processing unit 69 includes a demodulation unit 51 that demodulates a reception signal, a modulation unit 52 that modulates a transmission signal, and a one-chip DSP 53A. The DSP 53A includes the first to eleventh embodiments. A Viterbi decoding unit 55 composed of an arithmetic processing unit, a convolutional encoding unit 56 that performs convolutional encoding of the transmission signal, and a transmission signal is convolved from the demodulation unit 51 to the Viterbi decoding unit 55 by measuring transmission / reception timing. The timing control unit 54 sent from the encoding unit 56 to the modulation unit 52 is formed by software.
[0104]
The control unit 63 of the base station device 68 performs transmission / reception operations under the control of the base station device 68, and the data input from the wired line is sent to the convolutional encoding unit 56 via the data input / output unit 60. input. The convolutional coding unit 56 performs convolutional coding on the input data and outputs the data to the timing control unit 54. The timing control unit 54 rearranges input data and adjusts transmission output timing, and outputs the result to the modulation unit 52. The data input to the modulation unit 52 is digitally modulated, D / A converted (not shown), and output to the transmission unit 49 of the radio unit 47. The transmission part 49 converts this into a radio signal, sends it to the antenna part 46, and is transmitted as a radio wave from the antenna.
[0105]
On the other hand, at the time of reception, the radio wave received by the antenna unit 46 is received by the receiving unit 48 of the wireless unit 47, AD converted, and output to the demodulating unit 51 of the baseband signal processing unit 69. The data demodulated by the demodulator 51 is rearranged by the timing controller 54 and then input to the Viterbi decoder 55 where it is decoded. The data decoded by the Viterbi decoding unit 55 is output to a wired line via the data input / output unit 60.
[0106]
Thus, since the base station apparatus 68 in this Embodiment forms each part of the Viterbi decoding part 55, the convolutional encoding part 56, and the timing control part 54 with the software of DSP53A of 1 chip | tip, there are few component points Can be assembled with. Further, since the Viterbi decoding unit 55 is formed of the arithmetic processing unit of the first to eleventh embodiments, two path metrics can be updated in one machine cycle by pipeline processing by the DSP 53A, thereby achieving high speed. In addition, it is possible to realize the ACS operation of Viterbi decoding by the DSP 53A with a relatively small processing amount.
[0107]
Here, the demodulator 51 and the modulator 52 are shown separately from the DSP 53A, but they can also be configured by software of the DSP 53A. Also, the DSP of the sixth embodiment can be used as the DSP 53A, and the convolutional encoding unit 56, the audio codec unit 57, and the timing control unit 54 can be configured by separate components.
[0108]
(Embodiment 15)
FIG. 24 shows the configuration of the base station apparatus in the fifteenth embodiment. The base station device 68A of the present embodiment is different from the base station device 68 of the fourteenth embodiment (FIG. 24) in that a modulation unit 52A is provided with a spreading unit 65, and a demodulation unit 51A is provided with a despreading unit 64. The baseband signal processing unit 69A of the provided CDMA communication system is used, and other configurations and operations are similar in many respects to the twelfth embodiment. In the case of CDMA communication, the timing control unit 54 may include a RAKE receiving unit that combines a plurality of fingers selected from a delay pull file or the like (not shown).
[0109]
Thus, base station apparatus 68A according to the present embodiment can be applied to CDMA communication by providing despreading unit 64 in demodulation unit 51A and spreading unit 65 in modulation unit 52A.
[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 Embodiment 2 of the present invention.
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-bank RAM 14 according to the second embodiment of the present invention;
FIG. 7 is a block diagram showing a configuration of an arithmetic processing unit according to Embodiment 3 of the present invention.
FIG. 8 is a schematic diagram showing an example of memory access operation of the dual port RAM 15 according to the third embodiment of the present invention;
FIG. 9 is a block diagram showing a configuration of an arithmetic processing unit according to Embodiment 4 of the present invention.
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 Embodiment 12 of the present invention.
FIG. 22 is a block diagram showing a configuration of a mobile station apparatus in Embodiment 13 of the present invention.
FIG. 23 is a block diagram showing a configuration of a base station apparatus according to Embodiment 14 of the present invention.
FIG. 24 is a block diagram showing a configuration of a base station apparatus according to Embodiment 15 of the present invention.
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 .
前記第1の比較手段と前記第2の比較手段のうち、少なくとも一方がALU(Arithmetic Logic Unit)で構成されている請求項1記載の演算処理装置。The arithmetic processing unit according to claim 1, wherein at least one of the first comparison unit and the second comparison unit is configured by an ALU (Arithmetic Logic Unit). 前記第1の比較手段と前記第2の比較手段の比較結果を保持する2つのシフトレジスタを有する請求項1または請求項2に記載の演算処理装置。 3. The arithmetic processing apparatus according to claim 1, further comprising two shift registers that hold comparison results of the first comparison unit and the second comparison unit. 前記ALU(Arithmetic Logic Unit)が、レジスタ―メモリ演算の実施が可能である請求項2に記載の演算処理装置。The arithmetic processing apparatus according to claim 2, wherein the ALU (Arithmetic Logic Unit) is capable of performing a register-memory operation.
JP2003009709A 1997-06-30 2003-01-17 Arithmetic processing unit Expired - Fee Related JP3996858B2 (en)

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)

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