JPH09153822A - データ処理システムにおける加算比較選択バタフライ演算およびその命令を実行する方法 - Google Patents

データ処理システムにおける加算比較選択バタフライ演算およびその命令を実行する方法

Info

Publication number
JPH09153822A
JPH09153822A JP8310050A JP31005096A JPH09153822A JP H09153822 A JPH09153822 A JP H09153822A JP 8310050 A JP8310050 A JP 8310050A JP 31005096 A JP31005096 A JP 31005096A JP H09153822 A JPH09153822 A JP H09153822A
Authority
JP
Japan
Prior art keywords
metric
trellis
survivor
path metric
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.)
Pending
Application number
JP8310050A
Other languages
English (en)
Inventor
Yossi Amon
ヨシ・アモン
Natan Baron
ナタン・バロン
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.)
Motorola Solutions Inc
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of JPH09153822A publication Critical patent/JPH09153822A/ja
Pending legal-status Critical Current

Links

Classifications

    • 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/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • G06F9/30014Arithmetic instructions with variable precision
    • 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/30098Register arrangements
    • G06F9/30101Special purpose registers
    • 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30112Register structure comprising data of variable length
    • 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
    • H03M13/4184Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using register-exchange
    • 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

Abstract

(57)【要約】 【課題】 ビタービ・アルゴリズムをソフトウェア内で
実行する演算時間を短くする方法を提供する。 【解決手段】 平行データ構造と専用のビタービ左シフ
ト命令が、ソフトウェアのデータ処理システム20内に
重畳符号化された信号を解読するために必要とされるク
ロック・サイクルの数を最小限に抑える。特に、データ
構造とビタービ左シフト命令により、加算比較選択バタ
フライ演算を実行するために必要なクロック・サイクル
の数が減る。加算比較選択バタフライ演算は、ビタービ
解読アルゴリズムを実行する複数の命令内のループに含
まれ、所定の回数だけ繰り返されて、トレリス図内の最
良経路を選択する。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、一般にデータ処理に関
し、さらに詳しくは、データ処理システム内で加算比較
選択(ACS )バタフライ演算を実行する方法と、そのた
めの命令に関する。
【0002】
【従来の技術および発明が解決しようとする課題】通信
システム内で重畳符号(convolutional code)を解読す
るには、たとえば順次解読,閾値解読およびビタービ
(Viterbi )解読などいくつかの方法がある。ビタービ
解読アルゴリズムは、セルラ網,モデムおよび衛星通信
など重畳符号を解読するための通信の分野で広く受け入
れられている。簡潔に述べると、デジタル信号処理にお
けるビタービ解読アルゴリズムの基本的動作は、重畳エ
ンコーダにより生成された最も可能性のある配列を表す
トレリス(格子)を通る経路を選択することである。開
始ノードから終了ノード間でトレリス図を通る分岐点の
集合を経路(path)と呼ぶ。各ノードにおいて、アルゴ
リズムは、トレリスの各分岐点に関する分岐の計量、す
なわち確率の測定値を生成する。各ノードは、特定の時
間内の状態を表し、各分岐点は、次の時点での新しい状
態への移行を表す。次に、そのノードに入るすべての経
路から累算された計量を検証し、計量の最も良い、サバ
イバ(生存者)経路と呼ばれる経路を選択することによ
り、各ノードへの最良の経路が決定される。このサバイ
バ経路は、トレリスの最尤経路(most-liklihood path
)である。トレリス内の最良経路は、最短の経路であ
る。その他の経路または経路群は、切り捨てられる。
【0003】ソフトウェアにビタービ解読アルゴリズム
を組み込む際は、まず分岐計量が計算されて、テーブル
に記憶され、複数の加算比較選択(ACS :add-compare-
select)演算が実行されて、各状態に関するトレリス内
の最良経路が求められる。ACS 演算は、その流れの外見
つまりトレリス図から、ACS バタフライ(butterfly)と
も呼ばれる。格納された分岐計量を用いて先行経路計量
にACS バタフライを適用することにより、それぞれの新
しい状態が順次に計算される。トレリス内の経路を追跡
するために必要とされる時間とメモリとは、トレリスの
大きさに依存する。しかし、非常に大きなトレリスで
は、ビタービ解読アルゴリズムを用いてトレリス内の経
路を解読することは、莫大な演算とメモリ・アクセスと
が必要とされるために非実用的である。
【0004】ビタービ解読アルゴリズムは、ハードウェ
ア内にもソフトウェア内にも組み込むことができる。ハ
ードウェアに組み込むと、ビタービ・アルゴリズムは、
ソフトウェアに組み込んだものよりもはるかに高速で実
行されるのが普通である。しかし、ハードウェアにビタ
ービ・アルゴリズムを組み込むことは、半導体表面積,
複雑さおよび価格の点から、より高価になる。従って、
ビタービ・アルゴリズムをソフトウェア内で実行する演
算時間を短くすることが必要である。
【0005】
【課題を解決するための手段】一般に、本発明は、通信
システム内で重畳符号化された信号を解読するために必
要なクロック・サイクルの数を最小限に抑えるための平
行データ構造と、専用のビタービ左シフト命令とを提供
する。特に、データ構造とビタービ専用命令とは、デー
タ処理システム内でACS バタフライ演算を実行して、ト
レリス図内の最良経路を選択するためのデータ処理シス
テム内のクロック・サイクルの数を減らす。ビタービ・
アルゴリズムのACS バタフライ部分を実行するデータ構
造には次のような段階が含まれる:単独の第1クロック
・サイクル中に第1状態に関する第1先行経路計量と、
対応する第1トレリス値とを取り出す段階;単独の第2
クロック・サイクル中に第2状態に関する第2先行経路
計量と、対応する第2トレリス値とを取り出す段階;第
1経路計量に分岐計量を加算して第1の計算結果を求め
る段階;第2経路計量から分岐計量を減じて第2の計算
結果を求める段階;第1の計算結果と第2の計算結果と
を比較して、第1サバイバ計量になる大きなほうの計算
結果を選択し、単独の第3クロック・サイクル中に第1
先行経路計量を再び取り出す段階;第1サバイバ計量
と、対応する第1トレリス状態とを記憶する段階;第1
先行経路計量から分岐計量を減じて第3の計算結果を求
める段階;第2先行経路計量に分岐計量を加算して第4
の計算結果を求める段階;第3の計算結果と第4の計算
結果とを比較し、第2のサバイバ計量となる大きいほう
の値を選択する段階;および第2サバイバ計量と、対応
する第2トレリス状態とを記憶する段階。
【0006】上記のACS バタフライ演算で用いられるビ
タービ左シフト命令には、第1または第2トレリス値の
いずれか一方に論理左シフトを実行し、第1または第2
トレリス値の最下位ビット位置に所定の論理ビットを挿
入して対応するサバイバ・トレリス状態を識別する段階
が含まれる。
【0007】ACS バタフライ演算のための平行データ構
造により、同じクロック・サイクル中にいくつかの命令
を平行に実行することにより、ビタービ解読アルゴリズ
ムを、データ処理システムでより早くより効率的に実行
することができる。また、ビタービ左シフト命令は、さ
らにACS バタフライ演算を実行するために必要なクロッ
ク・サイクルの数を減らす。
【0008】
【実施例】本発明は、図1ないし図5を参照すると、よ
り詳しく説明することができる。図1および図2に示さ
れる各ブロックは回路構成を表す。図3内の各ブロック
は、流れ図内の1つ以上の段階を表す。図4および図5
は、図3の段階を実行するためのアセンブリ符号の2つ
の実施例を示す。図1は、本発明によるデータ処理シス
テム20をブロック図で示す。図1の実施例において
は、データ処理システム20は、デジタル信号プロセッ
サ(DSP )であり、単独の集積回路上に位置する。他の
実施例においては、データ処理システム20は、たとえ
ばマイクロコンピュータまたはマイクロプロセッサでも
よい。
【0009】デジタル信号処理とは、定期的な間隔でサ
ンプリングされデジタル化された実時間信号の演算処理
である。デジタル信号プロセッサは、信号の濾波,ミキ
シング比較などのデジタル信号処理機能を実行する。デ
ータ処理システムによっては、DSP がホスト・プロセッ
サに組み込まれてデジタル信号処理作業を行うこともあ
る。ホスト・プロセッサには、たとえばマイクロコンピ
ュータまたはマイクロプロセッサが含まれる。
【0010】データ処理システム20は、タイマ22,
ホスト・インターフェース24,強化シリアル同期イン
ターフェース(ESSI)26,シリアル非同期インターフ
ェース(SCI )28,プログラムRAM (ランダム・アク
セス・メモリ)および命令キャッシュ30,Xメモリ3
2,Yメモリ34,アドレス生成装置/直接メモリ・ア
クセス(DMA )コントローラ36,外部アドレス・バス
・スイッチ38,内部データ・バス・スイッチ40,DR
AM(ダイナミック・ランダム・アクセス・メモリ),SR
AM(スタティック・ランダム・アクセス・メモリ)バス
・インターフェースおよび命令キャッシュ制御部42,
外部データ・バス・スイッチ44,プログラム制御装置
(PCU )46およびデータ演算装置(ALU )54を備え
る。プログラム制御装置46は、プログラム割込コント
ローラ48,プログラム解読コントローラ50およびプ
ログラム・アドレス生成器52を備える。
【0011】「YAB 」と記されたアドレス・バス56
と、「XAB 」と記されたアドレス・バス57と、「PAB
」と記されたプログラム・アドレス・バス58と、「D
AB 」と記されたアドレス・バス59とがアドレス生成
装置/DMA コントローラ36と外部アドレス・バス・ス
イッチ38との間に結合される。「DDB 」と記されたデ
ータ・バス60が、ホスト・インターフェース24と外
部データ・バス・スイッチ44との間に結合される。
「YDB 」と記されたデータ・バス61と、「XDB 」と記
されたデータ・バス62と、「PDB 」と記されたプログ
ラム・データ・バス63と、「GDB 」と記されたプログ
ラム・データ・バス64とが内部データ・バス・スイッ
チ40と外部データ・バス・スイッチ44との間に結合
される。「バス」という言葉は、データ,アドレス,制
御またはステータスなど1つ以上の様々な種類の情報を
伝えるために用いられる複数の信号を指すために用いら
れる。
【0012】タイマ22は、内部または外部タイミング
を用いることができ、データ処理システム20に割り込
む、あるいは外部装置を信号化することのできる3つの
タイマを備える。さらに、タイマ22は、指定された回
数のイベントの発生後に、DMA 転送を信号化するために
用いることができる。3つのタイマはそれぞれ、単独の
双方向ピンまたは端子に結合される。さらに、タイマ2
2のそれぞれのタイマは、バス57,バス59,プログ
ラム割込コントローラ48およびバス60に結合され
る。
【0013】ホスト・インターフェース24は、データ
処理システム20と、マイクロコンピュータ,マイクロ
プロセッサまたはDMA コントローラなど他の装置との間
の通信のための双方向インターフェースとなる。また、
ホスト・インターフェース24は、バス60を介して外
部データ・バス・スイッチ44に双方向結合され、バス
37,59を介してグローバル・データ・バス64と、
プログラム割込コントローラ48と、アドレス生成装置
/DMA コントローラ36と、外部アドレス・バス・スイ
ッチ38とに双方向結合される。さらに、ホスト・イン
ターフェース24は、50個の外部ピンまたは端子と双
方向結合されて双方向のデータ転送,アドレス・レジス
タ選択およびホスト・プロセッサからの制御通信を行
う。
【0014】強化シリアル同期インターフェース(ESS
I)26は、12個の双方向外部ピンに結合されて、た
とえば、1つ以上の産業計量符号,DSP またはマイクロ
プロセッサを含む外部シリアル装置とシリアル通信を行
う。ESSI26は、バス57,バス59およびバス60に
結合された端子も有する。
【0015】シリアル通信インターフェース(SCI )2
8は、3個の双方向外部ピンに結合されて、外部装置と
のシリアル通信を行う。SCI 28は、バス57,バス5
9およびバス60に結合された端子も有する。
【0016】図1に示されるデータ処理システム20の
実施例は、3つのメモリ空間、すなわちプログラムRAM
および命令キャッシュ30と、Xメモリ32と、Yメモ
リ34とを有する。他の実施例においては、メモリ空間
はこれより多いことも少ないこともある。また、他の実
施例においては読み出し専用メモリ(ROM )が含まれる
こともある。プログラムRAM および命令キャッシュ30
は、アドレス・バス58およびデータ・バス63に結合
される。Xメモリ32は、アドレス・バス57,アドレ
ス・バス59,データ・バス60およびデータ・バス6
2に結合される。Yメモリ34は、アドレス・バス5
6,アドレス・バス59,データ・バス60およびデー
タ・バス61に結合される。
【0017】アドレス生成装置/DMA コントローラ36
は、アドレス・バス56,57,58,59に結合され
る。アドレス生成装置/DMA コントローラ36は、タイ
マ22と、ホスト・インターフェース24と、ESSI26
と、SCI 28と、プログラムRAM および命令キャッシュ
30と、Xメモリ32と、Yメモリ34と、外部アドレ
ス・バス・スイッチ38と、DRAM,SRAMバス・インター
フェースおよび命令キャッシュ制御部42とに結合され
る。アドレス生成装置/DMA コントローラ36は、たと
えば、後述されるビタービ解読アルゴリズムなどのDSP
アルゴリズムにより必要とされるアドレス・モードのす
べてを提供する。好適な実施例においては、DMA コント
ローラは6つのチャネルを有する。
【0018】DRAM,SRAMバス・インターフェースおよび
命令キャッシュ42は、プログラム・アドレス・バス5
8および14個の双方向外部ピンに結合される。DRAM,
SRAMバス・インターフェースおよび命令キャッシュ42
の命令キャッシュは、外部のメイン・メモリ(図示せ
ず)とプログラム制御装置46との間のバッファ・メモ
リとして機能する。命令キャッシュは、頻繁に用いられ
るプログラム命令を格納して、命令毎に外部メモリ位置
にアクセスするために必要な時間を省くことによりデー
タ処理システム20の性能を強化する。DRAM,SRAMバス
・インターフェースおよび命令キャッシュ制御部42
は、図2に、より詳細に図示される。
【0019】内部データ・バス・スイッチ40は、デー
タ・バス60,データ・バス61,データ・バス62,
プログラム・データ・バス63およびグローバル・デー
タ・バス64に結合される。外部データ・バス・スイッ
チ44は、データ・バス60,データ・バス61,デー
タ・バス62,プログラム・データ・バス63を介して
内部データ・バス・スイッチ40に、またグローバル・
データ・バス64に結合される。さらに、外部データ・
バス・スイッチ44は、タイマ22,ホスト・インター
フェース24,ESSI26およびSCI 28にデータ・バス
60を介して結合される。内部データ・バス・スイッチ
40は、バス間の転送のために用いられる。任意の2つ
のバスを内部データ・バス・スイッチ40を介して接続
することができる。外部アドレス・バス・スイッチ38
および外部データ・バス・スイッチ44は、外部バス
(図示せず)を任意の内部アドレス・バスおよび任意の
データ・バスにそれぞれ結合する。
【0020】プログラム制御装置46では、プログラム
割込コントローラ48が割込要求の調停を行い、タイマ
22,ホスト・インターフェース24,ESSI26および
SCI6に結合される。また、プログラム割込コントロー
ラ48は、グローバル・データ・バス64とプログラム
解読コントローラ50とに双方向結合される。プログラ
ム解読コントローラ50は、それぞれの24ビット命令
を解読し、プログラム割込コントローラ48およびプロ
グラム・アドレス生成器52に双方向結合される。プロ
グラム・アドレス生成器52は、プログラム・アドレス
の生成,システムのスタックおよびループ制御に必要と
されるすべてのハードウェアを内蔵する。さらに、プロ
グラム・アドレス生成器52は、プログラム・アドレス
・バス58と、プログラム・データ・バス63とに結合
される。プログラム制御装置46は、多くの命令に関し
て1つの命令を1つのクロック・サイクル毎に実行する
ことができる7段のパイプラインを備える。
【0021】データ演算論理装置(ALU )54は、プロ
グラム・データ・バス63,データ・バス61およびデ
ータ・バス62に結合される。データALU 54は、デー
タ演算子に関する算術および論理演算をすべて実行す
る。データALU 54は、バス61,62を介して読み書
きすることのできるレジスタを内蔵する。データALU 5
4は、バス63およびバス60にも結合される。プログ
ラム制御装置46と同様に、データALU 54も、クロッ
ク・サイクル毎に結果を生成する7段のパイプラインを
備える。データALU 54については、後で詳述する。
【0022】クロック発生器回路(図示せず)は、図1
に図示されるすべてのブロックにクロック信号を与え
る。データ処理システム20には、図1に図示されない
試験回路構成も含まれる。
【0023】図2は、図1のデータ処理システム20の
データALU 54をさらに詳細にブロック図に示す。デー
タは、記号のついた分数形式で格納および演算される。
データALU 54は、レジスタ・ファイル70と、乗数器
76と、パイプライン・レジスタ78,90,96と、
アキュムレータ概算装置80と、アキュムレータ・レジ
スタ82と、シフタ/リミタ86と、マルチプレクサ8
8と、制御回路89と、バレル・シフタおよびビット・
フィールド装置92と、アキュムレータ・シフタ94と
を備える。レジスタ・ファイル70は、レジスタ71〜
74を備える。アキュムレータ・レジスタ82は、アキ
ュムレータ・レジスタ83とアキュムレータ・レジスタ
84とを備える。
【0024】レジスタ・ファイル70は、Xメモリ3
2,Yメモリ34または外部メモリ位置(図示せず)か
らデータ演算子を受け取るデータ・バス61,62に結
合される。レジスタ71〜74の各レジスタは、24ビ
ット演算子を格納することのできる読み書きレジスタで
ある。レジスタ71〜74は、データ・バス61,62
とデータALU 54との間の入力バッファ・レジスタとし
て働く。レジスタ・ファイル70の出力端子は、マルチ
プレクサ88の入力端子と、乗数器76の入力端子とに
結合される。乗数器76は実行装置であり、改良型ブー
ス乗数器,ウォレス・ツリー(Wallace tree)の従来のア
レイ乗数器によって構成される。乗数器76は、分数と
して表された演算子に関して乗算を行う。乗算/累算演
算においては、乗算の中間結果がパイプライン・レジス
タ78に送られ、ここで中間結果が一時的に格納され、
その後、アキュムレータ概算装置80にその中間結果が
送られる。アキュムレータ概算装置80は、データALU
54内で実行装置としても機能する。
【0025】「A 」と記されたアキュムレータ・レジス
タ83と、「B 」と記されたアキュムレータ・レジスタ
84は、それぞれ記憶素子として働き、3つの連続した
レジスタによって構成されて合計56ビットを生成す
る。アキュムレータ・レジスタ83では、「A0」と記さ
れた24ビットの汎用読み書きレジスタが24ビットの
最下位積(LSP :least significant product )を格納
する。A0は、アキュムレータ・レジスタ83のビット0
〜23によって構成される。「A1」と記された24ビッ
トの読み書きレジスタは、24ビットの最上位積(MSP:
most significantproduct)を格納する。A1は、アキュ
ムレータ・レジスタ83のビット24〜47によって構
成される。「A2」と記された8ビットの読み書きレジス
タは、記号拡張(EXT )オーバーフロー・レジスタであ
る。A2は、アキュムレータ・レジスタ83のビット48
〜56によって構成される。アキュムレータ・レジスタ
84においては、「B0」と記された24ビットの汎用読
み書きレジスタが24ビットのLSP を格納する。B0は、
アキュムレータ・レジスタ84のビット0〜23によっ
て構成される。「B1」と記された24ビットの汎用読み
書きレジスタが24ビットのMSP を格納する。B1は、ア
キュムレータ・レジスタ84のビット24〜47によっ
て構成される。「B2」と記された8ビットの読み書きレ
ジスタは、記号拡張オーバーフロー・レジスタである。
B2は、アキュムレータ・レジスタ84のビット48〜5
6によって構成される。アキュムレータ・レジスタ82
およびレジスタ・ファイル70は、データ処理システム
20のプログラミング・モデルにある。
【0026】アキュムレータ・レジスタ82の出力端子
は、シフタ/リミタ86の入力端子に結合され、アキュ
ムレータ・レジスタ82からシフタ/リミタ86に56
ビットのデータを転送する。シフタ/リミタ86は、2
つの従来の非同期平行シフタ/リミタによって構成され
る。1つのシフタ/リミタがデータ・バス61に結合さ
れ、もう1つのシフタ/リミタがデータ・バス62に結
合される。リミタは、オーバーフローによる誤差を最小
限にするために用いられる。拡張レジスタA2,B 2が使
用中で、アキュムレータ・レジスタ83または84の内
容がデータ・バス61またはデータ・バス62上に伝送
される場合に、リミッティングが行われる。リミタは、
リミッティングされたデータ値を最大強度と置き換え
る。拡張レジスタA2,B 2が用いられていない場合は、
リミタは使用不能となる。2つのデータ・リミタを組み
合わせて、長いワード演算子のための1つの48ビット
・データ・リミタを形成することもできる。シフタ/リ
ミタ86内のデータ・シフタは、データを1ビット左に
シフト(スケールアップ)させるか、あるいは1ビット
右にシフト(スケールダウン)させることができ、なお
かつシフトさせないでデータを伝える(スケーリングな
し)こともできる。シフタにより、プログラム符号を変
えずに、固定小数点データのダイナミック・スケーリン
グを行うことができる。たとえば、これによって、高速
フーリエ変換などのブロック浮動小数点アルゴリズムを
データ処理システム20内で実行することができる。
【0027】アキュムレータ・シフタ94は、アキュム
レータ・レジスタ82の出力端子に結合された入力端子
と、アキュムレータ概算装置80に結合された出力端子
とを有する。アキュムレータ・シフタ94は、アキュム
レータ・レジスタ82の情報をシフトする非同期平行シ
フタである。次にアキュムレータ・シフタ94は、シフ
トされた情報をアキュムレータ概算装置80に戻す。制
御回路89は、アキュムレータ・シフタ94と、シフタ
/リミタ86と、バレル・シフタおよびビット・フィー
ルド装置92とに結合される。制御回路89は、バス6
3を介してプログラム制御装置46から受信された命令
に応答して、データALU 54の制御機能を実行する。た
とえば、制御回路89は、ACS バタフライ演算に必要な
シフト動作を決定する。これについては、図3,図4お
よび図5に関して後述する。
【0028】マルチプレクサ88は、バス63とレジス
タ・ファイル70とに結合された入力端子を有する。マ
ルチプレクサ88の出力端子は、パイプライン・レジス
タ90の入力端子に結合される。パイプライン・レジス
タ90の出力端子は、バレル・シフタおよびビット・フ
ィールド装置92に結合される。バレル・シフタおよび
ビット・フィールド装置92は、アキュムレータ・レジ
スタ82の入力端子に結合される。バレル・シフタおよ
びビット・フィールド装置92は、56ビットの平行双
方向シフタを備え、多重ビット左シフト,多重ビット右
シフト,1ビット回転(左または右),ビット・フィー
ルド併合,挿入と抽出,計数先頭ビットの正規化および
AND ,OR,排他的ORおよびNOT などの論理演算を行う。
バレル・シフタおよびビット・フィールド装置92は、
24ビットおよび16ビットの完全モード演算に関し
て、これらの演算すべてを実行することができる。16
ビットの完全モードでは、16ビット・データの適切な
ビット位置においてビット・フィールド演算が実行され
る。
【0029】バス61またはバス62からレジスタ71
〜74の1つにデータを移動させる場合は、バス上の1
6個の最下位ビットが目的のレジスタの16個の最上位
ビット内にロードされる。レジスタの8個の最下位ビッ
ト内にゼロがロードされる。バス61またはバス62か
ら48ビット・レジスタにデータを移動させる場合に
は、バス62の16個の最下位ビットがレジスタ72ま
たは74の16個の最上位ビット内にロードされ、バス
61の16個の最下位ビットがレジスタ71または73
の16個の最上位ビット内にロードされる。
【0030】図3は、本発明によるACS バタフライ演算
の実施例を流れ図に示す。ひし形のボックス104,1
10,114は意志決定段階を表し、矩形のボックス1
00〜103,105〜109,111〜113は、ビ
タービ・デコーダ・アルゴリズムを用いてトレリス先行
状態から現行状態への最良経路を発見するデータ処理シ
ステムに関して、ACS バタフライの1回の繰り返しまた
はループを実行するために通過する段階を表す。ある実
施例においては、ACS バタフライは、ビタービ・デコー
ダ・アルゴリズムを用いて重畳符号を解読する1組の命
令内にDOループとして含まれる。ACS バタフライは、重
畳エンコーダにより生成された最も可能性のある配列を
表すトレリス内の経路を選択するために必要な計算を実
行する。複数のACS バタフライ演算が、所定の回数また
は反復数だけ繰り返し実行されて、各状態に関してトレ
リス内の最良経路が求められる。格納された分岐計量を
用いて先行経路計量にACS バタフライを適用することに
より、新しい状態がそれぞれ順次に求められる。
【0031】トレリス内の最も可能性のある配列を計算
するには、周知の方法がいくつかある。図示される実施
例の方法では、最大値を有する経路計量を選択すること
により累算された経路計量を最大にすることが必要にな
る。他の実施例では、トレリス内の最短経路を選択する
ために累算された経路計量を最小にすることが必要にな
ることもある。
【0032】ACS バタフライ演算を実行するために、ま
ず分岐計量が計算され、アドレス生成装置/DMA コント
ローラ36内にあるポインタ・レジスタ内に格納された
有効アドレスにより指し示されたYメモリ34内のテー
ブルに格納される。他の実施例においては、完全な分岐
計量テーブルを持たず、図4および図5に示される符号
にほとんど変更を加えずに、ACS バタフライ演算を「マ
クロ」として用いることができる。たとえば、分岐計量
の逆数が必要な場合には、図4に示される符号で加算と
減算の順序を逆にして、反転分岐計量を与えると、分岐
計量とその逆数とを用いることを必要とする用途におい
て、より小さい分岐計量テーブルを用いることができ
る。また、分岐計量アドレス・ポインタが増分される
か、減分されるか、あるいはいずれもなされないかは、
用途によって異なり、他の実施例ではまた違ってくるこ
ともある。各分岐計量は、受信された入力記号とトレリ
ス図内の対応する分岐との間のある種の比較により決定
される距離の測定値として定義される。「記号」という
言葉は、通信システムの送信機のエンコーダと受信機の
デコーダとの間に通信される情報を指す。分岐計量の計
算は、本発明には関連がなく、計量の計算については既
存の文献によく説明されているので、これ以上の説明は
しない。
【0033】ステップ100で、アドレス生成装置/DM
A コントローラ36によりデータ・バス61を介して指
し示されたYメモリ34の所定の位置からレジスタ74
(Y1)に第1分岐計量(BM)が移動される。有効アドレ
スが1だけ増分される。ステップ101で、状態(i )
に関する第1先行経路計量(PM1 )と対応する第1トレ
リス値(T1)とがXメモリ32およびYメモリ34のそ
れぞれの所定の位置から取り出され、アキュムレータ・
レジスタ83(A )にロードされる。第1先行経路計量
がA1と記された24個のアキュムレータ・レジスタ・ビ
ットにロードされる。第1トレリス値がアキュムレータ
・レジスタ83のA0と記された24ビット内にロードさ
れる。経路計量とトレリス値とはバイナリ値である。
【0034】ステップ102は、ACS バタフライ演算の
DOループの第1ステップである。ステップ102で、ア
キュムレータ概算装置80を用いて第1先行経路計量に
分岐計量が加算され、その結果が再びアキュムレータ・
レジスタ・ビットA1に格納される。ステップ102の加
算と平行して、同じ1つのクロック・サイクル内で、状
態(j )に関する第2先行経路計量(PM2 )と対応する
第2トレリス値(T2)とが、それぞれXメモリ32およ
びYメモリ34の所定の位置から取り出され、あるいは
移動されて、アキュムレータ・レジスタ84(B )にロ
ードされる。ステップ103で、レジスタ74からの分
岐計量が、アキュムレータ概算装置80を用いて第2経
路計量から減じられる。この減算の結果は、アキュムレ
ータ・レジスタ84のレジスタ・ビットB1に再ロードさ
れる。
【0035】意志決定ステップ104で、第1および第
2先行経路計量が分岐計量を考慮して検証され、サバイ
バ経路計量と対応するトレリスとが決定される。アキュ
ムレータ・レジスタ83(A )内の結果が、アキュムレ
ータ・レジスタ84(B )内の結果と比較されて、第1
サバイバ経路計量とトレリスが決定される。アキュムレ
ータ・レジスタ84(B )の結果がアキュムレータ・レ
ジスタ83(A )の結果より小さい場合は、アキュムレ
ータ・レジスタ83(A )の結果が第1サバイバ経路計
量となり、ステップ105に対してイエスの経路がとら
れる。意志決定ステップ104,110,114は、5
6ビット演算であるので、アキュムレータ・レジスタ8
3または84全体で実行されることに留意されたい。
【0036】アキュムレータ・レジスタ・ビットA1の結
果がアキュムレータ・レジスタ・ビットB1の結果と等し
い場合には、サバイバ経路計量とトレリスを決定するに
はいくつかの方法がある。たとえば、決定を任意として
もよい。しかし、図示される実施例においては、アキュ
ムレータ・レジスタの56ビットすべてに関して比較演
算を実行することを必要とするALU 54のハードウェア
上の制約により必要とされる対応のトレリス値を検証す
ることにより決定がなされる。しかし、アキュムレータ
・レジスタ83(A )の結果がアキュムレータ・レジス
タ84(B )の結果と等しい場合のサバイバ経路計量の
決定は、本発明の説明には重要ではないので、これ以上
の説明はしない。
【0037】ステップ105で、アキュムレータ・レジ
スタ83(A )にある結果すなわち第1サバイバ経路計
量とトレリスがアキュムレータ・レジスタ84(B )に
ロードされ、第1サバイバ経路計量と対応のトレリスに
なる。
【0038】ステップ106で、第1先行経路計量と対
応する第1トレリス値とが、それぞれアキュムレータ・
レジスタ・ビットA1,A0に再ロードされる。
【0039】意志決定ステップ104を再び参照して、
アキュムレータ・レジスタ83(Aの結果がアキュムレ
ータ・レジスタ84(B )の結果より小さい場合は、ア
キュムレータ・レジスタ84(B )にすでにロードされ
ている結果が第1サバイバ経路計量となり、意志決定ス
テップ104からステップ106(ステップ106は上
述されている)に対してノーの経路がとられる。ステッ
プ107で、アキュムレータ・レジスタ・ビットB1の内
容がXメモリ32の所定の位置に格納される。アキュム
レータ・シフタ94を用いてアキュムレータ・レジスタ
84(B )で論理左シフトが実行され、論理「0」がア
キュムレータ・レジスタ・ビットB0の最下位ビットにロ
ードされる。その内容、すなわちアキュムレータ・レジ
スタ・ビットB0のバイナリ値がYメモリ34の所定の位
置に格納される。Xメモリ32とYメモリ34の所定の
位置は、アドレス生成装置/DMA コントローラ36のポ
インタ・レジスタに格納される第1有効アドレスにより
決定される。第1有効アドレスは、アドレス・オフセッ
ト・レジスタにより決定された所定量だけ増分され、次
のサバイバ経路計量とトレリス状態を格納する第2有効
アドレスを指定する。
【0040】ステップ108で、アキュムレータ概算装
置80を用いて第1先行経路計量(PM1 )から分岐計量
が減じられ、その結果がアキュムレータ・レジスタ83
のアキュムレータ・レジスタ・ビットA1にロードされ
る。ステップ108の減算と平行して、同じクロック・
サイクル内で、第2先行経路計量(PM2 )がアキュムレ
ータ・レジスタ・ビットB1に再ロードされ、対応する第
2トレリス値(T2)がアキュムレータ・レジスタ84の
アキュムレータ・レジスタ・ビットB0に再ロードされ
る。ステップ109で、ステップ100で最初にロード
されたYレジスタ74(Y1)にある分岐計量が第1先行
経路計量(PM1 )に加算され、その結果がアキュムレー
タ・レジスタ・ビットB1にロードされる。ACS バタフラ
イDOループの次のサイクルに備えるために、次の分岐計
量がステップ109の加算と同じ1つのクロック・サイ
クルにあるレジスタ74(Y1)にロードされる。
【0041】意志決定ステップ110で、アキュムレー
タ・レジスタ83(A )の結果がアキュムレータ・レジ
スタ84(B )の結果と比較されて、第1サバイバ経路
計量が決定される。アキュムレータ・レジスタ84(B
)の結果がアキュムレータ・レジスタ83(A )の結
果より小さい場合は、アキュムレータ・レジスタ・ビッ
トA1の結果が第2サバイバ経路計量となり、意志決定ス
テップ110からステップ111に対してイエス経路が
とられる。ステップ111で、アキュムレータ・レジス
タ83(A )の結果(第2サバイバ経路計量と対応する
トレリス値)がアキュムレータ・レジスタ84(B )に
ロードされる。ステップ112で、次の先行経路計量と
対応する次のトレリス値とがアキュムレータ・レジスタ
・ビットA1,A2にそれぞれロードされて、ACS バタフラ
イの次のループに備える。
【0042】アキュムレータ・レジスタ83(A )の結
果がアキュムレータ・レジスタ84(B )の結果より小
さい場合は、アキュムレータ・レジスタ84(B )にす
でにロードされている結果が第2サバイバ経路計量とな
り、意志決定ステップ110からステップ112(ステ
ップ112は上述されている)に対しノー経路がとられ
る。ステップ113で、アキュムレータ・レジスタ・ビ
ットB1の内容がXメモリ32の所定の位置に格納され
る。アキュムレータ・シフタ94によりアキュムレータ
・レジスタ84(B )に関して論理左シフトが実行さ
れ、アキュムレータ・レジスタ・ビットB0の最下位ビッ
トに論理「1」がロードされる。アキュムレータ・レジ
スタ・ビットB0の内容がYメモリ34の所定の位置に格
納される。Xメモリ32とYメモリ34の所定の位置
は、アドレス生成装置/DMA コントローラ36のポイン
タ・レジスタに格納される第2有効アドレスにより決定
される。第2有効アドレスが増分される。ステップ11
4で、プログラミングされた回数のループが終了したか
否かが判定される。プログラミングされた回数のループ
が終了した場合は、ステップ115に対してイエスの経
路がとられ、ビタービ・デコーダ・プログラムが継続さ
れる。プログラミングされた回数のループが終了してい
ない場合は、ノー経路をとってステップ102のACS バ
タフライDOループの最初に戻り、ACS バタフライを再び
繰り返す。
【0043】図4は、本発明のある実施例によるDSP 内
でACS バタフライを実行するためのアセンブリ符号をタ
ビュレータ形式に示す。図4のアセンブリ符号は、一定
の命令によって平行な「移動」演算がALU 演算と同じク
ロック・サイクル内に起こりうることを示す。このた
め、ACS バタフライの1回のループを14クロック・サ
イクル内で終了することができるDSP もある。いくつか
の命令を平行して実行し、データALU 54(図2)内の
パイプラインを用いることにより、「パイプの停滞」ま
たは「インターロック」が起こることに留意されたい。
インターロックは、1つのループの実行時間で相殺さ
れ、図示されない。
【0044】図5は、本発明の別の実施例によるDSP 内
でACS バタフライを実行するためのアセンブリ符号をタ
ビュレータ形式に示す。図5のアセンブリ符号が図4の
アセンブリ符号と異なっている点は、図5のアセンブリ
符号には専用のビタービ左シフト命令が含まれていて、
ACS バタフライの1回のループを実行するために必要な
クロック・サイクルの数を14回から10回のクロック
・サイクルに減らすことである。これは、莫大な数の反
復を必要とする比較的大きなトレリスのためのソフトウ
ェア内で累算された経路計量を演算するために必要な時
間が実質的に軽減される。
【0045】このアセンブリ符号では、ビタービ左シフ
ト命令は、VSL S,i,L:eaという形式を持ち、VSL は演算
符号である。VSL 命令により、指定元アキュムレータ
(S )のアキュムレータ・レジスタ・ビットA1またはB1
のバイナリ値が有効アドレス(ea)のXメモリ32に格納
され、アキュムレータ・レジスタ・ビットA0またはB0の
バイナリ値が左に1ビットだけシフトされて、論理
「1」または論理「0」のいずれか一方が演算子(i )
により最下位ビット位置に加えられる。これで、指定元
アキュムレータ(S )のアキュムレータ・レジスタ・ビ
ットA0またはB0のバイナリ値が有効アドレス (ea) でY
メモリ34に格納される。ビタ−ビ左シフト命令は、デ
ータ処理システム20の1回のクロック・サイクル内で
実行され、図5のアセンブリ符号では2回用いられる。
ビタービ左シフト命令の最初の使用は、偶数のトレリス
状態に関するサバイバー経路計量を格納するためのもの
である。偶数トレリス状態とは、論理0を左シフトされ
たトレリス状態である。ビタービ左シフト命令の2回目
の使用は、奇数トレリス状態に関するサバイバー経路計
量を格納するためのものである。奇数トレリス状態と
は、論理1を左シフトされたトレリス状態を指す。
【0046】平行データ構造により、ALU 命令が実行さ
れるのと同時に、あるいは同じクロック・サイクル内で
データを移動させることにより、ビタービ・デコーダ・
アルゴリズムをデータ処理システム20内でより迅速に
実行することができる。また、専用のビタービ左シフト
命令により、ACS バタフライ演算を実行するために必要
なクロック・サイクルの数をさらに減らして、データ処
理時間をより有効に利用することができる。
【0047】本発明は好適な実施例に関して説明された
が、本発明は多くの方法で改良することができ、上記に
特に指定および説明された以外に多くの実施例が可能で
あることは当業者には明白であろう。
【図面の簡単な説明】
【図1】本発明によるデータ処理システムのブロック図
である。
【図2】図1のデータ処理システムのデータ演算論理装
置(ALU )のブロック図である。
【図3】本発明によるACS バタフライ演算の流れ図であ
る。
【図4】本発明のある実施例によるACS バタフライを実
行するアセンブリ符号のタビュレータ図である。
【図5】本発明の別の実施例によるACS バタフライを実
行するアセンブリ符号のタビュレータ図である。
【符号の説明】
20 データ処理システム 22 タイマ 24 ホスト・インターフェース 26 強化シリアル同期インターフェース 28 シリアル通信インターフェース 30 プログラムRAM および命令キャッシュ 32 Xメモリ 34 Yメモリ 36 アドレス生成装置/DMA コントローラ 38 外部アドレス・バス・スイッチ 40 内部データ・バス・スイッチ 42 DRAM,SRAMバス・インターフェースおよび命令キ
ャッシュ制御部 44 外部データ・バス・スイッチ 46 プログラム制御装置 48 プログラム割込コントローラ 50 プログラム解読コントローラ 52 プログラム・アドレス生成器 54 データ演算装置(ALU ) 56,57,58,59 アドレス・バス 60,61,62,63,64 データ・バス

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 データ処理システム(20)内でビター
    ビ・デコーダを実現する加算比較選択バタフライ演算を
    実行する方法であって:分岐計量を第1記憶素子(7
    4)にロードする段階(100);第1先行経路計量と
    第1トレリス値の両方を単独の第1クロック・サイクル
    中に第2記憶素子(83)にロードする段階(10
    1);第2先行経路計量と第2トレリス値の両方を単独
    の第2クロック・サイクル中に第3記憶素子(84)に
    ロードする段階(102);前記第1先行経路計量と前
    記第2先行経路計量のうち、どちらがサバイバ経路計量
    であるかを前記分岐計量を用いて決定する段階(10
    4);および前記サバイバ経路計量と、対応するサバイ
    バ・トレリス状態とを単独の第3クロック・サイクル中
    に第4記憶素子(34)内に記憶する段階(105);
    によって構成されることを特徴とする方法。
  2. 【請求項2】 データ処理システム(20)内でビター
    ビ・デコーダを実現する加算比較選択バタフライ演算を
    実行する方法であって:第1状態に関する第1先行経路
    計量と、対応する第1トレリス値とを単独の第1クロッ
    ク・サイクル中に取り出す段階(100);第2状態に
    関する第2先行経路計量と、対応する第2トレリス値と
    を単独の第2クロック・サイクル中に取り出す段階(1
    01);前記第1先行経路計量に分岐計量を加算して第
    1の計算結果を得る段階(102); 前記分岐計量を
    前記第2先行経路計量から減じて第2の計算結果を得る
    段階(103);前記第1の計算結果と前記第2の計算
    結果とを比較し、第1サバイバ計量にふさわしいより大
    きなものを選択し、前記第1先行経路計量を単独の第3
    クロック・サイクル中に再度取り出す段階(104);
    前記第1サバイバ計量と、対応する第1トレリス状態と
    を記憶する段階(107);前記第1先行経路計量から
    前記分岐計量を減じて第3の計算結果を得る段階(10
    8);前記分岐計量を前記第2先行経路計量に加えて第
    4の計算結果を得る段階(109);前記第3の計算結
    果と前記第4の計算結果とを比較し、第2サバイバ計量
    にふさわしいより大きなものを選択する段階(11
    0);および前記第2サバイバ計量と、対応する第2ト
    レリス状態とを記憶する段階;によって構成されること
    を特徴とする方法。
  3. 【請求項3】 第1バイナリ値を第1メモリ位置(3
    4)から第2メモリ位置(74)に移動する段階(10
    0);第2バイナリ値を左シフトさせて左シフトされた
    第2バイナリ値を得る段階(107);前記左シフトさ
    れた第2バイナリ値に所定のビットを加算する段階(1
    07);および前記左シフトされた第2バイナリ値を前
    記第2メモリ位置(74)に移動する段階;によって構
    成され、データ処理システム(20)の単独のクロック
    ・サイクル中に前記データ処理システム(20)内で実
    行されることを特徴とする方法。
  4. 【請求項4】 データ処理システム(20)内で加算比
    較選択バタフライ演算を実行する方法であって:第1先
    行経路計量と、対応する第1トレリス値とを取り出す段
    階(101);第2先行経路計量と、対応する第2トレ
    リス値とを取り出す段階(102);所定の計算に基づ
    いて前記第1および第2先行経路計量と分岐計量とを検
    証し、第1サバイバ経路計量を決定する段階(10
    4);および前記第1サバイバ経路計量を所定のメモリ
    位置に格納し、前記第1サバイバ経路計量の判定に従っ
    て前記第1トレリス値または第2トレリス値のいずれか
    一方について論理左シフトを実行し、前記第1トレリス
    値または前記第2トレリス値の最下位ビット位置に所定
    の第1論理ビットを挿入して対応する第1トレリス状態
    を識別し、前記対応する第1トレリス状態を前記所定の
    メモリ位置に記憶することをすべて前記データ処理シス
    テム(20)の単独のクロック・サイクル中に行う段階
    (107);によって構成されることを特徴とする方
    法。
JP8310050A 1995-11-02 1996-11-05 データ処理システムにおける加算比較選択バタフライ演算およびその命令を実行する方法 Pending JPH09153822A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/554,329 US5742621A (en) 1995-11-02 1995-11-02 Method for implementing an add-compare-select butterfly operation in a data processing system and instruction therefor
US554329 1995-11-02

Publications (1)

Publication Number Publication Date
JPH09153822A true JPH09153822A (ja) 1997-06-10

Family

ID=24212942

Family Applications (1)

Application Number Title Priority Date Filing Date
JP8310050A Pending JPH09153822A (ja) 1995-11-02 1996-11-05 データ処理システムにおける加算比較選択バタフライ演算およびその命令を実行する方法

Country Status (3)

Country Link
US (1) US5742621A (ja)
EP (1) EP0788241A3 (ja)
JP (1) JPH09153822A (ja)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3338374B2 (ja) * 1997-06-30 2002-10-28 松下電器産業株式会社 演算処理方法および装置
US6257756B1 (en) * 1997-07-16 2001-07-10 Motorola, Inc. Apparatus and method for implementing viterbi butterflies
JPH11112361A (ja) * 1997-10-01 1999-04-23 Matsushita Electric Ind Co Ltd データ復号装置及びデータ復号方法
EP0963048A3 (en) 1998-06-01 2001-02-07 Her Majesty The Queen In Right Of Canada as represented by the Minister of Industry Max-log-APP decoding and related turbo decoding
JP4213286B2 (ja) * 1999-03-19 2009-01-21 富士通株式会社 ビタビ復号器
EP1058392A1 (en) * 1999-05-31 2000-12-06 Motorola, Inc. Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system
US6757864B1 (en) * 2000-04-06 2004-06-29 Qualcomm, Incorporated Method and apparatus for efficiently reading and storing state metrics in memory for high-speed ACS viterbi decoder implementations
US20020031195A1 (en) * 2000-09-08 2002-03-14 Hooman Honary Method and apparatus for constellation decoder
US7234100B1 (en) * 2000-09-28 2007-06-19 Intel Corporation Decoder for trellis-based channel encoding
EP1220455A1 (en) * 2000-12-29 2002-07-03 Motorola, Inc. Viterbi decoder, method and unit therefor
US6848074B2 (en) 2001-06-21 2005-01-25 Arc International Method and apparatus for implementing a single cycle operation in a data processing system
US7661059B2 (en) * 2001-08-06 2010-02-09 Analog Devices, Inc. High performance turbo and Viterbi channel decoding in digital signal processors
US7043682B1 (en) 2002-02-05 2006-05-09 Arc International Method and apparatus for implementing decode operations in a data processor
US6948114B2 (en) * 2002-04-25 2005-09-20 Lsi Logic Corporation Multi-resolution Viterbi decoding technique
JP2005045727A (ja) * 2003-07-25 2005-02-17 Matsushita Electric Ind Co Ltd ビタビ復号器
US7908542B2 (en) * 2004-08-25 2011-03-15 Asocs Ltd Method of and apparatus for implementing a reconfigurable trellis-type decoding

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE464902B (sv) * 1989-10-24 1991-06-24 Ericsson Telefon Ab L M Foerfarande att adaptera en viterbialgoritm till en kanal med skiftande oeverfoeringsegenskaper samt en anordning foer genomfoerande av foerfarandet
US5027374A (en) * 1990-03-26 1991-06-25 Motorola, Inc. Bit serial Viterbi decoder add/compare/select array
JP2594683B2 (ja) * 1990-05-18 1997-03-26 三菱電機株式会社 ヴィタビ・デコーダ
US5151904A (en) * 1990-09-27 1992-09-29 The Titan Corporation Reconfigurable, multi-user viterbi decoder
FR2669445B1 (fr) * 1990-11-15 1993-01-08 Alcatel Radiotelephone Dispositif prevu pour le traitement de l'algorithme de viterbi comprenant un processeur et un operateur specialise.
US5220570A (en) * 1990-11-30 1993-06-15 The Board Of Trustees Of The Leland Stanford Junior University Programmable viterbi signal processor
US5243605A (en) * 1991-07-11 1993-09-07 Storage Technology Corporation Modified viterbi detector with run-length code constraint
US5432803A (en) * 1992-04-30 1995-07-11 Novatel Communications, Ltd. Maximum likelihood convolutional decoder
US5390198A (en) * 1993-05-26 1995-02-14 The Boeing Company Soft decision viterbi decoder for M-ary convolutional codes
JPH06338808A (ja) * 1993-05-28 1994-12-06 Matsushita Electric Ind Co Ltd 加算比較選択装置
US5432804A (en) * 1993-11-16 1995-07-11 At&T Corp. Digital processor and viterbi decoder having shared memory
US5412669A (en) * 1993-12-09 1995-05-02 Cirrus Logic, Inc. Add, compare and select circuit
US5586128A (en) * 1994-11-17 1996-12-17 Ericsson Ge Mobile Communications Inc. System for decoding digital data using a variable decision depth

Also Published As

Publication number Publication date
EP0788241A2 (en) 1997-08-06
US5742621A (en) 1998-04-21
EP0788241A3 (en) 1997-11-05

Similar Documents

Publication Publication Date Title
US5946361A (en) Viterbi decoding method and circuit with accelerated back-tracing and efficient path metric calculation
US5987490A (en) Mac processor with efficient Viterbi ACS operation and automatic traceback store
US5991785A (en) Determining an extremum value and its index in an array using a dual-accumulation processor
US5222240A (en) Method and apparatus for delaying writing back the results of instructions to a processor
US6397240B1 (en) Programmable accelerator for a programmable processor system
JPH09153822A (ja) データ処理システムにおける加算比較選択バタフライ演算およびその命令を実行する方法
US6848074B2 (en) Method and apparatus for implementing a single cycle operation in a data processing system
US5440504A (en) Arithmetic apparatus for digital signal processor
JPH11154114A (ja) 複数データ・フェッチのアーキテクチャを使ってテーブル・ルックアップを実行するためのシステムおよび方法
US5704052A (en) Bit processing unit for performing complex logical operations within a single clock cycle
JPH11504744A (ja) 単精度または倍精度で算術演算を行なうためのシステム
JP3834145B2 (ja) ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法
US20050172210A1 (en) Add-compare-select accelerator using pre-compare-select-add operation
US5546551A (en) Method and circuitry for saving and restoring status information in a pipelined computer
JP2002529847A (ja) ビットfifoを有するディジタル信号プロセッサ
US6272188B1 (en) Single-cycle accelerator for extremun state search
US5964825A (en) Manipulation of boolean values and conditional operation in a microprocessor
EP1058392A1 (en) Method for implementing a plurality of add-compare-select butterfly operations in parallel, in a data processing system
US7661059B2 (en) High performance turbo and Viterbi channel decoding in digital signal processors
EP0936537B1 (en) Cyclic redundancy check in a computer system
US7171609B2 (en) Processor and method for convolutional decoding
WO2002050667A2 (en) Speculative register adjustment
KR100414152B1 (ko) 프로그래머블 프로세서에서의 비터비 디코딩 연산방법 및그 연산방법을 실행하기 위한 연산회로
EP1355431B1 (en) Viterbi decoding processor
JPH08305563A (ja) データ処理装置

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20041217

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20050325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051014

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20060124

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060209

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060530

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20061114