JP5366893B2 - Simdオペレーションを実行するデータ処理システム及び方法 - Google Patents
Simdオペレーションを実行するデータ処理システム及び方法 Download PDFInfo
- Publication number
- JP5366893B2 JP5366893B2 JP2010146102A JP2010146102A JP5366893B2 JP 5366893 B2 JP5366893 B2 JP 5366893B2 JP 2010146102 A JP2010146102 A JP 2010146102A JP 2010146102 A JP2010146102 A JP 2010146102A JP 5366893 B2 JP5366893 B2 JP 5366893B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- elements
- memory
- register
- instructions
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title claims description 83
- 238000000034 method Methods 0.000 title claims description 27
- 230000015654 memory Effects 0.000 claims abstract description 315
- 238000012546 transfer Methods 0.000 claims abstract description 36
- 230000004044 response Effects 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims 1
- 230000000977 initiatory effect Effects 0.000 claims 1
- 239000013598 vector Substances 0.000 abstract description 124
- 239000011159 matrix material Substances 0.000 description 55
- 239000004020 conductor Substances 0.000 description 35
- 238000003860 storage Methods 0.000 description 25
- 101150103933 VMAC gene Proteins 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 238000013461 design Methods 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 229910052757 nitrogen Inorganic materials 0.000 description 4
- 241000545442 Radix Species 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 239000003607 modifier Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229910052760 oxygen Inorganic materials 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 229910052698 phosphorus Inorganic materials 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 229910052717 sulfur Inorganic materials 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30036—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computer Hardware Design (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
- Memory System (AREA)
- Complex Calculations (AREA)
Description
本発明は、一般的に、データ処理システムに関し、より詳細には、データ処理システム内で使用の命令に関する。
データ処理システムの性能の増大は、ベクトルの多重エレメントの演算の並列実行を可能にすることにより達成することができる。今日入手可能な1つのタイプのプロセッサは、ベクトル演算を実行するベクトル・レジスタを利用するベクトル・プロセッサである。しかしながら、ベクトル・プロセッサは、より高い性能を可能にする一方、またスカラ汎用レジスタを用いるプロセッサより一層増大した複雑さ及びコストをもたらす。即ち、ベクトル・プロセッサ内のベクトル・レジスタ・ファイルは典型的には、N個のベクトル・レジスタを含み、そこにおいて、各ベクトル・レジスタは、M個のエレメント(要素)を保持するためM個のレジスタのバンクを含む。例えば、当該技術で既知のそのような1つのベクトル・プロセッサにおいては、レジスタ・ファイルは、32個のベクトル・レジスタを含み、そこにおいては、各ベクトル・レジスタは、32個の64ビット・レジスタのバンクを含み、従って、1024個の64ビット・レジスタに相当するものを必要とする。
本明細書で用いられているように、用語「バス」は、データ、アドレス、制御又は状態
(ステータス)のような1又はそれより多くの様々なタイプの情報を転送するため用いられ得る複数の信号又は導体を指すため用いられている。本明細書で説明される導体は、単一の導体、複数の導体、一方向導体、又は双方向導体であることに関連して示され又は説明される。しかしながら、異なる実施形態は、導体の実行を変え得る。例えば、分離した一方向導体は、双方向導体よりむしろ用いられ得て、そして逆の場合もある。また、複数の導体は、シリアルに又は時分割多重化する要領で多重信号を転送する単一の導体と置換され得る。同様に、多重信号を搬送する単一の導体は、これらの信号のサブセットを様々な異なる導体に分けられ得る。従って、多くのオプションが信号を転送するため存在する。
M)、不揮発性メモリ(例えば、フラッシュ)等のような任意のタイプのメモリであることができる。データ処理システム10は、説明した構成要素以外の他の構成要素を含み得て、又は説明した構成要素より多くの又はより少ない構成要素を含み得る。例えば、データ処理システム10は、任意の数のメモリ又はプロセッサを含み得る。
は、1又はそれより大きい任意の整数であることができる。一実施形態において、スカラ・レジスタ・ファイル34は、32個の64ビット・レジスタを含む。本明細書で用いられているように、スカラ・レジスタは、1次元マップを有し、従って1行のみのデータを保持するレジスタ(例えば、1×Mビット・レジスタ)を示す。なお、Mは、1又はそれより大きい任意の整数であることができる。一実施形態において、Mは64であり、従って、各レジスタは、64ビットの量を格納することができる。スカラ・レジスタ・ファイル34は、制御情報又はデータを導体46を介して制御ユニット28へ与えそしてそれから受け取ることができる。
図2から図11は、例えば、図1のプロセッサ14のような処理回路により実行され得る様々なベクトル・エレメント・ロード及び格納命令を示す。例えば、各命令は、命令ユニット30によりフェッチされることができ、当該命令ユニット30は、それらの命令を適宜に制御ユニット28に与える。従って、制御ユニット28は、データを格納することが必要とされるスカラ・レジスタ・ファイルを用いて、ロード/格納ユニット38及び実行ユニット32に、必要に応じて、受け取られた命令を実行するよう指図することができる。図2から図11に示される命令を用いる事例が、それに続く図面を参照して与えられることに注目されたい。また、本明細書で用いられているように、ベクトル・エレメント(又はレジスタ・エレメント)は、せいぜいスカラGPRのサイズであることができる要素(エレメント)を指すが、しかしまたGPRのサイズより小さいものであることができることに注目されたい。例えば、スカラ・レジスタ・ファイル34が64ビット・レジスタ(M=64)を含む場合、ベクトル・エレメントは、サイズ64ビット又はそれより小さいサイズであることができる。例えば、ベクトル・エレメントは、1個の64ビットGPRが8個のベクトル・エレメントを保持することができるように1バイト(8ビット)であり得る。また、ベクトル・エレメントは、1個の64ビットGPRが4個のベクトル・エレメントを保持することができるように1ハーフワード(16ビット)であり得る。同様に、ベクトル・エレメントは、1個の64ビットGPRが2個のベクトル・エレメントを保持することができるように1ワード(32ビット)であり得る。また、本明細書で用いられているように、バイトは、「b」により指示され、ハーフワードは、「h」により指示され、ワードは、「w」により指示されていることに注目されたい。(代替実施形態では、1ワード又は1ハーフワードは異なって定義され得ることに注目されたい。例えば、1ワードは、32ビットでは無く16ビットを意味する場合もある。しかしながら、本明細書で用いられているように、1ワードは、説明の容易さのため32ビットを指すことにする。)。
ぞれは、図2において、演算子「lvex」に続き、ピリオドにより分けられて示されている。一実施形態においては、これらの制御フィールドのそれぞれが、存在するが、しかしながら、代替実施形態においては、これらの制御フィールドの一部が存在してもよく、またいずれも存在しなくてもよい。一実施形態において、msフィールドは、メモリ・エレメント・サイズ・フィールドに対応し、dsフィールドは、デスティナーション・エレメント・サイズに対応する。例えば、一実施形態において、メモリ・エレメント・サイズ(ms)フィールドは、mb、mh及びmwのうちの1つに設定されて、ロードされるべきメモリ・エレメントがバイト、ハーフワード及びワードのうちのいずれであるかを指示し得る。同様に、デスティナーション・エレメント・サイズ(ds)フィールドを用いて、各ロードされたエレメント(要素)がデスティナーション・レジスタ内で持つであろうサイズを指示する。
命令はまた、格納命令を参照して以下で説明されるように、切り捨て又は丸め制御フィールドを含み得る)。
用いられる。例えば、rDが9個のエレメントのためレジスタR4を指示する場合、レジスタR4、R5及びR6が用いられる。
イズmsの「skip」個の単位を前のデスティナーション・レジスタの最後のエレメントのアドレスに加えた後でフェッチされることに注目されたい。また、stride及びskipの両方が、符号を付された量であり得て、負のstride及びskipを可能にすることに注目されたい。
vector elements)(lstmvex)命令を示し、当該ベクトル・エレメントのストリームのロード(lstmvex)命令は、ベクトル・エレメントのストリームをメモリから、デスティナーション・レジスタと関連した名前を付されたストリームの中にロードすることを開始する。前述した命令の場合のように、lstmvex命令はまた、s/uフィールド、msフィールド及びdsフィールドを含み得て、それぞれのフィードが、演算子「lstmvex」に続いて、ピリオドで分けられて図7に示されている。図7のlstmvex命令はまた、3つのオペランド:rD、rA及びrBを含む。lstmvex命令のための追加のパラメータは、cnt、rcnt、skip、及びskip_cntを含む。パラメータcnt、rcnt、stride、skip、及びskip_cntは、一般的に、lvex、lmvex、及びlmvex2を参照して上記で説明したのと同じである。
のインスタンスの数を決定する。lstmvex命令は、「skip_cnt」個のエレメントがフェッチされるまで、サイズmsの「stride」単位だけ離れて間隔を開けられて置かれたベクトル・エレメントをメモリからロードする。この点で、「skip*ms」が、フェッチされた最後のエレメントのアドレスに(「stride*ms」の代わりに)加えられて、ロードされるべき次のエレメントのアドレスを得る。また、この点で、skip_cntの経過を追う機構(例えば、カウンタのようなもの)がリセットされる。従って、「skip_cnt」個のエレメントが、(命令の開始以降、又はskip_cntカウンタがリセットされた最後の時間以降)フェッチされる毎に、次のエレメントの位置が、「stride」パラメータよりむしろ「skip」パラメータにより指示される。
図8は、エレメントをソース・レジスタからメモリへ格納するベクトル・エレメントの格納(store vector elements)(stvex)命令を示す。stvex命令は、lvex命令の格納相手方と考えられ得る。一実施形態において、stvex命令は、s/uフィールド、msフィールド、ssフィールド、及びh/lフィールドのような、追加の制御フィールドを用い、これらのフィールドのそれぞれは、図8において、演算子「stvex」に続いて、そしてピリオドにより分離されて示されている。一実施形態において、これらの制御フィールドのそれぞれが、存在する。しかしながら、代替実施形態において、これらの制御フィールドの一部のみが存在し、又は全く無い場合がある。一実施形態において、s/uフィールド(符号付き又は符号なしに拡張)及びmsフィールド(メモリ・サイズ)は、ロード命令を参照して上記で説明したものと同じである。一実施形態において、ssフィールドは、ソース・レジスタの各ソース・エレメントのサイズを指示するソース・エレメント・サイズ・フィールドに対応する。例えば、一実施形態において、ssフィールドは、sb、sh、又はswのうちの1つに設定されて、格納されるべきソース・エレメントがそれぞれバイト、ハーフワード、又はワードであるかどうかを指示し得る。
は、命令の中に存在する場合、その命令の一部又は全ての追加のパラメータを保持する。
られて、メモリ・デスティナーション・エレメントを生成する。
令の結果の全て又は一部を含む。)は、strideパラメータ、skipパラメータ、及びskip_cntパラメータに従ってメモリに格納される。この実施形態において、rSを命令のデスティナーション・レジスタとして用いない場合、それは、その命令の実行の際に、エンキュー(enqueu)されず、(従って、ベクトル・ストリームの一部として格納されない)。代替実施形態において、命令の中のフラグ、又は演算コード(例えば、エンキューすることを求めて呼ぶ命令の特別なサブセットに対応するようなもの)のような他の機構を用いて、rSのインスタンスがエンキューされるべきかを指示し得ることに注目されたい。
保持し得て、そしてデータ処理システム内の任意の場所に配置され得る。
ば、図15及び図16は、マトリックス102をレジスタR0、R1及びR2にロードする2つの例を示す。
、R0にロードされ、従って、次のエレメントDが、「skip*ms」(即ち、6ハーフワード)だけ離れた位置からロードされる。更に、次のエレメントDは、図15の前の例においてlmvex命令を用いて行われたように、R0の第4のエレメントとしてロードされず、しかし代わりに、R0が既に「rcnt」個のエレメントを有するので、R1(それは、R0に続くレジスタである。)の最初のエレメントとしてロードされる。エレメントE及びFがまた、R1にロードされ、R1に対して3のrcntを完了する。「rcnt」個のエレメントが、R1にロードされてしまい(、そして「cnt」個のエレメント、即ち、9が、まだロードされてない)ので、次のエレメントGは、skipにより決定された位置、即ち、6ハーフワード離れた位置からR2の中にフェッチされる。また、エレメントH及びIが、R2にロードされる。この点で、「cnt」個のエレメントが、ロードされてしまう。また、R0、R1及びR2の未使用のフィールドのそれぞれが、所定の値(この例では、ゼロ)で満たされることに注目されたい。
グ関数を実行する際におけるような計算のための希望された正しい順序にある要領で、当該サーキュラー・バッファの値をレジスタ・ファイルのレジスタ(複数)に正しく入れ得る。例えば、次の方程式は、フィルタリング関数に対応し、そこにおいて、Y0、Y1、Y2及びY3は、時刻=0、時刻=1、時刻=2及び時刻=3のそれぞれにおける結果に対応する。
完了する。
納する。従って、R10は、ここで、図20においてR10でもって示されるように、C4*X−3+C3*X−2+C2*X−1+C1*X0を格納する。第2のベクトル乗算−累算命令は、レジスタR7及びR9のハーフワードについてベクトル乗算−累算演算を行い、そしてその結果をR11に格納する。従って、R11は、ここで、C0*X1に単純に等しいC0*X1+0*0+0*0+0*0を格納する。この現在の例では、ベクトル・ロード命令(lmvex及びlmvex_skip_once)のそれぞれを用いて、レジスタ(例えば、R7及びR9のようなもの)の残りの充填されていない部分は、ゼロにされ、従って、正しい結果をR11にもたらす。さもなければ、R11は、例えば、a、b又はc(又は、t、u又はv)の値が、代わりにメモリ200からロードされる。
については、lmvex_skip_once命令が、図22に示されるように、X−1、X0、X1、X2及びX3をレジスタR8及びR9にロードする。この繰り返しでは、ロードされる第1のエレメントは、(時刻=3に関して図18に示されるように)位置0x26からロードされることに注目されたい。X−1及びX0をロードした後で、「skip_cnt」個(これは今は2に等しい。)のエレメントが、ロードされてしまい、従って、skipを用いて、ポインタを位置0x20へ戻るようラップされる(wrap)。それは、cnt個(5個)のエレメントが、まだロードされていないからである。また、skip_cnt機構が、リセットされないことに注目されたい。このように、次の「skip_cnt」個(2個)のエレメントがロードされた後でさえ、スキップは、実行されない。スキップが、次の「skip_cnt」個のエレメントの後でこの繰り返しに関して実行された場合、エレメントX1及びX2のみが、スキップの前にフェッチされ、従って、エレメントX3を外してしまうであろう。従って、より前の繰り返しにおいて、skip_cntが最初のスキップの後でリセットされたかどうかは重要で無かったかも知れないにも拘わらず、この繰り返しのような幾つかの繰り返しにおいて、それは、正しいエレメントがフェッチされたか否かを決定し得る。従って、lmvex_skip_once命令を用いて、例えば、フィルタ応用に対してのように、サーキュラー・バッファを正しく実現し得る仕方が認められることができる。また、上記コード・セグメントが様々な異なる方法で書き込まれることができたであろうことに注目されたい。例えば、ループは、ループとして書き込まれるよりむしろロールアウトされ得ることに注目されたい。この例では、lmvex命令は、時刻=0、1及び2に対して用いられ、そしてlmvex_skip_once命令は、時刻=3及び4に対してのみ用いられ得る。
buffer load multiple vector elements)(lmvex_cb)命令が、図28に示されるように用いられ得る。この繰り返しは、rBに格納された追加のパラメータがbuffer_size及びオフセット(offset)であることを除いて、図4及び図5を参照して上記で説明したlmvex命令に類似している。(lmvex命令の場合のように、代替実施形態において、追加のパラメータは、演算コード又はサブ演算コードの一部として含められ得る。)図29は、追加のパラメータを用いて、サーキュラー・バッファを定義し得る仕方を示す。例えば、上記で説明したロード命令の場合のように、rAは、図29に示されるように、サーキュラー・バッファをメモリに格納するメモリ位置の開始を指示する。バッファ・サイズ(buffer_size)が、「(バッファ・エレメントの合計数)*ms」を指示し、そしてオフセットが、ロードされるべき最初のエレメントがサーキュラー・バッファの中のどこであるかを定義する。また、図示されていないにも拘わらず、多重ベクトル・エレメントのサーキュラー・バッファ格納(circular buffer store multiple vector elements)(stmvex_cb)命令がまた、lmvex_cbの格納相手方として用いられ得ることに注目されたい。lmvex_cb命令及びstmvex_cb命令の両方に対して、一部の実施形態においては、「offset」
により表される現在の開始値が、サーキュラー・バッファを通る各パス後に、即ち、「cnt」個のエレメントがlmvex_cb命令又はstmvex_cb命令の実行の一部として処理された後で、所定の個数のエレメントだけ自動的に増分又は減分される。
納する。最初の3つのvmac命令の場合のように、第1のlstrmvex命令が、第3のlstrmvex命令に続く第1の2つのvmac命令を用いてデキューされ、そして第2のlstrmvex命令が、第3のlstrmvex命令に続く第3のvmac命令を用いてデキューされることに注目されたい。この点で、マトリックス106の最終の列(M、P及びS)が、R2にロードされるであろうし(図示せず)、そして第2のlstrmvex命令のためロードすることは、「cnt」個のエレメント(例えば、9個のエレメント)がこの点でロードされてしまっているので停止するであろう。次いで、類似の命令を用いて、cc、ff及びiiを取得することができる。次いで、aa、dd、gg、bb、ee、hh、cc、ff、及びiiの値は、マトリックス108のメモリ位置0x8A、0x9A、0xAA、0x8C、0x9C、0xAC、0x8E、0x9E、及び0xAEのそれぞれに戻るよう格納することができる。本明細書で説明されるようなベクトル格納命令を用いて、これらの格納を実行することができる。
vex_fft命令はまた、rBに格納された追加のパラメータ「基数(radix)」を用い、そして他のベクトル・エレメント・ロード命令に関して上記で説明したようにrBに格納されたrcnt制御フィールドを任意に実行し得る。上記の命令の場合のように、代替実施形態において、「radix」(及び、存在する場合「rcnt」)は、演算コード又はサブ演算コードの一部であることができ、従って、rBは、必要でなくてもよい。lmvex_fft命令はまた、上記で説明したように、切り捨て又は丸めフィールドを用いる。
納することができ、それにより、メモリの中のエレメントは、R4及びR5の中のそれらのエレメントと比較してビット反転された状態にある。
MD動作が可能である現在のプロセッサにおいて、多数の命令が、ベクトル・エレメント(例えば、データのベクトル又はアレイ、又はデータの他の正規のパターンのようなもの)をメモリへまはそれから転送するため必要である。しかしながら、エレメントの同じ転送は、上記で説明したベクトル・ロード及び格納命令を用いて達成されることができ、そこにおいて、低減された数の命令(又はまさに1個の命令)を用いて、転送を達成し得る。
に所定のデータ値を置く。別の形式において、プロセッサ回路は、符号拡張を用いることにより、少なくとも1つの汎用レジスタのデスティネーション・データ・エレメントの部分に所定のデータ値を置く。更に別の形式において、プロセッサ回路は、少なくとも1つの汎用レジスタのデスティネーション・データ・エレメントの低い桁のデータ部分に所定のビット値を充填することにより、少なくとも1つの汎用レジスタのデスティネーション・データ・エレメントの部分に所定のデータ値を置き、そしてその所定のビット値は、ゼロ値である。
メントの高い桁部分は、少なくとも1又はそれより多くの命令が少なくとも1つの汎用レジスタの中のデスティネーション・データ・エレメントのサイズより大きいメモリの中のソース・データ・エレメントのサイズを指定するとき、メモリの中のソース・データ・エレメントの低い桁部分の値に基づいて丸めをされ得る。別の形式において、データ処理システムは、メモリと、データ処理命令を実行するプロセッサとを含む。データ処理命令のうちの少なくとも1つが、メモリに対して外部であるデータ処理システムにおける少なくとも1つの格納場所に格納されたデータ・エレメントのサイズを指定することから別個に且つそのことから独立に、メモリに格納されたデータ・エレメントのサイズを指定する制御情報を含む。
スタが複数の命令のうちの第2の命令のソース・オペランドとして現れることに基づいてデータ・エレメントのストリームの一部分を条件付けでデキューし得る。プロセッサ回路は更に、複数の命令のうちの第2の命令の制御フィールドの値に基づいてデータ・エレメントのストリームの一部分を条件付けでデキューし得る。
第1の命令に続く第2の命令とを実行する。第1の命令は、データ・エレメントのストリームを、メモリと少なくとも1つの汎用レジスタとの間で転送して、メモリと少なくとも1つの汎用レジスタとのうちの少なくとも1つにおいてキューされる。第1の命令は更に、転送されるべきデータ・エレメントの数を指定し、そして少なくとも1つの汎用レジスタが第2の命令のデスティネーション・オペランドとして現れることに基づいて、データ・エレメントのストリームの一部分からの複数のデータ・エレメントを条件付けでエンキューする。
の命令により指定されるデータ・エレメントは、複数の汎用レジスタのうちの少なくとも2つの汎用レジスタ内に連続しては位置されない。
オフセットは、第1の数のデータ・エレメントを転送しながら、プロセッサ回路により1回以下で用いられる。プロセッサ回路は、1又はそれより多くの命令のうちの1つが第2のオフセットがたった1回用いられるべきであることを指定するとき、サーキュラー・バッファを用いることによりメモリの中のデータ・エレメントを通信し得る。1又はそれより多くの命令のうちの1つは更に、1つの修飾子を含み、そこにおいて、転送されるべき第1の数のデータ・エレメントが転送されるべきデータ・エレメントの第1の部分の2倍より大きい場合、第2のオフセットが、プロセッサ回路により2回以上用いられる。
Claims (5)
- データ処理システムであって、
オペランド、及び、当該オペランドによって操作されるデータ・エレメント、を格納するメモリと、
少なくとも1つの汎用レジスタと、
少なくとも第1の命令、及び、当該第1の命令に続く第2の命令を実行するプロセッサ回路と、を備え、
前記第1の命令によって、前記少なくとも1つの汎用レジスタにおいてキューされるべき、前記メモリからのデータ・エレメントのストリームの転送を開始し、
前記第2の命令が、少なくとも第1のソース・オペランドを含み、
前記少なくとも1つの汎用レジスタが、前記第2の命令のソース・オペランドとして現れることに基づいて、前記プロセッサ回路が、条件付きで、前記メモリから、前記データ・エレメントのストリームの次の部分を、前記少なくとも1つの汎用レジスタの中にロードする、
データ処理システム。 - 前記少なくとも1つの汎用レジスタが、前記第2の命令によって指定される所定のタイプの関数に対して、ソース・オペランドとして使用されるときに、前記データ・エレメントのストリームの前記次の部分を条件付きでロードすることが実行される、
請求項1に記載のデータ処理システム。 - 前記第2の命令の制御フィールドの値に基づいて、前記データ・エレメントのストリームの前記次の部分を条件付きでロードすることが実行される、
請求項1に記載のデータ処理システム。 - 前記第2の命令が、更に、第2のソース・オペランドを含み、
前記少なくとも1つの汎用レジスタが、前記第1のソース・オペランドとして現れるときに、前記条件付きロードが、実行され、
前記少なくとも1つの汎用レジスタが、前記第2のソース・オペランドとして現れるときに、前記条件付きロードが行われない、
請求項1に記載のデータ処理システム。 - オペランド、及び、当該オペランドによって操作されるデータ・エレメント、を格納するメモリ、少なくとも1つの汎用レジスタ、及び、命令を実行するためのプロセッサ回路を含むデータ処理システムにおける方法であって、
少なくとも第1の命令を実行するステップと、
前記第1の命令に応じて、前記メモリから、前記少なくとも1つの汎用レジスタにおいてキューされるべきデータ・エレメントのストリームの転送を開始するステップと、
前記第1の命令に引き続いて、第2の命令を実行するステップであって、当該第2の命令が、少なくとも第1のソース・オペランドを含むものと、
前記少なくとも1つの汎用レジスタが、前記第2の命令のソース・オペランドとして現れることに基づいて、前記メモリから、前記データ・エレメントのストリームの次の部分を条件付きで、前記少なくとも1つの汎用レジスタの中にロードするステップと、
を含む方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/657,797 US7275148B2 (en) | 2003-09-08 | 2003-09-08 | Data processing system using multiple addressing modes for SIMD operations and method thereof |
US10/657,797 | 2003-09-08 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006525385A Division JP4955389B2 (ja) | 2003-09-08 | 2004-08-30 | Simdオペレーションを実行するデータ処理システム及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010211832A JP2010211832A (ja) | 2010-09-24 |
JP5366893B2 true JP5366893B2 (ja) | 2013-12-11 |
Family
ID=34226642
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006525385A Expired - Fee Related JP4955389B2 (ja) | 2003-09-08 | 2004-08-30 | Simdオペレーションを実行するデータ処理システム及び方法 |
JP2010146102A Expired - Fee Related JP5366893B2 (ja) | 2003-09-08 | 2010-06-28 | Simdオペレーションを実行するデータ処理システム及び方法 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006525385A Expired - Fee Related JP4955389B2 (ja) | 2003-09-08 | 2004-08-30 | Simdオペレーションを実行するデータ処理システム及び方法 |
Country Status (7)
Country | Link |
---|---|
US (1) | US7275148B2 (ja) |
EP (1) | EP1665064A1 (ja) |
JP (2) | JP4955389B2 (ja) |
KR (1) | KR101031158B1 (ja) |
CN (3) | CN101373425A (ja) |
TW (1) | TW200519740A (ja) |
WO (1) | WO2005026974A1 (ja) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1726080A (zh) * | 2002-12-18 | 2006-01-25 | 巴塞尔聚烯烃意大利有限公司 | 氯化镁基加合物及由其制备的催化剂组分 |
US7610466B2 (en) * | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7107436B2 (en) | 2003-09-08 | 2006-09-12 | Freescale Semiconductor, Inc. | Conditional next portion transferring of data stream to or from register based on subsequent instruction aspect |
US7275148B2 (en) | 2003-09-08 | 2007-09-25 | Freescale Semiconductor, Inc. | Data processing system using multiple addressing modes for SIMD operations and method thereof |
US7315932B2 (en) * | 2003-09-08 | 2008-01-01 | Moyer William C | Data processing system having instruction specifiers for SIMD register operands and method thereof |
US7554464B1 (en) * | 2004-09-30 | 2009-06-30 | Gear Six, Inc. | Method and system for processing data having a pattern of repeating bits |
US7257695B2 (en) * | 2004-12-28 | 2007-08-14 | Intel Corporation | Register file regions for a processing system |
US7421566B2 (en) * | 2005-08-12 | 2008-09-02 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US20070186210A1 (en) * | 2006-02-06 | 2007-08-09 | Via Technologies, Inc. | Instruction set encoding in a dual-mode computer processing environment |
US20070266225A1 (en) * | 2006-05-09 | 2007-11-15 | Ko Tak K V | Microcontroller unit |
GB2447683B (en) * | 2007-03-21 | 2011-05-04 | Advanced Risc Mach Ltd | Techniques for generating a trace stream for a data processing apparatus |
US8407457B2 (en) | 2007-09-28 | 2013-03-26 | Freescale Semiconductor, Inc. | System and method for monitoring debug events |
CN100583030C (zh) * | 2007-12-29 | 2010-01-20 | 中国科学院计算技术研究所 | 一种risc处理器及其数据访存方法 |
US8042002B2 (en) * | 2008-01-18 | 2011-10-18 | Freescale Semiconductor, Inc. | Method and apparatus for handling shared hardware and software debug resource events in a data processing system |
US7945768B2 (en) | 2008-06-05 | 2011-05-17 | Motorola Mobility, Inc. | Method and apparatus for nested instruction looping using implicit predicates |
US8051226B2 (en) | 2008-06-13 | 2011-11-01 | Freescale Semiconductor, Inc. | Circular buffer support in a single instruction multiple data (SIMD) data processor |
US8572147B2 (en) | 2008-06-30 | 2013-10-29 | Freescale Semiconductor, Inc. | Method for implementing a bit-reversed increment in a data processing system |
US8060724B2 (en) * | 2008-08-15 | 2011-11-15 | Freescale Semiconductor, Inc. | Provision of extended addressing modes in a single instruction multiple data (SIMD) data processor |
US8918623B2 (en) | 2009-08-04 | 2014-12-23 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US8842121B2 (en) * | 2011-02-03 | 2014-09-23 | Intel Corporation | Stream compaction for rasterization |
US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
CN102200964B (zh) * | 2011-06-17 | 2013-05-15 | 孙瑞琛 | 基于并行处理的fft装置及其方法 |
US9519617B2 (en) * | 2011-07-14 | 2016-12-13 | Texas Instruments Incorporated | Processor with instruction variable data distribution |
WO2013048369A1 (en) | 2011-09-26 | 2013-04-04 | Intel Corporation | Instruction and logic to provide vector load-op/store-op with stride functionality |
KR101949417B1 (ko) | 2011-12-02 | 2019-02-20 | 삼성전자주식회사 | 프로세서, 명령어 생성 장치 및 방법 |
CN108681465B (zh) * | 2011-12-22 | 2022-08-02 | 英特尔公司 | 用于产生整数序列的处理器、处理器核及系统 |
US9348601B2 (en) | 2012-12-26 | 2016-05-24 | Intel Corporation | Coalescing adjacent gather/scatter operations |
US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
US9778932B2 (en) * | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US9715385B2 (en) * | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
CN103077008B (zh) * | 2013-01-30 | 2014-12-03 | 中国人民解放军国防科学技术大学 | 数组相加运算汇编库程序的地址对齐simd加速方法 |
US9424039B2 (en) * | 2014-07-09 | 2016-08-23 | Intel Corporation | Instruction for implementing vector loops of iterations having an iteration dependent condition |
US10061746B2 (en) * | 2014-09-26 | 2018-08-28 | Intel Corporation | Instruction and logic for a vector format for processing computations |
US10489155B2 (en) * | 2015-07-21 | 2019-11-26 | Qualcomm Incorporated | Mixed-width SIMD operations using even/odd register pairs for wide data elements |
GB2543303B (en) * | 2015-10-14 | 2017-12-27 | Advanced Risc Mach Ltd | Vector data transfer instruction |
US10180829B2 (en) * | 2015-12-15 | 2019-01-15 | Nxp Usa, Inc. | System and method for modulo addressing vectorization with invariant code motion |
CN107305538B (zh) * | 2016-04-22 | 2020-07-31 | 中科寒武纪科技股份有限公司 | 一种子矩阵运算装置及方法 |
CN111104164A (zh) * | 2016-04-26 | 2020-05-05 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵乘运算的装置和方法 |
CN111651205B (zh) * | 2016-04-26 | 2023-11-17 | 中科寒武纪科技股份有限公司 | 一种用于执行向量内积运算的装置和方法 |
CN111857820B (zh) * | 2016-04-26 | 2024-05-07 | 中科寒武纪科技股份有限公司 | 一种用于执行矩阵加/减运算的装置和方法 |
US10606587B2 (en) * | 2016-08-24 | 2020-03-31 | Micron Technology, Inc. | Apparatus and methods related to microcode instructions indicating instruction types |
WO2018174930A1 (en) | 2017-03-20 | 2018-09-27 | Intel Corporation | Systems, methods, and apparatuses for matrix add, subtract, and multiply |
US10698685B2 (en) * | 2017-05-03 | 2020-06-30 | Intel Corporation | Instructions for dual destination type conversion, mixed precision accumulation, and mixed precision atomic memory operations |
GB2563878B (en) * | 2017-06-28 | 2019-11-20 | Advanced Risc Mach Ltd | Register-based matrix multiplication |
WO2019009870A1 (en) | 2017-07-01 | 2019-01-10 | Intel Corporation | SAVE BACKGROUND TO VARIABLE BACKUP STATUS SIZE |
CN108108189B (zh) * | 2017-12-15 | 2020-10-30 | 安徽寒武纪信息科技有限公司 | 一种计算方法及相关产品 |
GB2580664B (en) | 2019-01-22 | 2021-01-13 | Graphcore Ltd | Double load instruction |
CN111813446A (zh) * | 2019-04-12 | 2020-10-23 | 杭州中天微系统有限公司 | 一种数据加载和存储指令的处理方法和处理装置 |
CN113064841B (zh) * | 2021-01-04 | 2023-06-06 | 统信软件技术有限公司 | 一种数据存储方法、处理方法、计算设备及可读存储介质 |
CN114090079B (zh) * | 2021-11-16 | 2023-04-21 | 海光信息技术股份有限公司 | 串操作方法、串操作装置以及存储介质 |
Family Cites Families (51)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4128880A (en) | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
JPS5975365A (ja) * | 1982-10-22 | 1984-04-28 | Hitachi Ltd | ベクトル処理装置 |
JPS59128670A (ja) | 1983-01-12 | 1984-07-24 | Hitachi Ltd | ベクトル処理装置 |
JPS60134974A (ja) * | 1983-12-23 | 1985-07-18 | Hitachi Ltd | ベクトル処理装置 |
US4744043A (en) | 1985-03-25 | 1988-05-10 | Motorola, Inc. | Data processor execution unit which receives data with reduced instruction overhead |
JPH087662B2 (ja) | 1985-10-18 | 1996-01-29 | 株式会社日立製作所 | データ転送制御方法 |
US4918600A (en) | 1988-08-01 | 1990-04-17 | Board Of Regents, University Of Texas System | Dynamic address mapping for conflict-free vector access |
JPH06105432B2 (ja) | 1989-06-01 | 1994-12-21 | 三菱電機株式会社 | マイクロプロセッサ |
US5201056A (en) | 1990-05-02 | 1993-04-06 | Motorola, Inc. | RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output |
JP2718254B2 (ja) | 1990-10-02 | 1998-02-25 | 日本電気株式会社 | ベクトル処理装置 |
JPH04260929A (ja) | 1991-01-21 | 1992-09-16 | Mitsubishi Electric Corp | データ処理装置 |
EP0524936A1 (en) | 1991-02-19 | 1993-02-03 | International Business Machines Corporation | Data transfer within a data storage subsystem |
US5206822A (en) | 1991-11-15 | 1993-04-27 | Regents Of The University Of California | Method and apparatus for optimized processing of sparse matrices |
US5361354A (en) | 1991-12-17 | 1994-11-01 | Cray Research, Inc. | Optimization of alternate loop exits |
JP3220881B2 (ja) * | 1992-12-29 | 2001-10-22 | 株式会社日立製作所 | 情報処理装置 |
US5717947A (en) | 1993-03-31 | 1998-02-10 | Motorola, Inc. | Data processing system and method thereof |
US5450607A (en) | 1993-05-17 | 1995-09-12 | Mips Technologies Inc. | Unified floating point and integer datapath for a RISC processor |
US5669013A (en) | 1993-10-05 | 1997-09-16 | Fujitsu Limited | System for transferring M elements X times and transferring N elements one time for an array that is X*M+N long responsive to vector type instructions |
US5530804A (en) | 1994-05-16 | 1996-06-25 | Motorola, Inc. | Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes |
JP2660163B2 (ja) | 1994-10-11 | 1997-10-08 | 有限会社アレフロジック | アルゴリズム教育支援システム |
US5887183A (en) | 1995-01-04 | 1999-03-23 | International Business Machines Corporation | Method and system in a data processing system for loading and storing vectors in a plurality of modes |
US6081880A (en) | 1995-03-09 | 2000-06-27 | Lsi Logic Corporation | Processor having a scalable, uni/multi-dimensional, and virtually/physically addressed operand register file |
US5719998A (en) | 1995-06-12 | 1998-02-17 | S3, Incorporated | Partitioned decompression of audio data using audio decoder engine for computationally intensive processing |
US5764787A (en) | 1996-03-27 | 1998-06-09 | Intel Corporation | Multi-byte processing of byte-based image data |
JPH11506230A (ja) * | 1996-03-28 | 1999-06-02 | フィリップス エレクトロニクス ネムローゼ フェンノートシャップ | シーケンシャルプロセッサにおいてデータ要素の組を処理する方法およびコンピュータシステム |
US5838984A (en) | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US5799163A (en) | 1997-03-04 | 1998-08-25 | Samsung Electronics Co., Ltd. | Opportunistic operand forwarding to minimize register file read ports |
US5903769A (en) | 1997-03-31 | 1999-05-11 | Sun Microsystems, Inc. | Conditional vector processing |
US6202130B1 (en) | 1998-04-17 | 2001-03-13 | Motorola, Inc. | Data processing system for processing vector data and method therefor |
US6170001B1 (en) | 1998-05-27 | 2001-01-02 | Arm Limited | System for transfering format data from format register to memory wherein format data indicating the distribution of single or double precision data type in the register bank |
US6052766A (en) * | 1998-07-07 | 2000-04-18 | Lucent Technologies Inc. | Pointer register indirectly addressing a second register in the processor core of a digital processor |
US6192384B1 (en) | 1998-09-14 | 2001-02-20 | The Board Of Trustees Of The Leland Stanford Junior University | System and method for performing compound vector operations |
US6292886B1 (en) | 1998-10-12 | 2001-09-18 | Intel Corporation | Scalar hardware for performing SIMD operations |
US6182384B1 (en) * | 1998-11-24 | 2001-02-06 | Martin Gaspard | Wheeled grading bucket |
SE9804529L (sv) | 1998-12-23 | 2000-06-24 | Axis Ab | Flexibel minneskanal |
US6513107B1 (en) | 1999-08-17 | 2003-01-28 | Nec Electronics, Inc. | Vector transfer system generating address error exception when vector to be transferred does not start and end on same memory page |
US6665749B1 (en) | 1999-08-17 | 2003-12-16 | Nec Electronics, Inc. | Bus protocol for efficiently transferring vector data |
JP2001188675A (ja) * | 1999-12-28 | 2001-07-10 | Nec Eng Ltd | データ転送装置 |
ATE440321T1 (de) * | 2000-01-18 | 2009-09-15 | Mips Tech Inc | Verfahren und vorrichtung für verbesserte computerlade- und speicheroperationen |
US6598221B1 (en) | 2000-04-13 | 2003-07-22 | Koninklijke Philips Electronics N.V. | Assembly code performance evaluation apparatus and method |
US6647546B1 (en) | 2000-05-03 | 2003-11-11 | Sun Microsystems, Inc. | Avoiding gather and scatter when calling Fortran 77 code from Fortran 90 code |
US6898691B2 (en) * | 2001-06-06 | 2005-05-24 | Intrinsity, Inc. | Rearranging data between vector and matrix forms in a SIMD matrix processor |
JP4384828B2 (ja) * | 2001-11-22 | 2009-12-16 | ユニヴァーシティ オブ ワシントン | コプロセッサ装置およびデータ転送を容易にするための方法 |
JP3855069B2 (ja) * | 2002-02-04 | 2006-12-06 | 株式会社キャンパスクリエイト | 論理回路 |
US20030167460A1 (en) | 2002-02-26 | 2003-09-04 | Desai Vipul Anil | Processor instruction set simulation power estimation method |
KR100434502B1 (ko) | 2002-05-07 | 2004-06-05 | 삼성전자주식회사 | DSP(Digital SignalProcessor)의 데이터 추출/삽입 방법 및 데이터추출/삽입 장치 |
US7159099B2 (en) | 2002-06-28 | 2007-01-02 | Motorola, Inc. | Streaming vector processor with reconfigurable interconnection switch |
US6986023B2 (en) | 2002-08-09 | 2006-01-10 | Intel Corporation | Conditional execution of coprocessor instruction based on main processor arithmetic flags |
US7610466B2 (en) * | 2003-09-05 | 2009-10-27 | Freescale Semiconductor, Inc. | Data processing system using independent memory and register operand size specifiers and method thereof |
US7275148B2 (en) | 2003-09-08 | 2007-09-25 | Freescale Semiconductor, Inc. | Data processing system using multiple addressing modes for SIMD operations and method thereof |
US7315932B2 (en) * | 2003-09-08 | 2008-01-01 | Moyer William C | Data processing system having instruction specifiers for SIMD register operands and method thereof |
-
2003
- 2003-09-08 US US10/657,797 patent/US7275148B2/en not_active Expired - Fee Related
-
2004
- 2004-08-30 KR KR1020067004678A patent/KR101031158B1/ko not_active IP Right Cessation
- 2004-08-30 CN CNA2008101445670A patent/CN101373425A/zh active Pending
- 2004-08-30 EP EP04782675A patent/EP1665064A1/en not_active Withdrawn
- 2004-08-30 JP JP2006525385A patent/JP4955389B2/ja not_active Expired - Fee Related
- 2004-08-30 WO PCT/US2004/028241 patent/WO2005026974A1/en active Application Filing
- 2004-08-30 CN CN2008101445685A patent/CN101373426B/zh not_active Expired - Fee Related
- 2004-08-30 CN CNB2004800244250A patent/CN100481058C/zh not_active Expired - Fee Related
- 2004-09-08 TW TW093127200A patent/TW200519740A/zh unknown
-
2010
- 2010-06-28 JP JP2010146102A patent/JP5366893B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101373426A (zh) | 2009-02-25 |
KR101031158B1 (ko) | 2011-04-27 |
WO2005026974A1 (en) | 2005-03-24 |
US20050055535A1 (en) | 2005-03-10 |
EP1665064A1 (en) | 2006-06-07 |
TW200519740A (en) | 2005-06-16 |
KR20060080188A (ko) | 2006-07-07 |
CN101373425A (zh) | 2009-02-25 |
CN1842779A (zh) | 2006-10-04 |
JP2010211832A (ja) | 2010-09-24 |
CN100481058C (zh) | 2009-04-22 |
CN101373426B (zh) | 2012-06-13 |
US7275148B2 (en) | 2007-09-25 |
JP2007505373A (ja) | 2007-03-08 |
JP4955389B2 (ja) | 2012-06-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5366893B2 (ja) | Simdオペレーションを実行するデータ処理システム及び方法 | |
US7610466B2 (en) | Data processing system using independent memory and register operand size specifiers and method thereof | |
US7315932B2 (en) | Data processing system having instruction specifiers for SIMD register operands and method thereof | |
US6944747B2 (en) | Apparatus and method for matrix data processing | |
KR100956970B1 (ko) | 프로세서에서의 마스킹된 저장 동작들을 위한 시스템 및방법 | |
US7434024B2 (en) | SIMD processor with register addressing, buffer stall and methods | |
US7107436B2 (en) | Conditional next portion transferring of data stream to or from register based on subsequent instruction aspect | |
KR101581177B1 (ko) | 단일 명령 다중 데이터(simd)데이터 처리기에서 확장된 어드레싱 모드들의 제공 | |
US20080307207A1 (en) | Data exchange and communication between execution units in a parallel processor | |
KR20170110686A (ko) | 벡터들을 결합 및 분할하기 위한 명령들을 사용하여 가변 길이 벡터들에 대해 연산하도록 구성된 벡터 프로세서 | |
WO2002037264A2 (en) | Reconfigurable processing system and method | |
US10303399B2 (en) | Data processing apparatus and method for controlling vector memory accesses | |
EP1128262A2 (en) | Mapping circuitry and method for register renaming | |
KR20000048532A (ko) | 데이터 처리장치에서의 레지스터 어드레싱 | |
US6820194B1 (en) | Method for reducing power when fetching instructions in a processor and related apparatus | |
US7111155B1 (en) | Digital signal processor computation core with input operand selection from operand bus for dual operations | |
KR20230018361A (ko) | 벡터 연산들을 위한 회전식 누산기 | |
EP2267896A2 (en) | Method for implementing finite impulse response filters | |
US7107302B1 (en) | Finite impulse response filter algorithm for implementation on digital signal processor having dual execution units | |
US6859872B1 (en) | Digital signal processor computation core with pipeline having memory access stages and multiply accumulate stages positioned for efficient operation | |
US20120260062A1 (en) | System and method for providing dynamic addressability of data elements in a register file with subword parallelism | |
JP2001195251A (ja) | 可変長遅延命令導入方法及び装置 | |
Schneck et al. | The Cray-1 | |
KR20000048530A (ko) | 데이터 처리장치 레지스터 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100628 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20121012 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20121219 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20121225 |
|
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: 20130812 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130910 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |