JP2016517577A - 加算比較選択命令 - Google Patents

加算比較選択命令 Download PDF

Info

Publication number
JP2016517577A
JP2016517577A JP2016501437A JP2016501437A JP2016517577A JP 2016517577 A JP2016517577 A JP 2016517577A JP 2016501437 A JP2016501437 A JP 2016501437A JP 2016501437 A JP2016501437 A JP 2016501437A JP 2016517577 A JP2016517577 A JP 2016517577A
Authority
JP
Japan
Prior art keywords
result
register
value
instruction
vector
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.)
Granted
Application number
JP2016501437A
Other languages
English (en)
Other versions
JP6203935B2 (ja
JP2016517577A5 (ja
Inventor
ニコ・デ・ローレンティス
Original Assignee
クアルコム,インコーポレイテッド
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 クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2016517577A publication Critical patent/JP2016517577A/ja
Publication of JP2016517577A5 publication Critical patent/JP2016517577A5/ja
Application granted granted Critical
Publication of JP6203935B2 publication Critical patent/JP6203935B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/3001Arithmetic instructions
    • 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/30021Compare instructions, e.g. Greater-Than, Equal-To, MINMAX
    • 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/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3893Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled in tandem, e.g. multiplier-accumulator
    • 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

Landscapes

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

Abstract

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

Description

関連出願の相互参照
本出願は、参照によりその全体が本明細書に明白に組み込まれている、本出願の譲受人が所有する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 電源

Claims (26)

  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に記載の非一時的コンピュータ可読媒体。
JP2016501437A 2013-03-15 2014-03-12 加算比較選択命令 Expired - Fee Related JP6203935B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/841,878 US9389854B2 (en) 2013-03-15 2013-03-15 Add-compare-select instruction
US13/841,878 2013-03-15
PCT/US2014/024203 WO2014150778A1 (en) 2013-03-15 2014-03-12 Add-compare-select instruction

Publications (3)

Publication Number Publication Date
JP2016517577A true JP2016517577A (ja) 2016-06-16
JP2016517577A5 JP2016517577A5 (ja) 2017-01-05
JP6203935B2 JP6203935B2 (ja) 2017-09-27

Family

ID=50483523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016501437A Expired - Fee Related JP6203935B2 (ja) 2013-03-15 2014-03-12 加算比較選択命令

Country Status (6)

Country Link
US (1) US9389854B2 (ja)
EP (1) EP2972786B1 (ja)
JP (1) JP6203935B2 (ja)
KR (1) KR101746681B1 (ja)
CN (1) CN105027076B (ja)
WO (1) WO2014150778A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107315717B (zh) 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行向量四则运算的装置和方法
CN107315715B (zh) * 2016-04-26 2020-11-03 中科寒武纪科技股份有限公司 一种用于执行矩阵加/减运算的装置和方法
CN110275693B (zh) 2018-03-15 2023-08-22 华为技术有限公司 用于随机计算的多加数加法电路

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05206873A (ja) * 1992-01-29 1993-08-13 Sony Corp 再生装置
JPH05282601A (ja) * 1992-03-31 1993-10-29 Sony Corp 磁気記録再生方法
JPH11261426A (ja) * 1997-11-14 1999-09-24 Lucent Technol Inc 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ
US20030028844A1 (en) * 2001-06-21 2003-02-06 Coombs Robert Anthony Method and apparatus for implementing a single cycle operation in a data processing system
JP2012039849A (ja) * 2010-08-10 2012-02-23 Pioneer Electronic Corp インピーダンス整合装置、無線電力伝送装置、制御方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151904A (en) * 1990-09-27 1992-09-29 The Titan Corporation Reconfigurable, multi-user viterbi decoder
JP3241210B2 (ja) 1994-06-23 2001-12-25 沖電気工業株式会社 ビタビ復号方法及びビタビ復号回路
US6163581A (en) * 1997-05-05 2000-12-19 The Regents Of The University Of California Low-power state-sequential viterbi decoder for CDMA digital cellular applications
US20020031195A1 (en) * 2000-09-08 2002-03-14 Hooman Honary Method and apparatus for constellation decoder
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
US8140947B2 (en) 2005-09-30 2012-03-20 Agere Systems Inc. Method and apparatus for storing survivor paths in a Viterbi detector using systematic pointer exchange
US7725516B2 (en) 2005-10-05 2010-05-25 Qualcomm Incorporated Fast DCT algorithm for DSP with VLIW architecture
US8356160B2 (en) * 2008-01-15 2013-01-15 International Business Machines Corporation Pipelined multiple operand minimum and maximum function
US8255780B2 (en) * 2009-02-18 2012-08-28 Saankhya Labs Pvt Ltd. Scalable VLIW processor for high-speed viterbi and trellis coded modulation decoding
CN102122275A (zh) * 2010-01-08 2011-07-13 上海芯豪微电子有限公司 一种可配置处理器
US8694878B2 (en) 2011-06-15 2014-04-08 Texas Instruments Incorporated Processor instructions to accelerate Viterbi decoding
US10120692B2 (en) 2011-07-28 2018-11-06 Qualcomm Incorporated Methods and apparatus for storage and translation of an entropy encoded instruction sequence to executable form

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05206873A (ja) * 1992-01-29 1993-08-13 Sony Corp 再生装置
JPH05282601A (ja) * 1992-03-31 1993-10-29 Sony Corp 磁気記録再生方法
JPH11261426A (ja) * 1997-11-14 1999-09-24 Lucent Technol Inc 自動ビタビトレースバックビット格納機能を有する並列算術論理プロセッサ
US20030028844A1 (en) * 2001-06-21 2003-02-06 Coombs Robert Anthony Method and apparatus for implementing a single cycle operation in a data processing system
JP2012039849A (ja) * 2010-08-10 2012-02-23 Pioneer Electronic Corp インピーダンス整合装置、無線電力伝送装置、制御方法

Also Published As

Publication number Publication date
US9389854B2 (en) 2016-07-12
CN105027076A (zh) 2015-11-04
JP6203935B2 (ja) 2017-09-27
US20140281420A1 (en) 2014-09-18
CN105027076B (zh) 2018-07-20
KR101746681B1 (ko) 2017-06-13
EP2972786B1 (en) 2021-12-01
EP2972786A1 (en) 2016-01-20
KR20150132387A (ko) 2015-11-25
WO2014150778A1 (en) 2014-09-25

Similar Documents

Publication Publication Date Title
JP6022581B2 (ja) Fifoロード命令
JP6203935B2 (ja) 加算比較選択命令
JP5341194B2 (ja) リニアフィードバックシフト命令を実行するためのシステムおよび方法
KR101585492B1 (ko) 비터비 패킹 명령
JP6313204B2 (ja) 頻繁にコールされる関数に対するテーブルコール命令
WO2013036950A1 (en) Instruction packet including multiple instructions having a common destination
KR20140078764A (ko) 상단 n개 또는 하단 n개의 값들의 결정
JP2018523239A (ja) 電力効率的なフェッチ適合
US9678754B2 (en) System and method of processing hierarchical very long instruction packets
CN109313594B (zh) 用于指令包的奇偶校验
US20170046168A1 (en) Scalable single-instruction-multiple-data instructions
JP2019523503A (ja) 区分線形近似のためのシステムおよび方法
US20130042091A1 (en) BIT Splitting Instruction
US9336579B2 (en) System and method of performing multi-level integration
WO2013069551A1 (ja) デジタル信号プロセッサ、プログラム制御方法、および制御プログラム
KR20190056365A (ko) 인접 메모리 어드레스에서의 데이터 저장
JP2014045480A (ja) 高速加算比較選択回路
JP2002217747A (ja) ビタビ復号処理装置

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20161116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161116

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20161116

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20170118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170306

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170602

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: 20170807

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170830

R150 Certificate of patent or registration of utility model

Ref document number: 6203935

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees