JP5694398B2 - 最適化ビタビ復号器およびgnss受信機 - Google Patents

最適化ビタビ復号器およびgnss受信機 Download PDF

Info

Publication number
JP5694398B2
JP5694398B2 JP2013015211A JP2013015211A JP5694398B2 JP 5694398 B2 JP5694398 B2 JP 5694398B2 JP 2013015211 A JP2013015211 A JP 2013015211A JP 2013015211 A JP2013015211 A JP 2013015211A JP 5694398 B2 JP5694398 B2 JP 5694398B2
Authority
JP
Japan
Prior art keywords
state
register
cost
traceback
processor
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
JP2013015211A
Other languages
English (en)
Other versions
JP2013138452A (ja
JP2013138452A5 (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.)
Qualcomm Inc
Original Assignee
Qualcomm 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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2013138452A publication Critical patent/JP2013138452A/ja
Publication of JP2013138452A5 publication Critical patent/JP2013138452A5/ja
Application granted granted Critical
Publication of JP5694398B2 publication Critical patent/JP5694398B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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
    • 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/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • 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
    • 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
    • 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/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/6583Normalization other than scaling, e.g. by subtraction

Description

本発明は、畳込み符号化データを復号する受信機を含む全地球型航法衛星システム(GNSS:Global Navigation Satellite System)用の受信機に関する。特に、これらに限定するものではないが、本発明の実施形態は、WAAS/EGNOS衛星のような静止衛星によって送信された補強(augmentation)データを復号することができるGPL受信機や、GALILEO標準に従った畳込み符号化データ用のGALILEO受信機に関連する。
GPSにおいて、既存のSBAS(Satellite Based Augmentation System)静止衛星が、異なる国家により運用され、ポータブルGPS受信機デバイスから利用可能なGPS測位品質およびインテグリティを補強するために追加情報を提供するために使用される。
そのような情報は、測位品質及び衛星インテグリティについての情報を改善するために適用することができる大気補正に関する追加情報を提供する。
より大きい軌道半径とSBASの静止軌道とにより、より複雑な畳込み符号化がデータ転送に使用されてきた。これにより、受信機により複雑な復号能力が必要となり、典型的にはビタビ(Viterbi)復号器である(それはシステムの処理負荷を増加させる)。SBAS実装の場合には、ビタビ復号は、典型的には単一のSVに適用され、それは汎用プロセッサにより実行されるソフトウェア復号器によって実装されることが知られている。この解法は簡単であるが、速度および電力節約に関する限り準最適である。
提案されたガリレオシステム信号も、同じベーシック畳込み符号化技術を用いて、コンステレーション(constellation)中の全てのSVの上のデータチャネルについて畳込み符号化メカニズムを使用するが、場合によっては、異なるジェネレータ多項式およびシンボルレートを使用する。
この解法に用いられる全てのガリレオSVにおいてビタビ復号アルゴリズムが同時に動作することが必要となるので、この新たなナビゲーション信号フォーマットの効果は、処理オーバヘッドの非常に増加させ、それにより、システムリソース上のビタビ復号器の負荷が非常に重要になる。この全てをソフトウェアで実行することは論理的には可能であるが、処理オーバヘッドおよびメモリの追加が必要であり、これによりGNSSナビゲーション解にコスト及び所要電力の増加を招き、小規模、低電力、及び低コストの市場目標と直接の矛盾をきたす。
これに対する1つの解は、ビタビ復号器をハードウェアで実施して、プロセッサから完全に処理を解放することである。この方法を行うことは、メインプロセッサ上の負荷を低減するが、コスト及び電力が単に異なるサブシステムへ移動するだけである。
従って、システムリソースに高い負荷を与えることなく、畳込み符号化信号を復号できる低電力GNSS受信機を提供する必要がある。本発明は、さらに、畳込み符号化する信号を、従来の受信機よりも低電力で、より速く復号できる低電力GNSS受信機を提供することを目的とする。
本発明の目的は、添付のクレーム対象によって達成される。本発明の変形において、この目的は、プロセッサに実施された特別命令セットに基づくソフトウェアビタビ復号器により達成され、それは、ハードウェア複雑さを著しく増加させることなくCPU負荷を著しく低減したビタビ処理を行うことを可能にする。
ビタルアルゴリズムのSVナビゲーションおよび分析に特有の適切な設計制約の注意深い応用によって、最適化されたアーキテクチャは、GNSSチップセットへビタビ加速ロジックを効率的に埋め込むために実現できる。
さらに、ハードウェアとソフトウェアの間を密接に相互作用させることにより、これは、システムリソースを著しく増加させることなく、従来のRISCプロセッサの命令セットの拡張により実行することができる。
トレリス状態図を表す。 図1の図における最低コストパスを表す。 ハミング距離の計算を表す コスト配分を示す。 累積状態コスト図を示す。 ビタルアルゴリズム中の異なるデータアクセス方法を概略的に示す。 本発明の実施形態に関する命令アーキテクチャを示す。 本発明に関する命令の暗黙的アドレッシングに関する。 本発明に関する命令の暗黙的アドレッシングに関する。 送信されたビットのシーケンスを示す。 図10のビットシーケンスの復号を表す。 図10のビットシーケンスの復号を表す。 本発明の一側面に従った特別命令セットをもつプロセッサの動作を概略的に示す。
ビタビ符号化および復号アルゴリズムは、当該技術において一般に知られており、当該技術文献に説明されている。下記では、GNSS実装に特有の側面だけが議論される。
いくつかの基準がビタビ実施で考慮されなければならない。すなわち、シンボルサイズ、シンボル解釈、ジェネレータ多項式およびレングス、およびシンボルレート、である。GNSSアプリケーションの場合、制約レングスK=7(メモリm=6)は、送信されたシンボルが現在のデータビットおよび前の6つのデータビットの関数であることを意味し、コードレートが2であることは、各データビットについて2つのシンボルが送信されることを意味し、シンボルレートは一般に約250あるいは500シンボル/秒であり、ジェネレータ多項式は変更することがある。
ビタビは、以前に受信されたシンボルの可能性のある解釈に基づいた特定の状態にある最大尤度を計算するパスコストテーブル上で動作する、畳込み符号化及び復号技術である。多項式はレングス7であるので、その実施は、以前の6つのデータビットを表わす62の状態を必要とする。
用いられる畳込み符号は、送信された各データビットに対し、2つのビットシンボルを生成し、これは2つの状態間の遷移を表し、64の状態(K=7)を持ち。各状態から、2つの潜在的シンボルによって表わされる2つの可能性のある次の状態があり、各状態に対し、送信されることができない2つの潜在的シンボルがある。1つのデータビットについて送信される実際のシンボルは、ジェネレータ多項式によって決定され、以前に6つのデータビットと送信されているビットとの関数である。
従って、各データ状態について、シンボルは多項式によって決定され、状態は次のようにして予測可能である。ビットが“1”である場合、次の状態は32+(current_state/2)であり、そうでない場合、単にcurrent_state/2 であり、従って、状態遷移テーブルは必要ない。
各シンボルが送信されるときには、7つのデータビットにより表現が決定され、それが受信されたとき、多項式および前の6つのデータビットに基づいて復号器によって解釈される。各シンボルが受信されると、それは解釈され、潜在的に有効なシンボルとの類似性に基づく確率値が与えられ、正確なあるシンボルシーケンス解釈の確率を計算するために用いられる。
これを達成するために、ビタビ復号器は、全ての可能性のある状態について見つけられた最低コストパスのレコードを保持し、各可能性のある状態について、以前に受信された最もあり得るシンボルのシーケンスとそれらの累積コストとを記憶する。
一旦、十分なシンボルが受信されると、最低コスト状態を取り、履歴を走査することにより、データが復号され、その状態に至るために送信された可能性の最も高いデータビットのシーケンスが決定される。
ビタビ符号化および復号の原理は、畳込み符号化メカニズムに精通している人々によって一般に理解され、利用可能な分析は、これらスキームにより得られる全体的なSNRの改善が、各シンボルに、単純な二値決定というよりはむしろ潜在的な値の範囲を与えることによって得られること、また、通常、各シンボルについて8レベルの解釈までできる著しい利得を達成できること、を示している。
K=7の場合、通常のビタビ復号アルゴリズムは、最適パフォーマンスのために最初のデータビットを抽出することができる前に、少なくとも35シンボルの処理を必要とし、この処理のために、特定状態にある累積コストを表す少なくとも2セットの状態情報を保持する必要がある。また、各状態について、最適復号パフォーマンスのため、当該状態に至る前の通常34の遷移(データビット)のレコードを保持する必要がある。
これらの制約が与えられると、最初に、ビタビ復号状態を表す最適な複数の最小データ構造を選択し、次に、これらを、埋め込まれたインプリメンテーションのために、HW/SW相互作用およびプロセッササブシステムアーキテクチャに特定の考慮を払って、最適化することができる。
各潜在的現在状態において、2つのシンボル符号化によって表わされる2つの有効な状態遷移(ブランチ)があり、また、無効な遷移を表す2つのシンボル符号化がある。従って、各状態について、2つの潜在的継承状態と2つの潜在的前状態のみがある。これらは、図1のトレリス図によって表わすことができる。
各潜在的現在の状態に依存して、有効及び無効ブランチは、異なるシンボルで示される。従って、各状態について、2つの潜在的な次の状態(それらは自明に計算できる)と、当該ブランチに関連する適切なシンボルとを知る必要があるが、それらは、専用ロジックを用いて計算できるが、容易にロードでき、従って多項式と無関係の実施をするテーブルを形成する。
軟判定復号器を実装しているので、受信されたシンボルの強さに応じて重み付けされた潜在的なシンボルペアの全てについて、コスト要因を最初に決定する必要がある。また、全ての状態についての全ての有効状態遷移が、等しい確率をもつので、この重み付けは、現在状態から独立し、受信シンボルペアと、受信シンボルペアと当該ブランチに関連する実際のシンボルペアとの間のハミング距離とにのみ依存する。これは、各シンボルについて、ソフトウェアがハミング距離に関連する重み付けテーブルを計算しなければならないことを意味し、これは、次に、ハミング距離と状態との間のマッピングを使用した、全ての状態およびブランチコストの計算に適用できる。
従って、基本的なビタルアルゴリズムは、受信された各シンボルペアについて、次の計算シーケンスを実行する。実際の実装は、これらのプロセスを、ロード/ストア及び複雑な命令シーケンスを最小にするために、関連するデータ構造の注意深い設計および適所へのカスタム命令の実施により、並列処理する。
受信シンボルペアについて、シンボルペア解釈と4つの可能性のある送信されたシンボルペアとの間のハミング符号に関連した1セットの4つのコストを計算する。ハミングコストテーブルは、事実上、各可能性のある方法で実際に受信された入力シンボルペアの解釈に関連したコストを表わす4つの値のテーブルであり、すなわち、00、01、10、11である。
各潜在的現在状態(64の状態)に対し、受信されたシンボルペアの2つの潜在的な解釈のそれぞれについて、次の状態(ブランチコスト)のそれぞれに到達するコストを計算する。これは、当該受信シンボルについての状態現在コスト及び予め計算されたコストテーブルに基づく。すなわち、各状態に対し、要求されたシンボルペアと、遷移に関連するシンボルとしてのその再解釈とに基づく関連するコストをもつ、2つの潜在的な次の状態と、2つの遷移とがある。
承継状態のそれぞれについて、最低コストの状態への遷移を選択し、当該状態へ至るコストと、送信されたデータビットを表すところ(「1」あるいは「0」)へ到達する遷移を記録するために、当該状態についてのトレース(trace)履歴を更新する。
結果は、各状態について達成可能な最低コストと、図2に示されるようにそこに到達するパスとのテーブルである。
最後に、十分なシンボルが復号されると、累積コストが最も低い状態を選択し、その状態へ到達する最低コストデータシーケンスを再生するために、各状態への遷移をさかのぼる(trace back)。これが受信されたビットストリームのビタビ復号である。
このことから、 ビタビ復号が、データ集約型操作(data intensive operation)であり、非連続にデータへアクセスすること(一般に、データアクセスオーダが引き延ばされたときに形成されるパターンによりビタビバタフライ(Viterbi Butterfly)と呼ばれる)も含むことは、明らかである。
一般に、ビタビ加速(Viterbi acceleration)は、効率のために複数のメモリを用いるビタビバタフライオペレーションと、よく知られた加算−比較―選択オペレーションを実行する専用ハードウェアとを使用して実行される。加算−比較―選択オペレーションは容易に加速でき、しばしばDSPの中のカスタム命令にサポートされるが、これだけを加速しても、オペレーションがデータアクセス中心となり、通常、データアクセス自体と同じぐらいの時間がかかる実行アドレス計算を伴うために、大幅にスピード向上にはならない。
典型的には、DSPは、アドレスを計算するためのカスタム命令と、パスコスト計算最適化およびデータ表現のための加算−比較−選択命令をもつ。
畳込みアルゴリズムの特性により、状態遷移は予測可能であり、部分的に独立した複数のデータセットへグループ化することができる。それは、潜在的承継状態の各ペアについて、それらに至ることのあるちょうど4つの現在状態がある。従って、メモリアクセスのための最適アーキテクチャは、メモリアクセスを最小化するために、他の全てのデータセットと無関係にこのデータセットで動作され得るべきである。
各潜在的承継状態へ至る2つの潜在的現在状態があり、任意の現在状態と関連する2つの潜在的シンボルがあるので、最大128の計算すべきブランチがある。各シンボルペアに対して、4つの可能性のある解釈があり、従って、対応するシンボルペアを示すために各潜在的ブランチに関連する2ビットがあるから、8状態(16ブランチ)へマッピングするブランチコストを1ワードに記憶することができる。
任意のブランチについて、4つの可能性のあるシンボルがあり、各状態について、2つの可能性のあるブランチがある。よって、最大シンボルコストは従って14であるから、少なくとも1つのシンボルによってプランチが異なる。チャネルが完全ではないので、必然的にシンボルエラーがある。従って、畳込み符号が用いられる理由は、用いられるブロック長によって決定される最大値をもつ、時間を通じた累積エラーがありえる、ということである。
送信及び受信されたシンボル間の違いの最大値は14であるから、全てのシンボルについて、Nデータビット後の最小コスト状態についての最大値は、用いられる多項式に応じて、8N未満であろう。
任意の状態において送信された任意のデータビットについて、可能性のある4つの組合せから送信された2シンボルビットがある。主題が軟判定まで延長できるが、現在のところ、それらが2進法表現であると仮定する。受信シンボルを送信シンボルと比較し、各可能性のある解釈についての違いをカウントして、ハミング距離を計算する。これは、正確な解釈の場合「0」、シンボルビットのうちの1つが正しくない場合「1」、両方のビットが正しくない場合「2」である。図3はこれを示す。
各可能性のある状態について、各潜在的承継状態であることの潜在的コストを計算し、最低コストを保持する。時間とともに、可能性のある状態の範囲は、信号および可能性のある解釈における誤りにより拡大し、そのうちの1つは常に決定によって間違っている。
我々が完璧な信号を持っていると仮定すると、図4に示すようなコスト配分(distribution)の変化が得られる。
しかし、復号器中には有限数のメモリビットがあるだけなので、Kビットがある場合、すべての受信シンボルの誤解釈を意味するとしても、すべての状態がすべての前状態からKステップで到達可能になりえる。これは、図5の図中で示されるような累積コストを構築することを可能にする。
簡単のために、2メモリビットのみを仮定すると、左にある三角形は、時刻T+2に現在状態S0から得られる任意の状態S1についてのコストの最大配分を示し、Kステップで得られる最大コストは、この場合M=4であることを示す。ここでKはメモリビットの数である。信号状態遷移図中で、状態T1の後のノイズの存在を、全てのシンボルが少なくとも1つのエラー(H=I)をもつように示した。そして、2ビットメモリの制約を適用し、前の2つのシンボルの最悪の可能性のある解釈に基づき全ての状態についてコストの潜在的な範囲をマスクした。
T4では、すべてのコストが、M=4の最大状態コストより低くはなく、それで、T5では、共通オフセットを引くことで、全ての新しいコストを調節でき、よってコスト結果の範囲を抑制する。それによって、本発明の方法は、遷移コストを0からMの範囲の非負の値に設定することを含み、MはKステップで得られる最大コストであり、Kは畳込み符号化データ中のメモリビットの数である。好ましくは、Nビットは累積パスコスト毎に割り当てられ、ここで
(2^(K+1)*M)−1<2^N−1。
任意の状態Snについて、その前状態はS(2n)およびS(2n+1)である。Hn0/1は、状態nでシンボルを0/1とそれぞれ解釈するハミングコストとする。
C(N)は状態Nの最低累積パスコストを表し、
KTは、時刻TでのC0…C63のセットを表わすとする。
時刻T0に、1セットの状態コストKT0を持っていると仮定すると、その後の時刻T1において、1セットの関連コストKT1をもつ。これは、
Min(KT1)>=Min(KT0)and Max(KT1)<=Min(KT0)+84
ということになる。データリカバリを開始するために、KTnの最小メンバのインデックスに関心をもつが、KTの実際の値でなく、我々はコストKTをある値<=Min(KT)に正規化することにより、コストKTを抑制することができる。
したがって、累積状態遷移コストを表わすために7ビットを必要とし、したがって、CPUアーキテクチャを備えたアラインメントの場合、累積コストを8ビット値として記憶することが都合がよい。これは1つのシンボルペアの4つの可能性のある解釈に対するコストを32ビットワードへパッキングすることを可能にする。
累積コストのオーバーフローを回避するために、KT内の全ての値をユニークに表すことができる十分なレンジをもち、それらの順序が維持されることを条件に、任意の状態がオーバーフローに近づくときに、累積コストをスケーリングすることが必要である。これを達成するために、各累積コストは8ビット値として表わされ、全ての状態遷移についてコストが累積されると、それらは84より大きく分岐しない場合がある。これは、コスト調節を、全ての値を256未満の間にある値になるように抑制することにより可能となり、それは、最小状態コストが、新たな遷移コストでの累積前に、128に達するとき、全ての状態コストのMSBをリセットすることにより容易に達成できる。
データ表現が決定されたので、メモリアクセスのオーバヘッドを最小化するためにデータの処理を最適化することが望ましい。
任意の状態についてのブランチコストの計算は、それCn=になるというより、2つのパスの潜在的コストを計算することを必要とする。
各承継状態へ2つの潜在的ブランチがあるので、中間値を記憶する必要なしに、最小コストブランチが検出及び記憶できるように、これらの遷移を同時に計算することが望ましい。
ビタビは、その結果を次ぎの反復のためのソースデータとして用いて動作し、従って、該結果をオペランドと同じ順序にまとめる(organize)必要がある。これは、64バイト (16の32ビットワード)を占める状態コストの線形アレイを意味する。
1ワードに4つの状態コストを格納することができるので、該ワードを一度読むこと、それを廃棄する前にその中の全ての状態を処理すること、及び、結果を同じタイプの構造に、該構造と、入力及び出力である代替との2つのコピーを用いて、直接書き戻すことが望ましい。
このまとめとともに、処理された各ワードは、出力アレイ中の同じワードに適合しない2つのグループにある4つの新たな状態を生成するが、連続する2つのソースワードを処理することは、各グループが単一のワードに適合する2つのグループ内の8つの結果を生成するが、2つのワードは連続していない。
したがって、ビタビオペレーションの場合、8つの状態を、2つのワードからなる8つのグループとして処理する必要がある。各状態はマッピングレジスタ中に4ビットを必要とするので、各グループも、このマッピングを含むために1つの32ビットレジスタを必要するように、マッピングレジスタをパックすることができる。
これは、1つのループ当たり8つの状態を処理する8回反復ループにうまく適合し、ここでは、必要とされる全てのデータが、1つのCPUレジスタをいっぱいにし、各オペランドは1ループにつき1度読まれ、また、各結果は部分的ワード更新が要求されずに書き込まれたものであり、従って、メモリ効率が最適化される。
各新たな状態について、最小コストブランチが記録されなければならない。これは、32ビットレジスタの1つのペアにうまく入る64ビットを必要とする。これらは、各ループ反復について部分的に更新され、該ループの終了後、履歴すなわち、トレースバック(traceback)テーブルに記憶されることが必要である。
さらに、最小コスト状態のインデックスを計算し、いつ全ての状態が最小閾値より大きくなるかを、それらを次のループ反復で調節できるように検出する。これは、全ての状態が128より多いことを示すフラグを用いて、また、次の反復でMSBをマスキングすることで、容易に達成される。
ループの反復中に、ソースおよび結果のデータを効率的にアドレスする必要があるが、アドレッシングはループインデックスの単純な機能である。フィールドがトレースバックレジスタ中で更新されるので、理想的な拡張は、ループインデックス、アドレッシング、最小コスト状態インデックスおよび正規化フラグのためのレジスタを含む。図6は、データがビタビループのためにアクセスされる、異なる方法を示し、図61では、2つのソース値56は1つの結果66を生成するために用いられる。これは全てのソースデータを用いないために、非効率的である。図62に示す場合には、1つのソースオペランド65は2つのコスト66を計算するために使用される。しかし、これらは、異なるワードにおける異なる状態に関係がある。3つめの図63では、2つのワード中の8つの状態65が2つのワード内の8つの新たな状態66を計算するために使用される。全てのデータは完全に整列され、データは無駄にされていない。
全体的に、これは、図7以下で示すような、典型的な命令セットアーキテクチャを使用して容易に実装することができない、複数のソース及びデスティネーション(destination)レジスタを必要とする理想的な実装につながる。
図7は、4つのソース変数から3つの結果を計算するためのオペレーションの典型的なシーケンスを示す。上部の図は、これらが標準3オペランドCPUでどのように実装されるかを示し、ここでは、3つのオペランドが2つのソースオペランドおよび1つのデスティネーション(destination)オペランドを表わす。ここで、オペレーションが少なくとも3つの連続する命令に分割されることがわかる。これは、十分なレジスタの符号化のために十分なビットを許容せず、さらに一般に、1周期に1つより多いライト(write)オペレーションを受理するレジスタファイルの能力の制限になる、命令オペランドフォーマット制限による。この符号化では、全てのレジスタは、各オペコード内に明示的に符号化され、各オペコードおよび全てのレジスタは、汎用レジスタファイルに存在する。
下部では、複数のレジスタのうちのいくつかの暗黙的(implicit)符号化を用いた同じオペレーションが示されている。専用レジスタとしてこれらの特別なフィールドの実装は、汎用レジスタファイルに分離する。
図8および9は、本発明の一側面に関連し、これは、レジスタアドレッシングを命令群において暗黙的にすることにより、図3の最適アプローチが得られる。
図9のブロック図は、ビタビ命令群によって実施される実際の機能を示す。この図において、前状態の1つのペア(Sa、Sb)は、新たな状態Scについての潜在的承継状態のペアに対応して選択される。新たな状態へ導くような方法で、新たなシンボルを解釈する対応するコストは、マルチプレクサ(901)によって選択され、加算器(adders)902によりこれらの前の状態の対応するコストに加算されて、状態Scに達するまでの潜在的コスト(903)のペアを生成する。これらのコストは比較され、セレクタ(904)によって最小コスト前状態が選択され、対応するビット遷移が示され(905)、対応するコストが出力される(906)。この対応するコストは、各新たなシンボルが適用されるとき、各状態について潜在的に増加する。しかし、状態メモリは有限数の状態(この場合6つの状態)に限定されるため、最小値及び最大値の間の範囲が最大状態遷移コストと最大状態メモリとにより制限される全ての状態のコストに対応する任意のインスタンスで、1セットの値がある。この例において、これは64未満である。したがって、状態コストが無限に増大することを防ぐため、任意の状態コストが128を越えたとき表示(indication)が出力される (907)。
前状態コストのうちの少なくとも1つが>128であるという表示(908)は、正規化ブロック909に供給される。これは、64を引くことにより、状態コストを正規化し、これは、全ての状態コストが有限の整数範囲内にあることを保証する。
結果として得られる新たな状態コスト910は、命令から出力され、最小コストブロック911によって使用される。このブロックの目的は、新たなシンボル処理中に計算された状態コストの全てをモニタし、結果として得られる全ての新たな状態コストのセットのなかから最小コストを決定することである。
一旦、ある状態に通じる遷移が決定されると、その状態についての新たなコストが計算され、状態コストテーブルが更新される。
新たなシンボルが供給される。1または0の該シンボルの解釈の関連する複数のコストのそれぞれは、マルチプレクサ901によって選択され、これらのコストは、加算器902で、前のシンボルコストに加算されて、該シンボルの2つの可能性のある解釈に関連する1ペアのコスト903が生成される。
結果と制御変数のいくつかは長さ32ビット未満であるので、これらは、単一32ビットのコアレジスタのサブフィールドへマージ(merge)できる。
命令セットのオペレーションを複数のプリエンプティブ(pre-emptive)タスクに拡張可能にするために、これらのレジスタおよび任意の状態も保存することが必要である。これは、さらに、これらの状態フラグも同じ命令レジスタへマージされる場合、単純化される。
一旦十分なシンボルが処理されると、現在状態に至るブランチのシーケンスを決定するためにトレースバック(traceback)オペレーションを実行することが必要である。これは比較的単純なオペレーションであるが、再び重要なアドレス計算、ビット操作およびデータロードオペレーションを含む。再び、これらは、各トレースバックステップを実行する専用命令と、トレースバック履歴のアドレッシングのための専用レジスタとを用いて、効率的に実施できる。
図10のトレリス図において、送信されたビットシーケンスを考慮する。この符号化では、RxとRyは、汎用レジスタファイルの外部にある特別レジスタに存在する4つの要求されたソースオペランドのうちの2つを表す。Rp、Rqは、レジスタファイルの外部にある特別レジスタで保存される結果のうちの2つを表し、したがって、レジスタのサブフィールドであり得、またRx及びRyとにオーバラップすることがある。
データを送信した後、受信機はコストとトレースバックとを計算し、図2のコストおよびトレースバック履歴を得る。
トレースバックがT=6時に開始し、状態10が最小コスト状態であることを見つけた場合、受信機はシーケンス「101101」を復号する。それは、データが送信された順序とは逆の順序であり、次に図11のように逆にする必要がある。
別のシンボルを受信した後、最小コストパスから再び開始し、それは再び状態「10」であると仮定する。図12に示されるように、受信機は、今度は「1000101」を復号する。明らかに、いくつかのシンボルの後、パスは収束し、状態T=3よりさらにトレースバックする必要はない。
トレースバック中、パスは、1ビットだけオフセットされた場合を除いて、各新たなシンボルが追加された後はほとんど大きく変化するはない。さらに、一旦新たなトレースバック履歴が前の履歴中の1つの状態に収束すると、再び枝分かれしないことも明らかである。従って、前のトレースバックオペレーションで収束を検出することにより、トレースバックに費やす労力を低減することが可能である。SWでは、これは、比較の前にビットフィールドのマスキング及び回転を伴う複雑なタスクである。このオーバヘッドは各反復に十分な余分な周期を追加し、その利点は否定される。しかし、フィールドを選択するためにトレースバックインデックスを使用してこれらビットフィールドへアクセスする専用ハードウェアを使用することは、透過的に実行でき、トレースバックオペレーションにより消費される電力及び周期を大きく低減できることを意味する。
一旦、トレースバックが実行されると、最も古いデータビットが、通常、一度に1バイト抽出されるが、初期フェーズ中は通常同期パターンが探索され、ビットアラインメントは知られていない。これは、さらに、SWについてイニシャル(initial)トレースバックオペレーションを複雑にするが、再び、CPUレジスタへ並べられる正しい順序で最も古いビットを抽出する特定の命令と、多くのビットをそれらが使用されたときに“消費する”別の命令と、を追加することにより最適化できる。このように、複数のバイトが抽出及び比較され、同期が検出されるまで一度に1ビット廃棄し、その後、アプリケーションにより処理されるレートでビットが消費される。
最後の機能として、ビタビプロセスのそれぞれは、ビタビステータス、トレースバック履歴、トレースバックテーブルおよび状態コストテーブルを含むデータ構造を必要とする。これは、各チャネルについて別個である必要があり、したがって、全てのアドレスはあるオフセットを要求する。これは、ビタビデータ構造ベースアドレスをビタビコントロール/ステータスワードの一部として実装することにより、プロセッサから再び隠すことができる。
他のプロセスへの影響を最小限に抑えるために、暗黙的ビタビレジスタがコアCPUレジスタに加えてあること、そして、SWが、コンテクストスイッチング時それらの状態を効率的に保存することができること、が望ましい。しかし、ほとんどのプロセスはこれらのレジスタを使用せず、従って、それらはそれらを保存する必要はない。
それらが保存される回数を最小限にするために、OSが各プロセスについて、それらが要求されているかどうかを知る必要がなく、いつビタビブロックが使用されるのかを示すために、追加のステータスビットが、ビタビステータス/制御レジスタに追加できる。これらは、プロセスのステータスに応じて、ビタビ命令により、自動的にセット/クリアできる。このようにして、コンテクストスイッチングは、保存すべきコンテクストがあるかどうかを決定するために、これらのフラグをテストできる。このようにして、機能を使用しないプロセスから価値のあるスタックスペースをとらず、アクティブに使用されていない場合には、それらは格納されない。従って、ビタビは、マルチスレッド環境において効率的に使用することができる。
発明の別の側面によれば、本発明は、上述の発明の方法による畳み込み符号化データの復号のために最適化されたプロセッサに関する。プロセッサは、複数のファントム(phantom)レジスタでプロセッサのレジスタセットを拡張するためにアレンジされ、複数のファントムレジスタは、物理的にどのようなレジスタ記憶装置ももたないが、ループ制御レジスタとして用いられるコアレジスタフィールドと、現在状態コストセット割当及びデータ構造のためのベースアドレスを示し、現在及び次の状態テーブルのマッピングを選択する状態レジスタフィールドと、に基づき、ソースおよびデスティネーション(destination)状態コストオペランドのためのアドレスをす。
図13に関して、本発明のプロセッサの動作は、複数のフィールドを含む単一のワード (すなわちオペコード)の形でメモリに記憶される命令により制御される。示された例において、例えば、オペコード147は、2つのソースオペランド148、命令フィールド150およびデスティネーション(destination)レジスタアドレス149を含む、典型的な3つのオペランド命令を示す。
オペランドOP1(OP2)は、マルチプレクサ142により、レジスタファイル141から2つのソースオペランドを選択するために使用され、ALU146へ渡される。ALUの出力は、典型的には、図示されていないパスを通って、アドレス149を使用して、レジスタファイル141に書き戻される。
図示された例において、レジスタファイル141は、32個のロケーションすなわちレジスタR0−R31を含むが、これに発明を限定するものではない。図14が、プロセッサ中のロジカルデータフローを示すことを意図した単純化された機能ブロック図であり、本発明のプロセッサの構成を制限するものではないことは理解されたい。特に、本発明は、パイプラインアーキテクチャも含み、これらのオペレーションが異なる時に実行される。
本発明によれば、オペコード147は、レジスタファイル141中の別々の記憶スペースに対応しないが、レジスタR0−R31内の値およびまたはCPU内部または外部の追加の値151、152の論理関数である“ファントムレジスタ”143へのアドレスを含むことができる。命令によってアドレスされた時、1つまたは複数のファントムレジスタは、命令により明示的にアドレスされていないレジスタ及びまたは信号から計算された値を戻す。
オペコード147は、それぞれが6ビットのオペランドアドレス148を記憶し、この例では、それにより、32の物理レジスタより多くのオペランドをアドレスする能力を与える。ファントムレジスタは、例えば、レジスタファイル141の中にカウンターパート(counterpart)を持たないアドレスのうちの1つを符号化することにより、アクセスされる。
図14の図は算術命令の典型的なフォーマットおよび処理を示しているが、CPUは典型的には、非算術命令、例えばロード/ストア命令、をもつ。本発明によれば、これらの命令のオペランドも、ファントムレジスタ143でありえる。本発明は、多くのファントムレジスタを含むこと、及び、それらが互いに、例えば、それ以外の他のファントムレジスタの値に依存するいくつかのファントムレジスタと作用すること、を含むことも意図される。本発明は、さらに、いくつかのファントムレジスタが独立メモリエレメントと関連し、それらが、追加の隠れレジスタのようなステータスを保持する場合も含む。
有利に、ファントムレジスタは、ループ制御レジスタとして用いられるコアレジスタフィールドと、現在状態コストセット割当とデータ構造のためのベースアドレスとを示し、現在及び次の状態テーブルのマッピングを選択する状態レジスタフィールドとに基づき、ソース及びデスティネーション(destination)状態コストオペランドのためのアドレスを戻すようにアレンジされている。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[付記]
[1]畳み込み符号化データを復号する方法であって、
遷移コストを0からMの範囲内の負でない値に設定するステップ、Mは、K回のステップで得ることのできる最大コストであり、Kは、畳み込み符号化データ内のメモリビットの数であり;
累積パスコスト毎にNビットを割り当てること、ここで
2^(K+1)*M)−1<2^N−1である;
を含む方法。
[2]1シンボルペアの4つの可能性のある解釈について1セットのコストを計算すること、および、これらを4バイトフィールドとしてインデックス付けできる32ビットの単一ワードにパッキングすること、
を含む[1]に記載の方法。
[3]1つのCPUレジスタ中の2ビットフィールドの1つまたは複数のペアを用いて、少なくとも1つの他のレジスタからサブフィールドの1つまたは複数のペアを選択的にアクセスする、[1]または[2]に記載の方法。
[4]これらが1つの状態についてのブランチ遷移およびブランチコストに関係する、[1]−[3]のうちのいずれかに記載の方法。
[5]全ての状態についての正規化された累積状態コストは、メモリ内の連続したロケーションに記憶される8ビットフィールドで表され、各32ビットメモリワードは、連続する4つの可能性のある状態に関連するコストを含む、[1]に従った方法。
[6]各潜在的状態に関連する有効パス遷移シンボルを、シンボル毎に2ビットのパック(packed)構造を用いて表すこと、これらはCPUメモリに、各連続アドレスが、連続する2つの32ビットメモリロケーションで表される8つの現在状態に対応する0及び1のデータビットについて有効なシンボルを表す状態遷移シンボルを保持するように、まとめられる、[1]−[5]のうちのいずれかに記載の方法。
[7]畳み込み符号化データを復号する方法であって、
ループを8回反復して64のビタビ状態を処理するステップを含み、
各反復は8つの連続する現在状態を、関連する状態シンボル解釈コストがループ不変量として表されて、1つの32ビットコアレジスタに記憶でき、前記ループについての前記遷移情報が第2のレジスタに記憶できる順に、処理する方法。
[8]各ループ反復について要求されるデータへアクセスするためのアドレッシングは、単一レジスタが、このレジスタに変更することが、前記ソース及びデスティネーション(destination)状態コストロケーションと、関連する遷移解釈情報とについて要求されるアドレスを利用可能にするように変更することにより暗黙的に実行される、[7]に従った方法。
[9][1]−[8]のうちのいずれかに記載の方法に従った、畳み込み符号化データの復号を最適化するプロセッサであって、
前記プロセッサのレジスタセットを複数のファントムレジスタで拡張するようにアレンジされており、前記複数のファントムレジスタは、命令によりアドレスされたとき、前記命令により明示的にアドレスされないレジスタ及びまたは信号から計算される値を戻す、プロセッサ。
[10]前記ファントムレジスタは、ループ制御レジスタとして用いられるコアレジスタフィールドと、前記現在状態コストセット割当及びデータ構造についてのベースアドレスを示し、現在及び次の状態テーブルのマッピングを選択する状態レジスタフィールドとに基づき、前記ソース及びデスティネーション(destination)状態コストオペランドについてのアドレスを戻すようにアレンジされている、[9]記載のプロセッサ。
[11]前記コアデータレジスタに記憶される複数のオペランドで動作する加算−比較−選択オペレーションを実施する命令を実行するようにアレンジされ、前記命令は、プロセッサ命令セットアーキテクチャの制限に違反することなく、SIMDアーキテクチャを実施できる命令により暗黙的にアドレスされる追加のCPUレジスタを用いる、上記方法クレームのうちの1つに従って畳み込み符号化データを復号するプロセッサ。
[12]前記命令は、1つまたは複数の加算−比較−選択オペレーションを同時に実行し、複数のデスティネーション(destination)レジスタに記憶され得る複数の適切な状態について、関連ある状態コストフィールドを更新する、[11]記載のプロセッサ。
[13]同じ命令が、前記ループについての最小累積コスト状態の計算を同時に実行する、[12]記載のプロセッサ。
[14]同じ命令が、前記ループについての最小コスト状態結果が予め決定された閾値より大きいかどうかを同時に計算する、[12]記載のプロセッサ。
[15]同じ命令が、前記計算された状態コストから、それらを記憶する前に、予め定められた閾値を減算する、[12]記載のプロセッサ。
[16]前記閾値は2の累乗として表され、前記減算は、CPUレジスタに記憶され得るステータスフラグに基づき、関連するビットを0にマスキングすることにより実行される、[14]または[15]記載のプロセッサ。
[17]前記命令は、コアレジスタまたはステータスレジスタ内のフラグを、ビタビエンジンにおける前記複数のレジスタのロード及びストアに基づき、自動的に設定し、
このフラグは、ビタビオペレーションが部分的に完了しているかどうかを示し、前記プロセッサが、コンテクスト変更時における前記CPUレジスタのストア/リストアのときに前記ビタビエンジンが使用されているかどうかを決定することを可能にする、[9]−[16]のうちのいずれかに記載のプロセッサ。
[18]畳み込み符号化データを復号するプロセッサであって、
トレースバックオペレーションを実施するための拡張命令を実行するようにアレンジされ、
トレースバック履歴は、1ペアのコアCPUレジスタに表され、
前記命令は、前記トレースバック履歴内のビットを、トレースバック状態に基づき、明確にセット/クリアすることがき、前記命令の各オペレーションにおいてセット/クリアされたビットまで前記インデックスをカウントすることができる、プロセッサ。
[19]前記命令は、前記トレースバック履歴が前記現在状態により変更されたかどうかを検出し、前記トレースバックオペレーションを前の値をもつ収束で終了するためにフラグを設定できる、[18]のプロセッサ。
[20]CPUレジスタフィールドは、前記トレースバック履歴中の有効ビットの数を示すために、同じ命令により自動的に更新される、[18]記載のプロセッサ。
[21]畳み込み符号化データを復号するプロセッサであって、
トレースバック状態と、システムメモリ内のデータ構造のアドレスとに基づくファントムレジスタを備え、
前記レジスタは、読まれるべき次の32ビットトレースバック履歴ワードについての正しいアドレスを戻し、
前記ファントムレジスタは、インダイレクトロードについてのアドレスレジスタとしてCPUにより使用されることができ、
前記アドレスは、現在トレースバック状態とトレースバックサンプルインデックスとの関数である、プロセッサ。
[22]畳み込み符号化データを復号するプロセッサであって、
送信データの正しいビット順の表現におけるトレースバックデータの最も古いビットを検索する命令を実行するようにアレンジされ、
前記トレースバックデータから戻されたフィールドのアドレスは、トレースバック制御レジスタにより暗黙的に決定される、プロセッサ。
[23]畳み込み符号化データを復号するプロセッサであって、
トレースバック制御レジスタのトレースバックカウントフィールドを自動的に更新するトレースバックデータから多くのビットを消費する命令を実行するようにアレンジされたプロセッサ。
[24]複数の局在衛星を含む、複数の無線局在ビーコンにより受信された信号に基づき地理的位置を決定するGNSS受信機であって、
前記信号に含まれるデータのいくつかは、畳み込み符号に従って符号化され、
前記受信機は、前記畳み込み符号を復号する特別命令を含むソフトウェアプログラムを実行するようにアレンジされた[9]−[23]のうちの1つに従ったプロセッサを含む。
[25]前記特別命令のうちの少なくともいくつかは、ビタビ復号アルゴリズムの加算−比較−選択オペレーションを同時に実施する命令を含み、
前記命令は複数のコアデータレジスタ上で動作し、暗黙的にアドレスされる追加のコアCPUレジスタを使用する、[24]記載の受信機。
[26]前記命令は、前記ビタビ復号アルゴリズムのビタビループについて、最小累積コスト状態の計算を同時に実行する、[25]記載の受信機。
[27]前記命令は、コアレジスタまたはステータスレジスタ内に、前記ビタビエンジン内の前記レジスタのロード/ストアに基づき、自動的にフラグを設定し、
これらフラグは、ビタビオペレーションが部分的に完了しているかどうかを示し、プロセッサが、コンテクスト変更時における前記CPUレジスタのストア/リストアのときに前記ビタビエンジンが使用されているかどうかを決定することを可能にする、[24]から[26]のうちのいずれかの受信機。
[28]ビタビアルゴリズムのトレースバック状態と、システムメモリ内のデータ構造のアドレスとに基づくファントムレジスタを備え、
前記レジスタは、読まれるべき次の32ビットトレースバック履歴ワードについての正しいアドレスを戻し、
前記ファントムレジスタは、インダイレクトロードについてのアドレスレジスタとしてCPUにより使用されることができ、
前記アドレスは、現在トレースバック状態とトレースバックサンプルインデックスとの関数である、[24]から[27]のうちのいずれかの受信機。
[29]前記畳み込み符号は、データ状態間の遷移コストの計算を含み、前記遷移は、0からMまでの範囲の負でない値として表され、MはK回のステップで得ることのできる最大コストであり、Kは前記畳み込み符号化データ内のメモリビットの数であり、
累積パスコスト毎にNビットを割り当て、
2^(K+1)*M)−1<2^N−1である
[24]から[28]のうちのいずれかの受信機。

