JP2005174301A - レジスタとメモリとの間でデータを移動するためのデータ処理装置及び方法 - Google Patents
レジスタとメモリとの間でデータを移動するためのデータ処理装置及び方法 Download PDFInfo
- Publication number
- JP2005174301A JP2005174301A JP2004308638A JP2004308638A JP2005174301A JP 2005174301 A JP2005174301 A JP 2005174301A JP 2004308638 A JP2004308638 A JP 2004308638A JP 2004308638 A JP2004308638 A JP 2004308638A JP 2005174301 A JP2005174301 A JP 2005174301A
- Authority
- JP
- Japan
- Prior art keywords
- register
- data
- instruction
- access
- data elements
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims abstract description 160
- 238000000034 method Methods 0.000 title claims abstract description 72
- 238000013500 data storage Methods 0.000 claims abstract description 30
- 238000003860 storage Methods 0.000 claims description 25
- 230000004044 response Effects 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 7
- 239000013598 vector Substances 0.000 description 62
- 238000012546 transfer Methods 0.000 description 19
- 230000008901 benefit Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 238000007792 addition Methods 0.000 description 15
- 230000008707 rearrangement Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 11
- 238000013459 approach Methods 0.000 description 10
- 230000009467 reduction Effects 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 230000017105 transposition Effects 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 229920006395 saturated elastomer Polymers 0.000 description 6
- 230000009286 beneficial effect Effects 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000009826 distribution Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 239000011159 matrix material Substances 0.000 description 4
- 238000000205 computational method Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 239000003607 modifier Substances 0.000 description 3
- 239000000047 product Substances 0.000 description 3
- 230000002829 reductive effect Effects 0.000 description 3
- 230000002441 reversible effect Effects 0.000 description 3
- 230000000694 effects 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
- 238000005266 casting Methods 0.000 description 1
- 238000006243 chemical reaction 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
- 230000001419 dependent effect 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
- 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
- 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
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- 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
-
- 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/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/30105—Register structure
- G06F9/30116—Shadow registers, e.g. coupled registers, not forming part of the register space
-
- 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/30138—Extension of register space, e.g. register cache
-
- 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3816—Instruction alignment, e.g. cache line crossing
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)
Abstract
【解決手段】 データ処理装置は、複数のレジスタを有するレジスタデータ記憶装置と、レジスタにおいてアクセスされた1つ以上のデータ要素に対してデータ処理操作を実行するプロセッサと、指定されたレジスタとアクセス命令により指定された開始アドレス有しているメモリの一部との間で多数のデータ要素を移動するために、アクセス操作を実行するアクセスロジックとを備える。アクセス命令は、第1の数値か、または複数の第2の数値の内の1つのいずれかに設定可能である配置構造指示子を有する。第1の数値は開始アドレスがバイトで位置合わせされていることを表し、第2の数値は異なる所定の配置構造を表す。アクセスロジックは、配置構造指示子の数値に基づいてアクセス操作を適応させることができ、アクセス操作の効率において著しく改良された柔軟性を提供する。
【選択図】 図52
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
“VLD 3.16 {D0,D1,D2},#1,[r1]”
“VLD 3.16 {D0[1],D1[1],D2[1]},[r2]”
“VLD 3.16 {D0[2],D1[2],D2[2]},[r3]”
“VLD 3.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.16A,B”
“32|ZIP.16C,D”
“64|ZIP.32A,C”
“64|ZIP.32B,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]”
“(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 (17)
- データ要素を記憶することができる複数のレジスタを有するレジスタデータ記憶装置と、
前記レジスタの内の少なくとも1つにおいてアクセスされた1つ以上のデータ要素に対してデータ処理操作を実行することができるプロセッサと、
指定されたレジスタとアクセス命令により指定された開始アドレス有しているメモリの一部との間で多数のデータ要素を移動するために、アクセス命令に応答してアクセス操作を実行することができるアクセスロジックと
を備え、
アクセス命令は、第1の数値か、または複数の第2の数値の内の1つのいずれかに設定可能である、アクセス命令と関連付けられた配置構造指示子を有し、
第1の数値は、開始アドレスがバイトで位置合わせされているものとして扱われることを表すと共に、第2の数値のそれぞれは、開始アドレスが従うように扱われる、異なる所定の配置構造を表し、
アクセスロジックは、配置構造指示子の数値に基づいてアクセス操作を適応させることができる
ことを特徴とするデータ処理装置。 - アクセスロジックは、割り当てられるべき多数のアクセスを決定することにより、配置構造指示子の数値に基づいてアクセス操作を実行するようにアクセス操作を適応させることができる
ことを特徴とする請求項1に記載のデータ処理装置。 - 配置構造指示子は、アクセス命令内部において提供される
ことを特徴とする請求項1に記載のデータ処理装置。 - 配置構造指示子を記憶することができる状態レジスタを更に備える
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記アクセス命令は、ロード命令であり、
前記アクセスロジックは、前記ロード命令に応答して、前記メモリの一部から前記指定されたレジスタへ、データ要素の数をロードすることができる
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記アクセス命令は、記憶命令であり、
前記アクセスロジックは、前記記憶命令に応答して、前記指定されたレジスタから前記メモリの一部へ、データ要素の数を記憶することができる
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記データ要素の数は、複数のデータ要素を有すると共に、アクセス命令から導き出すことができる
ことを特徴とする請求項1に記載のデータ処理装置。 - 前記プロセッサは、前記レジスタの内の少なくとも1つにおいてアクセスされた複数のデータ要素に対してデータ処理操作を並列に実行することができる
ことを特徴とする請求項1に記載のデータ処理装置。 - データ要素を記憶することができる複数のレジスタを有するレジスタデータ記憶装置と、前記レジスタの内の少なくとも1つにおいてアクセスされた1つ以上のデータ要素に対してデータ処理操作を実行することができるプロセッサとを有するデータ処理装置を操作する方法であって、
方法は、
(a)指定されたレジスタとメモリの一部との間で多数のデータ要素を移動するために、アクセス操作の実行に使用されるアクセス命令を発するステップ
を有すると共に、更に
(b)配置構造指示子の数値に基づいてアクセス操作を適応させるステップと、
(c)アクセス操作を実行するステップと
を有し、
配置構造指示子が、アクセス命令と関連付けられると共に、第1の数値か、または複数の第2の数値の内の1つのいずれかに設定され、
第1の数値は、開始アドレスがバイトで位置合わせされているものとして扱われることを表すと共に、第2の数値のそれぞれは、開始アドレスが従うように扱われる、異なる所定の配置構造を表す
ことを特徴とする方法。 - 前記ステップ(b)は、配置構造指示子の数値に基づいてアクセス操作を実行するように、割り当てられるべき多数のアクセスを決定するステップを有する
ことを特徴とする請求項9に記載の方法。 - 配置構造指示子は、アクセス命令内部において提供される
ことを特徴とする請求項9に記載の方法。 - 配置構造指示子を状態レジスタ内部に記憶するステップを更に有する
ことを特徴とする請求項9に記載の方法。 - 前記アクセス命令は、ロード命令であり、
前記(c)ステップは、前記ロード命令に応答して、前記メモリの一部から前記指定されたレジスタへ、データ要素の数をロードするステップを有する
ことを特徴とする請求項9に記載の方法。 - 前記アクセス命令は、記憶命令であり、
前記(c)ステップは、前記記憶命令に応答して、前記指定されたレジスタから前記メモリの一部へ、データ要素の数を記憶するステップを有する
ことを特徴とする請求項9に記載の方法。 - 前記データ要素の数は、複数のデータ要素を有すると共に、アクセス命令から導き出すことができる
ことを特徴とする請求項9に記載の方法。 - 前記プロセッサは、前記レジスタの内の少なくとも1つにおいてアクセスされた複数のデータ要素に対してデータ処理操作を並列に実行することができる
ことを特徴とする請求項9に記載の方法。 - 実行された際に、請求項9に記載された方法によってデータ処理装置を動作させる少なくとも1つのアクセス命令を有するコンピュータプログラムを備えることを特徴とするコンピュータプログラム製品。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB0328536A GB2411976B (en) | 2003-12-09 | 2003-12-09 | A data processing apparatus and method for moving data between registers and memory |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005174301A true JP2005174301A (ja) | 2005-06-30 |
JP4660155B2 JP4660155B2 (ja) | 2011-03-30 |
Family
ID=30129912
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004308638A Active JP4660155B2 (ja) | 2003-12-09 | 2004-10-22 | レジスタとメモリとの間でデータを移動するためのデータ処理装置及び方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7210023B2 (ja) |
JP (1) | JP4660155B2 (ja) |
GB (1) | GB2411976B (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013057872A1 (ja) * | 2011-10-18 | 2013-04-25 | パナソニック株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
JP2015201216A (ja) * | 2006-08-02 | 2015-11-12 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム |
KR20190119076A (ko) * | 2017-02-23 | 2019-10-21 | 에이알엠 리미티드 | 데이터 처리장치에서의 곱셈-누적 |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7421566B2 (en) * | 2005-08-12 | 2008-09-02 | International Business Machines Corporation | Implementing instruction set architectures with non-contiguous register file specifiers |
US20070226469A1 (en) * | 2006-03-06 | 2007-09-27 | James Wilson | Permutable address processor and method |
US8161271B2 (en) * | 2007-07-11 | 2012-04-17 | International Business Machines Corporation | Store misaligned vector with permute |
US9652210B2 (en) * | 2007-08-28 | 2017-05-16 | Red Hat, Inc. | Provisioning a device with multiple bit-size versions of a software component |
US8417735B1 (en) * | 2007-12-12 | 2013-04-09 | Nvidia Corporation | Instruction-efficient algorithm for parallel scan using initialized memory regions to replace conditional statements |
NO336218B1 (no) * | 2012-11-15 | 2015-06-15 | Pexip AS | Metode, datamaskinprogram og system for å bestemme "hopp-over"-modus. |
US8971407B2 (en) | 2012-11-15 | 2015-03-03 | Pexip AS | Detection of skip mode |
US9424034B2 (en) * | 2013-06-28 | 2016-08-23 | Intel Corporation | Multiple register memory access instructions, processors, methods, and systems |
GB2564696B (en) * | 2017-07-20 | 2020-02-05 | Advanced Risc Mach Ltd | Register-based complex number processing |
CN111258646B (zh) * | 2018-11-30 | 2023-06-13 | 上海寒武纪信息科技有限公司 | 指令拆解方法、处理器、指令拆解装置及存储介质 |
CN111258770B (zh) * | 2018-11-30 | 2023-10-10 | 上海寒武纪信息科技有限公司 | 数据处理方法、处理器、数据处理装置及存储介质 |
US11216277B2 (en) * | 2019-09-26 | 2022-01-04 | Arm Limited | Apparatus and method of capturing a register state |
KR20210088304A (ko) * | 2020-01-06 | 2021-07-14 | 삼성전자주식회사 | 이미지 프로세서의 동작 방법, 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 |
CN112511765B (zh) * | 2020-10-13 | 2023-06-09 | Oppo(重庆)智能科技有限公司 | 图像旋转方法、装置、存储介质及电子设备 |
CN112835842B (zh) * | 2021-03-05 | 2024-04-30 | 深圳市汇顶科技股份有限公司 | 端序处理方法、电路、芯片以及电子终端 |
FR3134206A1 (fr) * | 2022-03-31 | 2023-10-06 | Kalray | Système de gestion d'un groupe de registres tournants défini de façon arbitraire dans des registres de processeur |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131175A (ja) * | 1990-06-29 | 1994-05-13 | Digital Equip Corp <Dec> | 高性能プロセッサのためのバイト比較操作方法 |
JPH0895780A (ja) * | 1994-09-20 | 1996-04-12 | Nec Corp | 命令コード符号化方式 |
Family Cites Families (57)
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 | 松下電器産業株式会社 | キャッシュ装置と命令読出し装置 |
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 |
US5550972A (en) * | 1993-06-30 | 1996-08-27 | Microsoft Corporation | Method and apparatus for efficient transfer of data to memory |
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 |
GB9412434D0 (en) * | 1994-06-21 | 1994-08-10 | Inmos Ltd | Computer instruction compression |
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 |
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 |
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 |
EP0789870B1 (en) * | 1995-09-01 | 2003-01-15 | 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 |
US5838984A (en) * | 1996-08-19 | 1998-11-17 | Samsung Electronics Co., Ltd. | Single-instruction-multiple-data processing using multiple banks of vector registers |
US6058465A (en) * | 1996-08-19 | 2000-05-02 | Nguyen; Le Trong | Single-instruction-multiple-data processing in a multimedia signal processor |
US5996066A (en) * | 1996-10-10 | 1999-11-30 | Sun Microsystems, Inc. | Partitioned multiply and add/subtract instruction for CPU with integrated graphics functions |
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 |
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 |
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 |
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 |
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 |
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 |
US6269384B1 (en) * | 1998-03-27 | 2001-07-31 | Advanced Micro Devices, Inc. | Method and apparatus for rounding and normalizing results within a multiplier |
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 |
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 |
GB2359967B (en) * | 2000-02-29 | 2004-05-12 | Virata Ltd | Qamd |
US6463518B1 (en) * | 2000-06-19 | 2002-10-08 | Philips Electronics No. America Corp. | Generation of memory addresses for accessing a memory utilizing scheme registers |
US6728874B1 (en) * | 2000-10-10 | 2004-04-27 | Koninklijke Philips Electronics N.V. | System and method for processing vectorized data |
JP2004519027A (ja) * | 2001-01-30 | 2004-06-24 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 主プロセッサと命令経路コプロセッサとの同期化 |
US7272622B2 (en) * | 2001-10-29 | 2007-09-18 | Intel Corporation | Method and apparatus for parallel shift right merge of data |
US7017030B2 (en) * | 2002-02-20 | 2006-03-21 | Arm Limited | Prediction of instructions in a data processing apparatus |
-
2003
- 2003-12-09 GB GB0328536A patent/GB2411976B/en not_active Expired - Lifetime
-
2004
- 2004-07-13 US US10/889,470 patent/US7210023B2/en active Active
- 2004-10-22 JP JP2004308638A patent/JP4660155B2/ja active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06131175A (ja) * | 1990-06-29 | 1994-05-13 | Digital Equip Corp <Dec> | 高性能プロセッサのためのバイト比較操作方法 |
JPH0895780A (ja) * | 1994-09-20 | 1996-04-12 | Nec Corp | 命令コード符号化方式 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2015201216A (ja) * | 2006-08-02 | 2015-11-12 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム |
JP2017138993A (ja) * | 2006-08-02 | 2017-08-10 | クゥアルコム・インコーポレイテッドQualcomm Incorporated | マイクロプロセッサ内の複数のレジスタ部を組み合わせる方法およびシステム |
WO2013057872A1 (ja) * | 2011-10-18 | 2013-04-25 | パナソニック株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
JPWO2013057872A1 (ja) * | 2011-10-18 | 2015-04-02 | パナソニックIpマネジメント株式会社 | シャッフルパターン生成回路、プロセッサ、シャッフルパターン生成方法、命令 |
US9292286B2 (en) | 2011-10-18 | 2016-03-22 | Panasonic Intellectual Property Management Co., Ltd. | Shuffle pattern generating circuit, processor, shuffle pattern generating method, and instruction sequence |
KR20190119076A (ko) * | 2017-02-23 | 2019-10-21 | 에이알엠 리미티드 | 데이터 처리장치에서의 곱셈-누적 |
JP2020508512A (ja) * | 2017-02-23 | 2020-03-19 | エイアールエム リミテッド | データ処理装置における乗累算 |
KR102425668B1 (ko) | 2017-02-23 | 2022-07-28 | 에이알엠 리미티드 | 데이터 처리장치에서의 곱셈-누적 |
US11513796B2 (en) | 2017-02-23 | 2022-11-29 | Arm Limited | Multiply-accumulation in a data processing apparatus |
JP7253492B2 (ja) | 2017-02-23 | 2023-04-06 | アーム・リミテッド | データ処理装置における乗累算 |
Also Published As
Publication number | Publication date |
---|---|
US20050125624A1 (en) | 2005-06-09 |
US7210023B2 (en) | 2007-04-24 |
GB2411976B (en) | 2006-07-19 |
JP4660155B2 (ja) | 2011-03-30 |
GB0328536D0 (en) | 2004-01-14 |
GB2411976A (en) | 2005-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5366917B2 (ja) | データ要素に対するデータ処理操作を並列に実行するためのデータ処理装置及び方法 | |
JP5393643B2 (ja) | Simd処理における定数の生成 | |
JP4727589B2 (ja) | データ処理レジスタに別名を付ける装置および方法 | |
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 |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061108 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090825 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20091112 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100817 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101101 |
|
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: 20101207 |
|
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: 20101228 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140107 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4660155 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 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 |
|
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 |