JP3358996B2 - 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ - Google Patents

自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ

Info

Publication number
JP3358996B2
JP3358996B2 JP31709798A JP31709798A JP3358996B2 JP 3358996 B2 JP3358996 B2 JP 3358996B2 JP 31709798 A JP31709798 A JP 31709798A JP 31709798 A JP31709798 A JP 31709798A JP 3358996 B2 JP3358996 B2 JP 3358996B2
Authority
JP
Japan
Prior art keywords
signal
input
adder
segment
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.)
Expired - Fee Related
Application number
JP31709798A
Other languages
English (en)
Other versions
JPH11261426A (ja
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.)
Nokia of America Corp
Original Assignee
Lucent Technologies Inc
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 Lucent Technologies Inc filed Critical Lucent Technologies Inc
Publication of JPH11261426A publication Critical patent/JPH11261426A/ja
Application granted granted Critical
Publication of JP3358996B2 publication Critical patent/JP3358996B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6561Parallelized implementations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/3001Arithmetic instructions
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6569Implementation on processors, e.g. DSPs, or software implementations

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Error Detection And Correction (AREA)
  • Executing Machine-Instructions (AREA)
  • Complex Calculations (AREA)
  • Debugging And Monitoring (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ビタビ加算比較選
択演算の効率的計算に最適化されたアーキテクチャを有
するデュアルMACプロセッサに関する。
【0002】
【従来の技術】高速ディジタル通信および音声処理シス
テムのようなデータ処理アプリケーションの厳しい速度
要求を達成する努力において、ディジタル信号プロセッ
サ(DSP)が利用されてきている。DSPは、音など
のアナログソースからの信号のディジタル処理および分
析に利用される専用CPUである。アナログ信号はディ
ジタルデータに変換され、高速フーリエ変換のようなさ
まざまなアルゴリズムを用いて分析される。DSPは、
特に、乗算、積和、およびシフト累算のようないくつか
の演算の高速パフォーマンスのために設計されている。
DSPの計算量の多い処理は主にこのような演算に基づ
いているからである。この理由で、DSPは一般に、乗
算、累算およびシフト演算を実行する専用ハードウェア
回路を有する。
【0003】処理速度に多大な利点を示すDSPアーキ
テクチャの1つの形式は、積和(MAC(Multiply-Accu
mulate))プロセッサとして知られている。MACプロ
セッサは、最も多いデータ処理演算は2つの値を乗算し
てからその結果の値を別の値に加算してその結果を格納
するものであるということを利用するアーキテクチャを
実装している。これらの基本演算は、特別に構成され
た、高速の乗算器(マルチプライア)および累算器(ア
キュムレータ)を利用して効率的に実行されるため、
「積和」と呼ばれる。
【0004】処理速度を増大させるもう1つの方法は、
複数のプロセスを並列に実行することである。この目的
のため、複数のMAC構造を有するDSPアーキテクチ
ャが開発されている。例えば、デュアルMACプロセッ
サは、2つの独立なMAC演算を並列に実行することが
可能である。代表的なデュアルMACプロセッサ10の
概略ブロック図を図1に示す。プロセッサ12の各半分
は、2入力乗算器14を有する。2入力乗算器14は、
xまたはy(入力、オペランド)レジスタ13からの入
力を受け取り、その出力を積レジスタ16に格納する。
積レジスタは、加算器18の1つの入力に接続される。
加算器18の出力は、いくつかのアキュムレータレジス
タ20のうちの1つに選択的に格納される。加算器18
の第2の入力はアキュムレータアレイ20に接続され、
連続的な累積演算を可能にしている。追加のデータ制御
信号(図示せず)により、レジスタ13が乗算器を迂回
して加算器18の入力に直接接続するようにすることも
可能である。従来のベクトルプロセッサは、1個または
並列に動作する複数のMACプロセッサを有する。
【0005】Lucent Technologies社から入手可能なD
SP16000デュアルMACプロセッサは、主要な計
算ユニットであるデータ算術ユニット(DAU(data ar
ithmetic unit))を有する。DAUの乗算器への入力
は、xおよびyレジスタと呼ばれる1対の倍長レジスタ
を通じて入力され、各乗算器の出力はそれぞれの積レジ
スタに出力される。並列累算は、2入力算術論理ユニッ
ト(ALU)および3入力加算器の両方を設け、そのい
ずれもがいずれかの積レジスタにデータを格納すること
ができるようにすることにより達成される。数学関数が
ALUまたは加算器で実行されるとき、その結果はアキ
ュムレータレジスタに格納される。いくつかのアキュム
レータレジスタがDAUにある。
【0006】無線および有線のアプリケーション、特
に、大きなシンボル間干渉のあるアプリケーションで
は、DSPは、畳込み符号化およびビタビ復号を用いた
データ誤り検出および訂正を実行するために用いられ
る。畳込み符号化は、データ入力ビットと、1個以上の
以前の符号化されていない入力ビットとの畳込みをとる
ことによって実行される。畳込みされたデータは、周知
のビタビアルゴリズムを用いて復号される。ビタビアル
ゴリズムは、ある与えられた状態から次の状態への符号
器の可能な状態遷移に関する知識を用いて、与えられた
受信データに対して最も可能性の高い(最尤)符号器入
力を判定する。
【0007】図2は、基本的なビタビアルゴリズムバタ
フライ計算の説明図である。現状態(PS(present sta
te))から次状態(NS(next state))への4個の可能
な符号器遷移が示されている。現状態は、符号器のシフ
トレジスタに格納されているデータの数値と等価であ
る。1ビットが入力されると、符号器レジスタは右にシ
フトし、入力ビットは最上位ビット位置(次状態の太字
で示す。)に移動する。従って、図示のように、NS0
には、入力ビット0によりPS0またはPS1のいずれか
から到達可能である。同様に、NS8には、入力ビット
1によりPS0またはPS1のいずれかから到達可能であ
る。ビタビアルゴリズムは、2つの可能な遷移パスのう
ちのいずれが最尤(生き残り)パスであるかを判定する
手段を提供する。
【0008】この判定は、2つの基本的ステップからな
る。第1ステップは、枝メトリック計算である。これ
は、受信データシンボルと、現状態から次状態への状態
遷移から生じる実際のデータシンボルの間のユークリッ
ド距離を判定する。時点kにおける現状態iから次状態
jへの遷移の枝メトリックをmij(k)で表す。m
ij(k)は次式で表現される。
【数1】 ただし、xn(k)は受信したn番目のシンボルであ
り、cn,ijは、iからjへの状態遷移から生じる実際の
シンボル(これは、畳込み符号器の構造から決定され
る。)であり、符号器のレート(すなわち、入力ビット
あたりの出力ビットの数)は1/Rである。レート1/
R符号器の場合、各次状態ごとに2つの枝メトリックを
計算しなければならない。
【0009】すべての可能な状態遷移に対する枝メトリ
ックを計算した後、各入力パスごとに累積距離を計算
し、最小距離(すなわち、最大確率)のパスを生き残り
パスとして選択する。このステップは加算比較選択(A
CS(Add-Compare-Select))として知られている。第3
のステップはトレースバックとして知られている。この
ステップは、現状態から次状態への可能な遷移のトレリ
スを通って、はじめの2つのステップによって決定され
た最尤パスをたどり、トレリスを通るパスを再構成して
もとの入力データを抽出する。この例では、生き残りパ
スは、現状態の最下位ビットによって表される。これは
通常、トレースバックビットと呼ばれる(図2では太字
で示す。)。例えば、現状態S0からのパスではなく現
状態S1からのパスが選ばれる場合、トレースバックビ
ットは1である。
【0010】ACS演算は、(1)加算、すなわち、パ
スメトリック計算と、(2)比較選択演算、という2つ
のステップに分解することができる。パスメトリック加
算は、現状態コスト(ビタビ処理のはじめにユーザによ
って初期化される値)と枝メトリック値の累算である。
図2に示されるように、次状態0000の2つのパスメ
トリックは、 PS0+m0,0 および PS1+m1,0 (1) であり、次状態1000に対しては、 PS0+m0,8 および PS1+m1,8 (2) である。
【0011】各状態の2つのパスメトリックの計算が完
了した後、これらの値を比較し、最小値または最大値
(実装の詳細に依存する)が、生き残りコストとして選
択され、対応するトレースバックビット(TB)が決定
され格納される。式1および式2のパスメトリックに対
するこの演算は、例えば、次のように表される。 NS0=min(PS0+m0,0,PS1+m1,0) (3) NS0=PS0+m0,0のときTB0=0、そうでないときTB0=1 (4 ) および NS8=min(PS0+m0,8,PS1+m1,8) (5) NS8=PS0+m0,8のときTB8=0、そうでないときTB8=1 (6 ) 上記の式は、一般的な復号器の分析を表す。メトリック
についてm0,8=−m0,0という性質を有する具体的なク
ラスの復号器の場合、式2は次のように表すことができ
る。 PS0−m0,0 および PS1−m1,0 (2a) また、式5および式6は次のように表すことができる。 NS8=min(PS0−m0,0,PS1−m1,0) (5a) NS8=PS0−m0,0のときTB8=0、そうでないときTB8=1 (6 a)
【0012】専用ハードウェアビタビ復号器はデータ検
出に対する効率的で有効なストラテジであるが、他のア
プリケーション用にもプログラム可能な信号およびデー
タプロセッサを用いてビタビアルゴリズムを実装すると
有用である。この目的のために用いられているアーキテ
クチャの1つの形式が上記のMACプロセッサである。
【0013】
【発明が解決しようとする課題】MACプロセッサを最
適化してビタビACS演算の実行の速度を最適化するた
めのいくつかの試みがなされている。例えば、Texas In
struments社製のTMS320C5xxシングルMAC
DSPは、スプリット(split)モード16ビット加減算
を使用することによって式1または式2のいずれかを1
サイクルで評価することが可能な命令を有する。しか
し、1サイクルパフォーマンスは、枝メトリックがm
1,0=−m0,0であるように設定された符号器に対してし
か達成されないため、このパフォーマンスは、この性質
を有しない符号器の場合には達成することができない。
また、TMS320C5xxチップは、「最大値」基準
のみを用いて、式3および式4の並列実行または式5お
よび式6の並列実行を行う単一サイクル命令を有する
が、パスメトリック値の最小値を要求するように実装さ
れたビタビアルゴリズムの場合は、生成されるトレース
バックビットが異なるため、そのビタビアルゴリズムを
容易に実行することはできない。さらに、比較および選
択の演算は、主要な加算器や算術論理ユニットとは別の
専用比較器ユニットを用いて実装されている。
【0014】また、Texas Instruments社は、式1およ
び式2を単一サイクルで評価することができるデュアル
MAC DSP(品番TMS320C6xx)も提供し
ている。しかし、このチップは、式3、式4、式5、お
よび式6を単一サイクルで実行するのに必要なハードウ
ェアを含んでいない。その理由は、トレースバックビッ
トは自動的に生成されトレースバックレジスタに格納さ
れるのではなく、その代わりに、追加のコマンドを用い
て適当なレジスタに明示的にシフトしてやらなければな
らないからである。従って、比較の結果に基づいてトレ
ースバックビットを格納するために追加のマシンサイク
ルが要求され、ビタビ復号の効率が低下する。
【0015】
【課題を解決するための手段】本発明のデュアルMAC
プロセッサは、並列に動作し共通のアキュムレータレジ
スタバンクに接続された1対の加算器ユニットあるいは
算術論理ユニット(ALU)を有する。プロセッサは、
2つのビタビACS演算が、トレースバックビット格納
を含めて、2マシンサイクルで実行することができるよ
うに最適化される。各加算器/ALUは、加算、減算、
および比較を行う手段を有する。この手段は、フルモー
ド演算が実行されるときには1対のデータ入力に対して
演算を行い、スプリットモード演算が実行されるときに
は2対のデータ入力に対して演算を行う。本発明によれ
ば、比較演算は、加算器/ALUの減算機能を用いて実
行され、符号ビットを比較モードビットと結合して、ビ
タビ畳込み復号の比較部分のときに格納するための正し
いトレースバックビットを示すトレースバック出力を生
成する。比較演算が実行されビタビモードビットがアク
ティブのとき、生成されるトレースバック出力がトレー
スバックレジスタにシフトされる。各加算器/ALU
は、効率的なビタビ加算比較選択を実行するように最適
化されたフルモードおよびスプリットモードの機能のサ
ブセットを備える。
【0016】
【発明の実施の形態】図3は、本発明によるデュアルM
ACプロセッサ30の累算部分のブロック図である。デ
ュアルMACプロセッサ30は、2個の加減算ユニット
32を有する。その一方または両方はALUであること
も可能であり、以下では加算器32と呼ぶ。加算器32
は、レジスタファイル34から入力AおよびBを受け取
り、出力Cをレジスタファイル34に格納する。レジス
タファイル34は、ディスクリートなレジスタからなる
ことも、当業者に周知のxおよびyレジスタならびにア
キュムレータアレイからなることも可能である。加算器
32からの出力データを格納することに加えて、これら
のレジスタには、1個または複数のアドレスポインタレ
ジスタ40に接続されたアドレスユニットデコーダ38
によって、メモリサブシステム36の特定のアドレスに
格納されたデータをロードすることも可能である。メモ
リからデータを取得することの一部として、アドレスポ
インタを同時にインクリメントするメカニズムが設けら
れる。アドレスポインタに従ってデータをロードし格納
すること、および、利用されるポインタを同時にインク
リメントすることのためのさまざまな構成が当業者に周
知である。同時データ演算およびレジスタロードは、当
業者に周知の手段によって提供され、パイプラインおよ
び並列演算が可能となる。実施例では、加算器32のデ
ータレジスタおよびデータI/Oは32ビット幅であ
り、16ビットのハイ(上位)およびロー(下位)セグ
メントとしても利用可能である。
【0017】加算器32によって実行されるデータフロ
ーおよび演算は、命令デコーダ44から入力される複数
の制御信号42によって制御される。本発明によれば、
各加算器32は、制御信号42の値に応じて、1つの3
2ビット加減算または2つの16ビットスプリット加算
もしくは16ビット減算を実行する。32ビットまたは
16ビットの比較は、加算器32の減算機能を用いて実
行可能である。比較の後に最小値または最大値のいずれ
かを返すとともに、ビタビ加算比較選択の間に用いられ
るトレースバックビットTを生成することを可能にする
追加ロジックが含められる。これについては後述する。
【0018】図6は、加算器32に入力される制御信号
42のさまざまな要素を示す図である。制御信号42
は、通常モード演算またはスプリットモード演算を示す
スプリット信号ビット70、減算コマンドを実行すべき
ことを示す減算信号ビット72、比較演算を実行すべき
ことを示す比較信号ビット74、比較は最小値(イナク
ティブにセット)または最大値(アクティブにセット)
のいずれを返すべきかを示す比較モード信号ビット7
5、および、データ入力AおよびBがどのように処理さ
れるかを制御するデータルーティング信号ビット76を
含む。
【0019】各加算器32は、トレースバック信号78
によってトレースバックシフトレジスタ46に接続され
る(図3)。トレースバックレジスタ46は、ユーザが
読み書きすることも可能である。ビタビ演算モード信号
77がセットされ、比較演算が実行されると、シフトイ
ネーブル信号43がシフトレジスタ46に、例えばAN
Dゲート79を通じて入力され、シフトレジスタ46内
のデータが左シフトされ、生成されたトレースバックビ
ット出力Tが最下位ビットとして格納される。好ましく
は、各トレースバックレジスタ46は16ビット幅であ
り、従来技術を用いて実装される。代替実施例として
は、トレースバックレジスタ46は、一度に複数ビット
が「スタッフ」(充填)されるように構成されることも
可能である。本発明によれば、比較演算およびトレース
バックビットスタッフィングは単一サイクルで実行され
る。
【0020】各加算器32は、ビタビ復号に適した演算
のセットを実行するように設定可能である。しかし、主
要な加算器とは別に専用のビタビハードウェアを利用す
る従来技術の解決法とは異なり、各加算器32は、デュ
アルMACプロセッサの主要な加算器あるいは算術論理
ユニット(ALU)としても用いられる。従って、ここ
では演算のサブセットのみについて説明するが、本発明
によれば、少なくとも1つの加算器32は、当業者に周
知の標準的なALU演算のセットをサポートする。
【0021】各加算器32の構造および制御シーケンス
の詳細を図4および図5に示す。本発明に関連する制御
のみを詳細に指定しているが、当業者には明らかなよう
に、個々の実施例の要求に従って追加の算術機能を提供
する追加の制御ロジックを容易に追加することが可能で
ある。図6に示した個々の制御信号ビット70〜76は
図4では簡潔にするために省略している。
【0022】本発明の実施例によれば、各加算器32
は、2個の加減算サブユニット50、50′を有する。
これらのサブユニット50、50′は、協調動作してフ
ルモード計算を実行することも、独立に動作して並列ス
プリットモード計算を実行することも可能である。例え
ば、実施例では、サブユニット50は、2つの16ビッ
ト加算を同時に実行することも、1つの32ビット加算
を実行することも可能である。各サブユニット50、5
0′は、2つのデータ入力60、62およびキャリーイ
ン(CARRY IN)ビット63を受け取り、主データ出力信号
64およびキャリーアウト(CARRY OUT)信号66を出力
する。さらに、少なくとも一方のサブユニット50、5
0′は、符号(SIGN)信号68出力を備える。
【0023】スプリットモード演算をサポートするた
め、各加算器32への入力A、Bは、上位および下位セ
グメント(それぞれAh、ALおよびBh、BLで表す。)
に分割される。同様に、出力CはChとCLに分割され
る。32ビットデータ信号の場合、上位セグメントはビ
ット31〜16を表し、下位セグメントはビット15〜
0を表す。従って、2個の32ビットレジスタは、スプ
リットモード処理中に演算することが可能な4個の16
ビット値を格納することができる。
【0024】各サブユニット50、50′の入出力信号
は、いくつかの選択回路によりゲーティングされる。こ
れらの選択回路は、マルチプレクサ(MUX)51〜5
6として図示されている。マルチプレクサ51〜56
は、データルーティング信号ビット76によって制御さ
れ、デコードされた命令に従って、処理すべきデータセ
グメントおよび適当な出力を選択する。マルチプレクサ
51〜56に対する制御信号はそれぞれCTL1〜CT
L6で表し、これらは、簡単のため別々に識別されてい
る。しかし、当業者には明らかなように、いくつかのマ
ルチプレクサが同じ制御信号を共用することも可能であ
る。
【0025】MUX54は、サブユニット50、50′
を互いに接続するか、または、スプリットモード演算を
可能にするために用いられる。これらのユニットが結合
されるとき、マルチプレクサ54は、サブユニット5
0′からのキャリーアウト信号66をサブユニット50
のキャリーイン信号63に接続する。スプリットモード
演算を実行するときには、マルチプレクサ54は、信号
65をサブユニット50のキャリーイン信号63に接続
する。
【0026】各サブユニット50、50′の算術機能は
従来技術を用いて実装される。好ましくは、2の補数減
算を実行することにより、1つのオペランドのすべての
データビットを反転してキャリーインビットを1にセッ
トする。従って、減算が実行されると、サブユニット5
0′のキャリーイン信号63は1にセットされ、加算の
場合、この信号は0にセットされる。同様に、スプリッ
トモード減算を実行するときには、サブユニット50の
入力65は1にセットされる。ここで、図4に示される
ように、キャリーイン信号は、命令デコーダ44によっ
て生成される減算信号ビット72によって駆動される。
【0027】本発明によれば、最小値および最大値比較
演算は、従来技術のように別のハードウェアによってで
はなく、サブユニット50、50′の減算機能を利用す
ることによって、実行される。計算された差の符号は符
号信号68として出力される。符号信号68および比較
モード信号ビット75はXORゲート69のような排他
的論理和回路によって排他的論理和をとられ、信号78
を生成する。本発明によれば、この信号は、2つの比較
されるデータ値のいずれが出力に渡されるかを示すとと
もに、ビタビモード信号77によってビタビ比較選択演
算が示されているときにはトレースバックレジスタ46
に格納される適切なトレースバックビットを示す。
【0028】例えば、AとBを比較するために、A−B
を評価する。AがBより小さい場合、結果の符号は負で
あり、符号信号68は1である。最小値が要求される場
合、比較モード信号ビット75は0にセットされ、信号
78は1となる。上記の式3を参照すると、A=PS0
+m0,0でB=PS1+m1,0の場合、信号78の値は正
しいトレースバックビット値も与える。同様に、最大値
が要求される場合、比較モード信号ビット75は1にセ
ットされるため、信号78は0となる。
【0029】本発明によれば、加算器32は、提供可能
な基本演算に加えて、ビタビ処理に最適化された6個の
単一サイクル演算を実行するように構成される。その特
殊な命令は、(1)A+B、(2)A−B、(3)Ah
+Bh;AL+BL、(4)Ah−Bh;AL−BL、(5)
cmp(A,B)、および(6)cmp(Ah,AL)で
ある。各コマンドに対する制御信号は図5にまとめられ
ており、32ビットデータレジスタに関して後述する
が、他のサイズのレジスタ長でも可能である。
【0030】A+B演算は32ビット加算である。適当
な命令は、スプリット信号ビット70、減算信号ビット
72、および比較信号ビット74がすべて0になるよう
にデコードされる。サブユニット50は、この加算の上
位部分Ah+Bhを実行し、従って、MUX51の制御信
号CTL1はBh入力を選択する。サブユニット50′
はこの加算の下位部分を実行し、従って、制御信号CT
L2およびCTL3はそれぞれMUX52および53が
LおよびBLを選択するようにセットされる。これはス
プリットモード演算ではないため、MUX54は、CT
L4により、サブユニット50′のキャリーアウト信号
66′がサブユニット50のキャリーイン63に接続す
るようにセットされる。出力MUX55および56は、
制御信号CTL5、CTL6により、データ信号64、
64′(すなわち、加算の結果S 1、S0)を選択するよ
うにセットされる。データ信号64、64′はそれぞ
れ、出力Cの上位および下位部分を形成する。A−B演
算も、減算信号ビット72がハイ(1)であることを除
いては、同様に実行される。
【0031】次の2つのコマンドは、並列のスプリット
モード加算および減算である。本実施例によれば、入力
AおよびBの上位セグメントはサブユニット50によっ
て処理され、入力AおよびBの下位セグメントはサブユ
ニット50′によって処理される。しかし、他のデータ
セグメント組合せも可能である。スプリットモードの加
減算の場合、入力MUX51、52、53、55および
56はそれぞれ上記の32ビット加減算の場合と同様に
制御される。しかし、スプリット信号ビット70はアク
ティブ(1)であり、これは、MUX54が2個のサブ
ユニット50、50′を相互に切断し、代わりに、入力
65をサブユニット50のキャリーイン信号63へルー
ティングすべきことを示す。
【0032】残りの2つのコマンドは比較演算であり、
これらは、本発明によれば、ビタビアプリケーションお
よび非ビタビアプリケーションの両方に用いられる。3
2ビット比較cmp(A,B)の場合、マルチプレクサ
51〜53は上記のように設定され、サブユニット5
0′のキャリーアウト信号66はマルチプレクサ54を
通じてサブユニット50のキャリーイン入力63に接続
される。上記のように、比較は減算によって実行される
ため、減算信号ビット72はアクティブ(1)である。
32ビット比較の場合、比較の結果および比較モード信
号ビット75(最小値または最大値のいずれを返すべき
かを示す。)に応じて、出力MUX55はAhまたはBh
のいずれかを選択するようにセットされ、MUX56は
LまたはBLのいずれかを選択するようにセットされ
る。これらの条件はいずれも、上記の信号78によって
表される。信号78がロー(0)のとき、データAが選
択され、そうでないとき、データBが選択される。16
ビット比較は32ビット比較とほぼ同様に実行される。
本実施例によれば、比較はサブユニット50上で実行さ
れ、スプリット信号ビット70はアクティブ(1)であ
り、16ビット減算が実行される。この演算はサブユニ
ット50′を利用しないため、図4および図5に示すよ
うに、ヌルデータ列入力(ここでは0で示す。)および
ヌルデータ列出力が選択され、余計な(偽)データがシ
ステムから出力されないことを保証する。
【0033】当業者には認識されるように、サブユニッ
ト50のみを利用する演算ときの偽データの伝搬を防ぐ
別のメカニズムも利用可能である。例えば、MUX55
およびMUX56は、ここで説明したコマンドセットを
実装する必要はなく、実際、必要に応じて省略すること
も可能である。また、当業者には認識されるように、ヌ
ルデータ列の代わりに他のデータ入力を与えて別の機能
を提供することも可能である。さらに、出力セレクタM
UX55およびMUX56は、すべての可能なデータ入
力を受け取るように図示されているが(例えば、MUX
55は、S1、Ah、AL、およびBhから選択を行
う。)、代替構成としては、これらのデータ出力セレク
タは単に、セレクタMUX51、52、および53によ
る判定に従ってサブユニット50、50′への一部の入
力を受け取ることも可能である。従って、例えば、MU
X55は、サブユニット50からの出力信号64または
サブユニット50への入力信号60、62からの選択を
行う。
【0034】次に、本発明による上記のデュアルMAC
プロセッサ構成を用いたビタビACS演算の実行につい
て説明する。ビタビ復号アルゴリズムの初期化および枝
メトリック計算の間、2つのデータ配列がメモリ36内
に設定される。第1の配列は、現状態値を順に含み、ポ
インタレジスタpt0によってポイントされる。第2の
配列は、計算された枝メトリック値を同じく順に含み、
ポインタr0によってポイントされる。これらのポイン
タはいずれも最初に配列内の第1の値をポイントするよ
うにセットされる。初期化はまた、トレースバックシフ
トレジスタ46へのトレースバックビットスタッフィン
グと、比較が最小値または最大値のいずれの比較演算か
を選択することを可能にするビタビ動作モードビットの
設定を含む。実施例では、メモリサブシステム36によ
り、2つのデータレジスタ値は、デュアルMAC演算の
実行とともに単一サイクルでロードされ、現状態および
枝メトリックの値が単一のレジスタに格納されるよう
に、レジスタ長はこれらの2つの値の幅の2倍である。
【0035】以下の説明では、畳込み符号器は、メトリ
ックに関してm1,0=−m0,0という性質を有するクラス
のものであると仮定する。従って、式2a、式5a、お
よび式6aを用いる。しかし、当業者には認識されるよ
うに、この説明はこのクラスに限定されるものではな
く、上記の式2、式5、および式6を実装する同様のデ
ータ演算列は、より一般的な符号器からのデータをデコ
ードするように容易に選択することができる。
【0036】ACSアルゴリズムの最初に、データパイ
プラインも初期化しなければならない。a4レジスタに
は最初の2つの現状態コストPS0およびPS1をプリ
ロードし、yレジスタには最初の2つの枝メトリック値
m0およびm1をプリロードし、これに応じてポインタ
をインクリメントする。これは、コマンド a4=*pt0++; y=*r0++ によって表される。「*」は間接ロードを示す。例え
ば、レジスタa4に、pt0によってポイントされるメ
モリ位置の内容をロードした後、pt0内のアドレスを
インクリメントする。
【0037】初期化が完了した後、上記の式1および式
2aが単一サイクルのパイプライン化された命令として
実行される。これは、以下の演算を並列に実行する。 a0h=a4h+yh; a1h=a4h−yh; y=*r0++ a0L=a4l+yl; a1L=a4l−yl; a4=*pt0++ これらの2つの加算は、アキュムレータa4およびレジ
スタyを入力として用い、アキュムレータa0を出力と
して用いて、2つの加算器32のうちの一方において1
6ビットスプリット加算として実行される。その結果、
a0h=PS0+m00およびa0L=PS1+m10と
なり、これは上記の式1と等価である。2つの減算は、
アキュムレータa1を出力として用いて、他方の加算器
32上での16ビットスプリット減算として実行され
る。その結果、a1h=PS0−m00およびa1L=P
S1−m10となり、これは上記の式2と等価である。
さらに、次の2つの現状態コストおよび枝メトリックも
またフェっ値され、y=m21、m31、および、a4
=PS2,PS3とされる。こうして、パイプラインが
初期化されると、ビタビ加算は単一サイクルで実行可能
となる。
【0038】比較選択演算は、次の16ビット比較演算
を並列に実行する単一サイクル命令として実行される。 a2=cmp(a0h,a0L) a3=cmp(a1h,a1L) 1つの比較演算が各加算器32上で実行される。ビタビ
モードビットが選択されているため、生成されるトレー
スバックビットは自動的にトレースバックレジスタ46
にシフトされる。最小値比較が選択されている場合、こ
の演算の結果は次のようになる。 a2=min(PS0+m00,PS1+m10):NS0; ar0=a r0<<1, ar0[0]=sign_of(a0h−a0L):TB0 a3=min(PS0−m00,PS1−m10):NS8; ar1=a r1<<1, ar1[0]=sign_of(a1h−a1L):TB8 ただし、ar0およびar1は、2つのトレースバック
レジスタ46であり、「<<1」は、この記号の前のレ
ジスタの1ビット左シフトを表す。最大値比較が選択さ
れている場合、この演算の結果は次のようになる。 a2=max(PS0+m00,PS1+m10):NS0; ar0=a r0<<1, ar0[0]=sign_of(a0h−a0L):TB0 a3=max(PS0−m00,PS1−m10):NS8; ar1=a r1<<1, ar1[0]=sign_of(a1h−a1L):TB8
【0039】これは上記の式3、式4、式5a、および
式6aと等価である。こうして、ビタビ比較選択演算は
単一サイクルで実行可能となる。こうして、2つのパス
メトリックに対する1回のACS計算は、本発明による
デュアルMACプロセッサによって、2マシンサイクル
で実行可能である。
【0040】
【発明の効果】以上述べたごとく、本発明によれば、ビ
タビ復号アルゴリズムを実行するプロセッサにおいて、
比較演算およびトレースバックビットスタッフィングは
同時並行して単一サイクルで実行される。また、比較選
択演算に、主要な加算器や算術論理ユニットとは別の専
用比較器ユニットを用いる必要がない。
【図面の簡単な説明】
【図1】代表的なデュアルMACプロセッサのブロック
図である。
【図2】ビタビバタフライの説明図である。
【図3】本発明によるデュアルMACプロセッサの累算
部分のブロック図である。
【図4】図3の加減算ユニットのブロック図である。
【図5】図4のロジックに対する最小コマンドセットお
よび関連する制御ビットの表の図である。
【図6】図3の加算器/減算器ユニットの制御信号の図
である。
【符号の説明】
10 デュアルMACプロセッサ 12 プロセッサ 13 xまたはy(入力)レジスタ 14 2入力乗算器 16 積レジスタ 18 加算器 20 アキュムレータレジスタ 30 デュアルMACプロセッサ 32 加算器 34 レジスタファイル 36 メモリサブシステム 38 アドレスユニットデコーダ 40 アドレスポインタレジスタ 42 制御信号 43 シフトイネーブル信号 44 命令デコーダ 46 トレースバックシフトレジスタ 50、50′ 加減算サブユニット 51 マルチプレクサ(MUX) 52 マルチプレクサ(MUX) 53 マルチプレクサ(MUX) 54 マルチプレクサ(MUX) 55 マルチプレクサ(MUX) 56 マルチプレクサ(MUX) 60 データ入力 62 データ入力 63 キャリーインビット 64 主データ出力信号 66 キャリーアウト信号 68 符号信号 70 スプリット信号ビット 72 減算信号ビット 74 比較信号ビット 75 比較モード信号ビット 76 データルーティング信号ビット 77 ビタビ演算モード信号 78 トレースバック信号 79 ANDゲート
───────────────────────────────────────────────────── フロントページの続き (72)発明者 マザール エム.アリディナ アメリカ合衆国,18103 ペンシルヴァ ニア,アレンタウン,アスコット サー クル 4290 (72)発明者 シヴァナンド シマナパリー アメリカ合衆国,18103 ペンシルヴァ ニア,アレンタウン,フェルノール ス トリート 2908,アパートメント ナン バーエー−16 (56)参考文献 特開 平5−327524(JP,A) 特開 平11−74801(JP,A) 特開 平8−237144(JP,A) 米国特許6330684(US,A) 米国特許5027374(US,A) 欧州特許出願公開923197(EP,A 1) 欧州特許出願公開448809(EP,A 1) (58)調査した分野(Int.Cl.7,DB名) H03M 13/00 H04L 1/00 G06F 9/00 G06F 11/10

Claims (17)

    (57)【特許請求の範囲】
  1. 【請求項1】 複数のアキュムレータと、該アキュムレ
    ータに接続された複数のデータレジスタとを含み、自動
    ビタビトレースバックビット格納機能を有する並列算術
    論理プロセッサにおいて、各アキュムレータは、 第1および第2のデータ入力ならびに1つのデータ出力
    を有し、複数の制御信号に応答して該データ入力の加
    算、減算および比較の演算を行う手段を有する加算器で
    あって、該比較演算の結果に依存する値を有するトレー
    スバック出力をさらに有する加算器と、 前記トレースバック出力を受け取り、切り替えシフト手
    段を有するトレースバックシフトレジスタとを含み、 前記切り替えシフト手段にはビタビモード信号が接続さ
    れ、 前記ビタビモード信号がアクティブで、かつ前記比較演
    算が実行された場合に、前記トレースバック出力が前記
    トレースバックシフトレジスタにシフトされるようにな
    っていることを特徴とする、並列算術論理プロセッサ。
  2. 【請求項2】 前記制御信号は、現在の加算器の計算が
    加算または減算のいずれであるかを示す減算信号と、現
    在の加算器の計算が比較演算であるかどうかを示す比較
    信号とを含み、 前記第1データ入力は、第1上位入力セグメントおよび
    第1下位入力セグメントを有し、前記第2データ入力
    は、第2上位入力セグメントおよび第2下位入力セグメ
    ントを有し、前記データ出力は、上位出力セグメントお
    よび下位出力セグメントを有し、 各加算器は、第1加算器部分および第2加算器部分を有
    し、各加算器部分は、複数のデータ入力セグメントの加
    算および減算を行う手段を有し、キャリーイン信号およ
    び前記減算信号を受け取り、キャリーアウト信号および
    データ出力セグメントを生成し、 前記第1加算器部分は、第1および第2の部分入力を受
    け取り、前記上位出力セグメントおよび符号信号を生成
    し、該上位出力セグメントは、前記減算信号がイナクテ
    ィブのときは前記第1部分入力と第2部分入力の和であ
    り、前記減算信号がアクティブのときは前記第1部分入
    力から第2部分入力を引いた差であり、該差が負のとき
    前記符号信号がアクティブとなり、 前記第2加算器部分は、第3および第4の部分入力を受
    け取り、前記下位出力セグメントおよびキャリーアウト
    信号を生成し、前記下位出力セグメントは、前記減算信
    号がイナクティブのときは前記第3部分入力と第4部分
    入力の和であり、前記減算信号がアクティブのときは前
    記第3部分入力から第4部分入力を引いた差であり、 各加算器には、前記比較演算が最小値演算または最大値
    演算のいずれであるかを示す比較モード信号が接続さ
    れ、 各加算器は、さらに、 前記符号信号および前記比較モード信号を入力として受
    け取り、前記トレースバック出力を前記符号および比較
    モード信号の論理的結合として生成するトレースバック
    ビット回路と、 前記比較信号および前記トレースバック出力に応じて、
    前記上位出力セグメント、前記第1部分入力、および前
    記第2部分入力のうちの1つを前記上位出力セグメント
    として選択する第1出力選択手段と、 前記比較信号および前記トレースバック出力に応じて、
    前記下位出力セグメント、前記第3部分入力、および前
    記第4部分入力のうちの1つを前記下位出力セグメント
    として選択する第2出力選択手段とを有することを特徴
    とする請求項1に記載のプロセッサ。
  3. 【請求項3】 前記制御信号は、さらに、スプリット信
    号を含み、 前記加算器は、さらに、前記第1加算器部分と前記第2
    加算器部分を選択的に接続するスプリット選択手段を有
    し、 前記スプリット信号がイナクティブのとき、前記第2加
    算器部分からの前記キャリーアウト信号が前記第1加算
    器部分の前記キャリーイン信号に接続され、 前記スプリット信号がアクティブのとき、別のキャリー
    イン信号が前記第1の加算器部分の前記キャリーイン信
    号に接続されることを特徴とする請求項2に記載のプロ
    セッサ。
  4. 【請求項4】 前記別のキャリーイン信号は前記減算信
    号に等しいことを特徴とする請求項3に記載のプロセッ
    サ。
  5. 【請求項5】 前記第1加算器部分は前記第1上位入力
    セグメントを前記第1部分入力として受け取るととも
    に、前記第1下位入力セグメントおよび前記第2下位入
    力セグメントのうちの一方を選択的に前記第2部分入力
    として受け取り、 前記第2加算器部分は前記第1下位入力セグメントおよ
    びヌルデータ列のうちの一方を選択的に前記第3部分入
    力として受け取るとともに、前記第2下位入力セグメン
    トおよび前記ヌルデータ列のうちの一方を選択的に前記
    第4部分入力として受け取ることを特徴とする請求項2
    に記載のプロセッサ。
  6. 【請求項6】 自動ビタビトレースバックビット格納機
    能を有するデュアル積和プロセッサを含む集積回路にお
    いて、該プロセッサは、 2個の積和処理要素と、 前記処理要素に接続された複数のデータレジスタとを有
    し、 前記処理要素の各々は、 前記データレジスタに接続された乗算器と、 前記データレジスタから複数のデータ入力を受け取り、
    前記データレジスタのうちの少なくとも1つに接続され
    た累算出力を生成するアキュムレータとを有し、 前記アキュムレータは、 第1および第2のデータ入力ならびに1つのデータ出力
    を有し、複数の制御信号に応じて該データ入力の加算、
    減算および比較の演算を行う手段を有する加算器であっ
    て、該比較演算の結果に依存する値を有するトレースバ
    ック出力を有する加算器と、 前記トレースバック出力を受け取り、切り替えシフト手
    段を有するトレースバックシフトレジスタとを含み、 前記切り替えシフト手段にはビタビモード信号が接続さ
    れ、 前記ビタビモード信号がアクティブのときに前記比較演
    算が実行された場合、前記トレースバック出力が前記ト
    レースバックシフトレジスタにシフトされることを特徴
    とする、自動ビタビトレースバックビット格納機能を有
    するデュアル積和プロセッサを含む集積回路。
  7. 【請求項7】 前記制御信号は、現在の加算器の計算が
    加算または減算のいずれであるかを示す減算信号と、現
    在の加算器の計算が比較演算であるかどうかを示す比較
    信号とを含み、 前記第1データ入力は、第1上位入力セグメントおよび
    第1下位入力セグメントを有し、前記第2データ入力
    は、第2上位入力セグメントおよび第2下位入力セグメ
    ントを有し、前記データ出力は、上位出力セグメントお
    よび下位出力セグメントを有し、 各加算器は、第1加算器部分および第2加算器部分を有
    し、各加算器部分は、複数のデータ入力セグメントの加
    算および減算を行う手段を有し、キャリーイン信号およ
    び前記減算信号を受け取り、キャリーアウト信号および
    データ出力セグメントを生成し、 前記第1加算器部分は、第1および第2の部分入力を受
    け取り、前記上位出力セグメントおよび符号信号を生成
    し、該上位出力セグメントは、前記減算信号がイナクテ
    ィブのときは前記第1部分入力と第2部分入力の和であ
    り、前記減算信号がアクティブのときは前記第1部分入
    力から第2部分入力を引いた差であり、該差が負のとき
    前記符号信号がアクティブとなり、 前記第2加算器部分は、第3および第4の部分入力を受
    け取り、前記下位出力セグメントおよびキャリーアウト
    信号を生成し、前記下位出力セグメントは、前記減算信
    号がイナクティブのときは前記第3部分入力と第4部分
    入力の和であり、前記減算信号がアクティブのときは前
    記第3部分入力から第4部分入力を引いた差であり、 各加算器には、前記比較演算が最小値演算または最大値
    演算のいずれであるかを示す比較モード信号が接続さ
    れ、 各加算器は、さらに、 前記符号信号および前記比較モード信号を入力として受
    け取り、前記トレースバック出力を、前記符号および比
    較モード信号の論理的結合として生成するトレースバッ
    クビット回路と、 前記比較信号および前記トレースバック出力に応じて、
    前記上位出力セグメント、前記第1部分入力、および前
    記第2部分入力のうちの1つを前記上位出力セグメント
    として選択する第1出力選択手段と、 前記比較信号および前記トレースバック出力に応じて、
    前記下位出力セグメント、前記第3部分入力、および前
    記第4部分入力のうちの1つを前記下位出力セグメント
    として選択する第2出力選択手段とを有することを特徴
    とする請求項6に記載の集積回路。
  8. 【請求項8】 前記制御信号は、さらに、スプリット信
    号を含み、 前記加算器は、さらに、前記第1加算器部分と前記第2
    加算器部分を選択的に接続するスプリット選択手段を有
    し、 前記スプリット信号がイナクティブのとき、前記第2加
    算器部分からの前記キャリーアウト信号が前記第1加算
    器部分の前記キャリーイン信号に接続され、 前記スプリット信号がアクティブのとき、別のキャリー
    イン信号が前記第1の加算器部分の前記キャリーイン信
    号に接続されることを特徴とする請求項7に記載の集積
    回路。
  9. 【請求項9】 前記別のキャリーイン信号は前記減算信
    号に等しいことを特徴とする請求項8に記載の集積回
    路。
  10. 【請求項10】 前記第1加算器部分は前記第1上位入
    力セグメントを前記第1部分入力として受け取るととも
    に、前記第1下位入力セグメントおよび前記第2下位入
    力セグメントのうちの一方を選択的に前記第2部分入力
    として受け取り、 前記第2加算器部分は前記第1下位入力セグメントおよ
    びヌルデータ列のうちの一方を選択的に前記第3部分入
    力として受け取るとともに、前記第2下位入力セグメン
    トおよび前記ヌルデータ列のうちの一方を選択的に前記
    第4部分入力として受け取ることを特徴とする請求項7
    に記載の集積回路。
  11. 【請求項11】 ビタビ比較選択演算を実行するのと並
    行してビタビトレースバックビットを格納する方法であ
    って、 (a)比較選択演算が最小値または最大値のいずれをも
    どすべきかを示す比較モード信号を提供するステップ
    と、 (b)事前に計算された第1および第2のパスメトリッ
    ク値を提供するステップと、 (c)前記第2のパスメトリック値を前記第1のパスメ
    トリック値から減算した差を求め、該差が0より小さい
    ときに符号ビットをアクティブにし、該差が0以上のと
    きに符号ビットをイナクティブにするステップと、 (d)前記符号ビットと前記比較モードビットとを結合
    して、トレースバック選択ビットを生成するステップ
    と、 (e)前記トレースバック選択ビットの値に従って前記
    第1のパスメトリック値および前記第2のパスメトリッ
    ク値のうちの一方を選択するステップと、 (f)前記選択されたパスメトリック値を前記比較選択
    演算の結果として出力するステップと、 (g)前記ステップfと並行して行う、前記トレースバ
    ック選択ビットをトレースバックシフトレジスタにシフ
    トするステップとを含むことを特徴とする方法。
  12. 【請求項12】 前記方法はさらに、ビタビモードビッ
    ト信号を提供するステップを有し、前記ステップgは、
    該ビタビモードビット信号がアクティブのときにのみ実
    行されることを特徴とする請求項11に記載の方法。
  13. 【請求項13】 自動ビタビトレースバックビット格納
    機能を有する算術論理プロセッサであって、 第1および第2のデータ入力ならびに1つのデータ出力
    を有し、複数の制御信号に応じて該データ入力の加算、
    減算および比較の演算を行う手段を有する加算器であっ
    て、該比較演算の結果に依存する値を有するトレースバ
    ック出力をさらに有する加算器と、 前記トレースバック出力を受け取り、切り替えシフト手
    段を有するトレースバックシフトレジスタとを含み、 前記切り替えシフト手段にはビタビモード信号が接続さ
    れ、 前記ビタビモード信号がアクティブのときで、かつ前記
    比較演算が実行された場合に、前記トレースバック出力
    が前記トレースバックシフトレジスタにシフトされるよ
    うになっていることを特徴とする算術論理プロセッサ。
  14. 【請求項14】 前記制御信号は、現在の加算器の計算
    が加算または減算のいずれであるかを示す減算信号と、
    現在の加算器の計算が比較演算であるかどうかを示す比
    較信号とを含み、 前記第1データ入力は、第1上位入力セグメントおよび
    第1下位入力セグメントを有し、前記第2データ入力
    は、第2上位入力セグメントおよび第2下位入力セグメ
    ントを有し、前記データ出力は、上位出力セグメントお
    よび下位出力セグメントを有し、 前記加算器は、第1加算器部分および第2加算器部分を
    有し、各加算器部分は、複数のデータ入力セグメントの
    加算および減算を行う手段を有し、キャリーイン信号お
    よび前記減算信号を受け取り、キャリーアウト信号およ
    びデータ出力セグメントを生成し、 前記第1加算器部分は、第1および第2の部分入力を受
    け取り、前記上位出力セグメントおよび符号信号を生成
    し、該上位出力セグメントは、前記減算信号がイナクテ
    ィブのときは前記第1部分入力と第2部分入力の和であ
    り、前記減算信号がアクティブのときは前記第1部分入
    力から第2部分入力を引いた差であり、該差が負のとき
    前記符号信号がアクティブとなり、 前記第2加算器部分は、第3および第4の部分入力を受
    け取り、前記下位出力セグメントおよびキャリーアウト
    信号を生成し、前記下位出力セグメントは、前記減算信
    号がイナクティブのときは前記第3部分入力と第4部分
    入力の和であり、前記減算信号がアクティブのときは前
    記第3部分入力から第4部分入力を引いた差であり、 各加算器には、前記比較演算が最小値演算または最大値
    演算のいずれであるかを示す比較モード信号が接続さ
    れ、 各加算器は、さらに、 前記符号信号および前記比較モード信号を入力として受
    け取り、前記トレースバック出力を、該符号および比較
    モード信号の論理的結合として生成するトーレースバッ
    クビット回路と、 前記比較信号および前記トレースバック出力に応じて、
    前記上位出力セグメント、前記第1部分入力、および前
    記第2部分入力のうちの1つを前記上位出力セグメント
    として選択する第1出力選択手段と、 前記比較信号および前記トレースバック出力に応じて、
    前記下位出力セグメント、前記第3部分入力、および前
    記第4部分入力のうちの1つを前記下位出力セグメント
    として選択する第2出力選択手段とを有することを特徴
    とする請求項13に記載のプロセッサ。
  15. 【請求項15】 前記制御信号は、さらに、スプリット
    信号を含み、 前記加算器は、さらに、前記第1加算器部分と前記第2
    加算器部分を選択的に接続するスプリット選択手段を有
    し、 前記スプリット信号がイナクティブのとき、前記第2加
    算器部分からの前記キャリーアウト信号が前記第1加算
    器部分の前記キャリーイン信号に接続され、 前記スプリット信号がアクティブのとき、別のキャリー
    イン信号が前記第1の加算器部分の前記キャリーイン信
    号に接続されることを特徴とする請求項14に記載のプ
    ロセッサ。
  16. 【請求項16】 前記別のキャリーイン信号は前記減算
    信号に等しいことを特徴とする請求項15に記載のプロ
    セッサ。
  17. 【請求項17】 前記第1加算器部分は前記第1上位入
    力セグメントを前記第1部分入力として受け取るととも
    に、前記第1下位入力セグメントおよび前記第2下位入
    力セグメントのうちの一方を選択的に前記第2部分入力
    として受け取り、 前記第2加算器部分は前記第1下位入力セグメントおよ
    びヌルデータ列のうちの一方を選択的に前記第3部分入
    力として受け取るとともに、前記第2下位入力セグメン
    トおよび前記ヌルデータ列のうちの一方を選択的に前記
    第4部分入力として受け取ることを特徴とする請求項1
    4に記載のプロセッサ。
JP31709798A 1997-11-14 1998-11-09 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ Expired - Fee Related JP3358996B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/970,921 US5987490A (en) 1997-11-14 1997-11-14 Mac processor with efficient Viterbi ACS operation and automatic traceback store
US08/970921 1997-11-14

Publications (2)

Publication Number Publication Date
JPH11261426A JPH11261426A (ja) 1999-09-24
JP3358996B2 true JP3358996B2 (ja) 2002-12-24

Family

ID=25517710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP31709798A Expired - Fee Related JP3358996B2 (ja) 1997-11-14 1998-11-09 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ

Country Status (3)

Country Link
US (1) US5987490A (ja)
EP (1) EP0917295A3 (ja)
JP (1) JP3358996B2 (ja)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3338374B2 (ja) 1997-06-30 2002-10-28 松下電器産業株式会社 演算処理方法および装置
JP3277856B2 (ja) * 1997-08-29 2002-04-22 日本電気株式会社 ビタビデコーダ
US6317770B1 (en) * 1997-08-30 2001-11-13 Lg Electronics Inc. High speed digital signal processor
US6272188B1 (en) * 1997-11-24 2001-08-07 Agere Systems Guardian Corp. Single-cycle accelerator for extremun state search
US6148431A (en) * 1998-03-26 2000-11-14 Lucent Technologies Inc. Add compare select circuit and method implementing a viterbi algorithm
US7031407B1 (en) * 1998-09-28 2006-04-18 Ceva D.S.P. Ltd. Apparatus and method for decoding and trace back of convolution codes using the viterbi decoding algorithm
US6647071B2 (en) * 1998-11-06 2003-11-11 Texas Instruments Incorporated Method and apparatus for equalization and tracking of coded digital communications signals
US6690750B1 (en) 1999-12-23 2004-02-10 Texas Instruments Incorporated Flexible Viterbi decoder for wireless applications
US7111155B1 (en) 1999-05-12 2006-09-19 Analog Devices, Inc. Digital signal processor computation core with input operand selection from operand bus for dual operations
US6859872B1 (en) 1999-05-12 2005-02-22 Analog Devices, Inc. Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation
US6820189B1 (en) 1999-05-12 2004-11-16 Analog Devices, Inc. Computation core executing multiple operation DSP instructions and micro-controller instructions of shorter length without performing switch operation
US7107302B1 (en) * 1999-05-12 2006-09-12 Analog Devices, Inc. Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units
US6258023B1 (en) 1999-07-08 2001-07-10 Chase Medical, Inc. Device and method for isolating a surface of a beating heart during surgery
US6901118B2 (en) * 1999-12-23 2005-05-31 Texas Instruments Incorporated Enhanced viterbi decoder for wireless applications
EP1158683A1 (de) * 2000-05-24 2001-11-28 Infineon Technologies AG Vorrichtung und Verfahren zum Durchführen eines Viterbi-Algorithmus
US6625630B1 (en) * 2000-06-05 2003-09-23 Dsp Group Ltd. Two cycle FFT
US7234100B1 (en) * 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
US6748411B1 (en) 2000-11-20 2004-06-08 Agere Systems Inc. Hierarchical carry-select multiple-input split adder
JP3984790B2 (ja) * 2001-01-15 2007-10-03 日本電気株式会社 ビタビ復号処理装置
US6677786B2 (en) * 2001-02-28 2004-01-13 Brecis Communications Corporation Multi-service processor clocking system
US6848074B2 (en) 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
AUPR679401A0 (en) * 2001-08-03 2001-08-30 Lucent Technologies Inc. High speed add-compare-select processing
US7661059B2 (en) * 2001-08-06 2010-02-09 Analog Devices, Inc. High performance turbo and Viterbi channel decoding in digital signal processors
US7424698B2 (en) * 2004-02-27 2008-09-09 Intel Corporation Allocation of combined or separate data and control planes
US20060004902A1 (en) * 2004-06-30 2006-01-05 Siva Simanapalli Reconfigurable circuit with programmable split adder
US20060149804A1 (en) * 2004-11-30 2006-07-06 International Business Machines Corporation Multiply-sum dot product instruction with mask and splat
US20080071851A1 (en) * 2006-09-20 2008-03-20 Ronen Zohar Instruction and logic for performing a dot-product operation
US8332452B2 (en) * 2006-10-31 2012-12-11 International Business Machines Corporation Single precision vector dot product with “word” vector write mask
US9495724B2 (en) * 2006-10-31 2016-11-15 International Business Machines Corporation Single precision vector permute immediate with “word” vector write mask
US20080152044A1 (en) * 2006-12-20 2008-06-26 Media Tek Inc. Veterbi decoding method for convolutionally encoded signal
GB2475653B (en) * 2007-03-12 2011-07-13 Advanced Risc Mach Ltd Select and insert instructions within data processing systems
US8910025B2 (en) * 2011-10-03 2014-12-09 Samsung Electronics Co., Ltd. Method and apparatus of QC-LDPC convolutional coding and low-power high throughput QC-LDPC convolutional encoder and decoder
US9389854B2 (en) * 2013-03-15 2016-07-12 Qualcomm Incorporated Add-compare-select instruction

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5375129A (en) * 1990-07-19 1994-12-20 Technophone Limited Maximum likelihood sequence detector
US5377133A (en) * 1992-04-07 1994-12-27 Digital Equipment Corporation System for enhanced implementation of add-compare-select (ACS) functions
JP2755045B2 (ja) * 1992-05-26 1998-05-20 日本電気株式会社 ビタビ復号器
JPH06338808A (ja) * 1993-05-28 1994-12-06 Matsushita Electric Ind Co Ltd 加算比較選択装置
FR2724273B1 (fr) * 1994-09-05 1997-01-03 Sgs Thomson Microelectronics Circuit de traitement de signal pour mettre en oeuvre un algorithme de viterbi
US5636157A (en) * 1994-10-03 1997-06-03 International Business Machines Corporation Modular 64-bit integer adder
US5633897A (en) * 1995-11-16 1997-05-27 Atmel Corporation Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm
US5781569A (en) * 1996-10-28 1998-07-14 Lsi Logic Corporation Differential trellis decoding for convolutional codes
US5751734A (en) * 1996-11-04 1998-05-12 Samsung Electronics Co., Ltd. Decoding method and apparatus using trace deletion for Viterbi algorithm
US5987638A (en) * 1997-04-22 1999-11-16 Lsi Logic Corporation Apparatus and method for computing the result of a viterbi equation in a single cycle

Also Published As

Publication number Publication date
JPH11261426A (ja) 1999-09-24
US5987490A (en) 1999-11-16
EP0917295A3 (en) 2004-06-09
EP0917295A2 (en) 1999-05-19

Similar Documents

Publication Publication Date Title
JP3358996B2 (ja) 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ
US6397240B1 (en) Programmable accelerator for a programmable processor system
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
US5619664A (en) Processor with architecture for improved pipelining of arithmetic instructions by forwarding redundant intermediate data forms
US5633897A (en) Digital signal processor optimized for decoding a signal encoded in accordance with a Viterbi algorithm
JP5478068B2 (ja) 改善されたパイプライン化デジタル信号プロセッサ
US6029267A (en) Single-cycle, soft decision, compare-select operation using dual-add processor
US6954841B2 (en) Viterbi decoding for SIMD vector processors with indirect vector element access
US5742621A (en) Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
US20080240303A1 (en) Map detector with a single state metric engine
US6272188B1 (en) Single-cycle accelerator for extremun state search
US6009128A (en) Metric acceleration on dual MAC processor
US7661059B2 (en) High performance turbo and Viterbi channel decoding in digital signal processors
JP4042364B2 (ja) アドレス生成回路、選択判断回路
KR100732426B1 (ko) 고속 컨텍스트 전환을 갖는 컴퓨터
EP1058392A1 (en) Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system
JP3454393B2 (ja) データ処理装置
US7191432B2 (en) High frequency compound instruction mechanism and method for a compare operation in an arithmetic logic unit
KR100414152B1 (ko) 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로
US7406590B2 (en) Methods and apparatus for early loop bottom detection in digital signal processors
JP3256505B2 (ja) インデックスを識別する方法
Lee et al. Efficient DSP architecture for Viterbi decoding with small trace back latency
US20040153953A1 (en) Processor and method for convolutional decoding
KR100501894B1 (ko) 리드솔로몬복호를위한유클리드계산회로
Park et al. Efficient DSP architecture for Viterbi decoding with small trace back latency

Legal Events

Date Code Title Description
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20071011

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081011

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091011

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091011

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101011

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101011

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111011

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111011

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121011

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131011

Year of fee payment: 11

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees