JP4727589B2 - データ処理レジスタに別名を付ける装置および方法 - Google Patents
データ処理レジスタに別名を付ける装置および方法 Download PDFInfo
- Publication number
- JP4727589B2 JP4727589B2 JP2006543598A JP2006543598A JP4727589B2 JP 4727589 B2 JP4727589 B2 JP 4727589B2 JP 2006543598 A JP2006543598 A JP 2006543598A JP 2006543598 A JP2006543598 A JP 2006543598A JP 4727589 B2 JP4727589 B2 JP 4727589B2
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- size
- registers
- different
- 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 198
- 238000000034 method Methods 0.000 title claims description 82
- 238000013500 data storage Methods 0.000 claims description 60
- 230000004044 response Effects 0.000 claims description 18
- 238000004590 computer program Methods 0.000 claims description 6
- 238000013507 mapping Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 5
- 239000013598 vector Substances 0.000 description 67
- 238000003860 storage Methods 0.000 description 23
- 230000008901 benefit Effects 0.000 description 18
- 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 15
- 230000008707 rearrangement Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000009467 reduction Effects 0.000 description 9
- 230000017105 transposition Effects 0.000 description 9
- 238000013459 approach Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 229920006395 saturated elastomer Polymers 0.000 description 6
- 238000009826 distribution Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 230000002829 reductive effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 3
- 238000000205 computational method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 230000001965 increasing effect Effects 0.000 description 3
- 238000007726 management method Methods 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
- 230000009286 beneficial effect 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
- 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
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000002131 composite material Substances 0.000 description 1
- 230000001143 conditioned effect Effects 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
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism 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
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000009466 transformation Effects 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
-
- 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
-
- 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
-
- 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/30098—Register arrangements
-
- 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/30109—Register structure having multiple operands in a single register
-
- 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
-
- 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/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30123—Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
-
- 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
- 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
- G06F9/30192—Instruction operation extension or modification according to data descriptor, e.g. dynamic data typing
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3887—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple data lanes [SIMD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- 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/82—Architectures of general purpose stored program computers data or demand driven
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)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Advance Control (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 (43)
- データを処理するための装置であって、
前記装置は、
複数のデータ要素を記憶するレジスタデータ記憶装置と、
データ処理命令に応答して、前記レジスタデータ記憶装置のレジスタとしてアクセスされる選択された複数のデータ要素について並列にデータ処理操作を実行し、処理結果を前記レジスタデータ記憶装置内のレジスタに記憶させる処理ロジックと、を具備し、
前記選択された複数のデータ要素は、複数の異なるデータ要素サイズの1つを共有し、
前記レジスタは、複数の異なるレジスタサイズの1つを有し、
前記データ処理命令は、前記データ処理操作のために前記選択された複数のデータ要素によって共有されるデータ要素サイズと前記レジスタのレジスタサイズとを指定し、
前記レジスタの前記レジスタサイズに応じて前記レジスタデータ記憶装置の一部に前記レジスタをマッピングするレジスタアクセスロジックをさらに具備し、
前記レジスタデータ記憶装置の前記一部に記憶されたデータ要素は、異なるレジスタサイズの異なるレジスタの一部としてアクセスされ、
前記レジスタアクセスロジックは、第1レジスタサイズを有するレジスタがマッピングされる部分と、前記第1レジスタサイズと異なる第2レジスタサイズを有するレジスタがマッピングされる部分とを重複させ、
前記データ処理命令は、異なるレジスタサイズを有する複数のソースレジスタを指定し、該複数のソースレジスタについて同一のソースデータ要素サイズを指定する装置。 - 前記データ処理命令は1つまたは複数のソースレジスタを指定し、前記ソースレジスタの各々は、前記データ処理命令によって指定されたそれぞれのソースレジスタサイズおよびソースデータ要素サイズを有する請求項1に記載の装置。
- 前記データ処理命令は1つまたは複数のデスティネーションレジスタを指定し、前記デスティネーションレジスタは、前記データ処理命令によって指定されたデスティネーションレジスタサイズおよびデスティネーションデータ要素サイズを有する請求項1または2に記載の装置。
- 前記デスティネーションデータ要素サイズは、前記1つまたは複数のソースデータ要素サイズの少なくとも1つと異なる請求項2および3に記載の装置。
- 前記レジスタデータ記憶装置内の2つの異なるレジスタに書き込まれたデータ要素の集合は、前記レジスタデータ記憶装置からさらに1つのレジスタ内で全て一緒に読み出される請求項1から4のいずれか1項に記載の装置。
- 前記2つの異なるレジスタは、前記レジスタデータ記憶装置の隣接するレジスタである請求項5に記載の装置。
- 前記さらに1つのレジスタは、前記2つの異なるレジスタのレジスタサイズの合計に等しいレジスタサイズを有する請求項6に記載の装置。
- 前記レジスタデータ記憶装置内の1つのレジスタに一緒に書き込まれるデータ要素のグループは、前記レジスタデータ記憶装置からさらに2つの異なるレジスタ内で読み出される請求項1から7のいずれか1項に記載の装置。
- 前記さらに2つの異なるレジスタは、前記レジスタデータ記憶装置の隣接する部分から読み出される請求項8に記載の装置。
- 前記1つのレジスタは、前記さらに2つの異なるレジスタのレジスタサイズの合計に等しいレジスタサイズを有する請求項9に記載の装置。
- 第1レジスタサイズの第1レジスタから前記レジスタデータ記憶装置に一緒に書き込まれたデータ要素のグループは、前記レジスタデータ記憶装置から第2レジスタサイズの第2レジスタ内で読み出され、前記第1レジスタサイズは前記第2レジスタサイズと異なる請求項1から7のいずれか1項に記載の装置。
- 前記データ処理命令は、それぞれレジスタサイズS1、S2を有する2つのソースレジスタとレジスタサイズDを有するデスティネーションレジスタとを指定する請求項1から11のいずれか1項に記載の装置。
- 2*S1=S2=Dである請求項12に記載の装置。
- 前記データ処理命令は、前記レジスタデータ記憶装置内のレジスタを指定するレジスタ指定領域を含み、与えられたレジスタ指定領域に対する前記レジスタは、前記データ要素サイズおよび前記レジスタサイズに応じて前記レジスタデータ記憶装置の異なる部分に対応する請求項1から13のいずれか1項に記載の装置。
- 与えられたデータ要素サイズおよびレジスタサイズのための前記レジスタ指定領域の範囲に対応する複数のレジスタは、異なるレジスタサイズおよび異なるデータ要素サイズの少なくとも1つを用いたレジスタを用いてアクセスされるとき、前記レジスタデータ記憶装置の隣接する部分にマッピングされる請求項14に記載の装置。
- 前記異なるレジスタサイズの異なるレジスタは、前記一部に記憶される前記データ要素のデータ要素サイズと異なるデータ要素サイズを有する請求項1から15のいずれか1項に記載の装置。
- 前記データ処理命令は、前記レジスタのレジスタ番号を符号化する複数のビットを含み、前記複数のビットは、前記レジスタ番号を形成するために前記レジスタサイズに依存した複数のビット位置ごとに、隣接するビット領域内でマッピングまたは循環される請求項1から16のいずれか1項に記載の装置。
- 前記レジスタアクセスロジックは、前記レジスタデータ記憶装置から読み出した1つのデータ要素を記憶するスカラレジスタとして前記レジスタデータ記憶装置にアクセスする請求項17に記載の装置。
- 前記レジスタアクセスロジックは、前記レジスタデータ記憶装置から読み出した1つのデータ要素の複数のコピーを記憶するレジスタとして前記レジスタデータ記憶装置にアクセスする請求項17に記載の装置。
- 前記レジスタアクセスロジックは、前記レジスタデータ記憶装置にアクセスするために行アドレスおよび列アドレスを生成し、前記隣接するビット領域の第1部分は前記行アドレスに対応し、前記隣接するビット領域の第2部分は前記列アドレスに対応する請求項18または19に記載の装置。
- 前記第1部分と前記第2部分との間の1つまたは複数の境界は、前記データ要素サイズに応じて位置が変化する請求項20に記載の装置。
- データを処理する方法であって、
前記方法は、
レジスタデータ記憶装置内に複数のデータ要素を記憶するステップと、
データ処理命令に応答して、処理ロジックによって、前記レジスタデータ記憶装置のレジスタとしてアクセスされる選択された複数のデータ要素について並列にデータ処理操作を実行し、処理結果を前記レジスタデータ記憶装置内のレジスタに記憶させるステップと、
を有し、
前記選択された複数のデータ要素は、複数の異なるデータ要素サイズの1つを共有し、
前記レジスタは、複数の異なるレジスタサイズの1つを有し、
前記データ処理命令は、前記データ処理操作のために前記選択された複数のデータ要素によって共有されるデータ要素サイズと前記レジスタのレジスタサイズとを指定し、
レジスタアクセスロジックによって、前記レジスタの前記レジスタサイズに応じて前記レジスタデータ記憶装置の一部に前記レジスタをマッピングするステップをさらに有し、
前記レジスタデータ記憶装置の前記一部に記憶されたデータ要素は、異なるレジスタサイズの異なるレジスタの一部としてアクセスされ、
前記レジスタアクセスロジックは、第1レジスタサイズを有するレジスタがマッピングされる部分と、前記第1レジスタサイズと異なる第2レジスタサイズを有するレジスタがマッピングされる部分とを重複させ、
前記データ処理命令は、異なるレジスタサイズを有する複数のソースレジスタを指定し、該複数のソースレジスタについて同一のソースデータ要素サイズを指定する方法。 - 前記データ処理命令は1つまたは複数のソースレジスタを指定し、前記ソースレジスタの各々は、前記データ処理命令によって指定されたそれぞれのソースレジスタサイズおよびソースデータ要素サイズを有する請求項22に記載の方法。
- 前記データ処理命令は1つまたは複数のデスティネーションレジスタを指定し、前記デスティネーションレジスタは、前記データ処理命令によって指定されたデスティネーションレジスタサイズおよびデスティネーションデータ要素サイズを有する請求項22または23に記載の方法。
- 前記デスティネーションデータ要素サイズは、前記1つまたは複数のソースデータ要素サイズの少なくとも1つと異なる請求項23および24に記載の方法。
- 前記レジスタデータ記憶装置内の2つの異なるレジスタに書き込まれたデータ要素の集合は、前記レジスタデータ記憶装置からさらに1つのレジスタ内で全て一緒に読み出される請求項22から25のいずれか1項に記載の方法。
- 前記2つの異なるレジスタは、前記レジスタデータ記憶装置の隣接するレジスタである請求項26に記載の方法。
- 前記さらに1つのレジスタは、前記2つの異なるレジスタのレジスタサイズの合計に等しいレジスタサイズを有する請求項27に記載の方法。
- 前記レジスタデータ記憶装置内の1つのレジスタに一緒に書き込まれるデータ要素のグループは、前記レジスタデータ記憶装置からさらに2つの異なるレジスタ内で読み出される請求項22から28のいずれか1項に記載の方法。
- 前記さらに2つの異なるレジスタは、前記レジスタデータ記憶装置の隣接する部分から読み出される請求項29に記載の方法。
- 前記1つのレジスタは、前記さらに2つの異なるレジスタのレジスタサイズの合計に等しいレジスタサイズを有する請求項30に記載の方法。
- 第1レジスタサイズの第1レジスタから前記レジスタデータ記憶装置に一緒に書き込まれたデータ要素のグループは、前記レジスタデータ記憶装置から第2レジスタサイズの第2レジスタ内で読み出され、前記第1レジスタサイズは前記第2レジスタサイズと異なる請求項22から28のいずれか1項に記載の方法。
- 前記データ処理命令は、それぞれレジスタサイズS1、S2を有する2つのソースレジスタとレジスタサイズDを有するデスティネーションレジスタとを指定する請求項22から32のいずれか1項に記載の方法。
- 2*S1=S2=Dである請求項33に記載の方法。
- 前記データ処理命令は、前記レジスタデータ記憶装置内のレジスタを指定するレジスタ指定領域を含み、与えられたレジスタ指定領域に対する前記レジスタは、前記データ要素サイズおよび前記レジスタサイズに応じて前記レジスタデータ記憶装置の異なる部分に対応する請求項22から34のいずれか1項に記載の方法。
- 与えられたデータ要素サイズおよびレジスタサイズのための前記レジスタ指定領域の範囲に対応する複数のレジスタは、異なるレジスタサイズおよび異なるデータ要素サイズの少なくとも1つを用いたレジスタを用いてアクセスされるとき、前記レジスタデータ記憶装置の隣接する部分にマッピングされる請求項35に記載の方法。
- 前記異なるレジスタサイズの異なるレジスタは、前記一部に記憶される前記データ要素のデータ要素サイズと異なるデータ要素サイズを有する請求項22から36のいずれか1項に記載の方法。
- 前記データ処理命令は、前記レジスタのレジスタ番号を符号化する複数のビットを含み、前記複数のビットは、前記レジスタ番号を形成するために前記レジスタサイズに依存した複数のビット位置ごとに、隣接するビット領域内でマッピングまたは循環される請求項22から37のいずれか1項に記載の方法。
- 前記レジスタアクセスロジックは、前記レジスタデータ記憶装置から読み出した1つのデータ要素を記憶するスカラレジスタとして前記レジスタデータ記憶装置にアクセスする請求項38に記載の方法。
- 前記レジスタアクセスロジックは、前記レジスタデータ記憶装置から読み出した1つのデータ要素の複数のコピーを記憶するレジスタとして前記レジスタデータ記憶装置にアクセスする請求項38に記載の方法。
- 前記レジスタアクセスロジックは、前記レジスタデータ記憶装置にアクセスするために行アドレスおよび列アドレスを生成し、前記隣接するビット領域の第1部分は前記行アドレスに対応し、前記隣接するビット領域の第2部分は前記列アドレスに対応する請求項39または40に記載の方法。
- 前記第1部分と前記第2部分との間の1つまたは複数の境界は、前記データ要素サイズに応じて位置が変化する請求項41に記載の方法。
- 請求項22から42のいずれか1項に記載の方法を実行するように処理ロジックを制御する少なくとも1つのデータ処理命令を含むコンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0328513.7 | 2003-12-09 | ||
GB0328513A GB2409062C (en) | 2003-12-09 | 2003-12-09 | Aliasing data processing registers |
PCT/GB2004/002836 WO2005057417A2 (en) | 2003-12-09 | 2004-07-01 | Method and apparatus for performing packed data operations with element size control |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007514226A JP2007514226A (ja) | 2007-05-31 |
JP4727589B2 true JP4727589B2 (ja) | 2011-07-20 |
Family
ID=30129894
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006543598A Expired - Lifetime JP4727589B2 (ja) | 2003-12-09 | 2004-07-01 | データ処理レジスタに別名を付ける装置および方法 |
Country Status (11)
Country | Link |
---|---|
US (1) | US7822947B2 (ja) |
EP (1) | EP1692611B1 (ja) |
JP (1) | JP4727589B2 (ja) |
KR (1) | KR100996888B1 (ja) |
CN (1) | CN1914592B (ja) |
GB (1) | GB2409062C (ja) |
IL (1) | IL175901A (ja) |
MY (1) | MY137496A (ja) |
RU (1) | RU2006124547A (ja) |
TW (1) | TWI322958B (ja) |
WO (1) | WO2005057417A2 (ja) |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7483595B2 (en) | 2004-09-16 | 2009-01-27 | Marvell International Technology Ltd. | Image processing method and device |
US20060218377A1 (en) * | 2005-03-24 | 2006-09-28 | Stexar Corporation | Instruction with dual-use source providing both an operand value and a control value |
US20070226469A1 (en) * | 2006-03-06 | 2007-09-27 | James Wilson | Permutable address processor and method |
US9069547B2 (en) | 2006-09-22 | 2015-06-30 | Intel Corporation | Instruction and logic for processing text strings |
GB2474522B (en) * | 2009-10-19 | 2014-09-03 | Advanced Risc Mach Ltd | Register state saving and restoring |
JP5760532B2 (ja) * | 2011-03-14 | 2015-08-12 | 株式会社リコー | プロセッサ装置及びその演算方法 |
US8933954B2 (en) * | 2011-03-23 | 2015-01-13 | Qualcomm Incorporated | Register allocation for graphics processing |
US10803009B2 (en) * | 2011-07-14 | 2020-10-13 | Texas Instruments Incorporated | Processor with table lookup processing unit |
JP5988222B2 (ja) * | 2011-10-18 | 2016-09-07 | パナソニックIpマネジメント株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
US9389861B2 (en) * | 2011-12-22 | 2016-07-12 | Intel Corporation | Systems, apparatuses, and methods for mapping a source operand to a different range |
US10223112B2 (en) | 2011-12-22 | 2019-03-05 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US10866807B2 (en) | 2011-12-22 | 2020-12-15 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in numerical order that differ by a constant stride |
CN104011646B (zh) | 2011-12-22 | 2018-03-27 | 英特尔公司 | 用于产生按照数值顺序的连续整数的序列的处理器、方法、系统和指令 |
US9898283B2 (en) * | 2011-12-22 | 2018-02-20 | Intel Corporation | Processors, methods, systems, and instructions to generate sequences of integers in which integers in consecutive positions differ by a constant integer stride and where a smallest integer is offset from zero by an integer offset |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
CN111831335A (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
CN107220029B (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 掩码置换指令的装置和方法 |
CN104115114B (zh) | 2011-12-23 | 2018-06-12 | 英特尔公司 | 经改进的提取指令的装置和方法 |
CN104011616B (zh) | 2011-12-23 | 2017-08-29 | 英特尔公司 | 改进置换指令的装置和方法 |
US9400650B2 (en) * | 2012-09-28 | 2016-07-26 | Intel Corporation | Read and write masks update instruction for vectorization of recursive computations over interdependent data |
US9324128B2 (en) * | 2013-03-14 | 2016-04-26 | Intel Corporation | Techniques for improving rendering efficiency |
US9639356B2 (en) * | 2013-03-15 | 2017-05-02 | Qualcomm Incorporated | Arbitrary size table lookup and permutes with crossbar |
CN103235762B (zh) * | 2013-04-19 | 2016-06-22 | 中国科学院自动化研究所 | 一种自索引寄存器文件堆装置 |
US9424034B2 (en) * | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
JPWO2015040678A1 (ja) * | 2013-09-17 | 2017-03-02 | 富士通株式会社 | コロニー検査プログラム、コロニー検査装置およびコロニー検査方法 |
CN103606129B (zh) * | 2013-11-29 | 2016-08-24 | 广东威创视讯科技股份有限公司 | 图像处理系统中控制器与图像处理芯片的寻址方法和系统 |
WO2015110043A1 (zh) * | 2014-01-27 | 2015-07-30 | 邵通 | 一种双通道身份认证选择的装置、系统和方法 |
US9772848B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Three-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US9772849B2 (en) * | 2014-11-14 | 2017-09-26 | Intel Corporation | Four-dimensional morton coordinate conversion processors, methods, systems, and instructions |
US20170046156A1 (en) * | 2015-08-14 | 2017-02-16 | Qualcomm Incorporated | Table lookup using simd instructions |
US9852080B2 (en) | 2015-08-17 | 2017-12-26 | Qualcomm Incorporated | Efficiently generating selection masks for row selections within indexed address spaces |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
US10275243B2 (en) * | 2016-07-02 | 2019-04-30 | Intel Corporation | Interruptible and restartable matrix multiplication instructions, processors, methods, and systems |
EP3586228B1 (en) * | 2017-02-23 | 2023-03-29 | ARM Limited | Element by vector operations in a data processing apparatus |
US10409592B2 (en) * | 2017-04-24 | 2019-09-10 | Arm Limited | Multiply-and-accumulate-products instructions |
US10671349B2 (en) | 2017-07-24 | 2020-06-02 | Tesla, Inc. | Accelerated mathematical engine |
US11409692B2 (en) * | 2017-07-24 | 2022-08-09 | Tesla, Inc. | Vector computational unit |
US11893393B2 (en) | 2017-07-24 | 2024-02-06 | Tesla, Inc. | Computational array microprocessor system with hardware arbiter managing memory requests |
CN109298886A (zh) * | 2017-07-25 | 2019-02-01 | 合肥君正科技有限公司 | Simd指令执行方法、装置及处理器 |
US10552154B2 (en) | 2017-09-29 | 2020-02-04 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US11256504B2 (en) | 2017-09-29 | 2022-02-22 | Intel Corporation | Apparatus and method for complex by complex conjugate multiplication |
US11074073B2 (en) | 2017-09-29 | 2021-07-27 | Intel Corporation | Apparatus and method for multiply, add/subtract, and accumulate of packed data elements |
US10514924B2 (en) * | 2017-09-29 | 2019-12-24 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10795677B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Systems, apparatuses, and methods for multiplication, negation, and accumulation of vector packed signed values |
US11243765B2 (en) | 2017-09-29 | 2022-02-08 | Intel Corporation | Apparatus and method for scaling pre-scaled results of complex multiply-accumulate operations on packed real and imaginary data elements |
US10534838B2 (en) | 2017-09-29 | 2020-01-14 | Intel Corporation | Bit matrix multiplication |
US10664277B2 (en) | 2017-09-29 | 2020-05-26 | Intel Corporation | Systems, apparatuses and methods for dual complex by complex conjugate multiply of signed words |
US10802826B2 (en) | 2017-09-29 | 2020-10-13 | Intel Corporation | Apparatus and method for performing dual signed and unsigned multiplication of packed data elements |
US10795676B2 (en) | 2017-09-29 | 2020-10-06 | Intel Corporation | Apparatus and method for multiplication and accumulation of complex and real packed data elements |
US11561791B2 (en) | 2018-02-01 | 2023-01-24 | Tesla, Inc. | Vector computational unit receiving data elements in parallel from a last row of a computational array |
US11449336B2 (en) * | 2019-05-24 | 2022-09-20 | Texas Instmments Incorporated | Method of storing register data elements to interleave with data elements of a different register, a processor thereof, and a system thereof |
CN112859377B (zh) * | 2019-11-28 | 2023-03-14 | 京东方科技集团股份有限公司 | 一种复用寄存器、三维显示装置及其控制方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001501001A (ja) * | 1996-09-23 | 2001-01-23 | エイアールエム リミテッド | データ処理システムにおける入力オペランド制御 |
Family Cites Families (61)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
US5771368A (en) * | 1990-10-29 | 1998-06-23 | Sun Microsystems, Inc. | Memory addressing scheme for increasing the number of memory locations available in a computer for storing higher precision numbers |
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 |
DE69424355T2 (de) * | 1993-08-31 | 2001-02-15 | Sun Microsystems, Inc. | Speicheradressierungsschema zur Erhöhung der Anzahl von Speicherplätzen in einem Rechner zur Speicherung von Doppelgenauigkeitszahlen |
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 |
US5513366A (en) * | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
EP0795155B1 (en) * | 1994-12-01 | 2003-03-19 | Intel Corporation | A microprocessor having a multiply operation |
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 |
GB9509983D0 (en) * | 1995-05-17 | 1995-07-12 | Sgs Thomson Microelectronics | Replication 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 |
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 |
AU6905496A (en) * | 1995-09-01 | 1997-03-27 | Philips Electronics North America Corporation | Method and apparatus for custom operations of a processor |
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 |
TW380237B (en) | 1996-09-23 | 2000-01-21 | Advanced Risc Mach Ltd | Data processing system register control |
GB2317467B (en) | 1996-09-23 | 2000-11-01 | Advanced Risc Mach Ltd | Input operand control in data processing systems |
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 |
US5909572A (en) * | 1996-12-02 | 1999-06-01 | Compaq Computer Corp. | System and method for conditionally moving an operand from a source register to a destination register |
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 |
US5991531A (en) * | 1997-02-24 | 1999-11-23 | Samsung Electronics Co., Ltd. | Scalable width vector processor architecture for efficient emulation |
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 |
US6209017B1 (en) * | 1997-08-30 | 2001-03-27 | Lg Electronics Inc. | High speed digital signal processor |
GB2329810B (en) * | 1997-09-29 | 2002-02-27 | Science Res Foundation | Generation and use of compressed image data |
US5933650A (en) * | 1997-10-09 | 1999-08-03 | Mips Technologies, Inc. | Alignment and ordering of vector elements for single instruction multiple data processing |
US5864703A (en) * | 1997-10-09 | 1999-01-26 | Mips Technologies, Inc. | Method for providing extended precision in SIMD vector arithmetic operations |
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 |
US6223198B1 (en) * | 1998-08-14 | 2001-04-24 | Advanced Micro Devices, Inc. | Method and apparatus for multi-function arithmetic |
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 |
US6269384B1 (en) * | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
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 |
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 |
JP2000020486A (ja) * | 1998-06-29 | 2000-01-21 | Ricoh Co Ltd | Simd型演算器 |
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 |
EP1236097A4 (en) | 1999-09-01 | 2006-08-02 | Intel Corp | BRANCH COMMAND TO THE PROCESSOR |
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 |
TW538335B (en) | 2001-12-24 | 2003-06-21 | Winbond Electronics Corp | Method and device for speeding up reading and writing the register for the processor |
US7761683B2 (en) * | 2002-03-05 | 2010-07-20 | Hewlett-Packard Development Company, L.P. | Variable width memory system and method |
-
2003
- 2003-12-09 GB GB0328513A patent/GB2409062C/en not_active Expired - Lifetime
-
2004
- 2004-07-01 RU RU2006124547/09A patent/RU2006124547A/ru not_active Application Discontinuation
- 2004-07-01 CN CN2004800412896A patent/CN1914592B/zh not_active Expired - Lifetime
- 2004-07-01 JP JP2006543598A patent/JP4727589B2/ja not_active Expired - Lifetime
- 2004-07-01 WO PCT/GB2004/002836 patent/WO2005057417A2/en active Application Filing
- 2004-07-01 EP EP04743183.8A patent/EP1692611B1/en not_active Expired - Lifetime
- 2004-07-01 KR KR1020067011129A patent/KR100996888B1/ko active IP Right Grant
- 2004-07-13 US US10/889,314 patent/US7822947B2/en active Active
- 2004-08-10 MY MYPI20043244A patent/MY137496A/en unknown
- 2004-08-11 TW TW093124099A patent/TWI322958B/zh not_active IP Right Cessation
-
2006
- 2006-05-24 IL IL175901A patent/IL175901A/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001501001A (ja) * | 1996-09-23 | 2001-01-23 | エイアールエム リミテッド | データ処理システムにおける入力オペランド制御 |
Also Published As
Publication number | Publication date |
---|---|
JP2007514226A (ja) | 2007-05-31 |
CN1914592B (zh) | 2010-05-12 |
TWI322958B (en) | 2010-04-01 |
WO2005057417A2 (en) | 2005-06-23 |
US20050172106A1 (en) | 2005-08-04 |
IL175901A (en) | 2011-11-30 |
EP1692611B1 (en) | 2018-08-22 |
KR100996888B1 (ko) | 2010-11-29 |
IL175901A0 (en) | 2006-10-05 |
GB0328513D0 (en) | 2004-01-14 |
GB2409062B (en) | 2006-08-16 |
WO2005057417A3 (en) | 2006-03-23 |
CN1914592A (zh) | 2007-02-14 |
GB2409062A (en) | 2005-06-15 |
GB2409062C (en) | 2007-12-11 |
TW200525417A (en) | 2005-08-01 |
MY137496A (en) | 2009-02-27 |
EP1692611A2 (en) | 2006-08-23 |
US7822947B2 (en) | 2010-10-26 |
RU2006124547A (ru) | 2008-01-20 |
KR20070001903A (ko) | 2007-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4727589B2 (ja) | データ処理レジスタに別名を付ける装置および方法 | |
JP5366917B2 (ja) | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 | |
JP5393643B2 (ja) | Simd処理における定数の生成 | |
JP4588413B2 (ja) | Simd処理における多重化操作 | |
JP4689622B2 (ja) | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 | |
JP4689621B2 (ja) | レジスタとメモリとの間でデータを移動するためのデータ処理装置および方法 | |
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: 20090901 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091201 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100817 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101217 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20101222 |
|
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: 20110329 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110413 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4727589 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: 20140422 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 |