加算比較選択命令

 

装置は、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するメモリを含む。プロセッサによって命令が実行されると、プロセッサによって、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算するように、ベクトル加算演算が行われる。また命令が実行されると、第3のレジスタからの第3の値から、第2の値を減算するように、ベクトル減算演算が行われる。また、命令が実行されると、ベクトル加算演算の結果を、ベクトル減算演算の結果と比較するように、ベクトル比較演算が行われる。

 

 

関連出願の相互参照
本出願は、参照によりその全体が本明細書に明白に組み込まれている、本出願の譲受人が所有する2013年3月15日に出願した米国仮出願第13/841,878号の優先権を主張するものである。
本開示は、一般に加算比較選択命令に関する。
技術の進歩は、結果としてより小さく、より強力なコンピューティングデバイスをもたらしている。たとえば現在は、小型、軽量でユーザによって容易に持ち運ばれる、ポータブルワイヤレス電話、携帯情報端末(PDA)、およびページングデバイスなどのワイヤレスコンピューティングデバイスを含む、多様なポータブルパーソナルコンピューティングデバイスが存在する。より具体的には、セルラー電話およびインターネットプロトコル(IP)電話などのポータブルワイヤレス電話は、音声およびデータパケットを、ワイヤレスネットワークを通して通信することができる。さらに、多くのこのようなワイヤレス電話は、それらに組み込まれた他のタイプのデバイスを含む。たとえばワイヤレス電話はまた、デジタルスチルカメラ、デジタルビデオカメラ、デジタルレコーダ、およびオーディオファイルプレーヤを含むことができる。またこのようなワイヤレス電話は、インターネットにアクセスするために用いることができるウェブブラウザアプリケーションなどの、ソフトウェアアプリケーションを含む実行可能命令を処理することができる。したがってこれらのワイヤレス電話は、かなりのコンピューティング能力を含むことができる。
オーディオまたはビデオ復号などのマルチメディア処理を行うワイヤレス電話は、符号化された信号を復号するために、しばしばビタビアルゴリズムなどのアルゴリズムを用いることができる。たとえば、符号化された2値信号を生成するために、2値信号は、複数の符号化段階(たとえば畳み込み符号化)において符号化され得る。各符号化段階において符号化演算は、2値信号の状態(S)を変化させ得る。2値信号の状態は、特定の時点(k)における(たとえば特定の符号化段階における)、ワイヤレス電話内のエンコーダの状態に対応し得る。たとえば、第1の符号化段階の間に第1の状態を生成するように、2値信号に対して第1の符号化演算を行ってもよいし、第2の符号化段階の間に第2の状態を生成するように、第1の状態に対して第2の符号化演算を行ってもよい。符号化された2値信号は、符号化演算が完了した後に生成される。連続する状態の順序は、符号化された2値信号に対応する独特なパス(すなわちビタビパス)を生成することができる。
ワイヤレス電話は、連続する状態を2値信号まで辿ることによって、パスを回復して符号化された2値信号を復号することができる。たとえばワイヤレス電話は、符号化された2値信号(たとえば符号化された2値信号に関連する状態)から、符号化時に生成された先行状態(たとえば前の状態)を2値信号まで遡って、パスを復元することができる。パスの先行状態は、各到着状態(arrival state)(すなわち「現在の」状態)において決定することができ、プロセスは2値信号が回復される(たとえば2値信号までパスを遡る)まで繰り返すことができる。このプロセスは畳み込み復号と呼ぶことができる。符号化された2値信号を復号するために、ビタビアルゴリズムを用いることができる。たとえばワイヤレス電話はデコーダにおいて、ビタビアルゴリズムを用いて、パスの到着状態からパスの先行状態を決定し、2値信号が回復されるまでプロセスを繰り返すことができる。先行状態は、到着状態を回復するために用いられるパスメトリックに基づいて決定することができる。しかし復号段階において先行状態を決定することは、複数の命令を利用し得る。復号段階の間に複数の命令を用いて先行状態を決定することは、処理時間を増加させ得る。
ビタビアルゴリズムを用いた復号段階の間に、先行状態を決定する単一命令を開示している。たとえば最も可能性の高い状態のシーケンス(すなわちビタビパス)は、ビタビアルゴリズムを用いて見出すことができる。ビタビパスは、各状態に至る複数のパスを有する複数の状態が存在する、状態のトレリスとすることができる。状態間のどの遷移が最も可能性が高いかを判断する(たとえば「生き残り」パスを決定する)ために、状態間の異なる遷移の尤度が決定される。命令は、電子デバイス(たとえばモバイルデバイス)において畳み込み復号を行うために、他の実行可能命令に関連して、加算、比較、および選択演算を行うために用いることができる。たとえば命令は、第1の状態(2S)(たとえば偶数状態)から到着状態(S)に達するために用いられるメトリックの和、および第2の状態(2S+1)(たとえば奇数状態)から同じ到着状態(S)に達するために用いられるメトリックの差を決定することができる。命令はまた、和を差と比較して、どちらの計算がより大きい値に対応するかを判定することができる。より大きな値に対応する計算は、先行状態を予測(たとえば生き残りパスを予測)するために選択することができる。命令がプロセッサによって実行されるときは、選択されたメトリックの計算はレジスタにロードされ、次の復号段階の間に用いることができる。加算演算、比較演算、および選択演算は、命令の同じ実行サイクルにおいて行われ得る。さらに命令は、超長命令語(VLIW)アーキテクチャの命令レベル並列処理をうまく利用することができる。たとえば単一のVLIWパケットは、このような並列に実行可能な命令を複数含むことができる。
特定の実施形態では、装置は、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するメモリを含む。プロセッサによって命令が実行されると、プロセッサによって、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算するように、ベクトル加算演算が行われる。また命令が実行されると、第3のレジスタからの第3の値から、第2の値を減算するように、ベクトル減算演算が行われる。また、命令が実行されると、ベクトル加算演算の結果を、ベクトル減算演算の結果と比較するように、ベクトル比較演算が行われる。
他の特定の実施形態では、方法は、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を受け取るステップを含む。方法はまた、プロセッサによって命令を実行するステップを含む。命令を実行するステップは、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算して、第1の結果を生成するステップを含む。命令を実行するステップはまた、第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成するステップを含む。命令を実行するステップはまた、第1の結果を、第2の結果と比較するステップを含む。
他の特定の実施形態では、装置は、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するための手段を含む。装置はまた、命令を実行するための手段を含む。命令を実行するための手段は、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算して、第1の結果を生成するための手段を含む。命令を実行するための手段はさらに、第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成するための手段を含む。実行するための手段はさらに、第1の結果を、第2の結果と比較するための手段を含む。
他の特定の実施形態では、非一時的コンピュータ可読媒体は、プロセッサによって実行されたときに、プロセッサに、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する単一命令を受け取らせる、プログラムコードを含む。プログラムコードはまた、プロセッサに単一命令を実行させる。単一命令を実行することは、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算して、第1の結果を生成することを含む。単一命令を実行することはまた、第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成することを含む。単一命令を実行することはさらに、第1の結果を、第2の結果と比較することを含む。
開示した実施形態の少なくとも1つによってもたらされる、1つの特定の利点は、加算、比較、および選択機能を行うための単一命令の使用により、復号段階のためのコードサイズが縮小され、実行サイクルが減少されることである。本開示の他の態様、利点、および特徴は、以下の「図面の簡単な説明」、「発明を実施するための形態」、および「特許請求の範囲」のセクションを含む明細書全体を読んだ後に明らかになるであろう。
第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令の実行を示す図である。 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令の実行を示す別の図である。 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶し処理するように動作可能なシステムの特定の例示的実施形態を示す図である。 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を処理する方法の特定の例示的実施形態のフローチャートである。 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するメモリを含むワイヤレスデバイスの特定の実施形態のブロック図である。
復号演算を行うための命令は、第1の値(たとえばデコーダのパスメトリック値の第1の組)、第2の値(たとえばブランチメトリック値)、および第3の値(たとえばデコーダのパスメトリック値の第2の組)を含むことができる。デコーダは、復号演算の間に第1、第2、および第3の値を用いて、先行状態を決定する(たとえば生き残りパスを決定する)ことができる。たとえば第1の値は、到着状態(S)に達するために用いられる偶数状態(2S)のパスメトリックに対応することができ、第3の値は、到着状態(S)に達するために用いられる奇数状態(2S+1)のパスメトリックに対応することができる。第2の値は、復調されたシンボルから取得されるブランチメトリックに対応することができ、符号多項式の関数とすることができる。オプションとして命令は、宛先レジスタを特定することができる。命令が実行されたときは、第1の結果および第2の結果が生成され得る。第1の結果は、ベクトル加算演算に応答して生成され得る。たとえばプロセッサは、第1の値を第2の値に加算して、第1の結果を生成することができる。第2の結果は、ベクトル減算演算に応答して生成され得る。たとえばプロセッサは、第3の値から第2の値を減算して、第2の結果を生成することができる。特定の実施形態では、第1の値および第3の値は、補数ビットを含むことができる。
ベクトル比較演算は、第1の結果(たとえば偶数状態(2S)に関連する結果)を、第2の結果(たとえば奇数状態(2S+1)に関連する結果)と比較するために行われる。第1の結果が第2の結果より大きいときは、偶数状態(2S)に対応する先行状態を選択することができる。第2の結果が第1の結果より大きいときは、奇数状態(2S+1)に対応する先行状態を選択することができる。
図1を参照すると、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令100の実行の、第1の例示的な例を示している。特定の実施形態では命令100は、第1のレジスタ102、第2のレジスタ104、第3のレジスタ106、およびプリディケートレジスタ110を特定することができる。第1のレジスタ102は第1の値112を記憶することができ、第2のレジスタ104は第2の値114を記憶することができ、第3のレジスタ106は第3の値116を記憶することができる。命令100は「Pu, Rxx=vacsh(Rss, Rtt)」とすることができ、「vacsh」は命令100の演算コード、「Rxx」は第1のレジスタ102、「Rtt」は第2のレジスタ104、「Rss」は第3のレジスタ106、および「Pu」は、回復された遷移(たとえば符号化された遷移)が、偶数状態(2S)に対応するか、奇数状態(2S+1)に対応するかに基づいて、生き残り状態(すなわち先行状態)を予測するプリディケートレジスタ110である。
ベクトル比較演算の結果は、先行状態(たとえば生き残りパス)が、偶数状態(2S)に対応するか、奇数状態(2S+1)に対応するかを予測するために、プリディケートレジスタ110に記憶され得る。生き残り状態は、到着状態(S)に達するために用いられるメトリックの関数とすることができる。たとえば第1の値112は、偶数状態(2S)から到着状態(S)に達するために用いられるパスメトリック値の第1の組に対応することができる。パスメトリック値は、到着状態(S)に達するために最も可能性が高いパスにわたる距離に関連する値に対応することができる。第2の値114は、ブランチメトリック値に対応することができる。ブランチメトリック値は、状態間の正規化距離を測る値に対応することができる。第3の値116は、奇数状態(2S+1)から到着状態(S)に達するために用いられるパスメトリック値の第2の組に対応することができる。到着状態(S)において、ビタビデコーダなどのデコーダは、到着状態(S)に達するために用いられるパスメトリック値112、116に基づいて、偶数先行状態(2S)と奇数先行状態(2S+1)から選択することができる。
演算時には、プロセッサ内のベクトル加算器は、ベクトル加算演算を行って、第1のレジスタ102からの第1の値112を、第2のレジスタ104からの第2の値114に加算することができる。たとえばパスメトリック値の第1の組を、ブランチメトリック値に加算して、第1の結果122を生成することができる。プロセッサ内のベクトル減算器は、ベクトル減算演算を行って、第3のレジスタ106の第3の値116から、第2の値114を減算することができる。たとえばパスメトリック値の第2の組を、ブランチメトリック値から減算して、第2の結果124を生成することができる。プロセッサ内の比較器は、ベクトル比較演算を行って、第1の結果122を第2の結果124と比較して、結果122、124のどちらがより大きな値に対応するかを判定することができる。
プロセッサは、ベクトル選択演算を行って、より大きな値に対応する結果122または124を選択することができ、第1のレジスタ102は、選択結果126を用いて更新され得る。たとえば第1の結果122が第2の結果124より大きいときは、第1の結果122が、選択結果126として第1のレジスタ102に記憶され、先行状態は偶数状態(2S)に対応すると予測される。第2の結果124が第1の結果122より大きいときは、第2の結果124が、選択結果126として第1のレジスタ102に記憶され、先行状態は奇数状態(2S+1)に対応すると予測される。
述べられた単一命令100は、同じ実行サイクルの間に、ベクトル加算演算、ベクトル減算演算、ベクトル比較演算、およびベクトル選択演算が行われることを可能にし得ることが理解されるであろう。ベクトル加算演算、ベクトル減算演算、ベクトル比較演算、およびベクトル選択演算を、4つの個別の命令ではなく、1つの命令(たとえば「vacsh」命令)として実装することにより、およそ40パーセントの処理速度の増加を生じることができる。たとえば単一命令は、5パイプラインサイクル(4つの命令に対して)と比べて、3パイプラインサイクルを用いて実行することができる。また命令100が発行されたときは、スループットは、およそサイクル当たり2バタフライに等しくなり得ることが理解されるであろう。たとえば各バタフライは、状態から状態への可能な遷移の数に対応することができる。特定の実施形態では、命令100が単一サイクルの間に2回発行されたときは、スループットはおよそサイクル当たり4バタフライに等しくなり得る。
図2を参照すると、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令の実行の、第2の例示的な例を示しており、全体的に200として示している。
特定の実施形態では、第1のレジスタ102は、4つの部分を含む64ビットレジスタとすることができる。たとえば第1のレジスタ102は、第1の部分(Rxx.H3)212、第2の部分(Rxx.H2)214、第3の部分(Rxx.H1)216、および第4の部分(Rxx.H0)218を含むことができる。各部分212〜218は、第1のパスメトリック値に対応する16ビット値を記憶することができる。たとえば第1の部分212は第1の16ビット値(x1)を記憶することができ、第2の部分214は第2の16ビット値(x2)を記憶することができ、第3の部分216は第3の16ビット値(x3)を記憶することができ、第4の部分218は第4の16ビット値(x4)を記憶することができる。第1のパスメトリック値は、図1の第1の値112に対応することができる。たとえば第1のパスメトリック値は、偶数状態(2S)から到着状態(S)に達するために用いられるパスメトリック値の第1の組に対応することができる。
特定の実施形態では、第2のレジスタ104は、4つの部分を含む64ビットレジスタとすることができる。たとえば第2のレジスタ104は、第1の部分(Rtt.H3)222、第2の部分(Rtt.H2)224、第3の部分(Rtt.H1)226、および第4の部分(Rtt.H0)228を含むことができる。各部分222〜228は、ブランチメトリック値に対応する16ビット値を記憶することができる。たとえば第1の部分222は第1の16ビット値(y1)を記憶することができ、第2の部分224は第2の16ビット値(y2)を記憶することができ、第3の部分226は第3の16ビット値(y3)を記憶することができ、第4の部分228は第4の16ビット値(y4)を記憶することができる。
特定の実施形態では、第3のレジスタ106は、4つの部分を含む64ビットレジスタとすることができる。たとえば第3のレジスタ106は、第1の部分(Rss.H3)232、第2の部分(Rss.H2)234、第3の部分(Rss.H1)236、および第4の部分(Rss.H0)238を含むことができる。各部分232〜238は、第2のパスメトリック値に対応する16ビット値を記憶することができる。たとえば第1の部分232は第1の16ビット値(z1)を記憶することができ、第2の部分234は第2の16ビット値(z2)を記憶することができ、第3の部分236は第3の16ビット値(z3)を記憶することができ、第4の部分238は第4の16ビット値(z4)を記憶することができる。第2のパスメトリック値は、図1の第3の値116に対応することができる。たとえば第2のパスメトリック値は、偶数状態(2S)から到着状態(S)に達するために用いられるパスメトリック値の第2の組に対応することができる。
第1のベクトル加算器202は、第1のレジスタ102の第1の部分212からの第1の16ビット値(x1)を、第2のレジスタ104の第1の部分222からの第1の16ビット値(y1)に加算して、第1の16ビット結果を生成するように構成される。第1のベクトル減算器204は、第3のレジスタ106の第1の部分232からの第1の16ビット値(z1)から、第1の16ビット値(y1)を減算して、第2の16ビット結果を生成するように構成される。第1の比較器206は、第1の16ビット結果を第2の16ビット結果と比較するように構成される。比較に基づいて第1の比較器206は、第1の16ビット結果が第2の16ビット結果より大きいかどうか、または第2の16ビット結果が第1の16ビット結果より大きいかどうかを特定する、第1のフラグビット(たとえば1ビット信号)を生成することができる。第1のフラグビットは、プリディケートレジスタ(Pu)210の第1の部分に供給することができ、先行状態が偶数状態(2S)である、または奇数状態(2S+1)である可能性が最も高いかどうかを予測するために用いられる。
第1のフラグビットはまた、選択デバイス208に供給され得る。特定の実施形態では、選択デバイス208はマルチプレクサとすることができる。選択デバイス208は、第1のフラグビットに基づいて第1の16ビット結果または第2の16ビット結果のいずれかを選択し、選択結果を第1のレジスタ102の第1の部分212に供給するように構成される。たとえば選択デバイス208は、第1の16ビット結果が第2の16ビット結果より大きいことを第1のフラグビットが示すときは、第1の16ビット結果を第1のレジスタ102の第1の部分212に供給することができる。あるいは選択デバイス208は、第2の16ビット結果が第1の16ビット結果より大きいことを第1のフラグビットが示すときは、第2の16ビット結果を第1のレジスタ102の第1の部分212に供給することができる。
さらなるベクトル加算器、ベクトル減算器、および比較器は並列に、かつ第1のベクトル加算器202、第1のベクトル減算器204、および第1の比較器206と実質的に同様に動作することができる。たとえばさらなるベクトル加算器、ベクトル減算器、および比較器は、第1のレジスタ102、第2のレジスタ104、および第3のレジスタ106の対応する部分における16ビット値に基づいて、第2のフラグビット、第3のフラグビット、および第4のフラグビットを生成することができる。第1のレジスタ102の第2、第3、および第4の部分214〜218は、それぞれ第2、第3、および第4のフラグビットに基づいて、16ビット結果を用いて更新することができる。したがって単一実行サイクルの間に、4つの状態を処理することができる。
図3を参照すると、命令100(たとえば「VACSH」命令)を記憶し処理するように動作可能なシステムの特定の例示的実施形態を開示しており、全体的に300として示している。システム300は、バスインターフェース308を通じて命令キャッシュ310に結合された、メモリ302を含むことができる。特定の実施形態では、システム300のすべてまたは一部分は、プロセッサ内に一体化され得る。
命令100(たとえば加算比較選択命令)、および第2の命令352(たとえば第2の加算比較選択命令)は、超長命令語(VLIW)パケット350内に含まれ得る。命令100は、図1〜図2に示されるような第1のレジスタ102、第2のレジスタ104、および第3のレジスタ106を特定することができる。第1のレジスタ102、第2のレジスタ104、および第3のレジスタ106は、汎用レジスタファイル326内に含まれ得る。第1のレジスタ102は、偶数状態(2S)から到着状態(S)に達するために用いられるパスメトリック値の第1の組を記憶することができ、第2のレジスタ104は、ブランチメトリック値を記憶することができ、第3のレジスタ106は、奇数状態(2S+1)から到着状態(S)に達するために用いられるパスメトリック値の第2の組を記憶することができる。命令100はまた、プリディケートレジスタ210を特定することができる。図1〜図2に関連して述べられたように、ベクトル比較演算の結果は、先行状態(たとえば生き残りパス)が、偶数状態(2S)に対応するか、奇数状態(2S+1)に対応するかを予測するために、プリディケートレジスタ210に記憶することができる。プリディケートレジスタ210はまた、汎用レジスタファイル326内に含まれ得る。
メモリ302は、命令100を、バスインターフェース308を通じて命令キャッシュ310に送信することができる。データキャッシュ312はまた、バスインターフェース308を通じてメモリ302に結合され得る。特定の実施形態ではメモリ302は、図1〜図2に関連して述べられたように、命令100を用いてベクトル加算演算、ベクトル減算演算、ベクトル比較演算、ベクトル選択演算、またはそれらの任意の組合せを行うデコーダによってアクセス可能とすることができる。たとえばデコーダは、図5を参照してさらに述べられるように、コーダ/デコーダ(CODEC)の一部とすることができる。
命令キャッシュ310は、バス311を通じてシーケンサ314に結合され得る。シーケンサ314は、割り込みレジスタ(図示せず)から取り出すことができる汎用割り込み316を受け取ることができる。特定の実施形態では、命令キャッシュ310は、複数の現行命令レジスタ(図示せず)を通じて、シーケンサ314に結合することができ、これらはバス311に結合され、システム300の特定のスレッド(たとえばハードウェアスレッド)に関連付けられ得る。特定の実施形態では、プロセッサ300は、6つのスレッドを含むインターリーブされたマルチスレッドプロセッサとすることができる。他の特定の実施形態では、プロセッサ300は、3つまたは4つのスレッドを含むことができる。
特定の実施形態ではバス311は、128ビットバスとすることができ、シーケンサ314は、命令パケット(たとえば命令100および第2の命令352を含む、超長命令語(VLIW)命令パケット350)を通じて、メモリ302から命令を取り出すように構成することができる。シーケンサ314は、第1の命令実行ユニット318、第2の命令実行ユニット320、第3の命令実行ユニット322、および第4の命令実行ユニット324に結合され得る。より少ないまたはより多い命令実行ユニットが存在し得ることに留意されるべきである。各命令実行ユニット318〜324は、第1のバス328を通じて汎用レジスタファイル326に結合され得る。汎用レジスタファイル326はまた、第2のバス330を通じて、シーケンサ314、データキャッシュ312、およびメモリ302に結合され得る。
システム300はまた、割り込み(たとえば汎用割り込み316)を受け入れるかどうかを判断するため、および命令の実行を制御するために、シーケンサ314内の制御ロジックによってアクセスされ得る、ビットを記憶するためのスーパバイザ制御レジスタ332、およびグローバル制御レジスタ334を含むことができる。
特定の実施形態では、実行ユニット318〜324のいずれも、図1の命令100を実行して第1の結果122および第2の結果124を生成することができる。別の実施形態では、実行ユニット318〜324のすべてではないがいくつかは、命令100を実行することができる。たとえば実行ユニット318〜324は、図2に関連して述べられたようなベクトル加算器、ベクトル減算器、比較器、および選択デバイスを含む演算論理ユニット(ALU)を含むことができる。実行ユニット318〜324は、図2に関連して述べられたベクトル加算器202などのベクトル加算器を用いて、第1のレジスタ102に記憶されたパスメトリック値の第1の組を、第2のレジスタ104に記憶されたブランチメトリック値に加算することによって、第1の結果を生成することができる。実行ユニット318〜324は、図2に関連して述べられたベクトル減算器204などのベクトル減算器を用いて、第3のレジスタ106に記憶されたパスメトリック値の第2の組から、第2のレジスタ104に記憶されたブランチメトリック値を減算することによって、第2の結果を生成することができる。実行ユニット318〜324は、第1の結果を第2の結果と比較して、どちらの結果が大きいかを判定し、比較の結果を知らせる信号をプリディケートレジスタ210に供給することができる。プリディケートレジスタ210に記憶された情報は、先行状態が偶数状態(2S)に対応するか、奇数状態(2S+1)に対応するかを予測するために用いることができる。
したがって、符号化されたデータストリームの復号時に、符号化されたデータ信号の先行状態は、単一命令を用いて、到着状態を回復するために用いられたパスメトリックから予測することができる。さらに比較に応じて、第1の結果または第2の結果のいずれかを、後続の状態プレディケーションにおいて用いられるように第1のレジスタに記憶することができる。命令100は、コードサイズの全体的な低減を達成し、先行状態を予測するために単一命令を使用することにより、プロセッサが行う実行サイクルをより少なくすることができる。命令100および第2の命令352を同時に実行することは、システム300が複数のビタビパスに対応する複数の先行状態を同時に予測することを可能にすることによって、効率を向上し得ることが理解されるであろう。
図3に示されるシステム300は、例示のみであることが留意されるべきである。開示した命令および技法は、他のアーキテクチャ(たとえばマイクロアーキテクチャ、およびデジタル信号プロセッサ(DSP)アーキテクチャ)によってサポートされ、その中で実行され得る。たとえば代替のDSPアーキテクチャは、図3のシステム300より多い、少ない、および/または異なる構成要素を含むことができる。例示として、代替のDSPアーキテクチャは、図3に示されるような4つの実行ユニットの代わりに、2つの実行ユニット、および2つのロード/記憶ユニットを含むことができる。
図4を参照すると、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を処理する方法の特定の例示的実施形態のフローチャートを示しており、全体的に400として示している。例示的実施形態では方法400は、図3のシステム300において行うことができ、図1〜図2を参照して示され得る。
方法400は、410で、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を受け取るステップを含むことができる。たとえば図3において、命令100は、実行ユニット318〜324の1つによって受け取られ得る。命令100は、第1のレジスタ102、第2のレジスタ104、および第3のレジスタ106を特定することができる。
方法400はまた、420で、命令を実行するステップを含むことができる。たとえば図3において命令100は、実行ユニット318〜324の1つによって実行され得る。命令を実行するステップ420は、422で、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算して、第1の結果を生成するステップを含むことができる。たとえば図3において、実行ユニット318〜324の1つのALU内のベクトル加算器は、第1のレジスタ102に記憶されたパスメトリック値の第1の組を、第2のレジスタ104に記憶されたブランチメトリック値に加算することによって、第1の結果を生成することができる。命令を実行するステップ420はまた、424で、第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成するステップを含むことができる。たとえば図3において、実行ユニット318〜324の1つのALU内のベクトル減算器は、第3のレジスタ106に記憶されたパスメトリック値の第2の組から、第2のレジスタ104に記憶されたブランチメトリック値を減算することによって、第2の結果を生成することができる。命令を実行するステップ420はまた、426で、第1の結果を第2の結果と比較して、比較結果を生成するステップを含むことができる。たとえば図3において、実行ユニット318〜324の1つのALU内の比較器は、第1の結果を第2の結果と比較して、結果のどちらが大きいかを判定し、大きい方の結果を知らせる信号を、プリディケートレジスタ210に供給することができる。プリディケートレジスタ210に記憶された情報は、先行状態が偶数状態(2S)に対応するか、奇数状態(2S+1)に対応するかを予測するために用いることができる。
図4の方法400は、フィールドプログラマブルゲートアレイ(FPGA)デバイス、特定用途向け集積回路(ASIC)、中央処理装置(CPU)などの処理装置、デジタル信号プロセッサ(DSP)、コントローラ、他のハードウェアデバイス、ファームウェア、またはそれらの任意の組合せによって実施してもよい。例として、図4の方法400は、図3および図5に関連して述べたように、プログラムコードまたは命令を実行するプロセッサ、またはその構成要素によって行われ得る。
図5を参照すると、第1のレジスタ102、第2のレジスタ104、および第3のレジスタ106を特定する命令100(たとえば加算比較選択命令)を記憶するメモリ532を含む、ワイヤレスデバイスの特定の例示的実施形態のブロック図を示しており、全体的に500として示している。デバイス500は、メモリ532に結合された、デジタル信号プロセッサ(DSP)などのプロセッサ564を含む。命令キャッシュ(たとえば例示の命令キャッシュ310)はまた、メモリ532およびプロセッサ564に結合され得る。特定の実施形態ではメモリ532は、命令100などのプロセッサ564によって実行可能な命令を記憶し、命令キャッシュ310に送信する。
図5はまた、プロセッサ564およびディスプレイ528に結合された、ディスプレイコントローラ526を示す。コーダ/デコーダ(CODEC)534はまた、プロセッサ564に結合され得る。スピーカ536およびマイク538は、CODEC534に結合され得る。図5はまたワイヤレスコントローラ540は、プロセッサ564およびワイヤレスアンテナ542に結合され得ることを示す。特定の実施形態では、プロセッサ564、ディスプレイコントローラ526、メモリ532、CODEC534、およびワイヤレスコントローラ540は、システムインパッケージまたはシステムオンチップデバイス522に含まれる。特定の実施形態では、命令100を含んだメモリ532または命令キャッシュ310は、電子デバイス(たとえばワイヤレスデバイス500)におけるオーディオまたはビデオ復号時に、命令100を用いて畳み込み復号を行う、CODEC534によってアクセス可能とすることができる。特定の実施形態では、CODEC534はビタビデコーダを含む。
処理されると、命令100は、プロセッサ564に、第1のレジスタ102に記憶されたパスメトリック値の第1の組を、第2のレジスタ104に記憶されたブランチメトリック値に加算することによって、第1の結果を生成させる。命令100はまた、プロセッサ564に、第3のレジスタ106に記憶されたパスメトリック値の第2の組から、第2のレジスタ104に記憶されたブランチメトリック値を減算することによって、第2の結果を生成させる。第1および第2の結果を生成すると、命令100はプロセッサ564に、どちらの結果が大きいかを判定するために、第1の結果を第2の結果と比較させ、大きい方の結果を知らせる信号を、プリディケートレジスタ210に供給させることができる。比較に基づいて第1のレジスタ102は、第1の結果または第2の結果のいずれかを用いて更新することができる。たとえば第1の結果が第2の結果より大きかった場合は、第1の結果を第1のレジスタ102に記憶することができる。あるいは第2の結果が第1の結果より大きかった場合は、第2の結果を第1のレジスタ102に記憶することができる。
特定の実施形態では、入力デバイス530および電源544は、システムオンチップデバイス522に結合される。さらに特定の実施形態では、図5に示されるように、ディスプレイ528、入力デバイス530、スピーカ536、マイク538、ワイヤレスアンテナ542、および電源544は、システムオンチップデバイス522の外部となる。しかしディスプレイ528、入力デバイス530、スピーカ536、マイク538、ワイヤレスアンテナ542、および電源544のそれぞれは、インターフェースまたはコントローラなどの、システムオンチップデバイス522の構成要素に結合され得る。
図5は、ワイヤレス通信デバイスを示すが、プロセッサ564などの加算比較選択命令を実行するためのプロセッサ、メモリ532、および加算比較選択命令を記憶する命令キャッシュ310は、代替としてセットトップボックス、音楽プレーヤ、ビデオプレーヤ、娯楽ユニット、ナビゲーションデバイス、携帯情報端末(PDA)、固定ロケーションデータユニット、またはコンピュータ内に一体化され得ることが留意されるべきである。
述べられた実施形態に関連して、第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するための手段を含む、装置を開示している。たとえば記憶するための手段は、図3のメモリ302、図5のメモリ532、図3および図5の命令キャッシュ310、命令を記憶するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せとすることができる。
装置はまた、命令を実行するための手段を含むことができる。たとえば命令を実行するための手段は、図2のベクトル加算器、図2のベクトル減算器、図2の比較器、図2の選択デバイス、図3の実行ユニット318、320、322、および324の1つまたは複数、図5のプロセッサ564、命令を実行するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せを含むことができる。
装置はまた、第1のレジスタからの第1の値を、第2のレジスタからの第2の値に加算して、第1の結果を生成するための手段を含むことができる。たとえば加算するための手段は、図2のベクトル加算器、図3の実行ユニット318、320、322、および324の1つまたは複数、図5のプロセッサ564、値を加算するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せを含むことができる。
装置はまた、第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成するための手段を含むことができる。たとえば減算するための手段は、図2のベクトル減算器、図3の実行ユニット318、320、322、および324の1つまたは複数、図5のプロセッサ564、値を減算するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せを含むことができる。
装置はまた、第1の結果を第2の結果と比較するための手段を含むことができる。たとえば比較するための手段は、図2の比較器、図3の実行ユニット318、320、322、および324の1つまたは複数、図5のプロセッサ564、結果を比較するように構成された1つまたは複数の他のデバイス、またはそれらの任意の組合せを含むことができる。
当業者ならさらに、様々な例示の論理ブロック、構成、モジュール、回路、および本明細書で開示した実施形態に関連して述べられたアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、またはそれらの両方の組合せとして実施できることが理解されよう。様々な例示の構成要素、ブロック、構成、モジュール、回路、およびステップについて、一般にそれらの機能の観点から述べてきた。このような機能がハードウェアとして実施されるか、ソフトウェアとして実施されるかは、特定の用途、および全体のシステムに課される設計上の制約による。当業者は、述べられた機能を、それぞれの特定の用途に対して様々な方法において実施することができるが、このような実施の決定は、本開示の範囲からの逸脱を生じるものと解釈されるべきではない。
本明細書で開示した実施形態に関連して述べられた方法またはアルゴリズムのステップは、直接ハードウェアにおいて、プロセッサによって実行されるソフトウェアモジュールにおいて、または両者の組合せにおいて具体化され得る。ソフトウェアモジュールは、ランダムアクセスメモリ(RAM)、フラッシュメモリ、リードオンリメモリ(ROM)、プログラマブルリードオンリメモリ(PROM)、消去可能プログラマブルリードオンリメモリ(EPROM)、電気的消去可能プログラマブルリードオンリメモリ(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、コンパクトディスクリードオンリメモリ(CD-ROM)、または当技術分野で知られている任意の他の形の記憶媒体内に存在することができる。例示の非一時的(たとえば有形の)記憶媒体は、プロセッサが記憶媒体から情報を読み出し、それに情報を書き込むことができるように、プロセッサに結合される。代替として記憶媒体は、プロセッサと一体とすることができる。プロセッサおよび記憶媒体は、特定用途向け集積回路(ASIC)内に存在することができる。ASICは、コンピューティングデバイスまたはユーザ端末内に存在することができる。代替としてプロセッサおよび記憶媒体は、コンピューティングデバイスまたはユーザ端末内に個別構成要素として存在することができる。
開示した実施形態の上記の説明は、当業者が開示した実施形態を作製または使用することを可能にするように示された。これらの実施形態に対する様々な変更は当業者には容易に明らかとなり、本明細書で定義される原理は、本開示の範囲から逸脱せずに他の実施形態に応用され得る。したがって本開示は、本明細書に示される実施形態に限定されるものではなく、添付の「特許請求の範囲」によって定義される原理および新規な特徴と一貫したできる限り広い範囲が与えられるべきである。
100 命令
102 第1のレジスタ
104 第2のレジスタ
106 第3のレジスタ
110 プリディケートレジスタ
112 第1の値
114 第2の値
116 第3の値
122 第1の結果
124 第2の結果
126 選択結果
210 プリディケートレジスタ
302 メモリ
308 バスインターフェース
310 命令キャッシュ
311 バス
312 データキャッシュ
314 シーケンサ
316 汎用割り込み
318 命令実行ユニット
320 命令実行ユニット
322 命令実行ユニット
324 命令実行ユニット
326 汎用レジスタファイル
330 バス
332 スーパバイザ制御レジスタ
334 グローバル制御レジスタ
350 超長命令語(VLIW)パケット
352 第2の命令
528 ディスプレイ
530 入力デバイス
526 ディスプレイコントローラ
532 メモリ
536 スピーカ
538 マイク
540 ワイヤレスコントローラ
544 電源



  1. 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するメモリを備える装置であって、プロセッサによって前記命令が実行されると、
    前記プロセッサによって、前記第1のレジスタからの第1の値を、前記第2のレジスタからの第2の値に加算するようにベクトル加算演算が行われ、
    前記第3のレジスタからの第3の値から、前記第2の値を減算するようにベクトル減算演算が行われ、
    前記ベクトル加算演算の結果を、前記ベクトル減算演算の結果と比較するようにベクトル比較演算が行われる、
    装置。

  2. 前記プロセッサによって前記命令が実行されると、ベクトル選択演算が行われて、
    前記比較に基づいて、前記ベクトル加算演算の前記結果、または前記ベクトル減算演算の前記結果を選択し、
    前記選択結果を用いて前記第1のレジスタを更新する、
    請求項1に記載の装置。

  3. 前記ベクトル加算演算の前記結果が、前記ベクトル減算演算の前記結果より大きいときは、前記ベクトル加算演算の前記結果が選択され、前記ベクトル減算演算の前記結果が、前記ベクトル加算演算の前記結果より大きいときは、前記ベクトル減算演算の前記結果が選択される、請求項2に記載の装置。

  4. 前記選択結果が前記ベクトル加算演算の前記結果であるときは、デコーダは偶数先行状態への遷移を決定し、前記選択結果が前記ベクトル減算演算の前記結果であるときは、前記デコーダは奇数先行状態への遷移を決定する、請求項3に記載の装置。

  5. 前記ベクトル加算演算、前記ベクトル減算演算、前記ベクトル比較演算、および前記ベクトル選択演算が、同じ実行サイクルの間に行われる、請求項2に記載の装置。

  6. 前記命令が記憶位置をさらに特定し、前記ベクトル比較演算の結果は前記記憶位置に記憶される、請求項1に記載の装置。

  7. 前記記憶位置が前記第1のレジスタに対応する、請求項6に記載の装置。

  8. 前記第1の値がデコーダのパスメトリック値の第1の組であり、前記第2の値がブランチメトリック値であり、前記第3の値がパスメトリック値の第2の組である、請求項1に記載の装置。

  9. 前記デコーダがビタビデコーダである、請求項8に記載の装置。

  10. 前記命令および第2の命令を含む、超長命令語(VLIW)パケットをさらに備える、請求項1に記載の装置。

  11. 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を受け取るステップと、
    プロセッサによって前記命令を実行するステップであって、
    前記第1のレジスタからの第1の値を、前記第2のレジスタからの第2の値に加算して、第1の結果を生成するステップと、
    前記第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成するステップと、
    前記第1の結果を、前記第2の結果と比較するステップと
    を含む、前記命令を実行するステップと
    を含む方法。

  12. 前記命令を実行するステップが、
    前記比較に基づいて、前記第1の結果または前記第2の結果を選択するステップと、
    前記選択結果を用いて前記第1のレジスタを更新するステップと
    をさらに含む、請求項11に記載の方法。

  13. 前記第1の結果が前記第2の結果より大きいときは、前記第1の結果が選択され、前記第2の結果が前記第1の結果より大きいときは、前記第2の結果が選択される、請求項12に記載の方法。

  14. 前記第1の値を前記第2の値に加算するステップ、前記第3の値から前記第2の値を減算するステップ、前記第1の結果を前記第2の結果と比較するステップ、および前記第1の結果または前記第2の結果の1つを選択するステップが、同じ実行サイクルの間に行われる、請求項13に記載の方法。

  15. 前記命令が記憶位置をさらに特定し、前記命令を実行するステップが、前記比較結果を前記記憶位置に記憶するステップをさらに含む、請求項11に記載の方法。

  16. 前記第1の値がデコーダのパスメトリック値の第1の組であり、前記第2の値がブランチメトリック値であり、前記第3の値がパスメトリック値の第2の組である、請求項11に記載の方法。

  17. 前記デコーダがビタビデコーダである、請求項16に記載の方法。

  18. 前記命令および第2の命令を含む、超長命令語(VLIW)パケットを受け取るステップをさらに含む、請求項11に記載の方法。

  19. 第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する命令を記憶するための手段と、
    前記命令を実行するための手段であって、
    前記第1のレジスタからの第1の値を、前記第2のレジスタからの第2の値に加算して、第1の結果を生成するための手段と、
    前記第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成するための手段と、
    前記第1の結果を、前記第2の結果と比較するための手段と
    を備える、前記命令を実行するための手段と
    を備える装置。

  20. 前記加算するための手段がベクトル加算器を含み、前記減算するための手段がベクトル減算器を含み、前記比較するための手段が比較器を含む、請求項19に記載の装置。

  21. 前記命令を実行するための手段が、同じ実行サイクルの間に、前記第1の値を前記第2の値に加算し、前記第3の値から前記第2の値を減算し、前記第1の結果を前記第2の結果と比較するように構成される、請求項19に記載の装置。

  22. プロセッサによって実行されたときに、前記プロセッサに、
    第1のレジスタ、第2のレジスタ、および第3のレジスタを特定する単一命令を受け取らせ、
    前記単一命令を実行させる、
    プログラムコードを含む、非一時的コンピュータ可読媒体であって、
    前記単一命令を実行することは、
    前記第1のレジスタからの第1の値を、前記第2のレジスタからの第2の値に加算して、第1の結果を生成し、
    前記第3のレジスタからの第3の値から、第2の値を減算して、第2の結果を生成し、
    前記第1の結果を、前記第2の結果と比較すること
    を含む、非一時的コンピュータ可読媒体。

  23. 前記単一命令を実行することが、
    前記比較に基づいて、前記第1の結果または前記第2の結果の1つを選択すること、および
    前記選択結果を用いて前記第1のレジスタを更新すること
    をさらに含む、請求項22に記載の非一時的コンピュータ可読媒体。

  24. 前記第1の値を前記第2の値に加算すること、前記第3の値から前記第2の値を減算すること、前記第1の結果を前記第2の結果と比較すること、および前記第1のレジスタを更新することが、同じ実行サイクルの間に行われる、請求項23に記載の非一時的コンピュータ可読媒体。

  25. 前記単一命令を実行することが、前記比較結果を記憶位置に記憶することをさらに含む、請求項22に記載の非一時的コンピュータ可読媒体。

  26. 前記命令を実行することは、前記プロセッサが、単一実行サイクルの間に複数の状態を処理することを可能にする、請求項26に記載の非一時的コンピュータ可読媒体。

 

 

Patent trol of patentswamp
類似の特許
エラーコード化スキームと変調スキームを組合せるための方法及び装置が本明細書で述べられる。1つ又は複数の方法は、線形エラー訂正コードを使用してデータを符号化すること、符号化されたデータを変調すること、変調されたデータをメモリに書込むこと、及び、ビタビアルゴリズム及び線形エラー訂正コードデコーダを使用して、書込まれたデータを復号化することを含む。
【選択図】図2
【課題】データ処理回路でのマルチデータストリームに基づく分岐メトリック計算の高度なシステム及び方法を提供する。
【解決手段】複数のデータ入力に対応する複数のマルチストリーム雑音予測フィルタ回路502、504,506,508,510,512,514,516を備え、各々のマルチストリーム雑音予測フィルタ回路502、504,506,508,510,512,514,516から生成された暫定出力522,524,526,528,530,532,534,536を結合して、結合分岐メトリックを得る。
【選択図】図1b
【課題】スタッフィングビットが存在していても実施可能なメッセージ訂正方法を提案すること
【解決手段】本発明は、初期メッセージを変換し、この変換されたメッセージにスタッフィングビットを挿入することに関与して生成されたメッセージを訂正するための方法に関し、この方法は、訂正すべき前記メッセージを含む観察シーケンスを提供するステップを含む。変換に関連したトレリス図を通して多数の経路推定が生成される。トレリス図のノードの各々は、初期メッセージを変換できる有限ステートマシンのステートを示し、分岐は、ノード間で起こり得る遷移を示す。トレリス図の分岐のうちで、ある分岐は、ビットスタッフィングがある場合にしか行うことができない条件付き遷移を示す。経路推定の生成中に、ビットスタッフィングを検出し、通った分岐を検出ビットスタッフィングに関連した分岐とする。観察シーケンスに対する最も確率の高い経路シーケンスを最終的に維持する。
【選択図】図9
【課題】スタッフィングビットの存在下でも、crcに基づいて誤りビットの訂正を可能にするデコード方法を提案すること
【解決手段】本発明は、初期メッセージに対する巡回冗長チェック値を計算し、前記初期メッセージと前記巡回冗長チェックとを組み合わせ、前記変換されたメッセージを生成し、変換されたメッセージをエンコード(符合化)することによって生成されたシンボルのシーケンスをデコードする方法に関する。デコード化(復号化)は、エンコーダおよびcrc生成器を含む有限ステートマシンのトレリス図に対応するトレリス図を通して多数の経路推定を生成することを含み、エンコーダおよびcrc生成器には同じ入力が供給される。本発明の好ましい実施例によれば、トレリス図は、コーディング前に変換メッセージに挿入される可能性があるスタッフィングビットを考慮するようになっている。
【選択図】図5
【課題】加算比較選択(ACS)演算を行う方法及び装置を提供すること。
【解決手段】述べられる実施形態では、トレリス復号器は、1組のレジスタを含むメモリと、加算比較選択(ACS)モジュールであって、少なくとも2つのACSレイヤモジュールであって、直列に結合され単一クロックサイクル内のキャリー成分を有する帰還ループを形成するように構成され、複数のビット、及びキャリーセーブ算術を用いて複数の状態メトリックを発生させるように構成された加算器によって表される少なくとも2つのブランチ・メトリック、ならびにキャリー成分としてメモリに記憶されたキャリーセーブ算術における最大状態メトリックの選択を行うように構成された複数のマルチプレクサを含む、少なくとも2つのACSレイヤモジュールを含む、加算比較選択(ACS)モジュールとを含む。高速ACS演算を行う方法が開示される。
【選択図】図3
一実施形態では、エンコーダは、記憶された結果として1つ以上の歪み機構に影響される、取り出しデータを取得するために、メモリセルからデータの集合を読み取る。ユーザデータと関連する取り出しデータとの間の差に応えて値が変化する、品質メトリックスは、取り出しデータに応えて生成される。品質モニタは、品質メトリックスの現在の値と閾値との間の関係を確立し、取り出しデータの品質の劣化を示す関係を監視し、エラー応答を選択的に始動させる。別の実施形態では、訂正値は、データの初期書き込みの直後の品質メトリックスの値に最も近似する品質メトリックスの値を選択することができるように、品質メトリックスが監視される際、値の集合を通して反復される。
【選択図】図1
本加算/減算ハードウェア演算器(72)は、算術計算を実行する所定の構造に応じて、複数の加算/減算ハードウェアモジュール(74、76、78)と、該モジュール同士の間ならびに前記演算器の入力(E1、E2、E3、E4、E5、E6)および出力(S1、S2、S3)と前記モジュールとの間の複数のデータ転送接続とを有する。少なくとも前記演算器(72)が高速フーリエ変換の係数の実部の計算を完了させる第1の構成と、前記演算器が高速フーリエ変換の係数の虚部の計算を完了させる第2の構成と、前記演算器がパスメトリック値とビタビアルゴリズムの実装の生き残りパスの計算を実行する第3の構成との間で、前記演算器の前記加算/減算ハードウェアモジュールの少なくとも一部(74、76、78)および前記モジュール間の接続の少なくとも一部(80、82、84、86)は、プログラム可能な少なくとも1つのパラメータ(α1、α2、α3、α4、β1、β2、β3)を用いて構成可能である。
【選択図】図7
本デジタルデータ処理プロセッサ(96)は、FFT/IFFT計算を実行する少なくとも1つのバタフライ演算器を備える。このバタフライ演算器は、複素乗算を行う第1のステージ(12’)と、複素加算/減算を行う第2のステージ(26)とを備える。この2つのそれぞれのステージは、複数の加算/減算ハードウェアモジュール(104、108、110、114、76、78、82、86、88、92)およびこの2つのモジュール間でデータ転送を行う複数の接続を備える。バタフライ演算器の各ステージの加算/減算モジュールの少なくとも一部(104、114、86)、および前記モジュール同士の接続の少なくとも一部(106、112、116、124、126、128、130、80、84、90、94)は、バタフライ演算器がFFT/IFFT計算を実行する第1の構成と、前記バタフライ演算器がブランチメトリック値とパスメトリック値とビタビアルゴリズム実装の生き残りパスの計算を実行する第2の構成との間でプログラム可能な少なくとも1つのパラメータを用いて構成可能である(96)。
【選択図】図8
【課題】より高いデータ・レートでSOVA検出を実行する方法および装置を提供する。
【解決手段】受け取られた信号が、(i)所与の状態への複数ステップ・トレリスを介する複数のパスを定義する少なくとも3つの選択信号を判定することで、複数のパスのうちの第1パスが、複数ステップ−トレリス・サイクルの各単一ステップ−トレリス期間の勝ちパスであり、第2パスが、複数ステップ−トレリス・サイクルの第1単一ステップ−トレリス期間の勝ちパスであり、第2単一ステップ−トレリス期間の負けパスであり、第3パスが、複数ステップ−トレリス・サイクルの第1単一ステップ−トレリス期間の負けパスであり、第2単一ステップ−トレリス期間の勝ちパスである、判定することと、(ii)複数ステップ・トレリスを介する最尤パスに関連するビット判断の信頼性値または各複数ステップ−トレリス・サイクルの複数の信頼性値を判定することによって処理される。
【選択図】図7
【課題】FFTに基づく混合領域非バイナリLDPC復号化器においてデータを復号化する方法及び装置を提供する。
【解決手段】装置300が、対数領域において変数ノードメッセージ及びチェックノードメッセージを処理するように動作可能なメッセージ処理回路と、実領域において高速フーリエ変換に基づくチェックノード計算を実行するように動作可能な、低密度パリティチェック復号化器内のチェックノード計算回路とを備える。メッセージ処理回路及びチェックノード計算回路は反復的な層復号化を実行する。
【選択図】図3
To top