Claims (16)

  1. み込み符号化データの復号を最適化するプロセッサであって、
    前記プロセッサのレジスタセットをファントムレジスタで拡張するようにアレンジされており、
    前記ファントムレジスタは、ループ制御レジスタとして用いられるコアレジスタフィールドと、現在状態コストセット割当及びデータ構造についてのベースアドレスを示し、現在及び次の状態テーブルのマッピングを選択する状態レジスタフィールドとに基づき、ソース状態コストオペランドについての第1のアドレスと、デスティネーション状態コストオペランドについての第2のアドレスを計算するようにアレンジされ、
    記ファントムレジスタは、第1の命令によりアドレスされたとき、前記第1のアドレスのレジスタ及びまたは信号から状態コストを計算する、プロセッサ。
  2. アデータレジスタに記憶される複数のオペランドで動作する加算−比較−選択オペレーションを実施する第2の命令を実行するようにアレンジされ請求項1記載のプロセッサ。
  3. 前記第2の命令は、1つまたは複数の加算−比較−選択オペレーションを同時に実行し、複数のデスティネーション(destination)レジスタに記憶され得る複数の適切な状態について、関連ある状態コストを更新する、請求項に記載のプロセッサ。
  4. 前記第2の命令が、ループについての最小累積コスト状態の計算を同時に実行する、請求項記載のプロセッサ。
  5. 前記第2の命令が、ループについての最小コスト状態結果が予め決定された閾値より大きいかどうかを同時に計算する、請求項記載のプロセッサ。
  6. 前記第2の命令が、前記計算された状態コストから、それらを記憶する前に、予め定められた値を減算する、請求項記載のプロセッサ。
  7. 前記予め定められた値は2の累乗として表され、前記減算は、CPUレジスタに記憶され得るステータスフラグに基づき、状態コストのMSBを0にマスキングすることにより実行される、請求項記載のプロセッサ。
  8. トレースバックオペレーションを実施するための第3の命令を実行するようにアレンジされ、
    トレースバック履歴は、1ペアのコアCPUレジスタに表され、
    前記第3の命令は、前記トレースバック履歴内のビットを、トレースバック状態に基づき、明確にセット/クリアすることがき、前記命令の各オペレーションにおいてセット/クリアされたビットまでインデックスをカウントすることができる、請求項1記載のプロセッサ。
  9. 前記第3の命令は、前記トレースバック履歴が現ステップにより変更されたかどうかを検出し、前記トレースバックオペレーションを前の値をもつ収束で終了するためにフラグを設定できる、請求項のプロセッサ。
  10. トレースバック状態と、システムメモリ内の前記データ構造のアドレスとに基づく第2のファントムレジスタを備え、
    前記第2のファントムレジスタは、読まれるべき次の32ビットトレースバック履歴ワードについての正しいアドレスを戻し、
    前記第2のファントムレジスタは、インダイレクトロードについてのアドレスレジスタとしてCPUにより使用されることができ、
    前記アドレスは、現在トレースバック状態とトレースバックサンプルインデックスとの関数である、請求項1記載のプロセッサ。
  11. 送信データの正しいビット順の表現におけるトレースバックデータの最も古いビットを検索する命令を実行するようにアレンジされ請求項10記載のプロセッサ。
  12. 複数の局在衛星を含む、複数の無線局在ビーコンにより受信された信号に基づき地理的位置を決定するGNSS受信機であって、
    前記信号に含まれるデータのいくつかは、畳み込み符号に従って符号化され、
    前記受信機は、前記畳み込み符号を復号する特別命令を含むソフトウェアプログラムを実行するようにアレンジされた請求項1記載のプロセッサを含む、受信機
  13. 前記特別命令のうちの少なくともいくつかは、ビタビ復号アルゴリズムの加算−比較−選択オペレーションを同時に実施する命令を含み、
    前記命令は複数のコアデータレジスタ上で動作し、暗黙的にアドレスされる追加のコアCPUレジスタを使用する、請求項12記載の受信機。
  14. 前記命令は、前記ビタビ復号アルゴリズムのビタビループについて、最小累積コスト状態の計算を同時に実行する、請求項13記載の受信機。
  15. ビタビアルゴリズムのトレースバック状態と、システムメモリ内のデータ構造のアドレスとに基づく第2のファントムレジスタを備え、
    前記レジスタは、読まれるべき次の32ビットトレースバック履歴ワードについての正しいアドレスを戻し、
    前記第2のファントムレジスタは、インダイレクトロードについてのアドレスレジスタとしてCPUにより使用されることができ、
    前記アドレスは、現在トレースバック状態とトレースバックサンプルインデックスとの関数である、請求項12から14のうちのいずれか1つに記載の受信機。
  16. 前記畳み込み符号の復号は、データ状態間の遷移コストの計算を含み、前記遷移は、0からMまでの範囲の負でない値として表され、MはK回のステップで得ることのできる最大遷移コストであり、Kは前記畳み込み符号化データ内のメモリビットの数であり、
    複数の累積パスコストそれぞれにNビットを割り当て、前記最大遷移コストMは、
    2^(K+1)*M)−1<2^N−1により定義され、
    請求項12から14のうちのいずれか1つに記載の受信機。
