JP6469120B2 - セグメント化された演算を実行するためのデータ処理装置及び方法 - Google Patents
セグメント化された演算を実行するためのデータ処理装置及び方法 Download PDFInfo
- Publication number
- JP6469120B2 JP6469120B2 JP2016549398A JP2016549398A JP6469120B2 JP 6469120 B2 JP6469120 B2 JP 6469120B2 JP 2016549398 A JP2016549398 A JP 2016549398A JP 2016549398 A JP2016549398 A JP 2016549398A JP 6469120 B2 JP6469120 B2 JP 6469120B2
- Authority
- JP
- Japan
- Prior art keywords
- segment
- vector
- segmented
- data
- 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.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims description 158
- 238000000034 method Methods 0.000 title claims description 37
- 239000013598 vector Substances 0.000 claims description 201
- 238000004364 calculation method Methods 0.000 claims description 69
- 239000011159 matrix material Substances 0.000 claims description 18
- 230000003993 interaction Effects 0.000 claims description 17
- 230000004044 response Effects 0.000 claims description 14
- 230000001788 irregular Effects 0.000 claims description 10
- 238000009825 accumulation Methods 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 10
- 230000035508 accumulation Effects 0.000 description 7
- 238000007792 addition Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000000717 retained effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000007935 neutral effect Effects 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005056 compaction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005265 energy consumption Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000001902 propagating effect Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/3001—Arithmetic instructions
- G06F9/30014—Arithmetic instructions with variable precision
-
- 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/30072—Arrangements for executing specific machine instructions to perform conditional operations, e.g. using predicates or guards
-
- 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/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
-
- 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/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
- 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]
- G06F9/38873—Iterative single instructions for multiple data lanes [SIMD]
-
- 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/3889—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute
- G06F9/3891—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by multiple instructions, e.g. MIMD, decoupled access or execute organised in groups of units sharing resources, e.g. clusters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Mathematics (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Analysis (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
Description
y0=x0
y1=x0+x1
y2=x0+x1+x2
…
Claims (27)
- ベクトル・オペランドを保存するように構成されるベクトル・レジスタ・ストアと、
N本の並列処理レーンを提供し、指定されたベクトル・オペランドが提供するN個までのデータ要素にセグメント化された演算を実行するように構成されるベクトル処理回路であって、各データ要素が前記N本のレーンのうち1つに割り当てられ、前記N個までのデータ要素が複数のセグメントを形成し、前記セグメント化された演算の実行が各セグメントの当該データ要素に別個の演算を実行することを含み、前記別個の演算が、前記関連するセグメントの当該データ要素を含む前記レーン間の相互作用を伴う、ベクトル処理回路と、
異なるセグメントからのデータ要素を含むレーン間の相互作用を防ぐために、複数のセグメント記述子を含む入力ベクトル・オペランドを指定する記述子計算命令に応答して、前記複数のセグメントのそれぞれの間の境界を維持する前記セグメント化された演算の実行時に前記ベクトル処理回路によって使用されるレーンごとの述語情報を生成するように構成された述語生成回路と
を含む、データ処理装置。 - 前記ベクトル処理回路が複数のパイプライン段を備え、前記複数セグメントのそれぞれの間の前記境界を維持するために、前記複数のパイプライン段のそれぞれで実行される計算を制御するために前記レーンごとの述語情報を利用するように構成される、請求項1に記載のデータ処理装置。
- 各パイプライン段において、前記ベクトル処理回路は、異なるセグメントからのデータ要素を含むレーン間の相互作用を防ぐために、前記レーンごとの述語情報に従って1つ又は複数の計算を選択的に無効化するように構成される、請求項2に記載のデータ処理装置。
- 1つ又は複数の前記パイプライン段のそれぞれについて、前記ベクトル処理回路は、そのパイプライン段でどの計算を無効化するかを特定する制御データを得るために、前記レーンごとの述語情報に論理演算を実行するように構成される、請求項3に記載のデータ処理装置。
- 前記レーンごとの述語情報が各レーンのためのバイナリ値を含む、請求項1から4までのいずれか一項に記載のデータ処理装置。
- 前記バイナリ値が、あるセグメントの最後のデータ要素が割り当てられた個々のレーンを特定するために第1の値に設定され、その他のすべてのレーンについては第2の値に設定される、請求項5に記載のデータ処理装置。
- 前記バイナリ値が、あるセグメントのデータ要素を含むレーンを特定するために第1の値に設定され、隣接するセグメントのデータ要素を含むレーンを特定するために第2の値に設定される、請求項5に記載のデータ処理装置。
- 前記複数のセグメント記述子が、データ要素をもたないセグメントが少なくとも1つ存在することを示す場合に、前記述語生成回路が制御フィールドを設定するようにさらに構成される、請求項1から7までのいずれか一項に記載のデータ処理装置。
- 前記ベクトル処理回路が、前記制御フィールドが設定されていることに応答して、前記セグメント化された演算に関連した追加の処理のステップを実行する、請求項8に記載のデータ処理装置。
- 前記追加処理のステップが、前記複数のセグメント記述子からデータ要素をもたない個々のセグメントの位置を特定することと、前記セグメント化された演算によって生成された結果データ内のその位置に所定のデータ値を挿入することとを含む、請求項9に記載のデータ処理装置。
- 前記セグメント化された演算がキャリーイン・スカラー値をさらに指定し、前記セグメント化された演算を実行すると結果データ要素のベクトルとキャリーアウト・スカラー値とが得られる、請求項1から10までのいずれか一項に記載のデータ処理装置。
- 前記ベクトル処理回路がセグメント化された命令に応答して前記セグメント化された演算を実行し、前記データ処理装置が、N個を超えるデータ要素を含むデータ要素のセットに対して前記セグメント化された演算を実行するように前記記述子計算命令と前記セグメント化された命令とを複数回繰り返して実行するように構成され、ある繰り返しの回で前記セグメント化された演算を実行して得られた前記キャリーアウト・スカラー値が、次の繰り返しで前記セグメント化された演算を実行するための前記キャリーイン・スカラー値として使用される、請求項11に記載のデータ処理装置。
- 前記ベクトル処理回路がセグメント化された命令に応答して前記セグメント化された演算を実行し、前記データ処理装置が、N個を超えるデータ要素を含むデータ要素のセットに対して前記セグメント化された演算を実行するように前記記述子計算命令と前記セグメント化された命令とを複数回繰り返して実行するように構成され、前記データ要素のセットが複数のセグメントを含む、請求項1から12までのいずれか一項に記載のデータ処理装置。
- 前記セグメントのそれぞれの内のデータ要素の数が不規則である、請求項13に記載のデータ処理装置。
- 前記セグメントが、ネスティングされたループ内の所定ループの繰り返しの各回に関連するデータ要素を特定する、請求項13又は14に記載のデータ処理装置。
- 前記ベクトル処理回路が、疎行列の各行について複数の乗算結果を得るために、第1のデータ要素の疎行列に第2のベクトル要素のベクトルを乗算する、疎行列乗算演算を実行するように構成され、前記乗算結果が前記セグメント化された演算を実行する対象となる前記データ要素のセットを形成し、各セグメントが前記疎行列の前記行のうち1つの前記乗算結果を含む、請求項13から15までのいずれか一項に記載のデータ処理装置。
- 前記セグメント化された演算が各セグメント内の前記乗算結果に累算演算を実行する、請求項16に記載のデータ処理装置。
- 前記セグメント記述子が、各セグメントの終わり及び各セグメントの始まりのうち1つへのポインタを提供する、請求項1から17までのいずれか一項に記載のデータ処理装置。
- 前記セグメント記述子が各セグメントの長さを特定する、請求項1から17までのいずれか一項に記載のデータ処理装置。
- 前記複数のセグメント記述子が符号付き整数を含む、請求項1から19までのいずれか一項に記載のデータ処理装置。
- 前記複数のセグメント記述子が符号付き整数を含み、
繰り返しの各回に、先行する繰り返しの間に前記先行する繰り返しのためのレーンごとの述語情報を生成するために使用されたいかなるセグメント記述子も削除するように、前記入力ベクトル・オペランドが更新される、請求項13から20までのいずれか一項に記載のデータ処理装置。 - 前記述語生成回路が、現在の繰り返しのための前記レーンごとの述語情報を生成する前に、前記現在の繰り返しのために提供された前記複数のセグメント記述子から、先行するすべての繰り返しによって処理されたデータ要素の総数に等しい値を減算するように構成される、請求項21に記載のデータ処理装置。
- 前記セグメント化された演算が、セグメント化されたスキャン演算とセグメント化された縮約演算のいずれか1つである、請求項1から22までのいずれか一項に記載のデータ処理装置。
- 複数の述語レジスタを提供する述語レジスタ・ファイルをさらに備え、前記記述子計算命令が前記レーンごとの述語情報が保管される前記述語レジスタのうちの1つを指定するように構成される、請求項1から23までのいずれか一項に記載のデータ処理装置。
- ベクトル・オペランドを保存するように構成されるベクトル・レジスタ・ストアと、N本の並列処理レーンを提供するベクトル処理回路とを有するデータ処理装置内でセグメント化された演算を実行する方法であって、
前記ベクトル処理回路内で、指定されたベクトル・オペランドが提供するN個までのデータ要素にセグメント化された演算を実行することであって、各データ要素が前記N本のレーンのうち1つに割り当てられ、前記N個までのデータ要素が複数のセグメントを形成し、前記セグメント化された演算の実行が各セグメントの当該データ要素に別個の演算を実行することを含み、前記別個の演算が、前記関連するセグメントの当該データ要素を含む前記レーン間の相互作用を伴う、実行することと、
異なるセグメントからのデータ要素を含むレーン間の相互作用を防ぐために、複数のセグメント記述子を含む入力ベクトル・オペランドを指定する記述子計算命令に応答して、前記複数のセグメントのそれぞれの間の境界を維持する前記セグメント化された演算の実行時に前記ベクトル処理回路によって使用されるレーンごとの述語情報を生成することとを含む、方法。 - ベクトル・オペランドを保存するベクトル・レジスタ保存手段と、
N本の並列処理レーンを提供し、指定されたベクトル・オペランドが提供するN個までのデータ要素にセグメント化された演算を実行するベクトル処理手段であって、各データ要素が前記N本のレーンのうち1つに割り当てられ、前記N個までのデータ要素が複数のセグメントを形成し、前記セグメント化された演算の実行が各セグメントの当該データ要素に別個の演算を実行することを含み、前記別個の演算が、前記関連するセグメントの当該データ要素を含む前記レーン間の相互作用を伴う、ベクトル処理手段と、
異なるセグメントからのデータ要素を含むレーン間の相互作用を防ぐために、複数のセグメント記述子を含む入力ベクトル・オペランドを指定する記述子計算命令に応答して、前記複数セグメントのそれぞれの間の境界を維持する前記セグメント化された演算の実行時に前記ベクトル処理手段によって使用されるレーンごとの述語情報を生成する述語生成手段と
を含む、データ処理装置。 - 請求項1から24までのいずれか一項に記載のデータ処理装置に対応するプログラム命令のための仮想マシン実行環境を提供するようにコンピュータを制御するためのコンピュータ・プログラムを、非一時的な形で保管するコンピュータ・プログラム製品。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/175,268 US9557995B2 (en) | 2014-02-07 | 2014-02-07 | Data processing apparatus and method for performing segmented operations |
US14/175,268 | 2014-02-07 | ||
PCT/GB2015/050132 WO2015118299A1 (en) | 2014-02-07 | 2015-01-21 | A data processing apparatus and method for performing segmented operations |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017505491A JP2017505491A (ja) | 2017-02-16 |
JP6469120B2 true JP6469120B2 (ja) | 2019-02-13 |
Family
ID=52450513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016549398A Active JP6469120B2 (ja) | 2014-02-07 | 2015-01-21 | セグメント化された演算を実行するためのデータ処理装置及び方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9557995B2 (ja) |
JP (1) | JP6469120B2 (ja) |
CN (1) | CN105960630B (ja) |
GB (1) | GB2537533B (ja) |
WO (1) | WO2015118299A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220206792A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Methods, systems, and apparatuses to optimize partial flag updating instructions via dynamic two-pass execution in a processor |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2514397B (en) * | 2013-05-23 | 2017-10-11 | Linear Algebra Tech Ltd | Corner detection |
US10514911B2 (en) | 2014-11-26 | 2019-12-24 | International Business Machines Corporation | Structure for microprocessor including arithmetic logic units and an efficiency logic unit |
US9733899B2 (en) * | 2015-11-12 | 2017-08-15 | Arm Limited | Lane position information for processing of vector |
GB2545248B (en) | 2015-12-10 | 2018-04-04 | Advanced Risc Mach Ltd | Data processing |
GB2548600B (en) * | 2016-03-23 | 2018-05-09 | Advanced Risc Mach Ltd | Vector predication instruction |
EP3336692B1 (en) | 2016-12-13 | 2020-04-29 | Arm Ltd | Replicate partition instruction |
EP3336691B1 (en) * | 2016-12-13 | 2022-04-06 | ARM Limited | Replicate elements instruction |
EP3340037B1 (en) | 2016-12-22 | 2019-08-28 | ARM Limited | A data processing apparatus and method for controlling vector memory accesses |
US10908898B2 (en) * | 2017-02-17 | 2021-02-02 | Intel Corporation | Vector instruction for accumulating and compressing values based on input mask |
GB2560159B (en) * | 2017-02-23 | 2019-12-25 | Advanced Risc Mach Ltd | Widening arithmetic in a data processing apparatus |
US11360770B2 (en) | 2017-03-20 | 2022-06-14 | Intel Corporation | Systems, methods, and apparatuses for zeroing a matrix |
US10628157B2 (en) * | 2017-04-21 | 2020-04-21 | Arm Limited | Early predicate look-up |
EP3499362B1 (en) * | 2017-12-13 | 2022-11-30 | ARM Limited | Vector add-with-carry instruction |
US10572409B1 (en) * | 2018-05-10 | 2020-02-25 | Xilinx, Inc. | Sparse matrix processing circuitry |
GB2580068B (en) * | 2018-12-20 | 2021-02-24 | Advanced Risc Mach Ltd | Generating a vector predicate summary |
US11392316B2 (en) * | 2019-05-24 | 2022-07-19 | Texas Instruments Incorporated | System and method for predication handling |
CN110727412B (zh) * | 2019-09-14 | 2022-01-07 | 无锡江南计算技术研究所 | 一种基于掩码的混合浮点乘法低功耗控制方法及装置 |
CN113495849A (zh) * | 2020-04-08 | 2021-10-12 | 慧荣科技股份有限公司 | 物理层的数据流切割装置及方法 |
CN113806246A (zh) * | 2020-06-16 | 2021-12-17 | 安徽寒武纪信息科技有限公司 | 数据处理装置及方法以及相关产品 |
US20230056246A1 (en) * | 2021-08-03 | 2023-02-23 | Micron Technology, Inc. | Parallel matrix operations in a reconfigurable compute fabric |
WO2023015560A1 (en) * | 2021-08-13 | 2023-02-16 | Huawei Technologies Co.,Ltd. | Systems and methods for sparsity-aware vector processing in general purpose cpus |
US11740899B2 (en) * | 2021-08-31 | 2023-08-29 | Micron Technology, Inc. | In-memory associative processing system |
GB2616601B (en) * | 2022-03-11 | 2024-05-08 | Advanced Risc Mach Ltd | Sub-vector-supporting instruction for scalable vector instruction set architecture |
US20230305846A1 (en) * | 2022-03-24 | 2023-09-28 | Intel Corporation | Processor hardware and instructions for vectorized fused and-xor |
CN117459268B (zh) * | 2023-10-25 | 2024-08-23 | 合芯科技(苏州)有限公司 | 基于硬件式访问权限管理的计算系统、方法及总线设备 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6189094B1 (en) * | 1998-05-27 | 2001-02-13 | Arm Limited | Recirculating register file |
US7877573B1 (en) | 2007-08-08 | 2011-01-25 | Nvidia Corporation | Work-efficient parallel prefix sum algorithm for graphics processing units |
US8243083B1 (en) | 2007-12-04 | 2012-08-14 | Nvidia Corporation | System, method, and computer program product for converting a scan algorithm to a segmented scan algorithm in an operator-independent manner |
US20090172348A1 (en) | 2007-12-26 | 2009-07-02 | Robert Cavin | Methods, apparatus, and instructions for processing vector data |
WO2011156247A2 (en) * | 2010-06-11 | 2011-12-15 | Massachusetts Institute Of Technology | Processor for large graph algorithm computations and matrix operations |
US20120113133A1 (en) * | 2010-11-04 | 2012-05-10 | Shpigelblat Shai | System, device, and method for multiplying multi-dimensional data arrays |
US8762655B2 (en) | 2010-12-06 | 2014-06-24 | International Business Machines Corporation | Optimizing output vector data generation using a formatted matrix data structure |
US8924693B2 (en) * | 2011-01-21 | 2014-12-30 | Apple Inc. | Predicting a result for a predicate-generating instruction when processing vector instructions |
-
2014
- 2014-02-07 US US14/175,268 patent/US9557995B2/en active Active
-
2015
- 2015-01-21 WO PCT/GB2015/050132 patent/WO2015118299A1/en active Application Filing
- 2015-01-21 GB GB1610070.3A patent/GB2537533B/en active Active
- 2015-01-21 JP JP2016549398A patent/JP6469120B2/ja active Active
- 2015-01-21 CN CN201580006725.4A patent/CN105960630B/zh active Active
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220206792A1 (en) * | 2020-12-24 | 2022-06-30 | Intel Corporation | Methods, systems, and apparatuses to optimize partial flag updating instructions via dynamic two-pass execution in a processor |
US12039329B2 (en) * | 2020-12-24 | 2024-07-16 | Intel Corporation | Methods, systems, and apparatuses to optimize partial flag updating instructions via dynamic two-pass execution in a processor |
Also Published As
Publication number | Publication date |
---|---|
GB201610070D0 (en) | 2016-07-27 |
GB2537533A (en) | 2016-10-19 |
CN105960630A (zh) | 2016-09-21 |
GB2537533B (en) | 2021-02-17 |
CN105960630B (zh) | 2019-08-02 |
US9557995B2 (en) | 2017-01-31 |
JP2017505491A (ja) | 2017-02-16 |
WO2015118299A1 (en) | 2015-08-13 |
US20150227367A1 (en) | 2015-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6469120B2 (ja) | セグメント化された演算を実行するためのデータ処理装置及び方法 | |
KR102413832B1 (ko) | 벡터 곱셈 덧셈 명령 | |
TWI501148B (zh) | 條件式比較指令 | |
TWI471801B (zh) | 降低於一處理器之積和熔加運算(fma)單元中之功率消耗的技術 | |
KR102256188B1 (ko) | 데이터 처리장치 및 벡터 오퍼랜드를 처리하는 방법 | |
CN109074256B (zh) | 在执行向量操作时管理地址冲突的装置及方法 | |
US9965275B2 (en) | Element size increasing instruction | |
US20180307489A1 (en) | Apparatus and method for performing multiply-and-accumulate-products operations | |
JP2019511056A (ja) | 複素数乗算命令 | |
US11003447B2 (en) | Vector arithmetic and logical instructions performing operations on different first and second data element widths from corresponding first and second vector registers | |
EP3336692A1 (en) | Replicate partition instruction | |
US11977884B2 (en) | Replicate elements instruction | |
JP7324754B2 (ja) | ベクトル・キャリー付き加算命令 | |
TWI531966B (zh) | 計算裝置、計算方法及非暫態機器可讀儲存媒體 | |
CN110914801A (zh) | 在数据处理设备中的向量交叉 | |
US11630667B2 (en) | Dedicated vector sub-processor system | |
US20220326956A1 (en) | Processor embedded with small instruction set | |
JP2022131311A (ja) | ベクトル演算装置、ベクトル演算方法及びプログラム | |
WO2023199014A1 (en) | Technique for handling data elements stored in an array storage | |
WO2023199015A1 (en) | Technique for handling data elements stored in an array storage | |
JPH1185469A (ja) | 並列演算装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181128 |
|
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: 20181221 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6469120 Country of ref document: JP 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 |