JP3237267B2 - 演算装置 - Google Patents
演算装置Info
- Publication number
- JP3237267B2 JP3237267B2 JP03041993A JP3041993A JP3237267B2 JP 3237267 B2 JP3237267 B2 JP 3237267B2 JP 03041993 A JP03041993 A JP 03041993A JP 3041993 A JP3041993 A JP 3041993A JP 3237267 B2 JP3237267 B2 JP 3237267B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- output
- memory
- data
- stored
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Detection And Correction Of Errors (AREA)
- Error Detection And Correction (AREA)
Description
号のビタビ復号(Viterbi decoding)を行うディジタル
信号処理プロセッサ内部の演算装置に関するものであ
る。
(以下、DSPと略称する)は、移動体通信分野へのデ
ィジタルシステム導入の動きに合わせて、携帯電話等へ
の機器組み込み用途のプロセッサとして注目されてい
る。このようなディジタル移動通信用音声符号化装置を
実現するためのDSPにおいては、音声の符号化処理等
の演算のほかに、誤り訂正処理を行う必要がある。誤り
訂正の手法にはビタビ復号を使用するものがある。
という単純な処理の繰り返しで畳み込み符号の最尤復号
(maximal likelihood decoding)を実現するものであ
る。このビタビ復号では、情報ビット1ビットに対応す
る符号化データ(受信系列)を得るごとに、その時点で
の各状態の生き残りパスの累積計量(以下、パスメトリ
ックと称する)を計算し、更新する。
て、ある時点における状態S2m(mは正整数)と状態S
2m+1に対し、一つ前の状態Smと状態Sm+2K-2からそれ
ぞれ状態遷移を表わす2本のパスが伸びている様子を示
している。A2m、B2mは状態S2mに入力するパスの出力
シンボルと受信系列とのハミング距離(以下、ブランチ
メトリックと称する)である。C2m+1、D2m+1は状態S
2m+1に入力するパスのブランチメトリックである。パス
の選択は、まず、あらかじめ計算しておいた各ブランチ
メトリックのテーブルから、一つ前の時点の生き残りパ
スのそれぞれのパスメトリックの値に上記ブランチメト
リックを加えることにより、各パスの総合のメトリック
を算出する。状態S2mに入力する2本のパスのパスメト
リックを比較し、ハミング距離の合計が小さいパスを残
し、他は捨てる。ビタビアルゴリズムによる畳み込み符
号の復号は、以上のように、ブランチメトリックと1つ
前の時点までの入力に対するパスメトリックとの加算、
加算結果の比較、最適パスの選択、という加算、比較、
選択演算およびパスメトリックの記憶を、各時系列ごと
に2K-1個の状態に対して行う必要がある。
に示す概略ブロック図を参照しながら説明する。
ロセッサの命令語やビタビ復号における各状態のパスの
メトリック(累積計量)、情報ビット1ビットに対応す
る符号化データ(受信系列)の値に対して各パスがとる
ブランチメトリックの値のテーブル、各状態における生
き残りパスの選択結果などを記憶する。102はメモリ
101に接続され、データの供給や演算結果の格納等を
行うバス、103は算術論理演算を行う算術論理演算回
路、104と105は算術論理演算回路103の左側入
力の値と右側入力の値をそれぞれ一時記憶するラッチ回
路、106と107はそれぞれ演算結果を一時記憶する
レジスタである。
て、1つの受信系列に対してビタビ復号の加算、比較、
選択演算により、図2の状態S2mにおけるパスメトリッ
クを更新する動作とパス選択信号の記憶の動作につい
て、以下のような6つのステップに分けて説明する。 (1)パスメトリックとブランンチメトリックの第1の
加算ステップ 図2に示した状態Smにおけるパスメトリックの値をメ
モリ101からバス102を介してラッチ回路104に
格納し、ブランチメトリックA2mの値を同様にメモリ1
01からバス102を介してラッチ回路105に格納す
る。算術論理演算回路103はラッチ回路104と10
5の内容の加算を行い、レジスタ106に格納する。 (2)パスメトリックとブランチメトリックの第2の加
算ステップ 図2に示した状態Sm+2K-1におけるパスメトリックの値
をメモリ101からバス102を介してラッチ回路10
4に格納し、ブランチメトリックB2mの値を同様にメモ
リ101からバス102を介してラッチ回路105に格
納する。算術論理演算回路103はラッチ回路104と
105の内容の加算を行い、レジスタ107に格納す
る。 (3)2個の加算結果の減算(大小比較)ステップ レジスタ106と107の内容をそれぞれラッチ回路1
04と105に格納する。算術論理演算回路103はラ
ッチ回路104と105の減算を行う。結果の格納はし
ない。 (4)減算結果の符号判定(選択)ステップ 制御部(図示せず)は上記ステップ(3)の減算結果の
符号を判定し、以下の(5)、(6)のステップのプロ
グラム制御(分岐)を行う。 (5)小であると判定された加算結果の格納(パスメト
リックの更新)ステップ上記ステップ(4)の結果によ
り上記ステップ(3)の減算結果が負であれば、レジス
タ106の内容をメモリ101に格納する。ステップ
(3)の減算結果が正であれば、レジスタ107の内容
をメモリ101に格納する。 (6)パス選択信号の記憶ステップ 上記ステップ(4)の結果により上記ステップ(3)の
減算結果が負であれば、値‘0’をメモリ101に格納
する。ステップ(3)の減算結果が正であれば、値
‘1’をメモリ101に格納する。
状態のパスメトリックを更新する。このように上記従来
の演算装置では、算術論理演算回路103において、ビ
タビ復号における加算と比較を行い、この比較結果によ
ってプログラム制御を行うことにより、ビタビ復号処理
を行うことができる。
来の演算装置では、1回の加算、比較、選択演算に要す
る演算ステップ数が多く、また、パス選択信号1ビット
をメモリの1ワードに記憶するため、大きいメモリ量を
必要とするなどの問題があった。
るものであり、少ない演算ステップ数と少ないメモリ量
でビタビ復号を行うことができるようにした演算装置を
提供することを目的とするものである。
目的を達成するために、ビット幅がn(nは正整数)の
第1及び第2のデータをそれぞれ上位桁と下位桁に記憶
する第1のメモリと、ビット幅がnの第3及び第4のデ
ータをそれぞれ上位桁と下位桁に記憶する第2のメモリ
と、上記第1及び第2のメモリの上位桁に記憶された第
1のデータと第3のデータとの第1の加算と下位桁に記
憶された第2のデータと第4のデータとの第2の加算を
並列に実行する加算器と、上記第1、第2の加算の値を
比較し、加算結果の大小を示す選択制御信号を出力する
比較器と、上記選択制御信号をビット単位でシフトし、
記憶する第1のレジスタと、上記第1、第2の加算の値
をそれぞれ記憶する第2のレジスタと、上記選択制御信
号に基づいて、上記第2のレジスタに記憶された上記第
1、第2の加算の値のどちらかを選択し、上記第1のメ
モリに書き込む書き込み手段を備えたものである。
めに、上記第2のレジスタに記憶された上記第1、第2
の加算の値のどちらかを上記第1のメモリに書き込む場
合に、上記第1のメモリのビット幅の上位側か下位側の
いずれかを選択して書き込む書き込み手段を備えたもの
である。
めに、上記第1のメモリから読み出したデータを一時記
憶して加算器に出力する記憶手段を備えたものである。
請求項4の発明は、上記目的を達成するために、上記第
1及び第2のメモリに記憶されている上記第1,第2,
第3,第4のデータの内、少なくとも2つのデータの演
算を行う演算手段と、上記演算手段の出力を第1のメモ
リに書き込む書き込み手段と、上記演算手段の出力を正
規化するために必要とする左シフト数を検出するプライ
オリティ・エンコーダと、上記プライオリティ・エンコ
ーダ出力と上記加算器出力の下位ビットのいずれかを選
択して上記比較器に出力する第1のマルチプレクサと、
上記プライオリティ・エンコーダ出力と後述する第3の
レジスタ出力とのいずれかを上記選択制御信号に従って
選択するセレクタと、上記セレクタ出力を記憶する第3
のレジスタと、上記第3のレジスタ出力と上記加算器出
力の上位ビットとのいずれかを選択して上記比較器に出
力する第2のマルチプレクサと、上記第1のメモリから
読み出した第1、第2のデータの内、すくなくとも1つ
のデータを上記第3のレジスタから出力されるシフト数
に従ってシフトするバレルシフタとを備えたものであ
る。
が第1のメモリと第2のメモリに格納されたデータの上
位桁同士の第1の加算および下位桁同士の第2の加算を
同時に行い、比較器が上記第1、第2の加算の値の大小
比較を行い、加算結果の大小を示す選択制御信号を出力
し、シフトレジスタが上記選択制御信号をビット単位で
シフトしながら順に記憶し、書き込み手段が上記選択制
御信号に基づいて、上記第1、第2の加算の値のどちら
かを選択することにより、ビタビ復号における生き残り
パスの累積計量の加算、比較、選択演算とパス選択信号
の記憶を少ないステップ数で実現でき、しかも、パス選
択信号の記憶を小さいメモリ量で行うことができる。
のレジスタに記憶された上記第1、第2の加算の値のど
ちらかを上記第1のメモリに書き込む場合に、上記第1
のメモリのビット幅の上位側か下位側のいずれかを選択
して書き込むことにより、パスの累積計量の記憶を小さ
いメモリ量で行うことができる。また、上記第2のレジ
スタの上位側、下位側の値(第1、第2の加算の値)の
どちらかを、上記第1のメモリの選択した位置(上位側
または下位側)に書き込むことができる。
のメモリから読み出したデータをレジスタが一時記憶す
るとともに、加算器に出力し、加算器が第1回目の加算
を行い、第2回目は第1回目に上記レジスタに記憶され
たデータに対して加算器が加算を行うことにより、メモ
リアクセス回数が少なくなるので、ビタビ復号を少ない
ステップ数で行うことができる。また、請求項4の発明
によれば、演算手段の出力を上記第1のメモリに格納す
るのと同時に、上記プライオリティエンコーダが、演算
手段の出力を正規化するために必要な左シフト数を検出
して上記セレクタに出力し、上記セレクタが上記プライ
オリティエンコーダ出力と上記第3のレジスタ出力のい
ずれかを上記選択制御信号に従って選択し、上記第3の
レジスタに格納し、バレルシフタが上記第1のメモリか
ら読み出された第1、第2のデータ内の少なくとも1つ
のデータを上記第3のレジスタから出力されるシフト数
に従ってシフトすることにより、演算手段から連続して
出力される一連の演算結果をメモリに格納するのと同時
に、その一連の演算結果をブロックデータとして正規化
するのに必要な最小の左シフトビット数を求めることが
できるので、ブロック浮動小数点演算を高速に行うこと
ができる。また、一つの演算装置でビタビ複号とブロッ
ク浮動小数点演算行うことができるので、ハードウェア
のコストを削減できる。
照しながら説明する。
を示す概略ブロック図である。図1において、1はビタ
ビ復号における各状態の生き残りパスの累積計量(パス
メトリック)や各状態における生き残りパスの選択結果
(パスセレクト信号)などを記憶する16ビット幅のメ
モリ、2は情報ビット1ビットに対応する符号化データ
(受信系列)の値に対して各パスがとるブランチメトリ
ックの値のテーブルをあらかじめ記憶した16ビット幅
のメモリ、3はメモリ1に接続され、後述する加算器7
の左側入力にデータを与える16ビットのバス、4はメ
モリ2に接続され、後述する加算器7の右側入力にデー
タを与える16ビットのバス、5はバス3の内容を一時
記憶して後述する加算器7の左側入力に出力するラッチ
回路、6はバス4の内容を一時記憶して後述する加算器
7の右側入力に出力するラッチ回路、7はラッチ回路5
と6の出力を加算する16ビットの加算器、8は加算器
7の出力の上位8ビットの値と下位8ビットの値を入力
して大小比較し、上位8ビットの値の方が小の場合に
0、下位8ビットの値の方が小の場合に1の値をとるパ
スセレクト信号9を出力する比較器、10はパスセレク
ト信号9を入力として後述するバス15に出力する16
ビットのシフトレジスタ、11は加算器7の出力を記憶
するレジスタ、12はパスセレクト信号9の値が0のと
きに動作し、レジスタ11の上位8ビットの値を、制御
部(図示せず)が出力する上位下位選択信号14の値が
1のときに後述するバス15の上位8ビットに出力し、
上位下位選択信号14が0のときにバス15の下位ビッ
ト8に出力する分配器、13はパスセレクト信号9の値
が1のときに動作し、レジスタ11の上位8ビットの値
を、制御部(図示せず)が出力する上位下位選択信号1
4の値が1のときにバス15の上位8ビットに出力し、
上位下位選択信号14が0のときにバス15の下位8ビ
ットに出力する分配器、15は分配器12と13および
シフトレジスタ10に接続され、後述するレジスタ16
に出力する16ビット幅のバス、16はバス15の値を
一時記憶し、メモリ1に出力するレジスタ、17は制御
部(図示せず)から出力され、レジスタ16の上位8ビ
ットの値をメモリ1の上位8ビットに書き込むことを指
示する上位書き込み信号、18は制御部(図示せず)か
ら出力され、レジスタ16の下位8ビットの値をメモリ
1の下位8ビットに書き込むことを指示する下位書き込
み信号である。
て、以下、図1、図2、(表1)、(表2)を用いてそ
の動作を説明する。
メトリックの値がメモリ1に格納されているときのメモ
リマップを示したものである。ここで、Mmはある時点
における状態Smにおける生き残りパスのメトリックを
表わす。Kは復号する畳み込み符号の拘束長であり、ア
ドレスt´+0からt´+2K-2−1の間のM´2mは、
アドレスt+mに格納されたMmとMm+2K-2の値とそれ
ぞれに対応するブランチメトリックの値に対して加算、
比較、選択演算を行って更新された、次の時点における
状態S2mの生き残りパスに対するパスメトリックの値で
ある。
系列に対して各パスがとるブランチメトリックの値をあ
らかじめ計算した値をメモリ2に格納するときのメモリ
マップを示したものである。
S2mとS2m+1の生き残りパスの累積計量(パスメトリッ
ク)を計算して更新するための加算、比較、選択演算と
パスセレクト信号の記憶の動作について、(1)状態S
2mに向かう2本のパスに対するパスメトリックとブラン
チメトリックの第1の加算、比較、選択のステップ、
(2)状態S2m+1に向かう2本のパスに対する第2の加
算、比較、選択のステップ、(3)累積計量転送のステ
ップの3つのステップに分けて説明する。この3ステッ
プをmの値を1ずつ更新しながら繰り返して実行してい
く。 (1)状態S2mに向かう2本のパスに対するパスメトリ
ックとブランチメトリックの第1の加算、比較、選択の
ステップ 図2に示した状態Smおよび状態Sm+2K-2におけるパス
メトリックの値MmとMm+2K-2をメモリ1のt+m番地
から読み出し、バス3を介してラッチ回路5に格納し、
受信系列の値に対応したブランチメトリックA2mおよび
B2mの値をメモリ2の2m番地から読み出し、バス4を
介してラッチ回路6に格納する。加算器7はラッチ回路
5と6の内容の加算を行い、レジスタ11に格納する。
このとき、加算器7は上位8ビットの部分でMm+A2m
の加算を行い、下位8ビットの部分でMm+2K-2+B2mの
加算を行う。比較器8は加算器7の出力の上位8ビット
の値Mm+A2mと下位8ビットの値Mm+2K-2+B2mの大
小比較を行い、上位8ビットの値の方が小の場合には
0、下位8ビットの値の方が小の場合には1の値をとる
パスセレクト信号9を出力し、シフトレジスタ10に出
力する。シフトレジスタ10はパスセレクト信号9を入
力すると同時に、1ビットシフトする。 (2)状態S2m+1に向かう2本のパスに対する第2の加
算、比較、選択のステップ (2−a)請求項2の発明では、上記ステップ(1)で
ラッチ回路5に格納した状態Smおよび状態Sm+2K-2に
おけるパスメトリックの値MmとMm+2K-2をラッチ回路
5が保持している(請求項1の発明では上記ステップ
(1)のときと同じパスメトリックの値MmとMm+2K-2
をメモリ1のt+m番地からもう一度読み出す。)。ま
た、受信系列の値に対応したブランチメトリックC2m+1
およびD2m+1の値をメモリ2の2m+1番地から読み出
し、バス4を介してラッチ回路6に格納する。加算器7
はラッチ回路5と6の内容の加算を行い、レジスタ11
に格納する。このとき、加算器7は上位8ビットの部分
でMm+C2m+1の加算を行い、下位8ビットの部分でMm
+2K-2+D2m+1の加算を行う。比較器8は加算器7の出
力の上位8ビットの値Mm+C2m+1と下位8ビットの値
Mm+2K-2+D2m+1の大小比較を行い、上位8ビットの値
の方が小の場合には0、下位8ビットの値の方が小の場
合には1の値をとるパスセレクト信号9を出力し、シフ
トレジスタ10に出力する。シフトレジスタ10はパス
セレクト信号9を入力すると同時に、1ビットシフトす
る。
(3)の処理を実行している場合で、レジスタ16の上
位8ビットに値M´2m-1(2m−1は0以上、2K-2−
1以下)が格納されている場合には、上位書き込み信号
17によりメモリ1のt´+2m−1番地の上位8ビッ
トに値M´2m-1を書き込み、以前のステップでレジスタ
16の下位8ビットに値M´2m-1+2K-2(2m−1+2K
-2は2K-2以上、2K-1−1以下)が格納されている場合
には、下位書き込み信号18によりメモリ1のt´+2
m−1番地の下位8ビットに値M´2m-1+2K-2を書き込
む。
ット、下位8ビットに上記ステップ(1)でそれぞれ書
き込まれた値Mm+A2mと値Mm+2K-2+B2mのうち、上
記ステップ(1)で出力されたパスセレクト信号9の値
が0の場合には、上位8ビットの値Mm+A2mを分配器
12とバス15を介してレジスタ16に格納し、パスセ
レクト信号9の値が1の場合には、下位8ビットの値M
m+2K-2+D2m+1を分配器13とバス15を介してレジス
タ16に格納する。このとき、mが2K-2−1以下であ
れば、更新されたパスメトリックの値M´2mとして、上
位下位選択信号14によりバス15の上位8ビットを介
してレジスタ16の上位8ビットに格納する。mが2K-
2以上であれば、更新されたパスメトリックの値M´2m+
2K-2として、上位下位選択信号14によりバス5の下位
8ビットを介してレジスタ16の下位8ビットに格納す
る。 (3)累積計量転送のステップ (3−a)上記ステップ(2)でレジスタ16の上位8
ビットに値M´2m(2mは0以上、2K-2−1以下)を
格納した場合には、上記書き込み信号17によりメモリ
1のt´+2m番地の上位8ビットに値M´2mを書き込
み、上記ステップ(2)でレジスタ16の下位8ビット
に値M´2m+2K-2(2mは0以上、2K-2−1以下)を格
納した場合には、下位書き込み信号18によりメモリ1
のt´+2m番地の下位ビットに値M´2m+2K-2を書き
込む。
ット、下位8ビットに上記ステップ(2)でそれぞれ書
き込まれた値Mm+C2m+1と値Mm+2K-2+D2m+1のう
ち、上記ステップ(2)で出力されたパスセレクト信号
9の値が0の場合には、上位8ビットの値Mm+C2m+1
を分配器12とバス15を介してレジスタ16に格納
し、パスセレクト信号9の値が1の場合には、下位8ビ
ットの値Mm+2K-2+D2m+1を分配器13とバス15を介
してレジスタ16に格納する。このとき、mが2K-2−
1以下であれば、更新されたパスメトリックの値M´2m
として、上位下位選択信号14によりバス15の上位8
ビットを介してレジスタ16の上位8ビットに格納す
る。mが2K-2以上であれば、更新されたパスメトリッ
クの値M´2m+2K-2として、上位下位選択信号14によ
りバス15の下位8ビットを介してレジスタ16の下位
8ビットに格納する。
テップで行っていた加算、比較、選択の演算2回を、上
記の3ステップで実行することができる。上記3ステッ
プの処理を、mの値を0から1ずつ増加させながら2K-
2回繰り返した後、上記(3−a)の処理を1回行うこ
とにより、ある時点における2K-1個の状態の生き残り
パスのパスメトリックを計算して更新することができ
る。また、上記3ステップを8回繰り返すたびにシフト
レジスタ10の値をバス15を介してメモリ1に格納す
ることにより、各時点、各状態におけるパスセレクト信
号9を必要最少限のメモリ量で記憶することができる。
が、各時点における状態Smおよび状態Sm+2K-2の生き
残りパスのパスメトリックの値を組にして1語に記憶
し、メモリ2が受信系列の値に対してパスがとりうるブ
ランチメトリックの値をあらかじめ記憶する際に、状態
Smから状態S2mに遷移するパスと状態Sm+2K-2から状
態S2mに遷移するパスの2本のパスが取り得るブランチ
メトリックの値を組にして1語に記憶し、メモリ1とメ
モリ2から同時に読み出した上記2本のパスに対するパ
スメトリックとブランチメトリックの値を加算器7が上
位側と下位側で同時に加算し、比較器8が加算器7の出
力の上位側と下位側の値の大小比較することにより、い
ずれのパスのパスメトリックが小さいかを判断してパス
セレクト信号9を出力し、シフトレジスタ10がパスセ
レクト信号9を1ビットずつ記憶し、加算器7の出力を
記憶したレジスタ11の上位側の値と下位側の値のう
ち、パスセレクト信号9により小であると判断された値
を分配器12、13、バス15、レジスタ16を介して
メモリ1の上位、または下位の8ビットに書き込むこと
により、ビタビ復号における生き残りパスの累積計量の
加算、比較、選択演算による更新とパス選択信号の記憶
を従来例の約4分の1という少ないステップ数で行うこ
とができる。また、上記従来例ではメモリの1ワードに
記憶していた1ビットのパス選択信号を、シフトレジス
タ10に16ビット分記憶した時点でメモリ1に格納す
ることにより、従来例の16分の1という小さいメモリ
ワード数でパス選択信号の記憶を行うことができる。ま
た、更新したパスメトリックの値をメモリ1の上位、ま
たは下位の8ビットのどちらかのみに書き込むことによ
り、パスメトリックの値も従来例の2分の1のメモリワ
ード数で記憶することができる。
かじめステップ(1)でラッチ回路5に格納した状態S
mおよび状態Sm+2K-2におけるパスメトリックの値Mmと
Mm+2K-2をラッチ回路5が保持し、加算器7に出力する
ことにより、ステップ(1)のときと同じパスメトリッ
クの値MmとMm+2K-2を、メモリ1からもう1度読み出
す必要がなくなるので、メモリ1に対するアクセスを上
記3つのステップごとにそれぞれ1回にすることがで
き、必要最少限のメモリアクセス回数で処理できるた
め、低消費電力でビタビ復号を行うことができる。
7、レジスタ11、ラッチ回路5、6は、ディジタル信
号処理プロセッサ等には数値演算用にあらかじめ設置さ
れているのが普通であるので、比較器8やシフトレジス
タ10等のわずかなハードウェアの追加のみで演算装置
を実現できるという利点をも有する。
面を参照しながら説明する。図4は本発明の第2実施例
における演算装置を示す概略ブロック図である。
施例と同様である。ただし、バス3及びバス4はメモリ
1、メモリ2に接続されている。19はメモリ1から読
み出したデータとメモリ2から読みだしたデータとの演
算を行う演算装置、20は演算装置出力を正規化するた
めに必要な左シフト数を検出するプライオリティ・エン
コーダ、21はプライオリティ・エンコーダ20の出力
と加算器7の出力の下位nビットのいずれかを選択して
比較器8に出力するマルチプレクサ、22はプライオリ
ティ・エンコーダ20の出力と後述するレジスタ23の
出力とのいずれかをパスセレクト信号9に従って選択す
るセレクタ、23はセレクタ出力を記憶するレジスタ、
24はレジスタ23の出力と加算器7出力の上位nビッ
トとのいずれかを選択して比較器8に出力するマルチプ
レクサ、25はメモリ1からバス4を介して読み出した
データを、レジスタ23から出力されるシフト数に従っ
てシフトするバレルシフタである。
1の実施例で示したビタビ復号の処理の他に、ブロック
小数点演算を高速に行うことができる。ビタビ復号の処
理については第1の実施例の場合と全く同様に行うこと
ができるので説明は省略し、以下、ブロック浮動小数点
演算を行う場合の動作を説明する。
き、しかも高速演算が可能であるなどの利点から、固定
小数点表現による数体系を用いる場合が多い。しかし、
演算を繰り返して行う場合には常に桁あふれ・桁落ちの
可能性があるという欠点もある。この欠点を補うための
方法がブロック浮動小数点と呼ばれる数値の表現方法で
ある。これは処理を行う複数のデータに対して、1個の
指数部を持つ表現方法である。すなわち複数のデータに
対して同一のスケーリングを施すことにより桁落ちなど
を防ぐものである。原則的には乗算時の桁落ちを防ぐた
め、データを左詰めしておく。このように複数のデータ
に対して同一のスケーリングを施すには、個々のデータ
に対してそれを正規化するのに必要な左シフト数を求
め、さらにそれらの左シフト数の中で、最小のシフト数
を求めて、そのシフト数で全てのデータを左シフトして
正規化する。
の2の補数体系で、最上位ビットが符号ビットであり、
小数点位置が最上位ビットの右側にある場合について、
上記のようなブロック浮動小数点処理を行う方法を図4
を用いて説明する。
る、必ずしも正規化されてはいない一連の演算結果をバ
レルシフタ25・加算器7・レジスタ11・バス15等
を介してメモリ1に格納すると同時に、以下の方法でブ
ロック小数点演算処理を行う。 (1)まずプライオリティ・エンコーダ20に最下位ビ
ットのみが1で、他のビットが0である値を入力する
と、正規化するのに必要な最大の左シフト数14が出力
される。この値をセレクタ22を介してレジスタ23に
初期値として格納しておく。 (2)次に演算装置19が出力する値をバレルシフタ2
5と加算器7をスルーで通過させてレジスタ11に格納
すると同時に、プライオリティ・エンコーダ20は、同
じ値をバレルシフタ出力として入力し、正規化するのに
必要な左シフト数を算出してマルチプレクサ21とセレ
クタ22出力する。マルチプレクサ21はプライオリテ
ィ・エンコーダ20の出力を選択して出力し、マルチプ
レクサ24はレジスタ23の出力を選択して出力する。
比較器8はマルチプレクサ21と24の出力を大小比較
して選択信号をセレクタ22に出力する。セレクタ22
は比較器8が出力する選択信号に基づいて、レジスタ2
3の内容と、プライオリティ・エンコーダ出力のうち小
さい方の値をレジスタ23に新たに格納する。また、レ
ジスタ11に格納された演算装置出力の値はバス15を
介してメモリ1に格納する。この時分配器12と分配器
13は、レジスタ11の上位8ビットをバス15の上位
8ビットに出力し、レジスタ11の下位8ビットはバス
15の下位8ビットに出力するように動作させる。 (3)演算装置19から新たな演算結果が出力するたび
に、上記(2)の動作を繰り返すことにより、一連の演
算結果を正規化する際に必要な最小の左シフトビット数
を求めることができ、レジスタ23に保持される。 (4)次にメモリ1に格納された一連の演算結果を正規
化するために、順に読み出し、バス4とラッチ6を介し
てバレルシフタ25に出力する。バレルシフタ25はレ
ジスタ23で示されるシフト数に従ってシフトし、加算
器7をスルーで通過させてレジスタ11とバス15・レ
ジスタ16を介してメモリ1に格納する。
19の出力をメモリ1に格納するのと同時に、プライオ
リティエンコーダ20が、演算装置19出力の演算結果
を正規化するために必要な左シフト数を検出して比較器
8に出力し、比較器がプライオリティエン出力とレジス
タ23の出力を比較して比較結果をセレクタ22に出力
し、セレクタ22が比較器8の比較結果に基づいて、プ
ライオリティエンコーダ20の出力とレジスタ23の出
力のうち値が小さい方を選択してレジスタ23に新たに
格納することにより、演算装置19から連続して出力さ
れる一連の演算結果をメモリ1に格納するのと同時に、
その一連の演算結果をブロックデータとして正規化する
のに必要な最小の左シフトビット数を求めることができ
るので、ブロック浮動小数点演算を高速に行うことがで
きる。また比較器8は、ビタビ復号処理の実行時とブロ
ック浮動小数点演算処理実行時の両者で共通に利用でき
るので、コストの低減を図ることができる。
の分配器12と13をレジスタ11とバス15の間に設
置したが、上記2個の分配器12、13をバス15とレ
ジスタ16の間に設置してもよい。また、メモリ1、
2、加算器7、シフトレジスタ10や比較器8等のビッ
ト幅は、復号する畳み込み符号の拘束長や符号化率等の
値や復号する受信系列の数に合わせて適当に設定すれば
よい。例えば、符号化率が2分の1のときには、受信系
列のビット数は2ビットであり、2ビットの符号間のハ
ミング距離は0、1、2のいずれかであるので、(表
2)に示したようにメモリ2に格納したブランチメトリ
ックの値A、B、C、Dは2ビットで表わすことができ
る。そこで、メモリ2を4ビット幅として、下位2ビッ
トのビット0とビット1をそれぞれバス4のビット0と
ビット1に接続し、上位2ビットのビット2とビット3
をそれぞれバス4のビット8とビット9に接続してもよ
い。また、例えば、符号化率が2分の1で復号する受信
系列の数が63以下のときには、パスメトリック(累積
計量)の値は2×63=126を越えることがないの
で、パスメトリックの値を記憶するメモリ1のビット幅
を14ビットにし、加算器7やバス3、レジスタ11等
も14ビット幅にしてもよい。
19の出力を、バレルシフタ25・加算器7等を介して
メモリ1に格納する際、バレルシフタ25を動作させず
にスルーで通過させたが、あらかじめ演算装置19の出
力に桁あふれや桁落ちが予想される場合には、バレルシ
フタ25のシフト数を自由に設定できるようにしておい
て、桁あふれや桁落ちを防ぐためのシフトを行ってか
ら、メモリ1への格納とプライオリティ・エンコーダ2
0における正規化シフト数検出を行うようにしてもよ
い。このほか、本発明は、その基本的技術思想を逸脱し
ない範囲で種々設計変更することができる。
のメモリと第2のメモリに格納されたデータの上位桁同
士の第1の加算及び下位桁同士の第2の加算を同時に行
い、比較器が上記第1、第2の加算の値の大小比較を行
い、加算結果の大小を示す選択制御信号を出力し、シフ
トレジスタが上記選択制御信号をビット単位でシフトし
ながら順に記憶し、書き込み手段が上記選択制御信号に
基づいて、上記第1、第2の加算の値のどちらかを選択
することにより、ビタビ復号における生き残りパスの累
積計量の加算、比較、選択演算とパス選択信号の記憶を
少ないステップ数で実現でき、しかも、パス選択信号の
記憶を小さいメモリ量で行うことができる。したがっ
て、ビタビ復号処理を高速に行うことができ、しかも、
コストの低下を図ることができる。
のレジスタに記憶された上記第1、第2の加算の値のど
ちらかを上記第1のメモリに書き込む場合に、上記第1
のメモリのビット幅の上位側か下位側のいずれかを選択
して書き込むことにより、パスの累積計量の記憶を小さ
いメモリ量で行うことができ、したがって、コストの低
下を図ることができる。また、上記第2のレジスタの上
位側、下位側の値(第1、第2の加算の値)のどちらか
を、上記第1のメモリの選択した位置(上位側または下
位側)に書き込むことができる。
のメモリから読み出したデータをレジスタが一時記憶す
るとともに、加算器に出力し、加算器が第1回目の加算
を行い、第2回目は第1回目に上記レジスタに記憶され
たデータに対して加算器が加算を行うことにより、メモ
リアクセス回数が少なくなるので、ビタビ復号を少ない
ステップ数で行うことができる。 したがって、ビタビ復
号処理を高速に行うことができ、しかも、消費電力の低
下を図ることができる。 また、請求項4の発明によれ
ば、演算手段の出力を上記第1のメモリに格納するのと
同時に、上記プライオリティエンコーダが、演算手段の
出力を正規化するために必要な左シフト数を検出して上
記セレクタに出力し、上記セレクタが上記プライオリテ
ィエンコーダ出力と上記第3のレジスタ出力のいずれか
を上記選択信号に従って選択し、上記第3のレジスタに
格納し、バレルシフタが上記第1のメモリから読み出さ
れた第1、第2のデータ内の少なくとも1つのデータを
上記第3のレジスタから出力されるシフト数に従ってシ
フトすることにより、演算手段から連続して出力される
一連の演算結果をメモリに格納するのと同時に、その一
連の演算結果をブロックデータとして正規化するのに必
要な最小の左シフトビット数を求めることができるの
で、ブロック浮動小数点演算を高速に行うことができ
る。また、一つの演算装置でビタビ複号とブロック浮動
小数点演算行うことができるので、ハードウェアのコス
トを削減できる。
ブロック図
のパスを示す説明図
ブロック図
Claims (4)
- 【請求項1】 ビット幅がn(nは正整数)の第1及び
第2のデータをそれぞれ上位桁と下位桁に記憶する第1
のメモリと、ビット幅がnの第3及び第4のデータをそ
れぞれ上位桁と下位桁に記憶する第2のメモリと、上記
第1及び第2のメモリの上位桁に記憶された第1のデー
タと第3のデータとの第1の加算と下位桁に記憶された
第2のデータと第4のデータとの第2の加算を並列に実
行する加算器と、上記第1、第2の加算の値を比較し、
加算結果の大小を示す選択制御信号を出力する比較器
と、上記選択制御信号をビット単位でシフトし、記憶す
る第1のレジスタと、上記第1、第2の加算の値をそれ
ぞれ記憶する第2のレジスタと、上記選択制御信号に基
づいて、上記第2のレジスタに記憶された上記第1、第
2の加算の値のどちらかを選択し、上記第1のメモリに
書き込む書き込み手段とを備えたことを特徴とする演算
装置。 - 【請求項2】 上記書き込み手段は、上記第2のレジス
タに記憶された上記第1、第2の加算の値のどちらかを
上記第1のメモリに書き込む場合に、上記第1のメモリ
のビット幅の上位側か下位側のいずれかを選択して書き
込むことを特徴とする請求項1記載の演算装置。 - 【請求項3】 上記第1のメモリから読み出したデータ
を一時記憶して加算器に出力する記憶手段を備えた請求
項1または2に記載の演算装置。 - 【請求項4】 上記第1及び第2のメモリに記憶されて
いる上記第1,第2,第3,第4のデータの内、少なく
とも2つのデータの演算を行う演算手段と、上記演算手
段の出力を上記第1のメモリに書き込む書き込み手段
と、上記演算手段の出力を正規化するために必要とする
左シフト数を検出するプライオリティ・エンコーダと、
上記プライオリティ・エンコーダ出力と上記加算器出力
の下位ビットのいずれかを選択して上記比較器に出力す
る第1のマルチプレクサと、上記プライオリティ・エン
コーダ出力と後述する第3のレジスタ出力とのいずれか
を上記選択制御信号に従って選択するセレクタと、上記
セレクタ出力を記憶する第3のレジスタと、上記第3の
レジスタ出力と上記加算器出力の上位ビットとのいずれ
かを選択して上記比較器に出力する第2のマルチプレク
サと、上記第1のメモリから読み出した第1、第2のデ
ータの内、少なくとも1つのデータを上記第3のレジス
タから出力されるシフト数に従ってシフトするバレルシ
フタとを備えた請求項1記載の演算装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03041993A JP3237267B2 (ja) | 1992-07-23 | 1993-02-19 | 演算装置 |
US08/198,640 US5440504A (en) | 1993-02-19 | 1994-02-18 | Arithmetic apparatus for digital signal processor |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19663892 | 1992-07-23 | ||
JP4-196638 | 1992-07-23 | ||
JP03041993A JP3237267B2 (ja) | 1992-07-23 | 1993-02-19 | 演算装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH0690178A JPH0690178A (ja) | 1994-03-29 |
JP3237267B2 true JP3237267B2 (ja) | 2001-12-10 |
Family
ID=26368758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03041993A Expired - Lifetime JP3237267B2 (ja) | 1992-07-23 | 1993-02-19 | 演算装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3237267B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3984790B2 (ja) * | 2001-01-15 | 2007-10-03 | 日本電気株式会社 | ビタビ復号処理装置 |
-
1993
- 1993-02-19 JP JP03041993A patent/JP3237267B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH0690178A (ja) | 1994-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5946361A (en) | Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation | |
US5440504A (en) | Arithmetic apparatus for digital signal processor | |
EP1049001B1 (en) | Arithmetic apparatus | |
JP3358996B2 (ja) | 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ | |
KR100239029B1 (ko) | 가산기와 함께 사용하기 위한 결과 정규화기 및 결과 정규화 방법과 그를 포함하는 데이터 프로세서 | |
JP3487903B2 (ja) | 演算装置及び演算方法 | |
US5517439A (en) | Arithmetic unit for executing division | |
JPH10107651A (ja) | ビタビ復号装置 | |
EP0920137A1 (en) | Single-cycle, soft decision, compare-select operation using dual-add processor | |
CN111813375A (zh) | 求模运算处理方法及相关产品 | |
JPH09153822A (ja) | データ処理システムにおける加算比較選択バタフライ演算およびその命令を実行する方法 | |
JP3237267B2 (ja) | 演算装置 | |
US6272188B1 (en) | Single-cycle accelerator for extremun state search | |
US20060115023A1 (en) | Apparatus and method for decoding and trace back of convolution codes using the viterbi decoding algorithm | |
US7437657B2 (en) | High speed add-compare-select processing | |
JP2917577B2 (ja) | 演算装置 | |
JP3191442B2 (ja) | ビタビ復号用演算装置 | |
JP2000311079A (ja) | 実数演算器 | |
US20070094318A1 (en) | Method and system for hardware efficient systematic approximation of square functions for communication systems | |
JP3259387B2 (ja) | ビタビ復号器 | |
JPH0738449A (ja) | 演算装置 | |
JP3193830B2 (ja) | 演算回路 | |
JPH0722969A (ja) | 演算装置 | |
KR100414152B1 (ko) | 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로 | |
JPH0766735A (ja) | ビタビ復号装置およびステートメトリック正規化方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081005 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091005 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091005 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111005 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121005 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131005 Year of fee payment: 12 |
|
EXPY | Cancellation because of completion of term |