JP2013015211A 2007-10-26 2013-01-30 最適化ビタビ復号器およびgnss受信機 Expired - Fee Related JP5694398B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07119378 2007-10-26
EP07119378.3 2007-10-26

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2010530479A Division JP5502739B2 (ja) 2007-10-26 2008-10-27 最適化ビタビ復号器およびgnss受信機

Publications (3)

Publication Number Publication Date
JP2013138452A JP2013138452A (ja) 2013-07-11
JP2013138452A5 JP2013138452A5 (ja) 2014-06-26
JP5694398B2 true JP5694398B2 (ja) 2015-04-01

Family

ID=40580136

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010530479A Expired - Fee Related JP5502739B2 (ja) 2007-10-26 2008-10-27 最適化ビタビ復号器およびgnss受信機
JP2013015211A Expired - Fee Related JP5694398B2 (ja) 2007-10-26 2013-01-30 最適化ビタビ復号器およびgnss受信機

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2010530479A Expired - Fee Related JP5502739B2 (ja) 2007-10-26 2008-10-27 最適化ビタビ復号器およびgnss受信機

Country Status (6)

Country Link
US (1) US8621335B2 (ja)
EP (1) EP2220771A2 (ja)
JP (2) JP5502739B2 (ja)
KR (5) KR101467467B1 (ja)
CN (2) CN101889401B (ja)
WO (1) WO2009053490A2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8270405B2 (en) 2009-06-30 2012-09-18 Intel Corporation Multicast support on a switch for PCIe endpoint devices
US8694878B2 (en) * 2011-06-15 2014-04-08 Texas Instruments Incorporated Processor instructions to accelerate Viterbi decoding
US9153990B2 (en) 2012-11-30 2015-10-06 Tesla Motors, Inc. Steady state detection of an exceptional charge event in a series connected battery element
US9529048B2 (en) 2012-11-30 2016-12-27 Tesla Motors, Inc. Transient detection of an exceptional charge event in a series connected battery element
CN109993272B (zh) * 2017-12-29 2019-12-06 北京中科寒武纪科技有限公司 卷积及降采样运算单元、神经网络运算单元和现场可编程门阵列集成电路
GB202006748D0 (en) * 2020-05-07 2020-06-24 Qinetiq Ltd Decoder for a receiver
KR102418617B1 (ko) 2020-10-13 2022-07-07 서울대학교산학협력단 염기 비율과 연속적 발생을 제한하는 dna 저장 부호화 방법, 프로그램 및 장치
CN115499093A (zh) * 2022-08-01 2022-12-20 北京北方联星科技有限公司 一种基于fec编码的sbas信号非译码帧同步方法
CN117749199A (zh) * 2024-02-20 2024-03-22 北京凯芯微科技有限公司 一种导航电文译码单元及方法

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09232973A (ja) * 1996-02-28 1997-09-05 Sony Corp ビタビ復号器
WO1998018209A1 (fr) * 1996-10-24 1998-04-30 Sony Corporation Dispositif et appareil de decodage de viterbi
EP1808969B1 (en) * 1997-10-31 2014-01-01 AT & T Mobility II, LLC Maximum likehood detection of concatenated space-time codes for wireless applications with transmitter diversity
US5912908A (en) * 1997-11-21 1999-06-15 Lucent Technologies Inc. Method of efficient branch metric computation for a Viterbi convolutional decoder
US6272188B1 (en) * 1997-11-24 2001-08-07 Agere Systems Guardian Corp. Single-cycle accelerator for extremun state search
US6029267A (en) * 1997-11-25 2000-02-22 Lucent Technologies Inc. Single-cycle, soft decision, compare-select operation using dual-add processor
JPH11196007A (ja) * 1997-12-25 1999-07-21 Matsushita Electric Ind Co Ltd ビタビ復号器
US6256505B1 (en) * 1998-05-28 2001-07-03 Ericsson Lnc. GSM transceiver unit equipped for time of arrival measurements
JP3419680B2 (ja) * 1998-06-02 2003-06-23 三菱電機株式会社 ビタビ復号装置
JP2001060881A (ja) * 1999-08-20 2001-03-06 Fujitsu Ltd パスメトリック正規化装置
US6560749B1 (en) * 2000-01-28 2003-05-06 Nec Electronics, Inc. Apparatus and method for implementing a decoder for convolutionally encoded symbols
DE10010238C2 (de) * 2000-03-02 2003-12-18 Infineon Technologies Ag Verfahren zum Speichern von Pfadmetriken in einem Viterbi-Decodierer
US6788750B1 (en) * 2000-09-22 2004-09-07 Tioga Technologies Inc. Trellis-based decoder with state and path purging
JP3984790B2 (ja) 2001-01-15 2007-10-03 日本電気株式会社 ビタビ復号処理装置
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
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
JP2003258650A (ja) * 2002-03-06 2003-09-12 Hitachi Kokusai Electric Inc 最尤復号器
US7248637B2 (en) * 2003-06-11 2007-07-24 Advanced Micro Devices, Inc. Viterbi decoder utilizing partial backtracing
JP4580927B2 (ja) * 2004-05-27 2010-11-17 パナソニック株式会社 ビタビ復号装置、およびビタビ復号方法
JP4530345B2 (ja) * 2004-07-22 2010-08-25 株式会社アドバンテスト ビタビ復号装置、方法、プログラム、記録媒体

