JPH0690178A - 演算装置 - Google Patents

演算装置

Info

Publication number
JPH0690178A
JPH0690178A JP5030419A JP3041993A JPH0690178A JP H0690178 A JPH0690178 A JP H0690178A JP 5030419 A JP5030419 A JP 5030419A JP 3041993 A JP3041993 A JP 3041993A JP H0690178 A JPH0690178 A JP H0690178A
Authority
JP
Japan
Prior art keywords
output
bits
register
memory
value
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.)
Granted
Application number
JP5030419A
Other languages
English (en)
Other versions
JP3237267B2 (ja
Inventor
Toshihiro Ishikawa
利広 石川
Katsuhiko Ueda
勝彦 上田
Mikio Sakakibara
幹夫 榊原
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP03041993A priority Critical patent/JP3237267B2/ja
Priority to US08/198,640 priority patent/US5440504A/en
Publication of JPH0690178A publication Critical patent/JPH0690178A/ja
Application granted granted Critical
Publication of JP3237267B2 publication Critical patent/JP3237267B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Detection And Correction Of Errors (AREA)
  • Error Detection And Correction (AREA)

Abstract

(57)【要約】 【目的】 ディジタル信号処理プロセッサにおいて、少
ないハードウェアの追加でビタビ復号処理を高速に、し
かも、少ないメモリ量で行うことができる演算装置を提
供する。 【構成】 メモリ1と2から同時に読み出した2本のパ
スに対するパスメトリックとブランチメトリックの値を
加算器7が上位側と下位側で同時に加算する。比較器8
が加算器7の出力の上位側と下位側の値の大小を比較
し、いずれのパスのパスメトリックが小さいかを判断し
てパスセレクト信号9を出力する。シフトレジスタ10
がパスセレクト信号9を1ビットずつ記憶する。加算器
7の出力を記憶したレジスタ11の上位側と下位側の値
のうち、パスセレクト信号9により小であると判断され
た値を分配器12、13、バス15、レジスタ16を介
してメモリ1の上位、または下位の8ビットに書き込
む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、誤り訂正用畳み込み符
号のビタビ復号(Viterbi decoding)を行うディジタル
信号処理プロセッサ内部の演算装置に関するものであ
る。
【0002】
【従来の技術】近年、ディジタル信号処理プロセッサ
(以下、DSPと略称する)は、移動体通信分野へのデ
ィジタルシステム導入の動きに合わせて、携帯電話等へ
の機器組み込み用途のプロセッサとして注目されてい
る。このようなディジタル移動通信用音声符号化装置を
実現するためのDSPにおいては、音声の符号化処理等
の演算のほかに、誤り訂正処理を行う必要がある。誤り
訂正の手法にはビタビ復号を使用するものがある。
【0003】ビタビアルゴリズムは、加算、比較、選択
という単純な処理の繰り返しで畳み込み符号の最尤復号
(maximal likelihood decoding)を実現するものであ
る。このビタビ復号では、情報ビット1ビットに対応す
る符号化データ(受信系列)を得るごとに、その時点で
の各状態の生き残りパスの累積計量(以下、パスメトリ
ックと称する)を計算し、更新する。
【0004】図2は拘束長Kの畳み込み符号器におい
て、ある時点における状態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個の状態に対して行う必要がある。
【0005】以下、従来の演算装置の一例について図3
に示す概略ブロック図を参照しながら説明する。
【0006】図3において、101はメモリであり、プ
ロセッサの命令語やビタビ復号における各状態のパスの
メトリック(累積計量)、情報ビット1ビットに対応す
る符号化データ(受信系列)の値に対して各パスがとる
ブランチメトリックの値のテーブル、各状態における生
き残りパスの選択結果などを記憶する。102はメモリ
101に接続され、データの供給や演算結果の格納等を
行うバス、103は算術論理演算を行う算術論理演算回
路、104と105は算術論理演算回路103の左側入
力の値と右側入力の値をそれぞれ一時記憶するラッチ回
路、106と107はそれぞれ演算結果を一時記憶する
レジスタである。
【0007】以上のように構成された演算装置におい
て、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に格納する。
【0008】以上の6ステップを2K-1回繰り返して全
状態のパスメトリックを更新する。このように上記従来
の演算装置では、算術論理演算回路103において、ビ
タビ復号における加算と比較を行い、この比較結果によ
ってプログラム制御を行うことにより、ビタビ復号処理
を行うことができる。
【0009】
【発明が解決しようとする課題】しかしながら、上記従
来の演算装置では、1回の加算、比較、選択演算に要す
る演算ステップ数が多く、また、パス選択信号1ビット
をメモリの1ワードに記憶するため、大きいメモリ量を
必要とするなどの問題があった。
【0010】本発明は、このような従来の問題を解決す
るものであり、少ない演算ステップ数と少ないメモリ量
でビタビ復号を行うことができるようにした演算装置を
提供することを目的とするものである。
【0011】
【課題を解決するための手段】請求項1の発明は、上記
目的を達成するために、ビット幅2n(nは正整数)の
データを記憶する第1および第2のメモリと、上記第1
および第2のメモリに記憶されたデータを加算する加算
器と、この加算器の出力を一時記憶するレジスタと、上
記加算器の出力の上位nビットと下位nビットとの大小
比較を行い、いずれの値が小であるかを示す選択制御信
号を出力する比較器と、上記選択制御信号を入力として
記憶するシフトレジスタと、上記レジスタが記憶した上
記加算器の出力の上位nビットと下位nビットのうち、
上記比較器が小であると判断した上位、または下位のn
ビットの値を上記第1のメモリの上位側nビット、また
は下位側nビットに書き込む書き込み手段とを備えたも
のである。
【0012】請求項2の発明は、上記目的を達成するた
めに、上記第1のメモリから読み出したデータを一時記
憶して上記加算器に出力するレジスタを備えたものであ
る。
【0013】請求項3の発明は、上記目的を達成するた
めに、上記第1のメモリから読み出したデータと第2の
メモリから読みだしたデータとの演算を行う演算装置
と、上記演算装置出力を第1のメモリに書き込む書き込
み手段と、上記演算装置出力を正規化するために必要な
左シフト数を検出するプライオリティ・エンコーダと、
上記プライオリティ・エンコーダ出力と上記加算器出力
の下位nビットのいずれかを選択して上記比較器に出力
する第1のマルチプレクサと、上記プライオリティ・エ
ンコーダ出力と後述する第3のレジスタ出力とのいずれ
かを上記選択制御信号に従って選択するセレクタと、上
記セレクタ出力を記憶する第3のレジスタと、上記第3
のレジスタ出力と上記加算器出力の上位nビットとのい
ずれかを選択して上記比較器に出力する第2のマルチプ
レクサと、第1のメモリから読み出したデータを上記第
3のレジスタから出力されるシフト数に従ってシフトす
るバレルシフタとを備えたものである。
【0014】
【作用】したがって、請求項1の発明によれば、加算器
が第1のメモリと第2のメモリに格納されたデータの上
位nビット同士の加算および下位nビット同士の加算を
同時に行い、比較器が加算器出力の上位nビットと下位
nビットの値の大小比較を行い、比較器で小であると判
定した上位、または下位のnビットの加算結果を書き込
み手段が第1のメモリの上位側nビット、または下位側
nビットのいずれかに書き込み、シフトレジスタが比較
器から出力する選択制御信号を順に記憶することによ
り、ビタビ復号における生き残りパスの累積計量の加
算、比較、選択演算とパス選択信号の記憶を少ないステ
ップ数で、しかも、小さいメモリ量で行うことができ
る。
【0015】また、請求項2の発明によれば、第1のメ
モリから読み出したデータをレジスタが一時記憶すると
ともに、加算器に出力し、加算器が第1回目の加算を行
い、第2回目は第1回目に上記レジスタに記憶されたデ
ータに対して加算器が加算を行うことにより、メモリア
クセス回数が少なくなるので、ビタビ復号を少ないステ
ップ数で行うことができる。
【0016】また、請求項3の発明によれば、演算装置
出力を第1のメモリに格納するのと同時に、プライオリ
ティエンコーダが、演算装置出力の演算結果を正規化す
るために必要な左シフト数を検出して比較器に出力し、
比較器がプライオリティエンコーダ出力と第3のレジス
タ出力を比較して比較結果をセレクタに出力し、セレク
タが比較器の比較結果に基づいて、プライオリティエン
コーダ出力と第3のレジスタ出力のうち値が小さい方を
選択して第3のレジスタに格納することにより、演算装
置から連続して出力される一連の演算結果をメモリに格
納するのと同時に、その一連の演算結果をブロックデー
タとして正規化するのに必要な最小の左シフトビット数
を求めることができるので、ブロック浮動小数点演算を
高速に行うことができる。
【0017】
【実施例】以下、本発明の一実施例について、図面を参
照しながら説明する。
【0018】図1は本発明の一実施例における演算装置
を示す概略ブロック図である。図1において、1はビタ
ビ復号における各状態の生き残りパスの累積計量(パス
メトリック)や各状態における生き残りパスの選択結果
(パスセレクト信号)などを記憶する16ビット幅のメ
モリ、2は情報ビット1ビットに対応する符号化データ
(受信系列)の値に対して各パスがとるブランチメトリ
ックの値のテーブルをあらかじめ記憶した16ビット幅
のメモリ、3はメモリ1と2に接続され、後述する加算
器7の左側入力にデータを与える16ビットのバス、4
はメモリ1と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ビットの値
を、制御部(図示せず)が出力する上位下位選択信号1
4の値が1のときに後述するバス15の上位8ビットに
出力し、上位下位選択信号14が0のときにバス15の
下位ビット8に出力する分配器、13はパスセレクト信
号9の値が1のときに動作し、レジスタ11の上位8ビ
ットの値を、制御部(図示せず)が出力する上位下位選
択信号14の値が1のときにバス15の上位8ビットに
出力し、上位下位選択信号14が0のときにバス15の
下位8ビットに出力する分配器、15は分配器12と1
3およびシフトレジスタ10に接続され、後述するレジ
スタ16に出力する16ビット幅のバス、16はバス1
5の値を一時記憶し、メモリ1に出力するレジスタ、1
7は制御部(図示せず)から出力され、レジスタ16の
上位8ビットの値をメモリ1の上位8ビットに書き込む
ことを指示する上位書き込み信号、18は制御部(図示
せず)から出力され、レジスタ16の下位8ビットの値
をメモリ1の下位8ビットに書き込むことを指示する下
位書き込み信号である。
【0019】以上のように構成された演算装置につい
て、以下、図1、図2、(表1)、(表2)を用いてそ
の動作を説明する。
【0020】(表1)はある時点における各状態のパス
メトリックの値がメモリ1に格納されているときのメモ
リマップを示したものである。ここで、Mmはある時点
における状態Smにおける生き残りパスのメトリックを
表わす。Kは復号する畳み込み符号の拘束長であり、ア
ドレスt´+0からt´+2K-2−1の間のM´2mは、
アドレスt+mに格納されたMmとMm+2K-2の値とそれ
ぞれに対応するブランチメトリックの値に対して加算、
比較、選択演算を行って更新された、次の時点における
状態S2mの生き残りパスに対するパスメトリックの値で
ある。
【0021】
【表1】
【0022】(表2)は図2に示したような、ある受信
系列に対して各パスがとるブランチメトリックの値をあ
らかじめ計算した値をメモリ2に格納するときのメモリ
マップを示したものである。
【0023】
【表2】
【0024】以下、図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ビットシフトす
る。
【0025】(2−b)また、以前に後述するステップ
(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を書き込
む。
【0026】(2−c)更に、レジスタ16の上位8ビ
ット、下位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を書き
込む。
【0027】(3−b)更に、レジスタ16の上位8ビ
ット、下位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ビットに格納する。
【0028】以上のように、従来例では1回につき6ス
テップで行っていた加算、比較、選択の演算2回を、上
記の3ステップで実行することができる。上記3ステッ
プの処理を、mの値を0から1ずつ増加させながら2K-
2回繰り返した後、上記(3−a)の処理を1回行うこ
とにより、ある時点における2K-1個の状態の生き残り
パスのパスメトリックを計算して更新することができ
る。また、上記3ステップを8回繰り返すたびにシフト
レジスタ10の値をバス15を介してメモリ1に格納す
ることにより、各時点、各状態におけるパスセレクト信
号9を必要最少限のメモリ量で記憶することができる。
【0029】以上のように本実施例によれば、メモリ1
が、各時点における状態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のメモリワ
ード数で記憶することができる。
【0030】また、上記ステップ(2)において、あら
かじめステップ(1)でラッチ回路5に格納した状態S
mおよび状態Sm+2K-2におけるパスメトリックの値Mmと
Mm+2K-2をラッチ回路5が保持し、加算器7に出力する
ことにより、ステップ(1)のときと同じパスメトリッ
クの値MmとMm+2K-2を、メモリ1からもう1度読み出
す必要がなくなるので、メモリ1に対するアクセスを上
記3つのステップごとにそれぞれ1回にすることがで
き、必要最少限のメモリアクセス回数で処理できるた
め、低消費電力でビタビ復号を行うことができる。
【0031】更に、本実施例の構成要素である加算器
7、レジスタ11、ラッチ回路5、6は、ディジタル信
号処理プロセッサ等には数値演算用にあらかじめ設置さ
れているのが普通であるので、比較器8やシフトレジス
タ10等のわずかなハードウェアの追加のみで演算装置
を実現できるという利点をも有する。
【0032】以下、本発明の第2の実施例について、図
面を参照しながら説明する。図4は本発明の第2実施例
における演算装置を示す概略ブロック図である。
【0033】図4において、1から18までは第1の実
施例と同様である。19はメモリ1から読み出したデー
タとメモリ2から読みだしたデータとの演算を行う演算
装置、20は演算装置出力を正規化するために必要な左
シフト数を検出するプライオリティ・エンコーダ、21
はプライオリティ・エンコーダ20の出力と加算器7の
出力の下位nビットのいずれかを選択して比較器8に出
力するマルチプレクサ、22はプライオリティ・エンコ
ーダ20の出力と後述するレジスタ23の出力とのいず
れかをパスセレクト信号9に従って選択するセレクタ、
23はセレクタ出力を記憶するレジスタ、24はレジス
タ23の出力と加算器7出力の上位nビットとのいずれ
かを選択して比較器8に出力するマルチプレクサ、25
はメモリ1からバス4を介して読み出したデータを、レ
ジスタ23から出力されるシフト数に従ってシフトする
バレルシフタである。
【0034】以上のように構成された演算装置では、第
1の実施例で示したビタビ復号の処理の他に、ブロック
小数点演算を高速に行うことができる。ビタビ復号の処
理については第1の実施例の場合と全く同様に行うこと
ができるので説明は省略し、以下、ブロック浮動小数点
演算を行う場合の動作を説明する。
【0035】DSPにおいては、装置構成が簡素にで
き、しかも高速演算が可能であるなどの利点から、固定
小数点表現による数体系を用いる場合が多い。しかし、
演算を繰り返して行う場合には常に桁あふれ・桁落ちの
可能性があるという欠点もある。この欠点を補うための
方法がブロック浮動小数点と呼ばれる数値の表現方法で
ある。これは処理を行う複数のデータに対して、1個の
指数部を持つ表現方法である。すなわち複数のデータに
対して同一のスケーリングを施すことにより桁落ちなど
を防ぐものである。原則的には乗算時の桁落ちを防ぐた
め、データを左詰めしておく。このように複数のデータ
に対して同一のスケーリングを施すには、個々のデータ
に対してそれを正規化するのに必要な左シフト数を求
め、さらにそれらの左シフト数の中で、最小のシフト数
を求めて、そのシフト数で全てのデータを左シフトして
正規化する。
【0036】以下、第2の実施例において、16ビット
の2の補数体系で、最上位ビットが符号ビットであり、
小数点位置が最上位ビットの右側にある場合について、
上記のようなブロック浮動小数点処理を行う方法を図4
を用いて説明する。
【0037】図4において、演算装置19から出力され
る、必ずしも正規化されてはいない一連の演算結果をバ
レルシフタ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に格納する。
【0038】以上のように本実施例によれば、演算装置
19の出力をメモリ1に格納するのと同時に、プライオ
リティエンコーダ20が、演算装置19出力の演算結果
を正規化するために必要な左シフト数を検出して比較器
8に出力し、比較器がプライオリティエン出力とレジス
タ23の出力を比較して比較結果をセレクタ22に出力
し、セレクタ22が比較器8の比較結果に基づいて、プ
ライオリティエンコーダ20の出力とレジスタ23の出
力のうち値が小さい方を選択してレジスタ23に新たに
格納することにより、演算装置19から連続して出力さ
れる一連の演算結果をメモリ1に格納するのと同時に、
その一連の演算結果をブロックデータとして正規化する
のに必要な最小の左シフトビット数を求めることができ
るので、ブロック浮動小数点演算を高速に行うことがで
きる。また比較器8は、ビタビ復号処理の実行時とブロ
ック浮動小数点演算処理実行時の両者で共通に利用でき
るので、コストの低減を図ることができる。
【0039】なお、上記2例の実施例においては、2個
の分配器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ビット幅にしてもよい。
【0040】また、上記第2の実施例において演算装置
19の出力を、バレルシフタ25・加算器7等を介して
メモリ1に格納する際、バレルシフタ25を動作させず
にスルーで通過させたが、あらかじめ演算装置19の出
力に桁あふれや桁落ちが予想される場合には、バレルシ
フタ25のシフト数を自由に設定できるようにしておい
て、桁あふれや桁落ちを防ぐためのシフトを行ってか
ら、メモリ1への格納とプライオリティ・エンコーダ2
0における正規化シフト数検出を行うようにしてもよ
い。このほか、本発明は、その基本的技術思想を逸脱し
ない範囲で種々設計変更することができる。
【0041】
【発明の効果】請求項1の発明によれば、加算器が第1
のメモリと第2のメモリに格納されたデータの上位nビ
ット同士の加算および下位nビット同士の加算を同時に
行い、比較器が加算器出力の上位nビットと下位nビッ
トの値の大小比較を行い、比較器で小であると判定した
上位、または下位のnビットの加算結果を書き込み手段
が第1のメモリの上位側nビット、または下位側nビッ
トのいずれかに書き込み、シフトレジスタが比較器から
出力する選択制御信号を順に記憶することにより、ビタ
ビ復号における生き残りパスの累積計量の加算、比較、
選択演算とパス選択信号の記憶を少ないステップ数で、
しかも、小さいメモリ量で行うことができる。したがっ
て、ビタビ復号処理を高速に行うことができ、しかも、
コストの低下を図ることができる。
【0042】請求項2の発明によれば、第1のメモリか
ら読み出したデータをレジスタが一時記憶するととも
に、加算器に出力し、加算器が第1回目の加算を行い、
第2回目は第1回目に上記レジスタに記憶されたデータ
に対して加算器が加算を行うことにより、メモリアクセ
ス回数が少なくなるので、ビタビ復号を少ないステップ
数で行うことができ、したがって、低消費電力化を図る
ことができる。
【0043】また、請求項3の発明によれば、演算装置
出力を第1のメモリに格納するのと同時に、プライオリ
ティエンコーダが、演算装置出力の演算結果を正規化す
るために必要な左シフト数を検出して比較器に出力し、
比較器がプライオリティエンコーダ出力と第3のレジス
タ出力を比較して比較結果をセレクタに出力し、セレク
タが比較器の比較結果に基づいて、プライオリティエン
コーダ出力と第3のレジスタ出力のうち値が小さい方を
選択して第3のレジスタに格納することにより、演算装
置から連続して出力される一連の演算結果をメモリに格
納するのと同時に、その一連の演算結果をブロックデー
タとして正規化するのに必要な最小の左シフトビット数
を求めることができるので、ブロック浮動小数点演算を
高速に行うことができる。
【図面の簡単な説明】
【図1】本発明の一実施例における演算装置を示す概略
ブロック図
【図2】ビタビ復号における畳み込み符号器の状態遷移
のパスを示す説明図
【図3】従来の演算装置を示す概略ブロック図
【図4】本発明の一実施例における演算装置を示す概略
ブロック図
【符号の説明】
1 メモリ 2 メモリ 3 バス 4 バス 5 ラッチ回路 6 ラッチ回路 7 加算器 8 比較器 9 パスセレクト信号 10 シフトレジスタ 11 レジスタ 12 分配器 13 分配器 14 上位下位選択信号 15 バス 16 レジスタ 17 上位書き込み信号 18 下位書き込み信号

Claims (3)

    【特許請求の範囲】
  1. 【請求項1】 ビット幅2n(nは正整数)のデータを
    記憶する第1および第2のメモリと、上記第1および第
    2のメモリに記憶されたデータを加算する加算器と、こ
    の加算器の出力を一時記憶するレジスタと、上記加算器
    の出力の上位nビットと下位nビットとの大小比較を行
    い、いずれの値が小であるかを示す選択制御信号を出力
    する比較器と、上記選択制御信号を入力として記憶する
    シフトレジスタと、上記レジスタが記憶した上記加算器
    の出力の上位nビットと下位nビットのうち、上記比較
    器が小であると判断した上位、または下位のnビットの
    値を上記第1のメモリの上位側nビット、または下位側
    nビットに書き込む書き込み手段とを備えた演算装置。
  2. 【請求項2】 第1のメモリから読み出したデータを一
    時記憶して加算器に出力するレジスタを備えた請求項1
    記載の演算装置。
  3. 【請求項3】 第1のメモリから読み出したデータと第
    2のメモリから読みだしたデータとの演算を行う演算装
    置と、上記演算装置出力を第1のメモリに書き込む書き
    込み手段と、上記演算装置出力を正規化するために必要
    な左シフト数を検出するプライオリティ・エンコーダ
    と、上記プライオリティ・エンコーダ出力と上記加算器
    出力の下位nビットのいずれかを選択して上記比較器に
    出力する第1のマルチプレクサと、上記プライオリティ
    ・エンコーダ出力と後述する第3のレジスタ出力とのい
    ずれかを上記選択制御信号に従って選択するセレクタ
    と、上記セレクタ出力を記憶する第3のレジスタと、上
    記第3のレジスタ出力と上記加算器出力の上位nビット
    とのいずれかを選択して上記比較器に出力する第2のマ
    ルチプレクサと、第1のメモリから読み出したデータを
    上記第3のレジスタから出力されるシフト数に従ってシ
    フトするバレルシフタとを備えた請求項1記載の演算装
    置。
JP03041993A 1992-07-23 1993-02-19 演算装置 Expired - Lifetime JP3237267B2 (ja)

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
JP4-196638 1992-07-23
JP19663892 1992-07-23
JP03041993A JP3237267B2 (ja) 1992-07-23 1993-02-19 演算装置

Publications (2)

Publication Number Publication Date
JPH0690178A true JPH0690178A (ja) 1994-03-29
JP3237267B2 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)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002056480A1 (fr) * 2001-01-15 2002-07-18 Nec Corporation Decodeur de viterbi

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002056480A1 (fr) * 2001-01-15 2002-07-18 Nec Corporation Decodeur de viterbi

Also Published As

Publication number Publication date
JP3237267B2 (ja) 2001-12-10

Similar Documents

Publication Publication Date Title
US5440504A (en) Arithmetic apparatus for digital signal processor
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
AU652896B2 (en) Arithmetic apparatus
JP3487903B2 (ja) 演算装置及び演算方法
US5517439A (en) Arithmetic unit for executing division
JPH10107651A (ja) ビタビ復号装置
KR100439211B1 (ko) 연산처리장치
US20050157823A1 (en) Technique for improving viterbi decoder performance
JP2798123B2 (ja) ビタビ復号装置
JP3237267B2 (ja) 演算装置
JP2917577B2 (ja) 演算装置
JP3191442B2 (ja) ビタビ復号用演算装置
JP3250363B2 (ja) 演算装置
JP3259387B2 (ja) ビタビ復号器
JP3252029B2 (ja) 符号化装置及び符号化方法
JPH0722969A (ja) 演算装置
US5648921A (en) Digital operational circuit with pathmetrics calculating steps simplified
KR100414152B1 (ko) 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로
CN116991362A (zh) 模乘运算处理方法、装置、电子设备及可读介质
JP2002217747A (ja) ビタビ復号処理装置
JPH0746145A (ja) 演算装置
JPH10107652A (ja) 演算装置
CN116633363A (zh) 针对ldpc编译码的数据处理方法及相关设备
JP2001024526A (ja) ビタビ復号装置
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