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
Links
- 238000004364 calculation method Methods 0.000 claims description 18
- 230000009977 dual effect Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 claims description 12
- 238000000034 method Methods 0.000 claims description 10
- 230000001186 cumulative effect Effects 0.000 claims description 2
- 230000001419 dependent effect Effects 0.000 claims 2
- GNFTZDOKVXKIBK-UHFFFAOYSA-N 3-(2-methoxyethoxy)benzohydrazide Chemical compound COCCOC1=CC=CC(C(=O)NN)=C1 GNFTZDOKVXKIBK-UHFFFAOYSA-N 0.000 claims 1
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 claims 1
- 230000003213 activating effect Effects 0.000 claims 1
- 230000000415 inactivating effect Effects 0.000 claims 1
- 238000007792 addition Methods 0.000 description 26
- 238000004422 calculation algorithm Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 230000007704 transition Effects 0.000 description 8
- 238000009825 accumulation Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 3
- 102100031699 Choline transporter-like protein 1 Human genes 0.000 description 2
- 101000940912 Homo sapiens Choline transporter-like protein 1 Proteins 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 102100039497 Choline transporter-like protein 3 Human genes 0.000 description 1
- 102100039505 Choline transporter-like protein 5 Human genes 0.000 description 1
- 101000889279 Homo sapiens Choline transporter-like protein 3 Proteins 0.000 description 1
- 101000889267 Homo sapiens Choline transporter-like protein 5 Proteins 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000012575 bio-layer interferometry Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6561—Parallelized implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4107—Sequence 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
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/39—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
- H03M13/41—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
- H03M13/4161—Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, 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/65—Purpose and implementation aspects
- H03M13/6569—Implementation 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
択演算の効率的計算に最適化されたアーキテクチャを有
するデュアルMACプロセッサに関する。
テムのようなデータ処理アプリケーションの厳しい速度
要求を達成する努力において、ディジタル信号プロセッ
サ(DSP)が利用されてきている。DSPは、音など
のアナログソースからの信号のディジタル処理および分
析に利用される専用CPUである。アナログ信号はディ
ジタルデータに変換され、高速フーリエ変換のようなさ
まざまなアルゴリズムを用いて分析される。DSPは、
特に、乗算、積和、およびシフト累算のようないくつか
の演算の高速パフォーマンスのために設計されている。
DSPの計算量の多い処理は主にこのような演算に基づ
いているからである。この理由で、DSPは一般に、乗
算、累算およびシフト演算を実行する専用ハードウェア
回路を有する。
テクチャの1つの形式は、積和(MAC(Multiply-Accu
mulate))プロセッサとして知られている。MACプロ
セッサは、最も多いデータ処理演算は2つの値を乗算し
てからその結果の値を別の値に加算してその結果を格納
するものであるということを利用するアーキテクチャを
実装している。これらの基本演算は、特別に構成され
た、高速の乗算器(マルチプライア)および累算器(ア
キュムレータ)を利用して効率的に実行されるため、
「積和」と呼ばれる。
複数のプロセスを並列に実行することである。この目的
のため、複数の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プロセッサを有する。
SP16000デュアルMACプロセッサは、主要な計
算ユニットであるデータ算術ユニット(DAU(data ar
ithmetic unit))を有する。DAUの乗算器への入力
は、xおよびyレジスタと呼ばれる1対の倍長レジスタ
を通じて入力され、各乗算器の出力はそれぞれの積レジ
スタに出力される。並列累算は、2入力算術論理ユニッ
ト(ALU)および3入力加算器の両方を設け、そのい
ずれもがいずれかの積レジスタにデータを格納すること
ができるようにすることにより達成される。数学関数が
ALUまたは加算器で実行されるとき、その結果はアキ
ュムレータレジスタに格納される。いくつかのアキュム
レータレジスタがDAUにある。
に、大きなシンボル間干渉のあるアプリケーションで
は、DSPは、畳込み符号化およびビタビ復号を用いた
データ誤り検出および訂正を実行するために用いられ
る。畳込み符号化は、データ入力ビットと、1個以上の
以前の符号化されていない入力ビットとの畳込みをとる
ことによって実行される。畳込みされたデータは、周知
のビタビアルゴリズムを用いて復号される。ビタビアル
ゴリズムは、ある与えられた状態から次の状態への符号
器の可能な状態遷移に関する知識を用いて、与えられた
受信データに対して最も可能性の高い(最尤)符号器入
力を判定する。
フライ計算の説明図である。現状態(PS(present sta
te))から次状態(NS(next state))への4個の可能
な符号器遷移が示されている。現状態は、符号器のシフ
トレジスタに格納されているデータの数値と等価であ
る。1ビットが入力されると、符号器レジスタは右にシ
フトし、入力ビットは最上位ビット位置(次状態の太字
で示す。)に移動する。従って、図示のように、NS0
には、入力ビット0によりPS0またはPS1のいずれか
から到達可能である。同様に、NS8には、入力ビット
1によりPS0またはPS1のいずれかから到達可能であ
る。ビタビアルゴリズムは、2つの可能な遷移パスのう
ちのいずれが最尤(生き残り)パスであるかを判定する
手段を提供する。
る。第1ステップは、枝メトリック計算である。これ
は、受信データシンボルと、現状態から次状態への状態
遷移から生じる実際のデータシンボルの間のユークリッ
ド距離を判定する。時点kにおける現状態iから次状態
jへの遷移の枝メトリックをmij(k)で表す。m
ij(k)は次式で表現される。
り、cn,ijは、iからjへの状態遷移から生じる実際の
シンボル(これは、畳込み符号器の構造から決定され
る。)であり、符号器のレート(すなわち、入力ビット
あたりの出力ビットの数)は1/Rである。レート1/
R符号器の場合、各次状態ごとに2つの枝メトリックを
計算しなければならない。
ックを計算した後、各入力パスごとに累積距離を計算
し、最小距離(すなわち、最大確率)のパスを生き残り
パスとして選択する。このステップは加算比較選択(A
CS(Add-Compare-Select))として知られている。第3
のステップはトレースバックとして知られている。この
ステップは、現状態から次状態への可能な遷移のトレリ
スを通って、はじめの2つのステップによって決定され
た最尤パスをたどり、トレリスを通るパスを再構成して
もとの入力データを抽出する。この例では、生き残りパ
スは、現状態の最下位ビットによって表される。これは
通常、トレースバックビットと呼ばれる(図2では太字
で示す。)。例えば、現状態S0からのパスではなく現
状態S1からのパスが選ばれる場合、トレースバックビ
ットは1である。
スメトリック計算と、(2)比較選択演算、という2つ
のステップに分解することができる。パスメトリック加
算は、現状態コスト(ビタビ処理のはじめにユーザによ
って初期化される値)と枝メトリック値の累算である。
図2に示されるように、次状態0000の2つのパスメ
トリックは、 PS0+m0,0 および PS1+m1,0 (1) であり、次状態1000に対しては、 PS0+m0,8 および PS1+m1,8 (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)
出に対する効率的で有効なストラテジであるが、他のア
プリケーション用にもプログラム可能な信号およびデー
タプロセッサを用いてビタビアルゴリズムを実装すると
有用である。この目的のために用いられているアーキテ
クチャの1つの形式が上記のMACプロセッサである。
適化してビタビACS演算の実行の速度を最適化するた
めのいくつかの試みがなされている。例えば、Texas In
struments社製のTMS320C5xxシングルMAC
DSPは、スプリット(split)モード16ビット加減算
を使用することによって式1または式2のいずれかを1
サイクルで評価することが可能な命令を有する。しか
し、1サイクルパフォーマンスは、枝メトリックがm
1,0=−m0,0であるように設定された符号器に対してし
か達成されないため、このパフォーマンスは、この性質
を有しない符号器の場合には達成することができない。
また、TMS320C5xxチップは、「最大値」基準
のみを用いて、式3および式4の並列実行または式5お
よび式6の並列実行を行う単一サイクル命令を有する
が、パスメトリック値の最小値を要求するように実装さ
れたビタビアルゴリズムの場合は、生成されるトレース
バックビットが異なるため、そのビタビアルゴリズムを
容易に実行することはできない。さらに、比較および選
択の演算は、主要な加算器や算術論理ユニットとは別の
専用比較器ユニットを用いて実装されている。
び式2を単一サイクルで評価することができるデュアル
MAC DSP(品番TMS320C6xx)も提供し
ている。しかし、このチップは、式3、式4、式5、お
よび式6を単一サイクルで実行するのに必要なハードウ
ェアを含んでいない。その理由は、トレースバックビッ
トは自動的に生成されトレースバックレジスタに格納さ
れるのではなく、その代わりに、追加のコマンドを用い
て適当なレジスタに明示的にシフトしてやらなければな
らないからである。従って、比較の結果に基づいてトレ
ースバックビットを格納するために追加のマシンサイク
ルが要求され、ビタビ復号の効率が低下する。
プロセッサは、並列に動作し共通のアキュムレータレジ
スタバンクに接続された1対の加算器ユニットあるいは
算術論理ユニット(ALU)を有する。プロセッサは、
2つのビタビACS演算が、トレースバックビット格納
を含めて、2マシンサイクルで実行することができるよ
うに最適化される。各加算器/ALUは、加算、減算、
および比較を行う手段を有する。この手段は、フルモー
ド演算が実行されるときには1対のデータ入力に対して
演算を行い、スプリットモード演算が実行されるときに
は2対のデータ入力に対して演算を行う。本発明によれ
ば、比較演算は、加算器/ALUの減算機能を用いて実
行され、符号ビットを比較モードビットと結合して、ビ
タビ畳込み復号の比較部分のときに格納するための正し
いトレースバックビットを示すトレースバック出力を生
成する。比較演算が実行されビタビモードビットがアク
ティブのとき、生成されるトレースバック出力がトレー
スバックレジスタにシフトされる。各加算器/ALU
は、効率的なビタビ加算比較選択を実行するように最適
化されたフルモードおよびスプリットモードの機能のサ
ブセットを備える。
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ビットのハイ(上位)およびロー(下位)セグ
メントとしても利用可能である。
ーおよび演算は、命令デコーダ44から入力される複数
の制御信号42によって制御される。本発明によれば、
各加算器32は、制御信号42の値に応じて、1つの3
2ビット加減算または2つの16ビットスプリット加算
もしくは16ビット減算を実行する。32ビットまたは
16ビットの比較は、加算器32の減算機能を用いて実
行可能である。比較の後に最小値または最大値のいずれ
かを返すとともに、ビタビ加算比較選択の間に用いられ
るトレースバックビットTを生成することを可能にする
追加ロジックが含められる。これについては後述する。
42のさまざまな要素を示す図である。制御信号42
は、通常モード演算またはスプリットモード演算を示す
スプリット信号ビット70、減算コマンドを実行すべき
ことを示す減算信号ビット72、比較演算を実行すべき
ことを示す比較信号ビット74、比較は最小値(イナク
ティブにセット)または最大値(アクティブにセット)
のいずれを返すべきかを示す比較モード信号ビット7
5、および、データ入力AおよびBがどのように処理さ
れるかを制御するデータルーティング信号ビット76を
含む。
によってトレースバックシフトレジスタ46に接続され
る(図3)。トレースバックレジスタ46は、ユーザが
読み書きすることも可能である。ビタビ演算モード信号
77がセットされ、比較演算が実行されると、シフトイ
ネーブル信号43がシフトレジスタ46に、例えばAN
Dゲート79を通じて入力され、シフトレジスタ46内
のデータが左シフトされ、生成されたトレースバックビ
ット出力Tが最下位ビットとして格納される。好ましく
は、各トレースバックレジスタ46は16ビット幅であ
り、従来技術を用いて実装される。代替実施例として
は、トレースバックレジスタ46は、一度に複数ビット
が「スタッフ」(充填)されるように構成されることも
可能である。本発明によれば、比較演算およびトレース
バックビットスタッフィングは単一サイクルで実行され
る。
のセットを実行するように設定可能である。しかし、主
要な加算器とは別に専用のビタビハードウェアを利用す
る従来技術の解決法とは異なり、各加算器32は、デュ
アルMACプロセッサの主要な加算器あるいは算術論理
ユニット(ALU)としても用いられる。従って、ここ
では演算のサブセットのみについて説明するが、本発明
によれば、少なくとも1つの加算器32は、当業者に周
知の標準的なALU演算のセットをサポートする。
の詳細を図4および図5に示す。本発明に関連する制御
のみを詳細に指定しているが、当業者には明らかなよう
に、個々の実施例の要求に従って追加の算術機能を提供
する追加の制御ロジックを容易に追加することが可能で
ある。図6に示した個々の制御信号ビット70〜76は
図4では簡潔にするために省略している。
は、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出力を備える。
め、各加算器32への入力A、Bは、上位および下位セ
グメント(それぞれAh、ALおよびBh、BLで表す。)
に分割される。同様に、出力CはChとCLに分割され
る。32ビットデータ信号の場合、上位セグメントはビ
ット31〜16を表し、下位セグメントはビット15〜
0を表す。従って、2個の32ビットレジスタは、スプ
リットモード処理中に演算することが可能な4個の16
ビット値を格納することができる。
は、いくつかの選択回路によりゲーティングされる。こ
れらの選択回路は、マルチプレクサ(MUX)51〜5
6として図示されている。マルチプレクサ51〜56
は、データルーティング信号ビット76によって制御さ
れ、デコードされた命令に従って、処理すべきデータセ
グメントおよび適当な出力を選択する。マルチプレクサ
51〜56に対する制御信号はそれぞれCTL1〜CT
L6で表し、これらは、簡単のため別々に識別されてい
る。しかし、当業者には明らかなように、いくつかのマ
ルチプレクサが同じ制御信号を共用することも可能であ
る。
を互いに接続するか、または、スプリットモード演算を
可能にするために用いられる。これらのユニットが結合
されるとき、マルチプレクサ54は、サブユニット5
0′からのキャリーアウト信号66をサブユニット50
のキャリーイン信号63に接続する。スプリットモード
演算を実行するときには、マルチプレクサ54は、信号
65をサブユニット50のキャリーイン信号63に接続
する。
従来技術を用いて実装される。好ましくは、2の補数減
算を実行することにより、1つのオペランドのすべての
データビットを反転してキャリーインビットを1にセッ
トする。従って、減算が実行されると、サブユニット5
0′のキャリーイン信号63は1にセットされ、加算の
場合、この信号は0にセットされる。同様に、スプリッ
トモード減算を実行するときには、サブユニット50の
入力65は1にセットされる。ここで、図4に示される
ように、キャリーイン信号は、命令デコーダ44によっ
て生成される減算信号ビット72によって駆動される。
演算は、従来技術のように別のハードウェアによってで
はなく、サブユニット50、50′の減算機能を利用す
ることによって、実行される。計算された差の符号は符
号信号68として出力される。符号信号68および比較
モード信号ビット75はXORゲート69のような排他
的論理和回路によって排他的論理和をとられ、信号78
を生成する。本発明によれば、この信号は、2つの比較
されるデータ値のいずれが出力に渡されるかを示すとと
もに、ビタビモード信号77によってビタビ比較選択演
算が示されているときにはトレースバックレジスタ46
に格納される適切なトレースバックビットを示す。
を評価する。AがBより小さい場合、結果の符号は負で
あり、符号信号68は1である。最小値が要求される場
合、比較モード信号ビット75は0にセットされ、信号
78は1となる。上記の式3を参照すると、A=PS0
+m0,0でB=PS1+m1,0の場合、信号78の値は正
しいトレースバックビット値も与える。同様に、最大値
が要求される場合、比較モード信号ビット75は1にセ
ットされるため、信号78は0となる。
な基本演算に加えて、ビタビ処理に最適化された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ビットデータレジスタに関して後述する
が、他のサイズのレジスタ長でも可能である。
な命令は、スプリット信号ビット70、減算信号ビット
72、および比較信号ビット74がすべて0になるよう
にデコードされる。サブユニット50は、この加算の上
位部分Ah+Bhを実行し、従って、MUX51の制御信
号CTL1はBh入力を選択する。サブユニット50′
はこの加算の下位部分を実行し、従って、制御信号CT
L2およびCTL3はそれぞれMUX52および53が
ALおよびBLを選択するようにセットされる。これはス
プリットモード演算ではないため、MUX54は、CT
L4により、サブユニット50′のキャリーアウト信号
66′がサブユニット50のキャリーイン63に接続す
るようにセットされる。出力MUX55および56は、
制御信号CTL5、CTL6により、データ信号64、
64′(すなわち、加算の結果S 1、S0)を選択するよ
うにセットされる。データ信号64、64′はそれぞ
れ、出力Cの上位および下位部分を形成する。A−B演
算も、減算信号ビット72がハイ(1)であることを除
いては、同様に実行される。
モード加算および減算である。本実施例によれば、入力
AおよびBの上位セグメントはサブユニット50によっ
て処理され、入力AおよびBの下位セグメントはサブユ
ニット50′によって処理される。しかし、他のデータ
セグメント組合せも可能である。スプリットモードの加
減算の場合、入力MUX51、52、53、55および
56はそれぞれ上記の32ビット加減算の場合と同様に
制御される。しかし、スプリット信号ビット70はアク
ティブ(1)であり、これは、MUX54が2個のサブ
ユニット50、50′を相互に切断し、代わりに、入力
65をサブユニット50のキャリーイン信号63へルー
ティングすべきことを示す。
これらは、本発明によれば、ビタビアプリケーションお
よび非ビタビアプリケーションの両方に用いられる。3
2ビット比較cmp(A,B)の場合、マルチプレクサ
51〜53は上記のように設定され、サブユニット5
0′のキャリーアウト信号66はマルチプレクサ54を
通じてサブユニット50のキャリーイン入力63に接続
される。上記のように、比較は減算によって実行される
ため、減算信号ビット72はアクティブ(1)である。
32ビット比較の場合、比較の結果および比較モード信
号ビット75(最小値または最大値のいずれを返すべき
かを示す。)に応じて、出力MUX55はAhまたはBh
のいずれかを選択するようにセットされ、MUX56は
ALまたはBLのいずれかを選択するようにセットされ
る。これらの条件はいずれも、上記の信号78によって
表される。信号78がロー(0)のとき、データAが選
択され、そうでないとき、データBが選択される。16
ビット比較は32ビット比較とほぼ同様に実行される。
本実施例によれば、比較はサブユニット50上で実行さ
れ、スプリット信号ビット70はアクティブ(1)であ
り、16ビット減算が実行される。この演算はサブユニ
ット50′を利用しないため、図4および図5に示すよ
うに、ヌルデータ列入力(ここでは0で示す。)および
ヌルデータ列出力が選択され、余計な(偽)データがシ
ステムから出力されないことを保証する。
ト50のみを利用する演算ときの偽データの伝搬を防ぐ
別のメカニズムも利用可能である。例えば、MUX55
およびMUX56は、ここで説明したコマンドセットを
実装する必要はなく、実際、必要に応じて省略すること
も可能である。また、当業者には認識されるように、ヌ
ルデータ列の代わりに他のデータ入力を与えて別の機能
を提供することも可能である。さらに、出力セレクタM
UX55およびMUX56は、すべての可能なデータ入
力を受け取るように図示されているが(例えば、MUX
55は、S1、Ah、AL、およびBhから選択を行
う。)、代替構成としては、これらのデータ出力セレク
タは単に、セレクタMUX51、52、および53によ
る判定に従ってサブユニット50、50′への一部の入
力を受け取ることも可能である。従って、例えば、MU
X55は、サブユニット50からの出力信号64または
サブユニット50への入力信号60、62からの選択を
行う。
プロセッサ構成を用いたビタビACS演算の実行につい
て説明する。ビタビ復号アルゴリズムの初期化および枝
メトリック計算の間、2つのデータ配列がメモリ36内
に設定される。第1の配列は、現状態値を順に含み、ポ
インタレジスタpt0によってポイントされる。第2の
配列は、計算された枝メトリック値を同じく順に含み、
ポインタr0によってポイントされる。これらのポイン
タはいずれも最初に配列内の第1の値をポイントするよ
うにセットされる。初期化はまた、トレースバックシフ
トレジスタ46へのトレースバックビットスタッフィン
グと、比較が最小値または最大値のいずれの比較演算か
を選択することを可能にするビタビ動作モードビットの
設定を含む。実施例では、メモリサブシステム36によ
り、2つのデータレジスタ値は、デュアルMAC演算の
実行とともに単一サイクルでロードされ、現状態および
枝メトリックの値が単一のレジスタに格納されるよう
に、レジスタ長はこれらの2つの値の幅の2倍である。
ックに関してm1,0=−m0,0という性質を有するクラス
のものであると仮定する。従って、式2a、式5a、お
よび式6aを用いる。しかし、当業者には認識されるよ
うに、この説明はこのクラスに限定されるものではな
く、上記の式2、式5、および式6を実装する同様のデ
ータ演算列は、より一般的な符号器からのデータをデコ
ードするように容易に選択することができる。
プラインも初期化しなければならない。a4レジスタに
は最初の2つの現状態コストPS0およびPS1をプリ
ロードし、yレジスタには最初の2つの枝メトリック値
m0およびm1をプリロードし、これに応じてポインタ
をインクリメントする。これは、コマンド a4=*pt0++; y=*r0++ によって表される。「*」は間接ロードを示す。例え
ば、レジスタa4に、pt0によってポイントされるメ
モリ位置の内容をロードした後、pt0内のアドレスを
インクリメントする。
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とされる。こうして、パイプラインが
初期化されると、ビタビ加算は単一サイクルで実行可能
となる。
を並列に実行する単一サイクル命令として実行される。 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
式6aと等価である。こうして、ビタビ比較選択演算は
単一サイクルで実行可能となる。こうして、2つのパス
メトリックに対する1回のACS計算は、本発明による
デュアルMACプロセッサによって、2マシンサイクル
で実行可能である。
タビ復号アルゴリズムを実行するプロセッサにおいて、
比較演算およびトレースバックビットスタッフィングは
同時並行して単一サイクルで実行される。また、比較選
択演算に、主要な加算器や算術論理ユニットとは別の専
用比較器ユニットを用いる必要がない。
図である。
部分のブロック図である。
よび関連する制御ビットの表の図である。
である。
Claims (17)
- 【請求項1】 複数のアキュムレータと、該アキュムレ
ータに接続された複数のデータレジスタとを含み、自動
ビタビトレースバックビット格納機能を有する並列算術
論理プロセッサにおいて、各アキュムレータは、 第1および第2のデータ入力ならびに1つのデータ出力
を有し、複数の制御信号に応答して該データ入力の加
算、減算および比較の演算を行う手段を有する加算器で
あって、該比較演算の結果に依存する値を有するトレー
スバック出力をさらに有する加算器と、 前記トレースバック出力を受け取り、切り替えシフト手
段を有するトレースバックシフトレジスタとを含み、 前記切り替えシフト手段にはビタビモード信号が接続さ
れ、 前記ビタビモード信号がアクティブで、かつ前記比較演
算が実行された場合に、前記トレースバック出力が前記
トレースバックシフトレジスタにシフトされるようにな
っていることを特徴とする、並列算術論理プロセッサ。 - 【請求項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】 前記制御信号は、さらに、スプリット信
号を含み、 前記加算器は、さらに、前記第1加算器部分と前記第2
加算器部分を選択的に接続するスプリット選択手段を有
し、 前記スプリット信号がイナクティブのとき、前記第2加
算器部分からの前記キャリーアウト信号が前記第1加算
器部分の前記キャリーイン信号に接続され、 前記スプリット信号がアクティブのとき、別のキャリー
イン信号が前記第1の加算器部分の前記キャリーイン信
号に接続されることを特徴とする請求項2に記載のプロ
セッサ。 - 【請求項4】 前記別のキャリーイン信号は前記減算信
号に等しいことを特徴とする請求項3に記載のプロセッ
サ。 - 【請求項5】 前記第1加算器部分は前記第1上位入力
セグメントを前記第1部分入力として受け取るととも
に、前記第1下位入力セグメントおよび前記第2下位入
力セグメントのうちの一方を選択的に前記第2部分入力
として受け取り、 前記第2加算器部分は前記第1下位入力セグメントおよ
びヌルデータ列のうちの一方を選択的に前記第3部分入
力として受け取るとともに、前記第2下位入力セグメン
トおよび前記ヌルデータ列のうちの一方を選択的に前記
第4部分入力として受け取ることを特徴とする請求項2
に記載のプロセッサ。 - 【請求項6】 自動ビタビトレースバックビット格納機
能を有するデュアル積和プロセッサを含む集積回路にお
いて、該プロセッサは、 2個の積和処理要素と、 前記処理要素に接続された複数のデータレジスタとを有
し、 前記処理要素の各々は、 前記データレジスタに接続された乗算器と、 前記データレジスタから複数のデータ入力を受け取り、
前記データレジスタのうちの少なくとも1つに接続され
た累算出力を生成するアキュムレータとを有し、 前記アキュムレータは、 第1および第2のデータ入力ならびに1つのデータ出力
を有し、複数の制御信号に応じて該データ入力の加算、
減算および比較の演算を行う手段を有する加算器であっ
て、該比較演算の結果に依存する値を有するトレースバ
ック出力を有する加算器と、 前記トレースバック出力を受け取り、切り替えシフト手
段を有するトレースバックシフトレジスタとを含み、 前記切り替えシフト手段にはビタビモード信号が接続さ
れ、 前記ビタビモード信号がアクティブのときに前記比較演
算が実行された場合、前記トレースバック出力が前記ト
レースバックシフトレジスタにシフトされることを特徴
とする、自動ビタビトレースバックビット格納機能を有
するデュアル積和プロセッサを含む集積回路。 - 【請求項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】 前記制御信号は、さらに、スプリット信
号を含み、 前記加算器は、さらに、前記第1加算器部分と前記第2
加算器部分を選択的に接続するスプリット選択手段を有
し、 前記スプリット信号がイナクティブのとき、前記第2加
算器部分からの前記キャリーアウト信号が前記第1加算
器部分の前記キャリーイン信号に接続され、 前記スプリット信号がアクティブのとき、別のキャリー
イン信号が前記第1の加算器部分の前記キャリーイン信
号に接続されることを特徴とする請求項7に記載の集積
回路。 - 【請求項9】 前記別のキャリーイン信号は前記減算信
号に等しいことを特徴とする請求項8に記載の集積回
路。 - 【請求項10】 前記第1加算器部分は前記第1上位入
力セグメントを前記第1部分入力として受け取るととも
に、前記第1下位入力セグメントおよび前記第2下位入
力セグメントのうちの一方を選択的に前記第2部分入力
として受け取り、 前記第2加算器部分は前記第1下位入力セグメントおよ
びヌルデータ列のうちの一方を選択的に前記第3部分入
力として受け取るとともに、前記第2下位入力セグメン
トおよび前記ヌルデータ列のうちの一方を選択的に前記
第4部分入力として受け取ることを特徴とする請求項7
に記載の集積回路。 - 【請求項11】 ビタビ比較選択演算を実行するのと並
行してビタビトレースバックビットを格納する方法であ
って、 (a)比較選択演算が最小値または最大値のいずれをも
どすべきかを示す比較モード信号を提供するステップ
と、 (b)事前に計算された第1および第2のパスメトリッ
ク値を提供するステップと、 (c)前記第2のパスメトリック値を前記第1のパスメ
トリック値から減算した差を求め、該差が0より小さい
ときに符号ビットをアクティブにし、該差が0以上のと
きに符号ビットをイナクティブにするステップと、 (d)前記符号ビットと前記比較モードビットとを結合
して、トレースバック選択ビットを生成するステップ
と、 (e)前記トレースバック選択ビットの値に従って前記
第1のパスメトリック値および前記第2のパスメトリッ
ク値のうちの一方を選択するステップと、 (f)前記選択されたパスメトリック値を前記比較選択
演算の結果として出力するステップと、 (g)前記ステップfと並行して行う、前記トレースバ
ック選択ビットをトレースバックシフトレジスタにシフ
トするステップとを含むことを特徴とする方法。 - 【請求項12】 前記方法はさらに、ビタビモードビッ
ト信号を提供するステップを有し、前記ステップgは、
該ビタビモードビット信号がアクティブのときにのみ実
行されることを特徴とする請求項11に記載の方法。 - 【請求項13】 自動ビタビトレースバックビット格納
機能を有する算術論理プロセッサであって、 第1および第2のデータ入力ならびに1つのデータ出力
を有し、複数の制御信号に応じて該データ入力の加算、
減算および比較の演算を行う手段を有する加算器であっ
て、該比較演算の結果に依存する値を有するトレースバ
ック出力をさらに有する加算器と、 前記トレースバック出力を受け取り、切り替えシフト手
段を有するトレースバックシフトレジスタとを含み、 前記切り替えシフト手段にはビタビモード信号が接続さ
れ、 前記ビタビモード信号がアクティブのときで、かつ前記
比較演算が実行された場合に、前記トレースバック出力
が前記トレースバックシフトレジスタにシフトされるよ
うになっていることを特徴とする算術論理プロセッサ。 - 【請求項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】 前記制御信号は、さらに、スプリット
信号を含み、 前記加算器は、さらに、前記第1加算器部分と前記第2
加算器部分を選択的に接続するスプリット選択手段を有
し、 前記スプリット信号がイナクティブのとき、前記第2加
算器部分からの前記キャリーアウト信号が前記第1加算
器部分の前記キャリーイン信号に接続され、 前記スプリット信号がアクティブのとき、別のキャリー
イン信号が前記第1の加算器部分の前記キャリーイン信
号に接続されることを特徴とする請求項14に記載のプ
ロセッサ。 - 【請求項16】 前記別のキャリーイン信号は前記減算
信号に等しいことを特徴とする請求項15に記載のプロ
セッサ。 - 【請求項17】 前記第1加算器部分は前記第1上位入
力セグメントを前記第1部分入力として受け取るととも
に、前記第1下位入力セグメントおよび前記第2下位入
力セグメントのうちの一方を選択的に前記第2部分入力
として受け取り、 前記第2加算器部分は前記第1下位入力セグメントおよ
びヌルデータ列のうちの一方を選択的に前記第3部分入
力として受け取るとともに、前記第2下位入力セグメン
トおよび前記ヌルデータ列のうちの一方を選択的に前記
第4部分入力として受け取ることを特徴とする請求項1
4に記載のプロセッサ。
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)
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)
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 |
-
1997
- 1997-11-14 US US08/970,921 patent/US5987490A/en not_active Expired - Lifetime
-
1998
- 1998-11-03 EP EP98308979A patent/EP0917295A3/en not_active Ceased
- 1998-11-09 JP JP31709798A patent/JP3358996B2/ja not_active Expired - Fee Related
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 |