JP4689622B2 - レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 - Google Patents
レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 Download PDFInfo
- Publication number
- JP4689622B2 JP4689622B2 JP2006543599A JP2006543599A JP4689622B2 JP 4689622 B2 JP4689622 B2 JP 4689622B2 JP 2006543599 A JP2006543599 A JP 2006543599A JP 2006543599 A JP2006543599 A JP 2006543599A JP 4689622 B2 JP4689622 B2 JP 4689622B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- register
- data elements
- instruction
- registers
- 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 - Lifetime
Links
- 238000012545 processing Methods 0.000 title claims description 174
- 238000000034 method Methods 0.000 title claims description 80
- 238000013500 data storage Methods 0.000 claims description 28
- 238000003860 storage Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 21
- 230000009466 transformation Effects 0.000 claims description 9
- 238000004590 computer program Methods 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000001419 dependent effect Effects 0.000 claims description 3
- 239000013598 vector Substances 0.000 description 64
- 230000008901 benefit Effects 0.000 description 22
- 238000013459 approach Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 17
- 238000007792 addition Methods 0.000 description 15
- 238000005516 engineering process Methods 0.000 description 12
- 230000008707 rearrangement Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 230000009467 reduction Effects 0.000 description 9
- 230000017105 transposition Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 229920006395 saturated elastomer Polymers 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000000205 computational method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 239000003607 modifier Substances 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000002708 enhancing effect Effects 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 238000012856 packing Methods 0.000 description 2
- 230000002829 reductive effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 239000013642 negative control Substances 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 230000008521 reorganization Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/3016—Decoding the operand specifier, e.g. specifier format
- G06F9/30167—Decoding the operand specifier, e.g. specifier format of immediate specifier, e.g. constants
-
- 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
-
- 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/30145—Instruction analysis, e.g. decoding, instruction word fields
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- 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/30032—Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
-
- 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/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
- G06F9/30038—Instructions to perform operations on packed data, e.g. vector, tile or matrix operations using a mask
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3854—Instruction completion, e.g. retiring, committing or graduating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8007—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors
-
- 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/30025—Format conversion instructions, e.g. Floating-Point to Integer, decimal conversion
-
- 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/30098—Register arrangements
- G06F9/30105—Register structure
- G06F9/30112—Register structure comprising data of variable length
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
D=bit[22]
Rd=bits[15:12]
N=bit[7]
Rn=bits[19:16]
m=bit[5]
Rm=bits[3:0]
対応する“Di"レジスタ番号は、“(D,Rd[3],Rd[3],Rd[1],0)”及び“(D,Rd[3],Rd[2],Rd[1],1)”である。
“Rd[0]”はゼロであるべきである。
“Di”レジスタ番号は、“(0,Rd[3],Rd[2],Rd[1],Rd[0])”である。
“word[D]”は、レジスタからリトルエンディアンで選択される。
“Di”レジスタ番号は、“(0,0,Rd[2],Rd[1],Rd[0])”である。
ハーフワード“[(D,Rd[3])]”は、レジスタからリトルエンディアンで選択される。
“Di"レジスタ番号は、“(0,0,0,Rd[1],Rd[0])”である。
バイト“[(D,Rd[3],Rd[2])]”は、レジスタからリトルエンディアンで選択される。
V(LD|ST)<st>.<dt>{@<a>} <reglist>,{<n>,}<addr>
default<n>:=elements<dt>(<reglist>)/<st>
;// <addr>
[Rn] ;//addres:=Rn
[Rn]! ;//addres:=Rn,Rn:=Rn+transfer_size
(ここで、“transfer_size”は、アクセスされたメモリの総量を示す。)
[Rn],Rm ;//address:=Rn,Rn:=Rn+Rm
“VLD3.16 {D0,D1,D2},#1,[r1]”
“VLD3.16 {D0[1],D1[1],D2[1]},[r2]”
“VLD3.16 {D0[2],D1[2],D2[2]},[r3]”
“VLD3.16 {D0[3],D1[3],D2[3]},[r4]”
「即値によるシフト」
即値シフトは、ソースベクトル全ての要素を同じ量によってシフトするために、命令内部に符号化された直接の数値を使用する。縮小バージョン(Narrowing versions)は、データの飽和を含むことができる数値の縮小化(casting down)を可能にし、一方、ロングバージョン(Long versions)は、任意の固定小数点での拡大化(casting up)を可能にする。累積バージョン(accumulate versions)によるシフトは、多くのDSPアルゴリズムに見られる効率的なスケーリング及び累積をサポートするために提供される。右シフト命令もまた、丸めを行うオプションとして与えられる。丸めは、実際には丸められるべき数の半分を追加することにより実行される。このように、“n”の右シフトを行う時、それをシフトする前に、“2n−1”が数値に加算される。このように、以下のテーブル(表)において、もし“n≧1”の場合、丸め(n)(round(n))=2n−1で、もし“n<0”の場合、丸め(n)(round(n))=0である。ビット単位の抽出命令は、データの効率的な梱包を可能にするために含まれる。
「符号付き変数によるシフト」
このセクションのシフトは、第2のベクトルにおいて指定された符号付きシフト量により制御された要素の1つのベクトルに対するシフト実行する。符号付きシフト量をサポートすることは、合理的には負の値になる可能性がある指数値によるシフトに関するサポートを可能にし、負の制御値は右シフトを実行することになる。ベクトルシフトは、各要素が異なる量によりシフトされることを可能にするが、しかし、ベクトルシフトは、シフトが実行される前に、ベクトルの全てのレーンに対するシフト制御オペランドを複製することにより、同一の量の分だけ全てのレーンをシフトするために使用され得る。符号付きシフト制御値は、シフトされるべきオペランドの最小のオペランド要素サイズと同一のサイズの要素である。しかしながら、シフター変数は、シフト量を決定するために、各レーンの最下部の8ビットだけを使用して解釈される。丸め、及び飽和オプションもまた、利用可能である。
「比較及び選択」
データの水準選択及びデータのマスキング(masking)を提供するために使用され得るマスクを生成するための変数の比較とテストが実行され得る。それは、ベクトル化されたコードの終わりで、ベクトル内部の最大値及び最小値を見つけるために使用され得る畳み込みのバージョンを含んでいる、最大値及び最小値を選択するための命令もまた提供する。
“32|ZIP.16 A,B”
“32|ZIP.16 C,D”
“64|ZIP.32 A,C”
“64|ZIP.32 B,D”
“Dre=Are*Bre-Aim*Bim”
“Dim=Are*Bim+Aim*Bre”
“32|MUL.16 Dd,Dn,Dm[0]”
“32|MASX.16 Dd,Dn,Dm[1]”
れらは、同様にレジスタファイル20内に配置され、データの高位の半分の集合“Qn=[a3 a2 a1 a0]”,“Qm=[b3 b2 b1 b0]”から形成される、16ビットのデータ要素のベクト
ル“Dd”を形成するように、お互いに加算される。
“(a+ic)*(b+id)=e+if”
定数の数もまた増加させる。
ここで、
“<value>”は、バイトである。
“<mode>”は、列挙された拡張機能のうちの1つである。
4 スカラレジスタデータ記憶装置
6 乗算器
8 シフタ
10 加算器
12 命令パイプライン
14 スカラデコーダ
16 SIMDデコーダ
18 専用SIMD処理ロジック
20 (SIMD)レジスタデータ記憶装置
22 ロード記憶ユニット(LSU)
23 ロードFIFO
23’ 記憶FIFO
24 再整理ロジック
26 SIMDレジスタ
28 データ転送ロジック
200 メモリ
210 構造体
220 レジスタ“D0”
225 レジスタ“D1”
230 レジスタ“D2”
250、255、260 構造体
270 レジスタ“D0”
280 レジスタ“D1”
290 レジスタ“D2”
300 レジスタ“D3”
310 メモリ
312 構造体
314 データ要素
330 "D0"レジスタ
335 "D1"レジスタ
340 変換ロジック
342 データ要素
350、355 マルチプレクサ
360、365 入力レジスタ
370 クロスバー制御レジスタ
375 クロスバーマルチプレクサ
380 レジスタキャッシュ
385 出力のマルチプレクサ
400 畳み込み演算ロジックユニット
415、425、431〜434、435、445、455 経路(path)
420、460、470、480、490 マルチプレクサ
410 算術演算装置
450 選択及び分配ロジック
500 マルチプレクサ
510 スカラ選択ロジック
520 “ベクトル×スカラ”演算ロジック
530 演算装置
710 レジスタ“a”
720 レジスタ“b”
730 制御レジスタ
800、802 SIMDレジスタ
804、806 デスティネーションSIMDレジスタ
808 (データ要素)再整理ロジック
810 メモリアクセスロジック
812 SIMDレジスタ
900 レジスタデータ記憶装置
1000 メモリシステム
1005 メモリ管理ユニット(MMU)
1010 レベル1キャッシュ
1015 中継ルックアサイドバッファ(TLB)
1020 データバス
1040 データブロック
1045 128ビットデータブロック
1050 96ビットデータブロック
1055 80ビットデータブロック
1060、1065 256ビットデータブロック
1100 第1のレジスタ
1102 第2のレジスタ
1104、1106 デスティネーションレジスタ
1100、1102 ソースレジスタ
1112、1114 デスティネーションレジスタ
1116 第1のソースレジスタ
1118 第2のソースレジスタ
1120 第1のデスティネーションレジスタ
1122 第2のデスティネーションレジスタ
1125 64ビットレジスタ“D0”
1130 64ビットレジスタ“D1”
1135 画素の4×4配列
1136 対角線
1137、1141、1143、1145 2×2ブロック
1147 レジスタ“A”
1149 レジスタ“B”
1151 レジスタ“C”
1153 レジスタ“D”
1155 レジスタ“D0”
1160 レジスタ“D1”
1165 ソースレジスタ“Dm”
1170 第2のソースレジスタ“Dn”
1175 デスティネーションレジスタ“Dd”
1200 制御部分
1210 データ部分
1220 定数生成ロジック
1222 点線
1224 線
1230 ゲート
1240 定数
1250 ソースオペランド
1260 最終データ値
Claims (29)
- データ要素を保持する複数のレジスタを有するレジスタデータ記憶装置を具備し、
各レジスタに保持されるデータ要素の数は前記データ要素のデータ型によって決定され、
前記レジスタのうち少なくとも1つにおける複数のデータ要素に並列にデータ処理操作を実行するプロセッサをさらに具備し、並列処理レーンの数は実行されるデータ処理操作の並列数によって与えられ、
単一のアクセス命令に応答して、指定されたレジスタと、構造体フォーマットを有する構造体の配列として複数の組のデータ要素が保持されるメモリの連続ブロックとの間で複数のデータ要素を移動するアクセスロジックと、
をさらに具備し、
前記構造体フォーマットは複数の成分を有し、
前記単一のアクセス命令は、移動されるデータ要素に対応するデータ型を指定するデータ型情報を含み、かつ前記構造体フォーマットにおける成分の数を指定し、
前記アクセスロジックは、前記複数のデータ要素が移動されるときに、メモリにおいて前記構造体の配列として前記複数の組のデータ要素が保持されるように、または、各々の指定されたレジスタが同一の成分のデータ要素を保持するように、前記複数のデータ要素を再配置し、
前記アクセスロジックによって実行される再配置は前記データ型に依存するデータ処理装置。 - 前記単一のアクセス命令はレジスタを指定し、
前記指定されたレジスタの数は前記成分の数の倍数である請求項1に記載のデータ処理装置。 - 前記移動されるデータ要素の各々は同一のデータ型である請求項1に記載のデータ処理装置。
- 前記指定されたレジスタは互いに予め定められた関係を有する請求項1から3のいずれかの項に記載のデータ処理装置。
- 前記指定されたレジスタは前記予め定められた関係に従ってn個の中間のレジスタによって分離され、nは2m−1、mは0以上の整数である請求項4に記載のデータ処理装置。
- 前記指定されたレジスタは前記レジスタデータ記憶装置の内部の一連の隣接するレジスタである請求項4または5に記載のデータ処理装置。
- 前記単一のアクセス命令は単一のロード命令であり、
前記アクセスロジックは、前記単一のロード命令に応答して、前記メモリの連続ブロックから前記指定されたレジスタに前記複数のデータ要素をロードし、かつ前記指定されたレジスタに前記データ要素を記憶する前に、異なる成分のデータ要素が前記指定されたレジスタのうち異なるレジスタに記憶されるように、前記同一の成分のデータ要素をデインタリーブすることによって前記複数のデータ要素を再配置する請求項1から6のいずれかの項に記載のデータ処理装置。 - 前記単一のアクセス命令は単一の記憶命令であり、
前記アクセスロジックは、前記単一の記憶命令に応答して、前記指定されたレジスタから前記メモリの連続ブロックに前記複数のデータ要素を記憶し、かつ前記メモリの連続ブロックに前記データ要素を記憶する前に、前記データ要素が前記メモリの連続ブロックに前記構造体の配列として記憶されるように、同一の成分のデータ要素をインタリーブすることによって前記複数のデータ要素を再配置する請求項1から6のいずれかの項に記載のデータ処理装置。 - 前記単一のアクセス命令はアクセスする構造体の数を指定する請求項1から8のいずれかの項に記載のデータ処理装置。
- 前記構造体の数が前記指定されたレジスタをデータ要素で満たすために不十分であるならば、前記アクセスロジックは前記指定されたレジスタの満たされていない部分を1つまたは複数の所定値で満たす請求項7に従属した請求項9に記載のデータ処理装置。
- 前記単一のアクセス命令は、移動されるデータ要素を指定するために用いられるアドレス指定モードを指定する請求項1から10のいずれかの項に記載のデータ処理装置。
- 前記アドレス指定モードは、前記メモリの連続ブロックのための開始アドレスを指定する請求項11に記載のデータ処理装置。
- 前記指定されたレジスタは同一のサイズである請求項1から12のいずれかの項に記載のデータ処理装置。
- 前記単一のアクセス命令は、前記データ要素に適用される変換を指定し、
前記アクセスロジックは、前記データ要素が移動されるときに前記データ要素に前記変換を適用する請求項1から13のいずれかの項に記載のデータ処理装置。 - データ要素を保持する複数のレジスタを有するレジスタデータ記憶装置を具備し、各レジスタに保持されるデータ要素の数は前記データ要素のデータ型によって決定され、前記レジスタのうち少なくとも1つにおける複数のデータ要素に並列にデータ処理操作を実行するプロセッサをさらに具備し、並列処理レーンの数は実行されるデータ処理操作の並列数によって与えられ、レジスタとメモリとの間でデータ要素を移動するアクセスロジックをさらに具備するデータ処理装置を動作させる方法であって、
(a)単一のアクセス命令に応答して、前記アクセスロジックによって、指定されたレジスタと、構造体フォーマットを有する構造体の配列として複数の組のデータ要素が保持されるメモリの連続ブロックとの間で複数のデータ要素を移動するステップを有し、
前記構造体フォーマットは複数の成分を有し、
前記単一のアクセス命令は、移動されるデータ要素に対応するデータ型を指定するデータ型情報を含み、かつ前記構造体フォーマットにおける成分の数を指定し、
前記ステップ(a)は、
(b)前記複数のデータ要素が移動されるときに、メモリにおいて前記構造体の配列として前記複数の組のデータ要素が保持されるように、または、各々の指定されたレジスタが同一の成分のデータ要素を保持するように、前記複数のデータ要素を再配置するステップをさらに有し、
実行される再配置は前記データ型に依存する方法。 - 前記単一のアクセス命令はレジスタを指定し、
前記指定されたレジスタの数は前記成分の数の倍数である請求項15に記載の方法。 - 前記移動されるデータ要素の各々は同一のデータ型である請求項15に記載の方法。
- 前記指定されたレジスタは互いに予め定められた関係を有する請求項15から17のいずれかの項に記載の方法。
- 前記指定されたレジスタは前記予め定められた関係に従ってn個の中間のレジスタによって分離され、nは2m−1、mは0以上の整数である請求項18に記載の方法。
- 前記指定されたレジスタは前記レジスタデータ記憶装置の内部の一連の隣接するレジスタである請求項18または19に記載の方法。
- 前記単一のアクセス命令は単一のロード命令であり、
前記ステップ(a)は、前記メモリの連続ブロックから前記指定されたレジスタに前記複数のデータ要素をロードするステップを有し、
前記ステップ(b)は、前記指定されたレジスタに前記データ要素を記憶する前に、異なる成分のデータ要素が前記指定されたレジスタのうち異なるレジスタに記憶されるように、前記同一の成分のデータ要素をデインタリーブすることによって前記複数のデータ要素を再配置するステップを有する請求項15から20のいずれかの項に記載の方法。 - 前記単一のアクセス命令は単一の記憶命令であり、
前記ステップ(a)は、前記指定されたレジスタから前記メモリの連続ブロックに前記複数のデータ要素を記憶するステップを有し、
前記ステップ(b)は、前記メモリの連続ブロックに前記データ要素を記憶する前に、前記データ要素が前記メモリの連続ブロックに前記構造体の配列として記憶されるように、同一の成分のデータ要素をインタリーブすることによって前記複数のデータ要素を再配置するステップを有する請求項15から20のいずれかの項に記載の方法。 - 前記単一のアクセス命令はアクセスする構造体の数を指定する請求項15から22のいずれかの項に記載の方法。
- 前記構造体の数が前記指定されたレジスタをデータ要素で満たすために不十分であるならば、前記指定されたレジスタの満たされていない部分を1つまたは複数の所定値で満たすステップをさらに有する請求項21に従属した請求項23に記載の方法。
- 前記単一のアクセス命令は、移動されるデータ要素を指定するために用いられるアドレス指定モードを指定する請求項15から24のいずれかの項に記載の方法。
- 前記アドレス指定モードは、前記メモリの連続ブロックのための開始アドレスを指定する請求項25に記載の方法。
- 前記指定されたレジスタは同一のサイズである請求項15から26のいずれかの項に記載の方法。
- 前記単一のアクセス命令は、前記データ要素に適用される変換を指定し、
前記データ要素が移動されるときに前記データ要素に前記変換を適用するステップをさらに有する請求項15から27のいずれかの項に記載の方法。 - 実行されるときに請求項15から28のいずれかの項に記載の方法に従ってデータ処理装置を動作させるコンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0328503A GB2409059B (en) | 2003-12-09 | 2003-12-09 | A data processing apparatus and method for moving data between registers and memory |
GB0328503.8 | 2003-12-09 | ||
PCT/GB2004/002847 WO2005057406A1 (en) | 2003-12-09 | 2004-07-01 | A data processing apparatus and method for moving data between registers and memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007514227A JP2007514227A (ja) | 2007-05-31 |
JP4689622B2 true JP4689622B2 (ja) | 2011-05-25 |
Family
ID=30129886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006543599A Expired - Lifetime JP4689622B2 (ja) | 2003-12-09 | 2004-07-01 | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7219215B2 (ja) |
EP (1) | EP1692613B1 (ja) |
JP (1) | JP4689622B2 (ja) |
KR (1) | KR100991984B1 (ja) |
CN (1) | CN1890630B (ja) |
GB (1) | GB2409059B (ja) |
IL (1) | IL173622A (ja) |
MY (1) | MY138193A (ja) |
RU (1) | RU2006120158A (ja) |
TW (1) | TWI345703B (ja) |
WO (1) | WO2005057406A1 (ja) |
Families Citing this family (67)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2409066B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
US20070255903A1 (en) * | 2006-05-01 | 2007-11-01 | Meir Tsadik | Device, system and method of accessing a memory |
US7594094B2 (en) * | 2006-05-19 | 2009-09-22 | International Business Machines Corporation | Move data facility with optional specifications |
US7949701B2 (en) | 2006-08-02 | 2011-05-24 | Qualcomm Incorporated | Method and system to perform shifting and rounding operations within a microprocessor |
US8190624B2 (en) * | 2007-11-29 | 2012-05-29 | Microsoft Corporation | Data parallel production and consumption |
EP2232361A1 (en) * | 2007-12-05 | 2010-09-29 | Sandbridge Technologies, Inc. | Method and instruction set including register shifts and rotates for data processing |
NO329837B1 (no) * | 2008-07-09 | 2011-01-03 | Tandberg Telecom As | Fremgangsmate for prosessor-effektivt deblokkingsfiltrering |
US8484276B2 (en) * | 2009-03-18 | 2013-07-09 | International Business Machines Corporation | Processing array data on SIMD multi-core processor architectures |
UA94521C2 (ru) * | 2010-02-08 | 2011-05-10 | Виктор Владимирович Гребеников | Привод устройства регулирования напряжения силового трансформатора под нагрузкой |
KR20120077164A (ko) | 2010-12-30 | 2012-07-10 | 삼성전자주식회사 | Simd 구조를 사용하는 복소수 연산을 위한 사용하는 장치 및 방법 |
JP5760532B2 (ja) * | 2011-03-14 | 2015-08-12 | 株式会社リコー | プロセッサ装置及びその演算方法 |
ES2943248T3 (es) * | 2011-04-01 | 2023-06-12 | Intel Corp | Formato de instrucción compatible con vectores y ejecución del mismo |
US9317288B2 (en) | 2011-04-07 | 2016-04-19 | Via Technologies, Inc. | Multi-core microprocessor that performs x86 ISA and ARM ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US9146742B2 (en) | 2011-04-07 | 2015-09-29 | Via Technologies, Inc. | Heterogeneous ISA microprocessor that preserves non-ISA-specific configuration state when reset to different ISA |
US9274795B2 (en) | 2011-04-07 | 2016-03-01 | Via Technologies, Inc. | Conditional non-branch instruction prediction |
US9244686B2 (en) | 2011-04-07 | 2016-01-26 | Via Technologies, Inc. | Microprocessor that translates conditional load/store instructions into variable number of microinstructions |
US9645822B2 (en) | 2011-04-07 | 2017-05-09 | Via Technologies, Inc | Conditional store instructions in an out-of-order execution microprocessor |
US8924695B2 (en) | 2011-04-07 | 2014-12-30 | Via Technologies, Inc. | Conditional ALU instruction condition satisfaction propagation between microinstructions in read-port limited register file microprocessor |
US9128701B2 (en) | 2011-04-07 | 2015-09-08 | Via Technologies, Inc. | Generating constant for microinstructions from modified immediate field during instruction translation |
US9898291B2 (en) | 2011-04-07 | 2018-02-20 | Via Technologies, Inc. | Microprocessor with arm and X86 instruction length decoders |
US9336180B2 (en) | 2011-04-07 | 2016-05-10 | Via Technologies, Inc. | Microprocessor that makes 64-bit general purpose registers available in MSR address space while operating in non-64-bit mode |
US8880851B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Microprocessor that performs X86 ISA and arm ISA machine language program instructions by hardware translation into microinstructions executed by common execution pipeline |
US8880857B2 (en) | 2011-04-07 | 2014-11-04 | Via Technologies, Inc. | Conditional ALU instruction pre-shift-generated carry flag propagation between microinstructions in read-port limited register file microprocessor |
US9043580B2 (en) | 2011-04-07 | 2015-05-26 | Via Technologies, Inc. | Accessing model specific registers (MSR) with different sets of distinct microinstructions for instructions of different instruction set architecture (ISA) |
US9378019B2 (en) | 2011-04-07 | 2016-06-28 | Via Technologies, Inc. | Conditional load instructions in an out-of-order execution microprocessor |
US9292470B2 (en) | 2011-04-07 | 2016-03-22 | Via Technologies, Inc. | Microprocessor that enables ARM ISA program to access 64-bit general purpose registers written by x86 ISA program |
US9141389B2 (en) | 2011-04-07 | 2015-09-22 | Via Technologies, Inc. | Heterogeneous ISA microprocessor with shared hardware ISA registers |
US9032189B2 (en) | 2011-04-07 | 2015-05-12 | Via Technologies, Inc. | Efficient conditional ALU instruction in read-port limited register file microprocessor |
US9176733B2 (en) | 2011-04-07 | 2015-11-03 | Via Technologies, Inc. | Load multiple and store multiple instructions in a microprocessor that emulates banked registers |
CN102200964B (zh) * | 2011-06-17 | 2013-05-15 | 孙瑞琛 | 基于并行处理的fft装置及其方法 |
US9823928B2 (en) | 2011-09-30 | 2017-11-21 | Qualcomm Incorporated | FIFO load instruction |
US10203954B2 (en) * | 2011-11-25 | 2019-02-12 | Intel Corporation | Instruction and logic to provide conversions between a mask register and a general purpose register or memory |
CN104011670B (zh) | 2011-12-22 | 2016-12-28 | 英特尔公司 | 用于基于向量写掩码的内容而在通用寄存器中存储两个标量常数之一的指令 |
WO2013095477A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Apparatus and method for detecting and recovering from data fetch errors |
US9658850B2 (en) | 2011-12-23 | 2017-05-23 | Intel Corporation | Apparatus and method of improved permute instructions |
WO2013095642A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for setting an output mask in a destination writemask register from a source write mask register using an input writemask and immediate |
CN104081342B (zh) | 2011-12-23 | 2017-06-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
WO2013095613A2 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of mask permute instructions |
WO2013095630A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of improved extract instructions background |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
CN102622318B (zh) * | 2012-02-27 | 2014-09-10 | 中国科学院声学研究所 | 一种存储器控制电路及其控制的向量数据寻址方法 |
CN107562444B (zh) | 2012-12-26 | 2020-12-18 | 英特尔公司 | 合并相邻的聚集/分散操作 |
US20140244987A1 (en) * | 2013-02-22 | 2014-08-28 | Mips Technologies, Inc. | Precision Exception Signaling for Multiple Data Architecture |
US10402198B2 (en) | 2013-06-18 | 2019-09-03 | Nxp Usa, Inc. | Signal processing device and method of performing a pack-insert operation |
US9424034B2 (en) | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
US9747104B2 (en) | 2014-05-12 | 2017-08-29 | Qualcomm Incorporated | Utilizing pipeline registers as intermediate storage |
US9772849B2 (en) | 2014-11-14 | 2017-09-26 | Intel Corporation | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9772850B2 (en) | 2014-11-14 | 2017-09-26 | Intel Corporation | Morton coordinate adjustment processors, methods, systems, and instructions |
US9772848B2 (en) | 2014-11-14 | 2017-09-26 | Intel Corporation | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US20160139919A1 (en) * | 2014-11-14 | 2016-05-19 | Intel Corporation | Machine Level Instructions to Compute a 3D Z-Curve Index from 3D Coordinates |
GB2540940B (en) * | 2015-07-31 | 2018-01-03 | Advanced Risc Mach Ltd | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank |
US9875214B2 (en) * | 2015-07-31 | 2018-01-23 | Arm Limited | Apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
GB2552154B (en) * | 2016-07-08 | 2019-03-06 | Advanced Risc Mach Ltd | Vector register access |
GB2552153B (en) * | 2016-07-08 | 2019-07-24 | Advanced Risc Mach Ltd | An apparatus and method for performing a rearrangement operation |
US10353601B2 (en) * | 2016-11-28 | 2019-07-16 | Arm Limited | Data movement engine |
US10216479B2 (en) * | 2016-12-06 | 2019-02-26 | Arm Limited | Apparatus and method for performing arithmetic operations to accumulate floating-point numbers |
CN110312993B (zh) * | 2017-02-23 | 2024-04-19 | Arm有限公司 | 数据处理装置中的向量逐元素操作 |
GB2564696B (en) | 2017-07-20 | 2020-02-05 | Advanced Risc Mach Ltd | Register-based complex number processing |
CN109614362A (zh) * | 2019-03-07 | 2019-04-12 | 深兰人工智能芯片研究院(江苏)有限公司 | 一种数据交换方法及电子设备 |
CN111459856B (zh) * | 2020-03-20 | 2022-02-18 | 中国科学院计算技术研究所 | 一种数据传输装置及传输方法 |
CN112199159B (zh) * | 2020-10-16 | 2022-03-25 | 常熟理工学院 | 对操作数栈和变量表的读写方法、装置、设备及存储介质 |
US12105589B2 (en) * | 2022-02-23 | 2024-10-01 | Micron Technology, Inc. | Parity-based error management for a processing system |
CN114816566B (zh) * | 2022-04-08 | 2024-05-24 | 山东云海国创云计算装备产业创新中心有限公司 | 一种指令搬移方法、系统、设备以及介质 |
TW202344987A (zh) * | 2022-05-13 | 2023-11-16 | 美商賽發馥股份有限公司 | 具窄資料路徑向量收集 |
CN115373628B (zh) * | 2022-10-27 | 2023-02-03 | 北京象帝先计算技术有限公司 | 先进先出存储器、系统、装置、设备及数据读取方法 |
CN117271437B (zh) * | 2023-11-21 | 2024-02-23 | 英特尔(中国)研究中心有限公司 | 一种处理器 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5903779A (en) * | 1995-11-17 | 1999-05-11 | Samsung Electronics, Co., Ltd. | System and method for efficient packing data into an output buffer |
JP2000020486A (ja) * | 1998-06-29 | 2000-01-21 | Ricoh Co Ltd | Simd型演算器 |
JP2001501001A (ja) * | 1996-09-23 | 2001-01-23 | エイアールエム リミテッド | データ処理システムにおける入力オペランド制御 |
JP2001147804A (ja) * | 1999-10-01 | 2001-05-29 | Hitachi Ltd | パッケージデータのシフト方法および処理コア |
US6298438B1 (en) * | 1996-12-02 | 2001-10-02 | Advanced Micro Devices, Inc. | System and method for conditional moving an operand from a source register to destination register |
JP2002073325A (ja) * | 2000-08-25 | 2002-03-12 | Sanyo Electric Co Ltd | データ処理装置及び方法 |
US20020035678A1 (en) * | 2000-03-08 | 2002-03-21 | Rice Daniel S. | Processing architecture having field swapping capability |
JP2002527808A (ja) * | 1998-10-09 | 2002-08-27 | ボプス インコーポレイテッド | マンアレイアーキテクチャにおける複素数乗算及び高速フーリエ変換(fft)の効率的な実現 |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS5615535B2 (ja) * | 1974-12-03 | 1981-04-10 | ||
JPS59184944A (ja) * | 1983-04-06 | 1984-10-20 | Hitachi Ltd | 丸め演算方式 |
US4876660A (en) | 1987-03-20 | 1989-10-24 | Bipolar Integrated Technology, Inc. | Fixed-point multiplier-accumulator architecture |
JPH0778735B2 (ja) | 1988-12-05 | 1995-08-23 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
CA2045773A1 (en) * | 1990-06-29 | 1991-12-30 | Compaq Computer Corporation | Byte-compare operation for high-performance processor |
JPH05233281A (ja) | 1992-02-21 | 1993-09-10 | Toshiba Corp | 電子計算機 |
US5408670A (en) | 1992-12-18 | 1995-04-18 | Xerox Corporation | Performing arithmetic in parallel on composite operands with packed multi-bit components |
US5481743A (en) | 1993-09-30 | 1996-01-02 | Apple Computer, Inc. | Minimal instruction set computer architecture and multiple instruction issue method |
US5881302A (en) | 1994-05-31 | 1999-03-09 | Nec Corporation | Vector processing unit with reconfigurable data buffer |
US6009508A (en) | 1994-06-21 | 1999-12-28 | Sgs-Thomson Microelectronics Limited | System and method for addressing plurality of data values with a single address in a multi-value store on FIFO basis |
GB9412434D0 (en) | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
GB9412487D0 (en) | 1994-06-22 | 1994-08-10 | Inmos Ltd | A computer system for executing branch instructions |
US5761103A (en) | 1995-03-08 | 1998-06-02 | Texas Instruments Incorporated | Left and right justification of single precision mantissa in a double precision rounding unit |
GB9509987D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9509989D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Manipulation of data |
GB9509988D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Matrix transposition |
GB9509983D0 (en) | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication of data |
GB9513515D0 (en) | 1995-07-03 | 1995-09-06 | Sgs Thomson Microelectronics | Expansion of data |
GB9514684D0 (en) | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | An arithmetic unit |
GB9514695D0 (en) | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | Combining data values |
JP3526976B2 (ja) | 1995-08-03 | 2004-05-17 | 株式会社日立製作所 | プロセッサおよびデータ処理装置 |
US6295599B1 (en) | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US5907865A (en) | 1995-08-28 | 1999-05-25 | Motorola, Inc. | Method and data processing system for dynamically accessing both big-endian and little-endian storage schemes |
WO1997009679A1 (en) | 1995-09-01 | 1997-03-13 | Philips Electronics North America Corporation | Method and apparatus for custom processor operations |
US6088783A (en) * | 1996-02-16 | 2000-07-11 | Morton; Steven G | DPS having a plurality of like processors controlled in parallel by an instruction word, and a control processor also controlled by the instruction word |
US5937178A (en) | 1996-02-13 | 1999-08-10 | National Semiconductor Corporation | Register file for registers with multiple addressable sizes using read-modify-write for register file update |
US5808875A (en) | 1996-03-29 | 1998-09-15 | Intel Corporation | Integrated circuit solder-rack interconnect module |
US6058465A (en) | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US5838984A (en) | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US5996066A (en) | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
US6173366B1 (en) | 1996-12-02 | 2001-01-09 | Compaq Computer Corp. | Load and store instructions which perform unpacking and packing of data bits in separate vector and integer cache storage |
US5893145A (en) | 1996-12-02 | 1999-04-06 | Compaq Computer Corp. | System and method for routing operands within partitions of a source register to partitions within a destination register |
US5898896A (en) | 1997-04-10 | 1999-04-27 | International Business Machines Corporation | Method and apparatus for data ordering of I/O transfers in Bi-modal Endian PowerPC systems |
US5973705A (en) | 1997-04-24 | 1999-10-26 | International Business Machines Corporation | Geometry pipeline implemented on a SIMD machine |
US6047304A (en) | 1997-07-29 | 2000-04-04 | Nortel Networks Corporation | Method and apparatus for performing lane arithmetic to perform network processing |
GB2330226B (en) | 1997-08-30 | 2000-12-27 | Lg Electronics Inc | Digital signal processor |
GB2329810B (en) | 1997-09-29 | 2002-02-27 | Science Res Foundation | Generation and use of compressed image data |
US5864703A (en) | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
US5933650A (en) | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US6223198B1 (en) | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
US6269384B1 (en) | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
US6038583A (en) | 1997-10-23 | 2000-03-14 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and calculating a rounded products |
US6144980A (en) | 1998-01-28 | 2000-11-07 | Advanced Micro Devices, Inc. | Method and apparatus for performing multiple types of multiplication including signed and unsigned multiplication |
US6085213A (en) | 1997-10-23 | 2000-07-04 | Advanced Micro Devices, Inc. | Method and apparatus for simultaneously multiplying two or more independent pairs of operands and summing the products |
US6223277B1 (en) | 1997-11-21 | 2001-04-24 | Texas Instruments Incorporated | Data processing circuit with packed data structure capability |
US6223320B1 (en) | 1998-02-10 | 2001-04-24 | International Business Machines Corporation | Efficient CRC generation utilizing parallel table lookup operations |
US6334176B1 (en) | 1998-04-17 | 2001-12-25 | Motorola, Inc. | Method and apparatus for generating an alignment control vector |
US6292888B1 (en) | 1999-01-27 | 2001-09-18 | Clearwater Networks, Inc. | Register transfer unit for electronic processor |
GB2352065B (en) | 1999-07-14 | 2004-03-03 | Element 14 Ltd | A memory access system |
US6408345B1 (en) | 1999-07-15 | 2002-06-18 | Texas Instruments Incorporated | Superscalar memory transfer controller in multilevel memory organization |
US6546480B1 (en) | 1999-10-01 | 2003-04-08 | Hitachi, Ltd. | Instructions for arithmetic operations on vectored data |
US6748521B1 (en) | 2000-02-18 | 2004-06-08 | Texas Instruments Incorporated | Microprocessor with instruction for saturating and packing data |
US7155601B2 (en) * | 2001-02-14 | 2006-12-26 | Intel Corporation | Multi-element operand sub-portion shuffle instruction execution |
US7127593B2 (en) * | 2001-06-11 | 2006-10-24 | Broadcom Corporation | Conditional execution with multiple destination stores |
GB2417111B (en) * | 2002-04-22 | 2006-08-16 | Micron Technology Inc | Providing a register file memory with local addressing in a SIMD parallel processor |
GB2402759B (en) * | 2003-06-12 | 2005-12-21 | Advanced Risc Mach Ltd | Data processing apparatus and method for transferring data values between a register file and a memory |
US7315932B2 (en) * | 2003-09-08 | 2008-01-01 | Moyer William C | Data processing system having instruction specifiers for SIMD register operands and method thereof |
GB2409060B (en) * | 2003-12-09 | 2006-08-09 | Advanced Risc Mach Ltd | Moving data between registers of different register data stores |
GB2409065B (en) * | 2003-12-09 | 2006-10-25 | Advanced Risc Mach Ltd | Multiplexing operations in SIMD processing |
GB2409066B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
-
2003
- 2003-12-09 GB GB0328503A patent/GB2409059B/en not_active Expired - Lifetime
-
2004
- 2004-07-01 KR KR1020067010780A patent/KR100991984B1/ko active IP Right Grant
- 2004-07-01 JP JP2006543599A patent/JP4689622B2/ja not_active Expired - Lifetime
- 2004-07-01 CN CN2004800363090A patent/CN1890630B/zh not_active Expired - Lifetime
- 2004-07-01 EP EP04743193.7A patent/EP1692613B1/en not_active Expired - Lifetime
- 2004-07-01 WO PCT/GB2004/002847 patent/WO2005057406A1/en active Application Filing
- 2004-07-01 RU RU2006120158/09A patent/RU2006120158A/ru not_active Application Discontinuation
- 2004-07-13 US US10/889,367 patent/US7219215B2/en active Active
- 2004-08-10 MY MYPI20043247A patent/MY138193A/en unknown
- 2004-08-11 TW TW093124106A patent/TWI345703B/zh not_active IP Right Cessation
-
2006
- 2006-02-08 IL IL173622A patent/IL173622A/en active IP Right Grant
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US5903779A (en) * | 1995-11-17 | 1999-05-11 | Samsung Electronics, Co., Ltd. | System and method for efficient packing data into an output buffer |
JP2001501001A (ja) * | 1996-09-23 | 2001-01-23 | エイアールエム リミテッド | データ処理システムにおける入力オペランド制御 |
US6298438B1 (en) * | 1996-12-02 | 2001-10-02 | Advanced Micro Devices, Inc. | System and method for conditional moving an operand from a source register to destination register |
JP2000020486A (ja) * | 1998-06-29 | 2000-01-21 | Ricoh Co Ltd | Simd型演算器 |
JP2002527808A (ja) * | 1998-10-09 | 2002-08-27 | ボプス インコーポレイテッド | マンアレイアーキテクチャにおける複素数乗算及び高速フーリエ変換(fft)の効率的な実現 |
JP2001147804A (ja) * | 1999-10-01 | 2001-05-29 | Hitachi Ltd | パッケージデータのシフト方法および処理コア |
US20020035678A1 (en) * | 2000-03-08 | 2002-03-21 | Rice Daniel S. | Processing architecture having field swapping capability |
JP2002073325A (ja) * | 2000-08-25 | 2002-03-12 | Sanyo Electric Co Ltd | データ処理装置及び方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2005057406A1 (en) | 2005-06-23 |
KR20060135642A (ko) | 2006-12-29 |
GB0328503D0 (en) | 2004-01-14 |
GB2409059B (en) | 2006-09-27 |
EP1692613B1 (en) | 2018-03-21 |
US20050125641A1 (en) | 2005-06-09 |
IL173622A (en) | 2010-11-30 |
JP2007514227A (ja) | 2007-05-31 |
TW200527203A (en) | 2005-08-16 |
IL173622A0 (en) | 2006-07-05 |
CN1890630A (zh) | 2007-01-03 |
KR100991984B1 (ko) | 2010-11-04 |
GB2409059A (en) | 2005-06-15 |
RU2006120158A (ru) | 2007-12-27 |
CN1890630B (zh) | 2010-10-13 |
MY138193A (en) | 2009-05-29 |
TWI345703B (en) | 2011-07-21 |
EP1692613A1 (en) | 2006-08-23 |
US7219215B2 (en) | 2007-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4689622B2 (ja) | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 | |
JP4689621B2 (ja) | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 | |
JP5366917B2 (ja) | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 | |
JP4727589B2 (ja) | データ処理レジスタに別名を付ける装置および方法 | |
JP5393643B2 (ja) | Simd処理における定数の生成 | |
JP4588413B2 (ja) | Simd処理における多重化操作 | |
JP4699002B2 (ja) | Simdデータ処理における算術演算の実行のためのデータ処理装置及び方法 | |
JP4584673B2 (ja) | データ処理システム内部のテーブル検索操作 | |
JP2005174296A (ja) | Simdデータ処理システムにおけるエンディアンの補償 | |
JP2005174298A (ja) | “ベクトル×スカラ”演算 | |
JP4660155B2 (ja) | レジスタとメモリとの間でデータを移動するためのデータ処理装置及び方法 | |
JP2005174300A (ja) | 異なるレジスタデータ記憶装置のレジスタ間のデータ移動 | |
JP2005174292A (ja) | データシフト操作 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090908 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091208 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100928 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101004 |
|
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: 20110118 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110216 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4689622 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140225 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |