JP5539432B2 - ベクトルマスク設定技術 - Google Patents
ベクトルマスク設定技術 Download PDFInfo
- Publication number
- JP5539432B2 JP5539432B2 JP2012087415A JP2012087415A JP5539432B2 JP 5539432 B2 JP5539432 B2 JP 5539432B2 JP 2012087415 A JP2012087415 A JP 2012087415A JP 2012087415 A JP2012087415 A JP 2012087415A JP 5539432 B2 JP5539432 B2 JP 5539432B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- instruction
- vector mask
- value
- register
- 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 - Fee Related
Links
- 238000005516 engineering process Methods 0.000 title description 2
- 238000000034 method Methods 0.000 claims description 75
- 230000015654 memory Effects 0.000 claims description 24
- 238000001514 detection method Methods 0.000 claims 2
- 239000003795 chemical substances by application Substances 0.000 description 4
- 230000000295 complement effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 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/30007—Arrangements for executing specific machine instructions to perform operations on data operands
- G06F9/30029—Logical and Boolean instructions, e.g. XOR, NOT
-
- 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/30018—Bit or string 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/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/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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Advance Control (AREA)
- Complex Calculations (AREA)
- Executing Machine-Instructions (AREA)
- Image Analysis (AREA)
Description
405 ベクトルマスクレジスタファイル
410 ALU
403 比較ロジック
505、670、680 プロセッサ
510 キャッシュメモリ
515 メインメモリ
520 HDD
530 ネットワークインタフェース
672、682 MCH
650 PtPインタフェース
690 チップセット
Claims (10)
- 第1処理のソース位置識別子に対応する第1位置から取得されるベクトルマスク値をベクトルマスクレジスタに格納するための第1命令の前記第1処理を命令キューにおいて検出する第1ロジックと、
前記第1処理より以前の第2命令の最新の第2処理を前記命令キューにおいて特定する第2ロジックであって、前記第2ロジックは、前記ベクトルマスク値を設定するため前記第1処理により以降に使用されるべき前記第1位置の値を前記第2処理が設定することを特定し、1以上の命令が、該1以上の命令が前記第1位置における値を利用しない前記命令キュー内の前記第1命令と前記第2命令との間に存在する、前記第2ロジックと、
前記第1処理と第2処理とが特定され、前記第2命令によって前記第1位置に設定された値が、前記ベクトルマスクレジスタにおいて前記ベクトルマスク値を設定するため前記第1処理により使用されるべきである場合、前記第1処理の実行を禁止し、前記1以上の命令の実行を許可し、前記値をマスクとして使用する前記第1処理に後続する何れかのベクトル処理によって前記値が利用可能になるように、前記第2処理に前記値を前記ベクトルマスクレジスタに設定させることを実現する第3ロジックと、
を有するプロセッサ。 - 請求項1記載のプロセッサであって、
前記第2処理は、ベクトルソースレジスタ識別子によって特定されるオペランドと、前記ベクトルマスクレジスタと異なるベクトルデスティネーションレジスタに格納される結果とを有するベクトルブールAND演算を含むことを特徴とするプロセッサ。 - 請求項1記載のプロセッサであって、
前記第2ロジックは、最新の処理として前記第2処理を特定するビットを格納するコンテンツアドレッサブルメモリ(CAM)を有することを特徴とするプロセッサ。 - 請求項1乃至3何れか一項記載のプロセッサを有する計算システム。
- ハードウェアにより実行される方法であって、
ベクトルマスクレジスタファイルのベクトルマスクレジスタにベクトルマスク値を格納するための第1処理を有する第1命令をキューに格納するステップであって、前記ベクトルマスク値は前記第1命令において特定されるベクトルソースレジスタからわたされる、前記格納するステップと、
前記ベクトルマスク値を生成し、前記第1処理の実行前に前記ベクトルマスク値を前記ベクトルソースレジスタに格納するための最新の第2処理を有する第2命令について前記キューを検索するステップであって、前記第1処理と前記第2処理との実行の間に前記ベクトルソースレジスタを利用しない1以上の命令が、前記キュー内の前記第1命令と前記第2命令との間に存在する、前記検索するステップと、
前記第1命令と前記第2命令との検出に応答して、前記第1処理の実行を禁止し、前記1以上の命令の実行を許可し、前記ベクトルマスク値をマスクとして使用する前記第1処理に後続する何れかのベクトル処理によって前記ベクトルマスク値が利用可能になるように、前記第2処理に前記ベクトルマスク値を前記ベクトルマスクレジスタに格納させるステップと、
を有する方法。 - 請求項5記載の方法であって、
前記第1処理は、前記ベクトルマスク値を前記ベクトルマスクレジスタファイルに格納するためのsetvmオペコードに対応することを特徴とする方法。 - 請求項6記載の方法であって、
前記第2処理は、前記ベクトルマスク値を生成するためのvandオペコードに対応することを特徴とする方法。 - ハードウェアにより実行される方法であって、
第1命令と第2命令とを検索するステップであって、前記第1命令は、該第1命令において特定されたベクトルソースレジスタからわたされたベクトルマスク値をベクトルマスクレジスタファイルのベクトルマスクレジスタに格納する第1処理を有し、前記第2命令は、前記第1処理の実行前に前記ベクトルマスク値を生成し、前記ベクトルソースレジスタに格納する最新の第2処理を有し、前記第1処理と前記第2処理との実行の間に前記ベクトルソースレジスタを利用しない1以上の命令が前記第1命令と前記第2命令との間に存在する、前記検索するステップと、
前記第1命令と前記第2命令との検出に応答して、前記第1処理の実行を禁止し、前記1以上の命令の実行を許可し、マスクとして前記ベクトルマスク値を利用する前記第1処理に後続する何れかのベクトル処理により前記ベクトルマスク値が利用可能になるように、前記第2処理に前記ベクトルマスク値を前記ベクトルマスクレジスタに格納させるステップと、
を有する方法。 - 請求項8記載の方法であって、
前記第1処理は、前記ベクトルマスク値を前記ベクトルマスクレジスタファイルに格納するためのsetvmオペコードに対応することを特徴とする方法。 - 請求項9記載の方法であって、
前記第2処理は、前記ベクトルマスク値を生成するためのvandオペコードに対応することを特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/286,735 US9436468B2 (en) | 2005-11-22 | 2005-11-22 | Technique for setting a vector mask |
US11/286,735 | 2005-11-22 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006313121A Division JP2007141246A (ja) | 2005-11-22 | 2006-11-20 | ベクトルマスク設定技術 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2012142021A JP2012142021A (ja) | 2012-07-26 |
JP5539432B2 true JP5539432B2 (ja) | 2014-07-02 |
Family
ID=38054829
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006313121A Pending JP2007141246A (ja) | 2005-11-22 | 2006-11-20 | ベクトルマスク設定技術 |
JP2012087415A Expired - Fee Related JP5539432B2 (ja) | 2005-11-22 | 2012-04-06 | ベクトルマスク設定技術 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006313121A Pending JP2007141246A (ja) | 2005-11-22 | 2006-11-20 | ベクトルマスク設定技術 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9436468B2 (ja) |
JP (2) | JP2007141246A (ja) |
CN (1) | CN1983235B (ja) |
TW (1) | TWI395136B (ja) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9529592B2 (en) | 2007-12-27 | 2016-12-27 | Intel Corporation | Vector mask memory access instructions to perform individual and sequential memory access operations if an exception occurs during a full width memory access operation |
US9009528B2 (en) * | 2008-08-15 | 2015-04-14 | Apple Inc. | Scalar readXF instruction for processing vectors |
US8271832B2 (en) * | 2008-08-15 | 2012-09-18 | Apple Inc. | Non-faulting and first-faulting instructions for processing vectors |
US8938642B2 (en) * | 2008-08-15 | 2015-01-20 | Apple Inc. | Confirm instruction for processing vectors |
US8862932B2 (en) * | 2008-08-15 | 2014-10-14 | Apple Inc. | Read XF instruction for processing vectors |
CN102262205B (zh) * | 2010-05-31 | 2015-08-26 | 无锡中星微电子有限公司 | 一种测试向量源文件的测试点的屏蔽方法和屏蔽装置 |
WO2013095582A1 (en) * | 2011-12-22 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for extracting a writemask from a register |
CN107908427B (zh) | 2011-12-23 | 2021-11-09 | 英特尔公司 | 用于多维数组中的元素偏移量计算的指令 |
CN111831335A (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
CN108519921B (zh) * | 2011-12-23 | 2022-07-12 | 英特尔公司 | 用于从通用寄存器向向量寄存器进行广播的装置和方法 |
WO2013095630A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of improved extract instructions background |
WO2013095661A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Systems, apparatuses, and methods for performing conversion of a list of index values into a mask value |
WO2013095659A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Multi-element instruction with different read and write masks |
US9658850B2 (en) * | 2011-12-23 | 2017-05-23 | Intel Corporation | Apparatus and method of improved permute instructions |
CN107220029B (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 掩码置换指令的装置和方法 |
CN116414459A (zh) * | 2011-12-23 | 2023-07-11 | 英特尔公司 | 在不同的粒度水平下对数据值进行广播和掩码的指令执行 |
US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
US9268566B2 (en) | 2012-03-15 | 2016-02-23 | International Business Machines Corporation | Character data match determination by loading registers at most up to memory block boundary and comparing |
US9454366B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Copying character data having a termination character from one memory location to another |
US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
US9459867B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a specified memory boundary indicated by the instruction |
US9710266B2 (en) | 2012-03-15 | 2017-07-18 | International Business Machines Corporation | Instruction to compute the distance to a specified memory boundary |
US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
US9715383B2 (en) | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
US9454367B2 (en) | 2012-03-15 | 2016-09-27 | International Business Machines Corporation | Finding the length of a set of character data having a termination character |
US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
US9823924B2 (en) | 2013-01-23 | 2017-11-21 | International Business Machines Corporation | Vector element rotate and insert under mask instruction |
US9513906B2 (en) | 2013-01-23 | 2016-12-06 | International Business Machines Corporation | Vector checksum instruction |
US9778932B2 (en) * | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
US9645820B2 (en) * | 2013-06-27 | 2017-05-09 | Intel Corporation | Apparatus and method to reserve and permute bits in a mask register |
US20150186137A1 (en) * | 2013-12-27 | 2015-07-02 | Tal Uliel | Systems, apparatuses, and methods for vector bit test |
US9996350B2 (en) | 2014-12-27 | 2018-06-12 | Intel Corporation | Hardware apparatuses and methods to prefetch a multidimensional block of elements from a multidimensional array |
US10203955B2 (en) | 2014-12-31 | 2019-02-12 | Intel Corporation | Methods, apparatus, instructions and logic to provide vector packed tuple cross-comparison functionality |
US20170177350A1 (en) * | 2015-12-18 | 2017-06-22 | Intel Corporation | Instructions and Logic for Set-Multiple-Vector-Elements Operations |
US10977033B2 (en) * | 2016-03-25 | 2021-04-13 | Micron Technology, Inc. | Mask patterns generated in memory from seed vectors |
US20240111526A1 (en) * | 2022-09-30 | 2024-04-04 | Advanced Micro Devices, Inc. | Methods and apparatus for providing mask register optimization for vector operations |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4439828A (en) * | 1981-07-27 | 1984-03-27 | International Business Machines Corp. | Instruction substitution mechanism in an instruction handling unit of a data processing system |
US5214763A (en) * | 1990-05-10 | 1993-05-25 | International Business Machines Corporation | Digital computer system capable of processing two or more instructions in parallel and having a coche and instruction compounding mechanism |
US5761476A (en) * | 1993-12-30 | 1998-06-02 | Intel Corporation | Non-clocked early read for back-to-back scheduling of instructions |
US5634118A (en) * | 1995-04-10 | 1997-05-27 | Exponential Technology, Inc. | Splitting a floating-point stack-exchange instruction for merging into surrounding instructions by operand translation |
US5940625A (en) * | 1996-09-03 | 1999-08-17 | Cray Research, Inc. | Density dependent vector mask operation control apparatus and method |
US5925124A (en) * | 1997-02-27 | 1999-07-20 | International Business Machines Corporation | Dynamic conversion between different instruction codes by recombination of instruction elements |
US5903769A (en) * | 1997-03-31 | 1999-05-11 | Sun Microsystems, Inc. | Conditional vector processing |
JPH10301791A (ja) | 1997-04-30 | 1998-11-13 | Toshiba Corp | オブジェクトコード最適化装置、オブジェクトコード最適化方法、オブジェクトコード最適化プログラムを記録した機械読み取り可能な記録媒体、及び、コンパイラ |
US6366999B1 (en) | 1998-01-28 | 2002-04-02 | Bops, Inc. | Methods and apparatus to support conditional execution in a VLIW-based array processor with subword execution |
US6237086B1 (en) * | 1998-04-22 | 2001-05-22 | Sun Microsystems, Inc. | 1 Method to prevent pipeline stalls in superscalar stack based computing systems |
-
2005
- 2005-11-22 US US11/286,735 patent/US9436468B2/en active Active
-
2006
- 2006-11-16 TW TW095142370A patent/TWI395136B/zh not_active IP Right Cessation
- 2006-11-20 JP JP2006313121A patent/JP2007141246A/ja active Pending
- 2006-11-22 CN CN2006100640836A patent/CN1983235B/zh not_active Expired - Fee Related
-
2012
- 2012-04-06 JP JP2012087415A patent/JP5539432B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
US9436468B2 (en) | 2016-09-06 |
JP2007141246A (ja) | 2007-06-07 |
CN1983235B (zh) | 2010-06-16 |
CN1983235A (zh) | 2007-06-20 |
US20070118720A1 (en) | 2007-05-24 |
JP2012142021A (ja) | 2012-07-26 |
TW200802083A (en) | 2008-01-01 |
TWI395136B (zh) | 2013-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5539432B2 (ja) | ベクトルマスク設定技術 | |
US8539485B2 (en) | Polling using reservation mechanism | |
US12001842B2 (en) | Hardware apparatuses and methods to switch shadow stack pointers | |
US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
KR102132805B1 (ko) | 커널 모듈을 위한 멀티코어 메모리 데이터 레코더 | |
JP2003523573A (ja) | プロセッサにおける書き込みトラヒックを減少するシステム及び方法 | |
EP3716055A1 (en) | System, apparatus and method for symbolic store address generation for data-parallel processor | |
US20070118696A1 (en) | Register tracking for speculative prefetching | |
US8205032B2 (en) | Virtual machine control structure identification decoder | |
JP2023526788A (ja) | マスターシャドウ物理レジスタファイルを利用するための方法及びシステム | |
EP3543846B1 (en) | Computer system and memory access technology | |
JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
US9904549B2 (en) | Method and apparatus for loop-invariant instruction detection and elimination | |
US6711670B1 (en) | System and method for detecting data hazards within an instruction group of a compiled computer program | |
KR20080025652A (ko) | 요구-기반 프로세싱 자원 할당 | |
US6651164B1 (en) | System and method for detecting an erroneous data hazard between instructions of an instruction group and resulting from a compiler grouping error | |
US20170371701A1 (en) | Apparatuses, methods, and systems for granular and adaptive hardware transactional synchronization | |
US20140365751A1 (en) | Operand generation in at least one processing pipeline | |
WO2019134376A1 (zh) | 虚拟地址确定方法及装置、处理器、存储介质 | |
WO2023239671A1 (en) | Virtual memory paging system and translation lookaside buffer with pagelets | |
JPH05108348A (ja) | 並列演算処理装置 | |
JP2000099330A (ja) | コンピュ―タ・プロセッサ・システム | |
JPH02148226A (ja) | 情報処理装置 | |
JPS6337457A (ja) | 並列プロセッサシステムおよび並列プロセッサによる複数の命令列の実行方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130709 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131008 |
|
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: 20140401 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5539432 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140430 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |