JP6843113B2 - メモリと複数のベクトルレジスタ間の複数のデータ構造を転送する装置および方法 - Google Patents
メモリと複数のベクトルレジスタ間の複数のデータ構造を転送する装置および方法 Download PDFInfo
- Publication number
- JP6843113B2 JP6843113B2 JP2018504289A JP2018504289A JP6843113B2 JP 6843113 B2 JP6843113 B2 JP 6843113B2 JP 2018504289 A JP2018504289 A JP 2018504289A JP 2018504289 A JP2018504289 A JP 2018504289A JP 6843113 B2 JP6843113 B2 JP 6843113B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- data
- access
- data structures
- memory
- 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
- 239000013598 vector Substances 0.000 title claims description 268
- 238000000034 method Methods 0.000 title claims description 22
- 238000012545 processing Methods 0.000 claims description 19
- 239000000872 buffer Substances 0.000 claims description 10
- 238000006467 substitution reaction Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 7
- 230000006835 compression Effects 0.000 claims description 5
- 238000007906 compression Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 230000003134 recirculating effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register access
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/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/30098—Register arrangements
- G06F9/30101—Special purpose registers
-
- 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/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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/345—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results
- G06F9/3455—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results using stride
-
- 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
- G06F9/355—Indexed addressing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computing Systems (AREA)
- Complex Calculations (AREA)
- Advance Control (AREA)
- Executing Machine-Instructions (AREA)
Description
Claims (18)
- 各々が複数のデータ要素を含むベクトルオペランドを格納するように構成されたベクトルレジスタのセットと、
メモリ内のデータ構造と前記ベクトルレジスタのセットとの間でベクトルオペランドのデータ要素を移動させるためのアクセス動作を実行するためのアクセス回路であって、各データ構造は前記メモリ内の連続したアドレスに格納された複数のデータ要素を含む、アクセス回路と、
前記セットからの複数のベクトルレジスタと、前記メモリ内で互いに不連続に配置された複数のデータ構造とを特定する単一のアクセス命令に応答して、前記複数の各ベクトルレジスタの各々内のベクトルオペランドが前記複数のデータ構造の各々からの対応するデータ要素を保持するように、前記メモリと前記複数のベクトルレジスタとの間で前記複数のデータ構造を移動させる一連の前記アクセス動作を実行するための前記アクセス回路を制御する制御信号を生成するための、デコード回路と、を含み、
前記単一のアクセス命令は、前記複数のデータ構造のアドレスを決定するために使用される情報を提供するデータ構造識別子フィールドを含み、
前記データ構造識別子フィールドは、前記セット内のベクトルレジスタを特定し、前記ベクトルレジスタの各データ要素は、前記複数のデータ構造の関連する一つへのポインタを提供する、装置。 - 前記複数のデータ構造のうちの1つ以上の複数のデータ要素が、前記メモリと前記複数のベクトルレジスタとの間で移動されるときに再配置される、請求項1に記載の装置。
- 前記単一のアクセス命令がロード命令であり、各特定されたデータ構造のデータ要素を前記メモリから取得し、前記複数のデータ構造のそれぞれから対応するデータ要素を含むベクトルオペランドを各特定されたベクトルレジスタに書き込むために、前記アクセス回路が前記一連のアクセス動作を実行するように前記制御信号に応答する、請求項1または請求項2に記載の装置。
- 前記一連の前記アクセス動作は、一連のギャザー動作を含み、各ギャザー動作は、前記複数のデータ構造のそれぞれから対応するデータ要素を取得し、得られたデータ要素をそのギャザー動作に関連するベクトルレジスタに書き込む、請求項3に記載の装置。
- 前記単一アクセス命令はストア命令であり、前記複数のデータ構造の各々からの対応するデータ要素を含むベクトルオペランドを各特定されたベクトルレジスタから読み出し、前記メモリに書き込まれたときに前記データ要素を再配置し、各個別のデータ構造のデータ要素が前記メモリ内の連続したアドレスに格納されることを確実にする一方で、各データ構造をその不連続な位置に対応する前記メモリ内のアドレスに格納するように、前記アクセス回路は、前記一連のアクセス動作を実行するために制御信号に応答する、請求項1または請求項2に記載の装置。
- 前記一連のアクセス動作は一連のスキャッター動作を含み、各スキャッター動作は、前記複数のデータ構造の各々からの対応するデータ要素を含むベクトルオペランドをそのスキャッター動作に関連するベクトルレジスタから取得し、そのベクトルオペランドのデータ要素を前記複数のデータ構造のアドレスから決定された前記メモリ内のアドレスに書き込む、請求項5に記載の装置。
- 前記単一アクセス命令は、アクセスされるべき前記複数のベクトルレジスタを決定するために使用される情報を提供するベクトルレジスタ識別子フィールドを含む、請求項1乃至6のいずれかに記載の装置。
- 前記ベクトルレジスタ識別子フィールドは、前記セット内の1つのベクトルレジスタを特定するために使用されるベクトルレジスタ識別子と、アクセスされる前記複数のベクトルレジスタ内のベクトルレジスタの数を特定するために使用される整数値とを含み、前記デコード回路は、識別された1つのベクトルレジスタおよび前記整数から前記複数のベクトルレジスタの各々を決定するために所定の規則を適用するように構成される、請求項7に記載の装置。
- 前記デコード回路は、アクセスされる前記複数のベクトルレジスタとして、前記特定された1つのベクトルレジスタを含む連続する複数のベクトルレジスタを決定するように構成される、請求項8に記載の装置。
- 前記アクセス回路は複数のレーン上で動作し、各レーンは前記複数のベクトルレジスタの各々からの対応するデータ要素の位置を組み込み、
前記単一アクセス命令は、前記複数のレーンのうちのどれが一連のアクセス動作のためのアクティブレーンであるかを決定するために使用される述語情報を提供する述語識別子フィールドを含み、
前記アクセス回路は、移動されるべき前記複数のデータ構造として、アクティブレーンに関連するこれらのデータ構造を決定するように構成される、請求項1乃至9のいずれかに記載の装置。 - 前記単一アクセス命令はロード命令であり、前記アクセス回路は、前記述語情報を使用して圧縮動作を実行するように構成され、当該述語情報はロードされる複数のデータ構造を特定するために使用され、そして複数のベクトルレジスタ内の一連の連続レーン内にそれらのデータ構造を格納するように構成される、請求項10に記載の装置。
- 前記単一アクセス命令は、前記複数のデータ構造のアドレスを決定するときに、データ構造識別子フィールド内の情報と組み合わせて適用されるオフセットデータを提供するオフセット識別子フィールドを含む、請求項1乃至11のいずれかに記載の装置。
- 前記アクセス回路は、ロード/ストア部と、前記一連のアクセス動作の実行中にデータ要素を一時的にバッファリングすることを可能にする関連するバッファ記憶装置とを備える、請求項1乃至12のいずれかに記載の装置。
- 前記アクセス回路は、前記一連のアクセス動作を実行するために組み合わせて動作するロード/ストア部およびベクタ置換部を含む、請求項1から12のいずれかに記載の装置。
- 前記ロード/ストア部およびベクトル置換部は、データ要素の中間ベクトルを格納するために使用される前記セット内の1つまたは複数のベクトルレジスタを介してデータ要素を交換するように構成される、請求項14に記載の装置。
- メモリ内のデータ構造と装置のベクトルレジスタのセットとの間でベクトルオペランドのデータ要素を移動させるアクセス動作を実行するための装置を動作させる方法であって、各ベクトルレジスタは、複数のデータ要素を含むベクトルオペランドを格納するように構成され、各データ構造は、前記メモリ内の連続したアドレスに格納された複数のデータ要素を含み、前記方法は、
一連の前記アクセス動作を実行して前記メモリと前記複数のベクトルレジスタとの間で複数のデータ構造を移動させるために、一連の前記アクセス動作を実行するようにアクセス回路を制御するための制御信号を生成するために、前記セットからの複数のベクトルレジスタおよび前記メモリ内で互いに不連続に配置された前記複数のデータ構造を特定する単一のアクセス命令をデコード化することと、
前記一連のアクセス動作の実行中に、前記複数の各ベクトルレジスタ内の前記ベクトルオペランドが前記複数のデータ構造の各々からの対応するデータ要素を保持するように、各データ構造の複数のデータ要素を移動させることと、を含み、
前記単一のアクセス命令は、前記複数のデータ構造のアドレスを決定するために使用される情報を提供するデータ構造識別子フィールドを含み、
前記データ構造識別子フィールドは、前記セット内のベクトルレジスタを特定し、前記ベクトルレジスタの各データ要素は、前記複数のデータ構造の関連する一つへのポインタを提供する、前記方法。 - 各々のベクトルレジスタ手段が複数のデータ要素を含むベクトルオペランドを格納するための、当該ベクトルレジスタ手段のセットと、
メモリ内のデータ構造と前記ベクトルレジスタ手段のセットとの間でベクトルオペランドのデータ要素を移動させるアクセス動作を実行するためのアクセス手段であって、各データ構造は、前記メモリ内の連続したアドレスに格納された複数のデータ要素を含む、アクセス手段と、
前記セットからの複数のベクトルレジスタ手段と、前記メモリ内で互いに不連続に位置する複数のデータ構造とを特定する単一のアクセス命令に応答して、前記複数の各ベクトルレジスタ手段における前記ベクトルオペランドが前記複数のデータ構造の各々からの対応するデータ要素を保持するように、前記メモリと前記複数のベクトルレジスタ手段との間で前記複数のデータ構造を移動させる一連の前記アクセス動作を実行するためのアクセス手段を制御する制御信号を生成するためのデコード手段と、を含み、
前記単一のアクセス命令は、前記複数のデータ構造のアドレスを決定するために使用される情報を提供するデータ構造識別子フィールドを含み、
前記データ構造識別子フィールドは、前記セット内のベクトルレジスタ手段を特定し、前記ベクトルレジスタ手段の各データ要素は、前記複数のデータ構造の関連する一つへのポインタを提供する、装置。 - データ処理装置によって実行されると、請求項1〜15のいずれか1項に記載の装置に対応する命令実行環境を提供する仮想マシンを提供する非一時的なコンピュータ可読記憶媒体に格納されたコンピュータプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/814,590 | 2015-07-31 | ||
US14/814,590 US9875214B2 (en) | 2015-07-31 | 2015-07-31 | Apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers |
PCT/GB2016/051841 WO2017021678A1 (en) | 2015-07-31 | 2016-06-20 | An apparatus and method for transferring a plurality of data structures between memory and a plurality of vector registers |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018523238A JP2018523238A (ja) | 2018-08-16 |
JP6843113B2 true JP6843113B2 (ja) | 2021-03-17 |
Family
ID=56235851
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018504289A Active JP6843113B2 (ja) | 2015-07-31 | 2016-06-20 | メモリと複数のベクトルレジスタ間の複数のデータ構造を転送する装置および方法 |
Country Status (8)
Country | Link |
---|---|
US (1) | US9875214B2 (ja) |
EP (1) | EP3329362B1 (ja) |
JP (1) | JP6843113B2 (ja) |
KR (1) | KR20180039645A (ja) |
CN (1) | CN107851014B (ja) |
IL (1) | IL256163B (ja) |
TW (1) | TWI709863B (ja) |
WO (1) | WO2017021678A1 (ja) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6503945B2 (ja) * | 2015-07-13 | 2019-04-24 | 富士通株式会社 | 情報処理装置、並列計算機システム、ファイルサーバ通信プログラム及びファイルサーバ通信方法 |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
US10338920B2 (en) * | 2015-12-18 | 2019-07-02 | Intel Corporation | Instructions and logic for get-multiple-vector-elements operations |
US20170177352A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Lane-Based Strided Store Operations |
US10152321B2 (en) * | 2015-12-18 | 2018-12-11 | Intel Corporation | Instructions and logic for blend and permute operation sequences |
US20170177359A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Lane-Based Strided Scatter Operations |
US20170177543A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Aggregate scatter instructions |
US10901940B2 (en) * | 2016-04-02 | 2021-01-26 | Intel Corporation | Processors, methods, systems, and instructions to atomically store to memory data wider than a natively supported data width |
US10216515B2 (en) * | 2016-10-18 | 2019-02-26 | Oracle International Corporation | Processor load using a bit vector to calculate effective address |
EP3340037B1 (en) * | 2016-12-22 | 2019-08-28 | ARM Limited | A data processing apparatus and method for controlling vector memory accesses |
US11182200B2 (en) | 2017-06-29 | 2021-11-23 | Texas Instruments Incorporated | Streaming engine with short cut start instructions |
US20190272175A1 (en) * | 2018-03-01 | 2019-09-05 | Qualcomm Incorporated | Single pack & unpack network and method for variable bit width data formats for computational machines |
US11175915B2 (en) | 2018-10-10 | 2021-11-16 | Micron Technology, Inc. | Vector registers implemented in memory |
US10970072B2 (en) * | 2018-12-21 | 2021-04-06 | Intel Corporation | Systems and methods to transpose vectors on-the-fly while loading from memory |
GB2584268B (en) * | 2018-12-31 | 2021-06-30 | Graphcore Ltd | Load-Store Instruction |
GB2580664B (en) | 2019-01-22 | 2021-01-13 | Graphcore Ltd | Double load instruction |
CN111813446A (zh) * | 2019-04-12 | 2020-10-23 | 杭州中天微系统有限公司 | 一种数据加载和存储指令的处理方法和处理装置 |
US11327862B2 (en) * | 2019-05-20 | 2022-05-10 | Micron Technology, Inc. | Multi-lane solutions for addressing vector elements using vector index registers |
WO2020250419A1 (ja) * | 2019-06-14 | 2020-12-17 | 日本電気株式会社 | 制御装置、制御方法、及び制御プログラムが格納された非一時的なコンピュータ可読媒体 |
CN113626082A (zh) * | 2020-05-08 | 2021-11-09 | 安徽寒武纪信息科技有限公司 | 数据处理方法及装置以及相关产品 |
US11204889B1 (en) * | 2021-03-29 | 2021-12-21 | SambaNova Systems, Inc. | Tensor partitioning and partition access order |
US11366783B1 (en) | 2021-03-29 | 2022-06-21 | SambaNova Systems, Inc. | Multi-headed multi-buffer for buffering data for processing |
US11748101B2 (en) * | 2021-07-13 | 2023-09-05 | Arm Limited | Handling of single-copy-atomic load/store instruction with a memory access request shared by micro-operations |
US11709611B2 (en) | 2021-10-26 | 2023-07-25 | SambaNova Systems, Inc. | Determining and using memory unit partitioning solutions for reconfigurable dataflow computing systems |
CN113918883B (zh) * | 2021-11-03 | 2022-05-27 | 海光信息技术股份有限公司 | 数据处理方法、装置以及设备和计算机可读存储介质 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5689653A (en) | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
US5812147A (en) * | 1996-09-20 | 1998-09-22 | Silicon Graphics, Inc. | Instruction methods for performing data formatting while moving data between memory and a vector register file |
US6496902B1 (en) * | 1998-12-31 | 2002-12-17 | Cray Inc. | Vector and scalar data cache for a vector multiprocessor |
GB2382887B (en) * | 2001-10-31 | 2005-09-28 | Alphamosaic Ltd | Instruction execution in a processor |
GB2402759B (en) * | 2003-06-12 | 2005-12-21 | Advanced Risc Mach Ltd | Data processing apparatus and method for transferring data values between a register file and a memory |
JP3961461B2 (ja) * | 2003-07-15 | 2007-08-22 | エヌイーシーコンピュータテクノ株式会社 | ベクトル処理装置、および、ベクトル処理方法 |
US7421565B1 (en) * | 2003-08-18 | 2008-09-02 | Cray Inc. | Method and apparatus for indirectly addressed vector load-add -store across multi-processors |
GB2409066B (en) * | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
GB2409059B (en) | 2003-12-09 | 2006-09-27 | Advanced Risc Mach Ltd | A data processing apparatus and method for moving data between registers and memory |
US9557994B2 (en) | 2004-07-13 | 2017-01-31 | Arm Limited | Data processing apparatus and method for performing N-way interleaving and de-interleaving operations where N is an odd plural number |
US20070011442A1 (en) * | 2005-07-06 | 2007-01-11 | Via Technologies, Inc. | Systems and methods of providing indexed load and store operations in a dual-mode computer processing environment |
US7921263B2 (en) | 2006-12-22 | 2011-04-05 | Broadcom Corporation | System and method for performing masked store operations in a processor |
US20120060016A1 (en) * | 2010-09-07 | 2012-03-08 | International Business Machines Corporation | Vector Loads from Scattered Memory Locations |
US8635431B2 (en) * | 2010-12-08 | 2014-01-21 | International Business Machines Corporation | Vector gather buffer for multiple address vector loads |
US20120254591A1 (en) * | 2011-04-01 | 2012-10-04 | Hughes Christopher J | Systems, apparatuses, and methods for stride pattern gathering of data elements and stride pattern scattering of data elements |
DE112011105664T5 (de) * | 2011-09-26 | 2014-08-21 | Intel Corporation | Instruktion und Logik zum Bereitstellen einer Vektorstreuungs-Op- und -Hol-Op-Funktionalität |
WO2013095553A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Instructions for storing in general purpose registers one of two scalar constants based on the contents of vector write masks |
CN104011667B (zh) * | 2011-12-22 | 2016-11-09 | 英特尔公司 | 用于滑动窗口数据访问的设备和方法 |
CN104137059B (zh) * | 2011-12-23 | 2018-10-09 | 英特尔公司 | 多寄存器分散指令 |
WO2013180738A1 (en) | 2012-06-02 | 2013-12-05 | Intel Corporation | Scatter using index array and finite state machine |
US8972697B2 (en) | 2012-06-02 | 2015-03-03 | Intel Corporation | Gather using index array and finite state machine |
US9348601B2 (en) * | 2012-12-26 | 2016-05-24 | Intel Corporation | Coalescing adjacent gather/scatter operations |
JP6253514B2 (ja) * | 2014-05-27 | 2017-12-27 | ルネサスエレクトロニクス株式会社 | プロセッサ |
-
2015
- 2015-07-31 US US14/814,590 patent/US9875214B2/en active Active
-
2016
- 2016-06-20 EP EP16732327.8A patent/EP3329362B1/en active Active
- 2016-06-20 KR KR1020187005036A patent/KR20180039645A/ko not_active Application Discontinuation
- 2016-06-20 CN CN201680043226.7A patent/CN107851014B/zh active Active
- 2016-06-20 JP JP2018504289A patent/JP6843113B2/ja active Active
- 2016-06-20 WO PCT/GB2016/051841 patent/WO2017021678A1/en active Application Filing
- 2016-07-27 TW TW105123737A patent/TWI709863B/zh active
-
2017
- 2017-12-07 IL IL256163A patent/IL256163B/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
IL256163A (en) | 2018-02-28 |
CN107851014B (zh) | 2022-08-09 |
WO2017021678A1 (en) | 2017-02-09 |
IL256163B (en) | 2020-02-27 |
CN107851014A (zh) | 2018-03-27 |
US9875214B2 (en) | 2018-01-23 |
TWI709863B (zh) | 2020-11-11 |
EP3329362A1 (en) | 2018-06-06 |
US20170031865A1 (en) | 2017-02-02 |
KR20180039645A (ko) | 2018-04-18 |
TW201717053A (zh) | 2017-05-16 |
EP3329362B1 (en) | 2022-03-30 |
JP2018523238A (ja) | 2018-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6843113B2 (ja) | メモリと複数のベクトルレジスタ間の複数のデータ構造を転送する装置および方法 | |
KR102628985B1 (ko) | 벡터 데이터 전송 명령어 | |
TWI713589B (zh) | 處理用於向量算術指令的例外狀況 | |
US9411589B2 (en) | Branch-free condition evaluation | |
US9256427B2 (en) | Tracking multiple conditions in a general purpose register and instruction therefor | |
JP6908601B2 (ja) | ベクトルロード命令 | |
US9081564B2 (en) | Converting scalar operation to specific type of vector operation using modifier instruction | |
US10514919B2 (en) | Data processing apparatus and method for processing vector operands | |
US9965275B2 (en) | Element size increasing instruction | |
KR102458467B1 (ko) | 벡터 생성 명령 | |
US6175909B1 (en) | Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20180625 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190613 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200423 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200813 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20201113 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20201117 |
|
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: 20210129 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6843113 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |