JP2001222408A - Processor - Google Patents

Processor

Info

Publication number
JP2001222408A
JP2001222408A JP2000038022A JP2000038022A JP2001222408A JP 2001222408 A JP2001222408 A JP 2001222408A JP 2000038022 A JP2000038022 A JP 2000038022A JP 2000038022 A JP2000038022 A JP 2000038022A JP 2001222408 A JP2001222408 A JP 2001222408A
Authority
JP
Japan
Prior art keywords
data
register
scaling
metric
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2000038022A
Other languages
Japanese (ja)
Inventor
Yuki Inoue
由紀 井上
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000038022A priority Critical patent/JP2001222408A/en
Publication of JP2001222408A publication Critical patent/JP2001222408A/en
Pending legal-status Critical Current

Links

Landscapes

  • Executing Machine-Instructions (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a processor equipped with a function for performing an exclusive arithmetic instruction for accelerating metric calculation in viterbi decoding processing. SOLUTION: A subtracter 116 for scaling metric and an adder 117 for calculating a scaling value and latches 109 and 110 for holding two data to be inputted to an arithmetic unit 108 for performing an MAX instruction are added to the arithmetic unit 108. The inputs of the two latches 109 and 110 and the subtracter 116 and the adder 17 are connected through as selector 113, and the selector 113 is controlled according to the arithmetic result of the MAX instruction. Thus, it is possible to process the calculation of a scaling value following metric calculation with scaling, and to realize the high speed and more efficient arithmetic operation.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【発明の属する技術分野】本発明は、デジタルセルラを
はじめとする携帯電話端末に係わり、特にその端末を低
消費電力で実現するために必要な低消費電力のプログラ
マブルなプロセッサの演算命令に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a portable telephone terminal such as a digital cellular phone, and more particularly to an operation instruction of a low power consumption programmable processor required for realizing the terminal with low power consumption.

【0002】[0002]

【従来の技術】無線通信システムにおいて、携帯端末で
は、基地局から送信された変調波を受信し変調信号を再
生するといった復調等化処理を行う。無線通信では、伝
送路において雑音の影響を受け、受信したデータにビッ
ト誤りが生じている。そのため、復調等化処理として、
受信波から送信データを推定する最尤推定法(ビタビ復
号)が通常用いられている。特に、携帯端末に使用され
るプログラマブルなデジタル・シグナル・プロセッサ
(以下、DSPと略す。)において、ビタビ復号を高速
に処理することが要求されており、具体的には、メトリ
ック計算を高速に処理する演算命令の実現にある。そこ
で、メトリック計算の処理について、具体例をあげて説
明する。なお、ビタビ復号の詳細については、例えば、
「移動通信」(オーム社刊、平成10年、第269〜2
82頁)等に記載がある。
2. Description of the Related Art In a radio communication system, a portable terminal performs demodulation and equalization processing such as receiving a modulated wave transmitted from a base station and reproducing a modulated signal. In wireless communication, a bit error occurs in received data due to the influence of noise on a transmission path. Therefore, as demodulation and equalization processing,
A maximum likelihood estimation method (Viterbi decoding) for estimating transmission data from a received wave is usually used. In particular, a programmable digital signal processor (hereinafter abbreviated as DSP) used in a portable terminal is required to process Viterbi decoding at high speed. Specifically, metric calculation is processed at high speed. Is to realize the operation instruction. Thus, the metric calculation process will be described with a specific example. For details of Viterbi decoding, for example,
"Mobile Communications" (Ohm, 1998, 269-2
82).

【0003】図2は、例として、状態数4のトレリス図
を示している。一般的には、状態数は、2n(2のn
乗)で表せるが、以下、n=2、即ち、状態数4の場合
について説明する。
FIG. 2 shows a trellis diagram of four states as an example. In general, the number of states is 2 n (2 n
In the following, a case where n = 2, that is, the number of states is 4, will be described.

【0004】受信系列を推定するためには、各時刻にお
いて、各状態のメトリックを計算する必要がある。ここ
で、時刻T−1における状態(0,0)のメトリックをPt
-1(0,0)、状態(0,1)のメトリックをPt-1(0,1)と
おき、また、図2に示すように枝メトリックをb0、b1と
すると、例えば、時刻Tにおける状態(0,0)のメトリ
ックP(0,0)は、(1)式となる。
In order to estimate a reception sequence, it is necessary to calculate a metric for each state at each time. Here, the metric of the state (0,0) at time T-1 is Pt
Assuming that the metric of -1 (0, 0) and the state (0, 1) is Pt-1 (0, 1), and the branch metrics are b0 and b1 as shown in FIG. The metric P (0,0) in the state (0,0) is represented by Expression (1).

【0005】 Pt(0,0)= MAX{ Pt-1(0,0)+b0 ,Pt-1(0,1)+b1 } (1) ここで、MAXとは、{ }内の2つの値を比較し、どちら
か大きいほうの値をとることを意味する。以下、Kt0
(0,0)=Pt-1(0,0)+b0 , Kt0(0,1)=Pt-1(0,1)+b1と
おく。
Pt (0,0) = MAX {Pt-1 (0,0) + b0, Pt-1 (0,1) + b1} (1) Here, MAX means two values in {}. It means to compare and take the larger value. Hereinafter, Kt0
(0,0) = Pt-1 (0,0) + b0 and Kt0 (0,1) = Pt-1 (0,1) + b1.

【0006】通常(1)式をメトリック計算と言う。メ
トリックは枝メトリック値の累積値であるため、時刻が
進むにつれて増加することがわかる。そこで、上記
(1)式のメトリック計算を行う場合、メトリック値に
対してオーバーフローが起きないようにスケーリングす
る必要がある。スケーリング値St-1は、次式で表され
る。
Normally, equation (1) is called metric calculation. Since the metric is the cumulative value of the branch metric values, it can be seen that the metric increases as the time advances. Therefore, when performing the metric calculation of the above equation (1), it is necessary to perform scaling so that the metric value does not overflow. The scaling value St-1 is represented by the following equation.

【0007】 St-1 =(Pt-1(0,0)+Pt-1(0,1)+Pt-1(1,0)+Pt-1(1,1))/4 (2) つまり、St-1は、時刻T−1における全メトリックの
平均であり、スケーリング付メトリック計算は、次の
(3)式で表すことができる。
St-1 = (Pt-1 (0,0) + Pt-1 (0,1) + Pt-1 (1,0) + Pt-1 (1,1)) / 4 (2) That is, St- 1 is the average of all the metrics at time T-1, and the metric calculation with scaling can be expressed by the following equation (3).

【0008】 Pt(0,0) = MAX{ Kt(0,0),Kt(0,1) } − St-1 (3) つまり、スケーリング付メトリック計算では、MAX演算
に加えて、さらに、(3)式のようにメトリック値から
スケーリング値を減算する処理と、(2)式のようにス
ケーリング値を算出する処理を行う必要がある。
Pt (0,0) = MAX {Kt (0,0), Kt (0,1)} − St−1 (3) That is, in the metric calculation with scaling, in addition to the MAX operation, ( It is necessary to perform a process of subtracting a scaling value from a metric value as in Expression (3) and a process of calculating a scaling value as in Expression (2).

【0009】以上をまとめると、時刻TのメトリックP
t(0,0)を計算するスケーリング付メトリック計算におい
て、入力はメトリック候補Kt(0,0)、Kt(0,1)およびS
t-1であり、出力は各状態のメトリックPt(0,0)、およ
びStである。時刻Tにおける他のメトリックPt(0,
1)、Pt(1,0)、Pt(1,1)についても同様の計算を行う。
In summary, the metric P at time T
In the metric calculation with scaling for calculating t (0,0), inputs are metric candidates Kt (0,0), Kt (0,1) and S
t-1, and the outputs are the metrics Pt (0,0) and St of each state. Other metrics Pt (0,
Similar calculations are performed for 1), Pt (1,0), and Pt (1,1).

【0010】上記の式(2)、(3)のメトリック計算
はマイクロプロセッサが備えている比較演算命令等を用
いて実現できるが、より効率的に実行する例として、信
号処理を高速に実行するプロセッサであるデジタルシグ
ナルプロセッサ(DSP)ではデータの大小を比較して
大きい方の値を選択する比較選択命令を備えている。比
較を行うデータが格納されているレジスタを、例えば、
第1のレジスタ、第2のレジスタとし、演算結果は第2
のレジスタに格納されると仮定すると、このMAX命令
は、具体的には、まず、第1のレジスタの値から第2の
レジスタの値を減算する演算を実行し、演算結果が正の
場合には、第2のレジスタに第1のレジスタの値を新た
に格納し、また、演算結果が負の場合には、第2のレジ
スタの値は更新されないという動作を行う。
The metric calculation of the above formulas (2) and (3) can be realized by using a comparison operation instruction or the like provided in the microprocessor. As an example of more efficient execution, signal processing is executed at high speed. A digital signal processor (DSP), which is a processor, has a comparison / selection instruction for comparing the magnitude of data and selecting a larger value. The register storing the data to be compared is, for example,
The first register and the second register are used, and the operation result is the second register.
Specifically, this MAX instruction first executes an operation of subtracting the value of the second register from the value of the first register. When the operation result is positive, Performs an operation of newly storing the value of the first register in the second register, and not updating the value of the second register when the operation result is negative.

【0011】従来、(3)式のメトリックPtの値を算
出するには、まず、メトリック候補Kt(0,0)を第1のレ
ジスタに格納し、Kt(0,1)を第2のレジスタに格納し、
上記のようなMAX命令を行う。次に、第2のレジスタに
保持されている最大値に対してスケーリング値St-1を
減算する処理を行う。例えば、スケーリング値St-1
は、第3のレジスタに保持されているとし、スケーリン
グ処理を行ったメトリックPt(i,j)は、第4のレジスタ
に保持されるとする。
Conventionally, to calculate the value of the metric Pt in the equation (3), first, a metric candidate Kt (0,0) is stored in a first register, and Kt (0,1) is stored in a second register. Stored in
Perform the above MAX instruction. Next, a process of subtracting the scaling value St-1 from the maximum value held in the second register is performed. For example, the scaling value St-1
Is stored in the third register, and the metric Pt (i, j) subjected to the scaling process is stored in the fourth register.

【0012】次に、(2)式のスケーリング値Stを算
出するために、第4のレジスタに格納されたメトリック
の値を第5のレジスタに加算する。なお、第5のレジス
タと第3のレジスタのスケーリング値は、全ての状態に
おけるメトリック計算が終了するまで、値を保持し続け
る必要があり、第4のレジスタに保持されているメトリ
ックの値は、時刻T+1の場合のメトリック計算に使用
するので、メモリに格納する必要がある。つまり、メト
リックの計算のためにMAX命令を実行し、さらに、スケ
ーリングのために減算命令を実行し、さらに、スケーリ
ング値を算出するために加算命令を実行しており、それ
ぞれの命令は1サイクルで実行されるので、スケーリン
グ付メトリック計算は1状態につき最低3サイクルがか
かっている。
Next, the value of the metric stored in the fourth register is added to the fifth register in order to calculate the scaling value St of the equation (2). Note that the scaling values of the fifth register and the third register need to keep their values until the metric calculation in all states is completed, and the value of the metric held in the fourth register is Since it is used for the metric calculation at the time T + 1, it needs to be stored in the memory. That is, the MAX instruction is executed for calculating the metric, the subtraction instruction is executed for scaling, and the addition instruction is executed for calculating the scaling value. Each instruction is executed in one cycle. As it is performed, the metric calculation with scaling takes a minimum of three cycles per state.

【0013】上記のように、スケーリング付メトリック
計算に使用するレジスタの最低数は5であるが、実際に
はメトリック計算に使用できるレジスタ数は5より小さ
く、つまり、実際のプログラムでは、メトリックPtの
計算と、スケーリング値Stの計算を同時に実行するこ
とができないという問題があった。具体的には、実際の
プログラムでは、時点Tにおける全状態のメトリックが
計算され、これらの値は時刻T+1時のメトリック計算
に使用するので、全状態のメトリックはメモリに格納さ
れる。
As described above, the minimum number of registers used for metric calculation with scaling is 5, but the number of registers that can be used for metric calculation is actually smaller than 5, that is, in an actual program, the metric Pt There is a problem that the calculation and the calculation of the scaling value St cannot be performed simultaneously. Specifically, in an actual program, metrics of all states at the time T are calculated, and these values are used for the metric calculation at the time T + 1, so that the metrics of all the states are stored in the memory.

【0014】そして、スケーリング値Stを計算する場
合、スケーリング値Stの計算に使用するメトリック値
は、メモリに格納されているメトリック値を使用するこ
とになる。従って、メモリからレジスタにメトリック値
を転送し、全メトリックの平均を計算する。このよう
に、演算に使用可能なレジスタの数が少ないと、データ
転送命令分の処理が余計にかかってしまうという問題が
ある。
When calculating the scaling value St, the metric value stored in the memory is used as the metric value used for calculating the scaling value St. Therefore, the metric value is transferred from the memory to the register, and the average of all the metrics is calculated. As described above, if the number of registers that can be used for calculation is small, there is a problem in that processing for data transfer instructions is unnecessarily performed.

【0015】[0015]

【発明が解決しようとする課題】本発明は、かかる問題
点に着目してなされたものであり、上記のような演算の
冗長度を削除するような専用演算命令を実行する機能を
プロセッサに設けて、スケーリング付メトリック計算の
効率向上を実現するプロセッサを提供することを目的と
する。
SUMMARY OF THE INVENTION The present invention has been made in view of such a problem, and a processor is provided with a function of executing a dedicated operation instruction for eliminating the redundancy of the operation as described above. It is another object of the present invention to provide a processor that improves the efficiency of metric calculation with scaling.

【0016】[0016]

【課題を解決するための手段】例えば、状態数4の場合
について、時刻Tにおいて計算されるスケーリング値S
tは、 St = (Pt (0,0)+Pt (0,1)+Pt (1,0)+Pt (1,1))/4 (4) であり、さらに、 St = ( MAX{ Kt0(0,0),Kt0(0,1) } + MAX{ Kt1(0,0),Kt1(0,1) } + MAX{ Kt0(1,0),Kt0(1,1) } + MAX{ Kt1(1,0),Kt1(1,1) } )/4 − St-1 (5) と書ける。(5)式のSt-1以外の項はMAX命令の出力で
あり、かつ、(3)式のスケーリング計算の入力とも一
致する。
For example, when the number of states is 4, the scaling value S calculated at time T is calculated.
t is St = (Pt (0,0) + Pt (0,1) + Pt (1,0) + Pt (1,1)) / 4 (4) Further, St = (MAX {Kt0 (0, 0), Kt0 (0,1) + + MAX {Kt1 (0,0), Kt1 (0,1)} + MAX {Kt0 (1,0), Kt0 (1,1)} + MAX {Kt1 (1 , 0), Kt1 (1,1)}) / 4-St-1 (5). The terms other than St-1 in the equation (5) are the output of the MAX instruction, and coincide with the input of the scaling calculation in the equation (3).

【0017】この点に着目し、MAX命令を実行する演算
器に、メトリックをスケーリングするための減算器と、
スケーリング値を算出する加算器と、MAX命令を実行す
る演算器に入力される2つのデータを保持するラッチを
付加する。2つのラッチと、減算器および加算器の入力
はセレクタを介して接続し、セレクタはMAX命令の演算
結果の符号情報で制御される。
Focusing on this point, a calculator for executing the MAX instruction includes a subtractor for scaling the metric,
An adder for calculating a scaling value and a latch for holding two data input to an arithmetic unit for executing a MAX instruction are added. The inputs of the two latches and the subtractor and the adder are connected via a selector, and the selector is controlled by the sign information of the operation result of the MAX instruction.

【0018】減算器には専用レジスタが接続されてお
り、その専用レジスタの出力は、減算器の入力に接続し
ている。また、スケーリング後のメトリックの値をレジ
スタに保持するように、減算器の出力は汎用レジスタの
入力に接続している。
A dedicated register is connected to the subtracter, and an output of the dedicated register is connected to an input of the subtractor. The output of the subtractor is connected to the input of a general-purpose register so that the value of the metric after scaling is held in the register.

【0019】スケーリング値を算出する加算器は別の専
用レジスタが接続されており、その専用レジスタの出力
は、加算器の入力に接続し、加算器の出力は、その専用
レジスタに保持される。
The adder for calculating the scaling value is connected to another dedicated register. The output of the dedicated register is connected to the input of the adder, and the output of the adder is held in the dedicated register.

【0020】本発明の具体的な構成によれば、第1のレ
ジスタから出力される第1、第2のデータをそれぞれ保
持するための第1、第2のラッチと、第1および第2の
データを入力とする算術論理演算器と、第1または第2
のラッチの出力を入力としてスケーリング付メトリック
に関するデータを生成するデータ生成回路とを具備し、
かつ、該データ生成回路は、第3のデータを保持するた
めの第2のレジスタと、第4のデータを保持するだめの
第3のレジスタと、第1または第2のデータと第3のデ
ータとの減算によりメトリックをスケーリングするため
の減算器と、第1または第2のデータと第4のデータと
の加算によりスケーリング値を算出する加算器とを有し
てなることを特徴とするプロセッサを提供する。
According to a specific configuration of the present invention, first and second latches for holding first and second data output from the first register, respectively, and first and second latches are provided. An arithmetic and logic unit having data as input, a first or second
A data generation circuit that generates data related to a metric with scaling by using an output of the latch as an input,
The data generation circuit includes a second register for holding third data, a third register for holding fourth data, a first or second data, and a third data. And a adder for calculating a scaling value by adding the first or second data to the fourth data. provide.

【0021】また、本発明は、上記構成において、さら
に、上記第1のラッチまたは上記第2のラッチの出力が
上記データ生成回路の入力に接続され、かつ、上記第2
のレジスタの出力は上記減算器の入力に接続され、上記
第3のレジスタの出力は上記加算器の入力に接続され、
上記減算器の出力は上記第1のレジスタの入力に接続さ
れ、上記加算器の出力は上記第3のレジスタの入力に接
続されてなることを特徴とする。
Further, according to the present invention, in the above configuration, an output of the first latch or the second latch is connected to an input of the data generation circuit;
Is connected to the input of the subtractor, the output of the third register is connected to the input of the adder,
The output of the subtracter is connected to the input of the first register, and the output of the adder is connected to the input of the third register.

【0022】さらにまた、本発明の上記構成によれば、
上記算術論理演算器は、上記第1のデータから上記第2
のデータを減算する減算演算を実行し、上記算術論理演
算器で実行された演算結果の符号情報が正の場合には、
上記第1のラッチの出力が上記データ生成回路の入力に
接続され、上記算術論理演算器で実行された演算結果の
符号情報が負の場合には、上記第2のラッチの出力が上
記データ生成回路の入力に接続され、かつ、上記減算器
と上記加算器が同時に演算を実行するよう構成してなる
ことを特徴とする。
Further, according to the above configuration of the present invention,
The arithmetic and logic unit calculates the second data from the first data.
If the sign information of the operation result executed by the arithmetic and logic unit is positive,
The output of the first latch is connected to the input of the data generation circuit, and if the sign information of the operation result executed by the arithmetic and logic unit is negative, the output of the second latch is output to the data generation circuit. The subtractor and the adder are connected to an input of a circuit, and are configured to execute an operation at the same time.

【0023】[0023]

【発明の実施の形態】次に、本発明の一実施例を図1を
用いて説明する。
Next, an embodiment of the present invention will be described with reference to FIG.

【0024】図1は、本発明によるスケーリング付メト
リック計算を実行する専用演算命令を備えたプロセッサ
の一実施形態を示すブロック図である。プロセッサ10
0は、処理を行うための命令が格納されているプログラ
ムメモリ101と、演算を行うために必要なデータが格
納してあるデータメモリ102と演算処理回路118
が、データバス103およびアドレスバス104により
接続されている。
FIG. 1 is a block diagram showing an embodiment of a processor having a dedicated operation instruction for executing a metric calculation with scaling according to the present invention. Processor 10
0 indicates a program memory 101 in which instructions for performing processing are stored, a data memory 102 in which data necessary for performing operations are stored, and an arithmetic processing circuit 118
Are connected by a data bus 103 and an address bus 104.

【0025】また、演算処理回路118は、プログラム
メモリ101からプログラムカウンタ105により指定
したアドレスに記憶された命令を読み込むとともに、そ
の命令を解読して制御回路106に信号を送る命令フェ
ッチデコード回路107と、算術演算や論理演算を行う
ALU108とALU108の2つの入力を格納するラ
ッチ109、110と、データメモリ102から転送さ
れるデータを格納する複数の汎用レジスタ111と、ス
ケーリング付メトリック計算を行う専用演算回路112
と、セレクタ113、114、115、121からな
る。また、専用演算回路112は、加算器117と減算
器116、および専用レジスタ119、120からな
る。
The arithmetic processing circuit 118 reads an instruction stored at an address designated by the program counter 105 from the program memory 101, decodes the instruction and sends a signal to the control circuit 106. ALU 108 for performing arithmetic and logical operations, latches 109 and 110 for storing two inputs of the ALU 108, a plurality of general-purpose registers 111 for storing data transferred from the data memory 102, and a dedicated operation for performing metric calculation with scaling Circuit 112
And selectors 113, 114, 115 and 121. The dedicated operation circuit 112 includes an adder 117, a subtractor 116, and dedicated registers 119 and 120.

【0026】汎用レジスタ111は、データバス103
に接続されており、データメモリ102から転送された
データを格納する。また、汎用レジスタ111に保持さ
れたデータはデータバス103に出力され、データメモ
リ102に格納される。
The general-purpose register 111 includes a data bus 103
And stores the data transferred from the data memory 102. The data held in the general-purpose register 111 is output to the data bus 103 and stored in the data memory 102.

【0027】ALU108は2つの入力を持ち、これら
は汎用レジスタ111の出力に接続している。また、A
LU108は、演算結果のデータと演算結果の符号情報
aを出力する。ALUから出力された演算結果のデータ
は、汎用レジスタ111に出力される。符号情報aは、
セレクタ113に出力される。
ALU 108 has two inputs, which are connected to the output of general purpose register 111. Also, A
The LU 108 outputs data of the operation result and code information a of the operation result. The operation result data output from the ALU is output to the general-purpose register 111. Code information a is
Output to selector 113.

【0028】ラッチ109、110はALU108の入
力データを保持する。また、ラッチの出力は、セレクタ
113を介して、専用演算回路112に入力される。セ
レクタ113は制御信号aによって、ラッチ109また
は110の出力と減算器116および加算器117の入
力を接続する。具体的には、制御信号aが0の場合は、
ラッチ109を接続し、制御信号aが1の場合はラッチ
110を接続する。
The latches 109 and 110 hold the input data of the ALU 108. The output of the latch is input to the dedicated arithmetic circuit 112 via the selector 113. The selector 113 connects the output of the latch 109 or 110 with the input of the subtractor 116 and the adder 117 according to the control signal a. Specifically, when the control signal a is 0,
The latch 109 is connected, and when the control signal a is 1, the latch 110 is connected.

【0029】専用レジスタ119、120は、データバ
ス103に接続されており、データメモリ102から転
送されたデータを格納する。また、専用レジスタ111
に保持されたデータはデータバス103に出力され、デ
ータメモリ102に格納される。
The dedicated registers 119 and 120 are connected to the data bus 103 and store the data transferred from the data memory 102. Also, the dedicated register 111
Is output to the data bus 103 and stored in the data memory 102.

【0030】減算器116は2つの入力を持ち、入力の
1方は専用レジスタ119の出力に接続しており、入力
のもう1方はセレクタ113に接続している。ALU1
08における演算結果の符号情報が1の場合は、ラッチ
109と専用レジスタ119に格納されているデータが
減算器116に出力され、演算が実行される。また、A
LU108における演算結果の符号情報が0の場合に
は、ラッチ110と専用レジスタ119に格納されてい
るデータが減算器116に出力され、演算が実行され
る。
The subtractor 116 has two inputs, one of which is connected to the output of the dedicated register 119, and the other of which is connected to the selector 113. ALU1
If the sign information of the operation result in 08 is 1, the data stored in the latch 109 and the dedicated register 119 is output to the subtractor 116, and the operation is executed. Also, A
When the sign information of the operation result in the LU 108 is 0, the data stored in the latch 110 and the dedicated register 119 is output to the subtractor 116, and the operation is executed.

【0031】加算器117は2つの入力を持ち、入力の
1方は専用レジスタ120の出力に接続しており、入力
のもう1方はセレクタ113に接続している。ALU1
08における演算結果の符号情報が1の場合は、ラッチ
109と専用レジスタ120に格納されているデータが
加算器117に出力され、演算が実行される。また、A
LU108における演算結果の符号情報が0の場合に
は、ラッチ110と専用レジスタ120に格納されてい
るデータが加算器117に出力され、演算が実行され
る。
The adder 117 has two inputs, one of which is connected to the output of the dedicated register 120, and the other of which is connected to the selector 113. ALU1
When the sign information of the operation result in 08 is 1, the data stored in the latch 109 and the dedicated register 120 is output to the adder 117, and the operation is executed. Also, A
When the sign information of the operation result in the LU 108 is 0, the data stored in the latch 110 and the dedicated register 120 is output to the adder 117, and the operation is executed.

【0032】次に、スケーリング付メトリック計算を行
う演算命令の動作を説明する。例えば、この演算命令
を、 SMAX R0,R1として、動作を説明する。
ここで、R0、R1は汎用レジスタ110の指定された
ソースオペランドである。まず、命令フェッチでコード
回路107は、SMAX命令をデコードし、デコード結
果を受けた制御回路106は制御信号cをセレクタ11
5に送り、制御信号fをALU108に送る。
Next, the operation of the operation instruction for performing the metric calculation with scaling will be described. For example, the operation will be described with this operation instruction as SMAX R0, R1.
Here, R0 and R1 are designated source operands of the general-purpose register 110. First, in the instruction fetch, the code circuit 107 decodes the SMAX instruction, and the control circuit 106 having received the decoding result outputs the control signal c to the selector 11.
5 and sends the control signal f to the ALU 108.

【0033】セレクタ115は、汎用レジスタR0と汎
用レジスタR1の出力とALU108の入力を接続す
る。汎用レジスタR0に格納してあるデータはラッチ1
09に保持され、汎用レジスタR1に格納してあるデー
タはラッチ110に保持される。ALU108は、汎用
レジスタR0のデータから汎用レジスタR1のデータを
減算し、減算結果の符号情報aをセレクタ121に出力
する。
The selector 115 connects the outputs of the general purpose registers R0 and R1 to the input of the ALU 108. The data stored in general-purpose register R0 is latch 1
09, and the data stored in the general-purpose register R1 is stored in the latch 110. The ALU 108 subtracts the data in the general-purpose register R1 from the data in the general-purpose register R0, and outputs the sign information a resulting from the subtraction to the selector 121.

【0034】セレクタ121は、符号情報aが0の場合
は、ラッチ109の出力を減算器116と加算器117
の入力に接続する。また、符号情報aが1の場合は、セ
レクタ121は、ラッチ110の出力を減算器116と
加算器117の入力に接続する。
When the code information a is 0, the selector 121 outputs the output of the latch 109 to the subtractor 116 and the adder 117.
Connect to the input of. When the code information a is 1, the selector 121 connects the output of the latch 110 to the inputs of the subtractor 116 and the adder 117.

【0035】減算器116は、ラッチ109またはラッ
チ110に保持されているデータから専用レジスタ11
9に保持されているデータを減算し、減算器116の出
力は汎用レジスタR1に格納される。
The subtractor 116 converts the data held in the latch 109 or 110 into the special register 11.
9 is subtracted, and the output of the subtractor 116 is stored in the general-purpose register R1.

【0036】加算器117は、ラッチ109またはラッ
チ110の保持されているデータと専用レジスタ120
に保持されているデータを加算し、加算器117の出力
は専用レジスタ120に格納される。
The adder 117 is provided between the data held in the latch 109 or the latch 110 and the dedicated register 120.
And the output of the adder 117 is stored in the dedicated register 120.

【0037】ALU108は、汎用レジスタR0と汎用
レジスタR1の値を比較し、減算器116と加算器11
7の入力データを決定する。入力データを受けた減算器
116と加算器117は、同時に演算を実行し、演算結
果は汎用レジスタR1および専用レジスタ120に保持
される。ALU108は、減算器116と加算器117
の演算が行われているのと同時のタイミングで他の演算
することが可能であり、さらに、ALU108の演算結
果と減算器116の演算結果と加算器117の演算結果
は、同時のタイミングでそれぞれのレジスタに転送され
る。
The ALU 108 compares the values of the general-purpose registers R0 and R1 with each other.
7 is determined. The subtractor 116 and the adder 117 that have received the input data execute the operation at the same time, and the operation result is held in the general-purpose register R1 and the dedicated register 120. The ALU 108 includes a subtractor 116 and an adder 117
It is possible to perform another operation at the same time as the operation of (A) is performed. Further, the operation result of the ALU 108, the operation result of the subtractor 116, and the operation result of the adder 117 Is transferred to the register.

【0038】図3は、状態数4の場合における、スケー
リング付メトリック計算の処理フローを示している。処
理302、303、304は1状態毎に実行する処理で
あり、本例の場合は状態数が4なので、4回繰り返され
る。処理301、305、306は時点Tにおいて1回
だけ実行する処理である。以下、時点Tにおけるスケー
リング付メトリック計算の処理を説明する。
FIG. 3 shows a processing flow of metric calculation with scaling when the number of states is four. Processes 302, 303, and 304 are performed for each state, and are repeated four times because the number of states is 4 in this example. Steps 301, 305, and 306 are executed only once at time T. Hereinafter, the processing of the metric calculation with scaling at the time T will be described.

【0039】処理301は初期化処理であり、Stを0
にセットする。Stは、図1の専用レジスタ120に格
納されるデータである。また、State-Countはカウンタ
であり、汎用レジスタR2に格納されるデータである。
A process 301 is an initialization process, in which St is set to 0.
Set to. St is data stored in the dedicated register 120 of FIG. State-Count is a counter, and is data stored in the general-purpose register R2.

【0040】次に、処理302は状態(0,0)における
メトリックを算出する処理である。まず、枝メトリック
b0、b1を算出し、2つのメトリック候補Kt0(0,0)=Pt-
1(0,0)+b0 、および、Kt0(0,1)=Pt-1(0,1)+b1 を算
出する。
Next, a process 302 is a process for calculating a metric in the state (0, 0). First, the branch metric
b0 and b1 are calculated, and two metric candidates Kt0 (0,0) = Pt−
1 (0,0) + b0 and Kt0 (0,1) = Pt-1 (0,1) + b1 are calculated.

【0041】次に、メトリック候補Kt0(0,0)は汎用レ
ジスタR0に格納され、また、メトリック候補Kt0(0,
1)は汎用レジスタR1に格納され、SMAX命令が実行
される。例えば、Kt0(0,1) > Kt1(0,1)と仮定する
と、ALU108は、セレクタ113に制御信号a=0
を出力する。ラッチ109に格納されているデータ、す
なわちKt0(0,1)が減算器116と加算器117に入力
され、演算を実行する。
Next, the metric candidate Kt0 (0,0) is stored in the general-purpose register R0.
1) is stored in the general-purpose register R1, and the SMAX instruction is executed. For example, assuming that Kt0 (0,1)> Kt1 (0,1), the ALU 108 sends the control signal a = 0 to the selector 113.
Is output. The data stored in the latch 109, that is, Kt0 (0,1), is input to the subtractor 116 and the adder 117, and executes an operation.

【0042】また、ALU108は、減算器116と加
算器117が演算を実行しているのと同時のタイミング
で、処理303の演算を実行する。
The ALU 108 performs the operation of the process 303 at the same time as the operation of the subtractor 116 and the adder 117.

【0043】上記の処理302および303は4回繰り
返し実行され、その結果として、時刻Tにおける全状態
のメトリック値Pt(0,0)、Pt(0,1)、Pt(1,0)、Pt
(1,1)とスケーリング値Stが算出される。ただし、全
状態のメトリック値はメモリに格納され、スケーリング
値Stは専用レジスタ120に格納されている。
The above processes 302 and 303 are repeatedly executed four times. As a result, the metric values Pt (0,0), Pt (0,1), Pt (1,0), Pt (1) of all the states at the time T are obtained.
(1, 1) and a scaling value St are calculated. However, the metric values of all states are stored in the memory, and the scaling value St is stored in the dedicated register 120.

【0044】処理305ではスケーリング値を算出する
処理である。専用レジスタ120に保持されているデー
タは(5)式の MAX{ Kt0(0,0),Kt0(0,1) } + MAX{ Kt1(0,
0),Kt1(0,1) } +MAX{ Kt0(1,0),Kt0(1,1) }
+ MAX{ Kt1(1,0),Kt1(1,1) } である。まず、専用レジスタ120と専用レジスタ11
9に保持されているスケーリング値のデータを汎用レジ
スタR4、R5に転送する。次に、ALU108は、R
4に格納してあるデータに対して2ビット右にシフトす
るシフト演算を行う。
The process 305 is a process for calculating a scaling value. The data held in the dedicated register 120 is expressed as MAX {Kt0 (0,0), Kt0 (0,1)} + MAX {Kt1 (0,
0), Kt1 (0,1) + + MAX {Kt0 (1,0), Kt0 (1,1)}
+ MAX {Kt1 (1,0), Kt1 (1,1)}. First, the dedicated register 120 and the dedicated register 11
9 is transferred to the general-purpose registers R4 and R5. Next, the ALU 108
4 is shifted by two bits to the right.

【0045】次に、ALU108はR4のデータとR5
のデータとで減算を行い、演算結果をR4に格納する。
ここで、R4のデータは時刻T+1でのスケーリング値
St+1であるので、R4のデータを専用レジスタ119
に転送し、時刻Tでのスケーリング付メトリック計算が
終了する。
Next, the ALU 108 stores the data of R4 and R5.
Is subtracted with the data of (1) and the operation result is stored in R4.
Here, since the data of R4 is the scaling value St + 1 at the time T + 1, the data of R4 is stored in the dedicated register 119.
And the calculation of the metric with scaling at the time T ends.

【0046】以上のように、本発明の演算命令は、まず
ALU108にて演算を行い、次に専用演算器112が
動作する構成になっているので、スケーリング値の計算
をスケーリング付メトリック計算に続けて処理してお
り、しかも2サイクルで実行するので従来よりも演算の
効率がよい。さらに、専用演算器112が動作するのと
同時のタイミングで、ALU108は他の演算命令を実
行することが可能である。専用演算回路はおもに減算器
および加算器とレジスタで構成されているため、新たに
付加する回路規模も小さい。
As described above, the arithmetic instruction of the present invention is configured so that the arithmetic operation is first performed by the ALU 108 and then the dedicated arithmetic unit 112 is operated. And the processing is performed in two cycles, so that the efficiency of the operation is higher than in the past. Further, the ALU 108 can execute another operation instruction at the same time as the operation of the dedicated operation unit 112. The dedicated arithmetic circuit mainly includes a subtractor, an adder, and a register, so that the scale of a newly added circuit is small.

【0047】[0047]

【発明の効果】本発明によれば、スケーリング値の計算
をスケーリング付メトリック計算に続けて処理すること
が可能になり、高速化と高効率のプロセッサが実現でき
る。特に、デジタルセルラをはじめとする携帯電話端末
等において用いられるDSPにおいて有効である。
According to the present invention, the calculation of the scaling value can be processed following the calculation of the metric with scaling, and a high-speed and high-efficiency processor can be realized. In particular, the present invention is effective in a DSP used in a cellular phone terminal such as a digital cellular phone.

【図面の簡単な説明】[Brief description of the drawings]

【図1】本発明による専用演算命令を備えたプロセッサ
の一実施形態を示すブロック図
FIG. 1 is a block diagram illustrating an embodiment of a processor having a dedicated operation instruction according to the present invention.

【図2】状態数4の例の場合におけるトレリス図FIG. 2 is a trellis diagram in the case of an example having four states

【図3】状態数4の例の場合における、スケーリング付
メトリック計算の処理フローを示す図。
FIG. 3 is a diagram showing a processing flow of metric calculation with scaling in the case of an example having four states.

【符号の説明】[Explanation of symbols]

100 …プロセッサ、101 …プログラムメモリ、102 …デ
ータメモリ、103 …データバス、104 …アドレスバス、
105 …プログラムカウンタ、106 …制御回路、107 …命
令フェッチデコード回路、108 …ALU、109 …ラッ
チ、110 …ラッチ、111 …汎用レジスタ、112 …専用演
算回路、113 …セレクタ、114 …セレクタ、115 …セレ
クタ、116 …減算器、117 …加算器、118 …演算処理回
路、119 …専用レジスタ、120 …専用レジスタ、121 …
セレクタ。
100: Processor, 101: Program memory, 102: Data memory, 103: Data bus, 104: Address bus,
105 ... program counter, 106 ... control circuit, 107 ... instruction fetch decode circuit, 108 ... ALU, 109 ... latch, 110 ... latch, 111 ... general purpose register, 112 ... dedicated arithmetic circuit, 113 ... selector, 114 ... selector, 115 ... Selector, 116 ... subtractor, 117 ... adder, 118 ... arithmetic processing circuit, 119 ... dedicated register, 120 ... dedicated register, 121 ...
selector.

Claims (5)

【特許請求の範囲】[Claims] 【請求項1】第1のレジスタから出力される第1および
第2のデータをそれぞれ保持するための第1および第2
のラッチと、該第1および該第2のデータを入力とする
算術論理演算器と、該第1または該第2のラッチの出力
を入力としてスケーリング付きメトリックに関するデー
タを生成するデータ生成回路とを有し、かつ、該データ
生成回路は、複数のビットからなる第3のデータを保持
するための第2のレジスタと、複数のビットからなる第
4のデータを保持するための第3のレジスタと、該第1
または該第2のデータと、該第3のデータとの減算によ
りメトリックをスケーリングするための減算器と、該第
1または該第2のデータと該第4のデータとの加算によ
りスケーリング値を算出する加算器とを具備してなるこ
とを特徴とするプロセッサ。
A first register for holding first and second data output from a first register, respectively;
, An arithmetic and logic unit that receives the first and second data as inputs, and a data generation circuit that receives, as an input, the output of the first or second latch and generates data related to a metric with scaling. And the data generation circuit has a second register for holding third data consisting of a plurality of bits, and a third register for holding fourth data consisting of a plurality of bits. , The first
Alternatively, a subtractor for scaling a metric by subtracting the second data and the third data, and calculating a scaling value by adding the first or second data to the fourth data A processor comprising:
【請求項2】上記第1のラッチまたは上記第2のラッチ
の出力が上記データ生成回路の入力に接続され、かつ、
上記第2のレジスタの出力は上記減算器の入力に接続さ
れ、上記第3のレジスタの出力は上記加算器の入力に接
続され、上記減算器の出力は上記第1のレジスタの入力
に接続され、上記加算器の出力は上記第3のレジスタの
入力に接続されてなることを特徴とする請求項1記載の
プロセッサ。
2. An output of the first latch or the second latch is connected to an input of the data generation circuit, and
The output of the second register is connected to the input of the subtractor, the output of the third register is connected to the input of the adder, and the output of the subtractor is connected to the input of the first register. 2. The processor according to claim 1, wherein an output of said adder is connected to an input of said third register.
【請求項3】上記算術論理演算器は、上記第1のデータ
から上記第2のデータを減算する減算演算を実行し、上
記算術論理演算器で実行された演算結果の符号情報が正
の場合には、上記第1のラッチの出力が上記データ生成
回路の入力に接続され、上記算術論理演算器で実行され
た演算結果の符号情報が負の場合には、上記第2のラッ
チの出力が上記データ生成回路の入力に接続され、上記
減算器と上記加算器が同時に演算を実行するよう構成し
てなることを特徴とする請求項1記載のプロセッサ。
3. The arithmetic and logic unit executes a subtraction operation of subtracting the second data from the first data, and when the sign information of the operation result executed by the arithmetic and logic unit is positive. The output of the first latch is connected to the input of the data generation circuit, and if the sign information of the operation result executed by the arithmetic and logic unit is negative, the output of the second latch is 2. The processor according to claim 1, wherein the processor is connected to an input of the data generation circuit, and the subtractor and the adder are configured to execute an operation at the same time.
【請求項4】メトリック演算のMAX命令を実行する演算
器と、メトリックをスケーリングするための減算器と、
スケーリングの値を算出する加算器と、該演算器に入力
される2つのデータを保持するラッチ手段とを有し、該
ラッチ手段と、該減算器および該加算器の入力をセレク
タを介して接続し、該セレクタは該MAX命令の演算結果
の符号情報で制御されるよう構成したことを特徴とする
プロセッサ。
4. An arithmetic unit for executing a MAX instruction of a metric operation, a subtractor for scaling a metric,
An adder for calculating a scaling value; and latch means for holding two data input to the arithmetic unit. The latch means is connected to the inputs of the subtractor and the adder via a selector. A processor characterized in that the selector is controlled by code information of a calculation result of the MAX instruction.
【請求項5】受信したデータから送信したデータを推定
する最尤推定法を用いて復調等化処理を行うデジタル・
シグナル・プロセッサにおいて、スケーリング付きメト
リック演算を行う専用演算回路を設け、かつ、該専用演
算回路は、メトリックをスケーリングするための減算器
と、スケーリング値を算出するための加算器とを有して
なり、該減算器と該加算器が並行して演算を実行するよ
う構成してなることを特徴とするプロセッサ。
5. A digital signal processor for performing demodulation and equalization processing using a maximum likelihood estimation method for estimating transmitted data from received data.
In the signal processor, a dedicated operation circuit for performing a metric operation with scaling is provided, and the dedicated operation circuit has a subtractor for scaling the metric and an adder for calculating a scaling value. , Wherein the subtractor and the adder are configured to execute an operation in parallel.
JP2000038022A 2000-02-09 2000-02-09 Processor Pending JP2001222408A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000038022A JP2001222408A (en) 2000-02-09 2000-02-09 Processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000038022A JP2001222408A (en) 2000-02-09 2000-02-09 Processor

Publications (1)

Publication Number Publication Date
JP2001222408A true JP2001222408A (en) 2001-08-17

Family

ID=18561828

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000038022A Pending JP2001222408A (en) 2000-02-09 2000-02-09 Processor

Country Status (1)

Country Link
JP (1) JP2001222408A (en)

Similar Documents

Publication Publication Date Title
JP3338374B2 (en) Arithmetic processing method and apparatus
US7398458B2 (en) Method and apparatus for implementing decode operations in a data processor
KR101334860B1 (en) System and method to perform fast rotation operations
US20050157823A1 (en) Technique for improving viterbi decoder performance
JPH09153822A (en) Method for executing addition, comparison, selection and butterfly computations and the instructions thereof in data processing system
EP1111798A1 (en) Digital signal processor
JP2001222408A (en) Processor
US7661059B2 (en) High performance turbo and Viterbi channel decoding in digital signal processors
JP3984790B2 (en) Viterbi decoding processor
US6529557B1 (en) Add-compare selection circuit
Schwall et al. High-speed turbo equalization for gpp-based software defined radios
EP1058392A1 (en) Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system
JP2004503141A (en) Viterbi equalizer using various hardware data paths for ACS and transmission metric calculations
Engin et al. Viterbi decoding on a coprocessor architecture with vector parallelism
US7171609B2 (en) Processor and method for convolutional decoding
CN115085742B (en) Decoding method, decoding device, electronic equipment and storage medium
JP3996858B2 (en) Arithmetic processing unit
JP3231647B2 (en) Viterbi decoder
JP3634333B2 (en) Digital signal processor
Rauwerda et al. Implementing an adaptive viterbi algorithm in coarse-grained reconfigurable hardware
JP3250363B2 (en) Arithmetic unit
JP3383661B2 (en) Arithmetic processing unit
KR100283904B1 (en) Digital signal processing unit
JPH0746145A (en) Arithmetic unit
Wang et al. Convolutional Decoding on Deep-pipelined SIMD Processor with Flexible Parallel Memory