Also Published As

Publication number Publication date
KR101127333B1 (ko) 2012-03-29
US8621335B2 (en) 2013-12-31
WO2009053490A2 (en) 2009-04-30
JP2013138452A (ja) 2013-07-11
US20100299583A1 (en) 2010-11-25
WO2009053490A9 (en) 2011-03-10
KR20100085131A (ko) 2010-07-28
CN104601181A (zh) 2015-05-06
KR20120014065A (ko) 2012-02-15
CN104601181B (zh) 2017-12-22
KR20120120448A (ko) 2012-11-01
JP5502739B2 (ja) 2014-05-28
KR20130124413A (ko) 2013-11-13
WO2009053490A3 (en) 2009-09-24
KR101129064B1 (ko) 2012-03-23
EP2220771A2 (en) 2010-08-25
KR20120023143A (ko) 2012-03-12
KR101467467B1 (ko) 2014-12-02
JP2011501596A (ja) 2011-01-06
CN101889401A (zh) 2010-11-17
CN101889401B (zh) 2014-12-31

Similar Documents

Publication Publication Date Title
JP5694398B2 (ja) 最適化ビタビ復号器およびgnss受信機
US6877090B2 (en) Branch predictor suitable for multi-processing microprocessor
US7398458B2 (en) Method and apparatus for implementing decode operations in a data processor
US7962733B2 (en) Branch prediction mechanisms using multiple hash functions
US10162635B2 (en) Confidence-driven selective predication of processor instructions
US7814302B2 (en) Address calculation instruction within data processing systems
JP2013138452A5 (ja)
JP2005045727A (ja) ビタビ復号器
US7747845B2 (en) State machine based filtering of non-dominant branches to use a modified gshare scheme
KR20100101585A (ko) 신호 프로세서에서의 역추적 가속화
US8006066B2 (en) Method and circuit configuration for transmitting data between a processor and a hardware arithmetic-logic unit
US7149879B2 (en) Processor and method of automatic instruction mode switching between n-bit and 2n-bit instructions by using parity check
US20040153953A1 (en) Processor and method for convolutional decoding
JP2006163548A (ja) 不安定状態を利用する予測器、プロセッサ
JP2010213225A (ja) 復号化装置及びトレースバック方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131210

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20140310

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20140313

A524 Written submission of copy of amendment under section 19 (pct)

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20140512

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150106

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150204

R150 Certificate of patent or registration of utility model

Ref document number: 5694398

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees