JP2012142021A - ベクトルマスク設定技術 - Google Patents
ベクトルマスク設定技術 Download PDFInfo
- Publication number
- JP2012142021A JP2012142021A JP2012087415A JP2012087415A JP2012142021A JP 2012142021 A JP2012142021 A JP 2012142021A JP 2012087415 A JP2012087415 A JP 2012087415A JP 2012087415 A JP2012087415 A JP 2012087415A JP 2012142021 A JP2012142021 A JP 2012142021A
- Authority
- JP
- Japan
- Prior art keywords
- vector
- vector mask
- instruction
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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 OR CALCULATING; 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)
Abstract
【解決手段】本発明によると、上記課題は、ベクトルマスクを格納するための第1処理を検出する第1ロジックと、前記第1処理より以前のベクトルマスク値を生成するための最新の第2処理を特定する第2ロジックと、前記第2処理が特定される場合、前記第1処理の実行を回避する第3ロジックとから構成されることを特徴とするプロセッサにより解決される。
【選択図】図3
Description
405 ベクトルマスクレジスタファイル
410 ALU
403 比較ロジック
505、670、680 プロセッサ
510 キャッシュメモリ
515 メインメモリ
520 HDD
530 ネットワークインタフェース
672、682 MCH
650 PtPインタフェース
690 チップセット
Claims (7)
- 第1処理のソース位置識別子に対応する第1位置から取得されるベクトルマスク値をベクトルマスクレジスタに格納するための第1命令の前記第1処理を命令キューにおいて検出する第1ロジックと、
前記第1処理より以前の第2命令の最新の第2処理を前記命令キューにおいて特定する第2ロジックであって、ベクトルマスク値を設定するため前記第1処理により以降に使用されるべき前記第1位置の値を前記第2処理が設定することを特定する前記第2ロジックと、
前記第1処理と第2処理とが特定され、前記第1位置によって前記第1位置に設定された値が、前記ベクトルマスクレジスタにおいて前記ベクトルマスク値を設定するため前記第2処理により使用されるべきである場合、前記第1処理の実行を禁止し、前記値をマスクとして使用する前記第1処理に後続する何れかのベクトル処理によって前記値が利用可能になるように、前記第2処理に前記値を前記ベクトルマスクレジスタに設定させることを実現する第3ロジックと、
から構成され、
1以上の命令が前記第1位置に前記値を上書きしない前記命令キュー内に前記第1処理と前記第2処理との間に前記1以上の命令が存在することを特徴とするプロセッサ。 - 請求項1記載のプロセッサであって、
前記第2処理は、ベクトルソースレジスタ識別子によって特定されるオペランドと、前記ベクトルマスクレジスタと異なるベクトルデスティネーションレジスタに格納される結果とを有するベクトルブールAND演算を含むことを特徴とするプロセッサ。 - 請求項1記載のプロセッサであって、
前記第2ロジックは、最新の処理として前記第2処理を特定するビットを格納するコンテンツアドレッサブルメモリ(CAM)を有することを特徴とするプロセッサ。 - 請求項1乃至4何れか一項記載のプロセッサを有する計算システム。
- ベクトルマスクレジスタファイルのベクトルマスクレジスタに格納するための第1処理を有する第1命令をキューに格納するステップとであって、前記ベクトルマスク値は前記第1命令において特定されるベクトルソースレジスタからわたされる、前記格納するステップと、
前記ベクトルマスク値を生成し、前記第1処理の実行前に前記ベクトルマスク値を前記ベクトルソースレジスタに格納するための最新の第2処理を有する第2命令について前記キューを検索するステップであって、前記第1処理と前記第2処理との実行の間に前記ベクトルソースレジスタを上書きしない1以上の命令が、前記キュー内の前記第1命令と前記第2命令との間に存在する、前記検索するステップと、
前記第1命令と前記第2命令との検出に応答して、前記第1処理の実行を禁止し、前記ベクトルマスク値をマスクとして使用する前記第1処理に後続する何れかのベクトル処理によって前記ベクトルマスク値が利用可能になるように、前記第2処理に前記ベクトルマスク値を前記ベクトルマスクレジスタに格納させるステップと、
を有する方法。 - 請求項5記載の方法であって、
前記第1処理は、前記ベクトルマスク値を前記ベクトルマスクレジスタファイルに格納するためのsetvmオペコードに対応することを特徴とする方法。 - 請求項6記載の方法であって、
前記第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 true JP2012142021A (ja) | 2012-07-26 |
| JP5539432B2 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 (41)
| 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 |
| US8271832B2 (en) * | 2008-08-15 | 2012-09-18 | Apple Inc. | Non-faulting and first-faulting instructions for processing vectors |
| US8862932B2 (en) * | 2008-08-15 | 2014-10-14 | Apple Inc. | Read XF instruction for processing vectors |
| US8938642B2 (en) * | 2008-08-15 | 2015-01-20 | Apple Inc. | Confirm instruction for processing vectors |
| US9009528B2 (en) * | 2008-08-15 | 2015-04-14 | Apple Inc. | Scalar readXF instruction for processing vectors |
| CN102262205B (zh) * | 2010-05-31 | 2015-08-26 | 无锡中星微电子有限公司 | 一种测试向量源文件的测试点的屏蔽方法和屏蔽装置 |
| CN104303141A (zh) * | 2011-12-22 | 2015-01-21 | 英特尔公司 | 用于从寄存器提取写掩码的系统、装置和方法 |
| US20140201499A1 (en) * | 2011-12-23 | 2014-07-17 | Elmoustapha Ould-Ahmed-Vall | Systems, apparatuses, and methods for performing conversion of a list of index values into a mask value |
| CN111831335A (zh) | 2011-12-23 | 2020-10-27 | 英特尔公司 | 经改进的插入指令的装置和方法 |
| CN104350461B (zh) * | 2011-12-23 | 2017-10-27 | 英特尔公司 | 具有不同的读和写掩码的多元素指令 |
| CN104081341B (zh) | 2011-12-23 | 2017-10-27 | 英特尔公司 | 用于多维数组中的元素偏移量计算的指令 |
| CN104067224B (zh) | 2011-12-23 | 2017-05-17 | 英特尔公司 | 在不同的粒度水平下对数据值进行广播和掩码的指令执行 |
| US9658850B2 (en) * | 2011-12-23 | 2017-05-23 | Intel Corporation | Apparatus and method of improved permute instructions |
| US9588764B2 (en) | 2011-12-23 | 2017-03-07 | Intel Corporation | Apparatus and method of improved extract instructions |
| WO2013095613A2 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method of mask permute instructions |
| WO2013095612A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Apparatus and method for broadcasting from a general purpose register to a vector register |
| US9946540B2 (en) | 2011-12-23 | 2018-04-17 | Intel Corporation | Apparatus and method of improved permute instructions with multiple granularities |
| US9280347B2 (en) | 2012-03-15 | 2016-03-08 | International Business Machines Corporation | Transforming non-contiguous instruction specifiers to contiguous instruction specifiers |
| 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 |
| US9459868B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Instruction to load data up to a dynamically determined memory boundary |
| 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 |
| US9715383B2 (en) * | 2012-03-15 | 2017-07-25 | International Business Machines Corporation | Vector find element equal instruction |
| US9588762B2 (en) | 2012-03-15 | 2017-03-07 | International Business Machines Corporation | Vector find element not equal instruction |
| US9459864B2 (en) | 2012-03-15 | 2016-10-04 | International Business Machines Corporation | Vector string range compare |
| 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 |
| US9804840B2 (en) | 2013-01-23 | 2017-10-31 | International Business Machines Corporation | Vector Galois Field Multiply Sum and Accumulate instruction |
| US9778932B2 (en) * | 2013-01-23 | 2017-10-03 | International Business Machines Corporation | Vector generate mask instruction |
| US9471308B2 (en) | 2013-01-23 | 2016-10-18 | International Business Machines Corporation | Vector floating point test data class immediate instruction |
| 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 |
| US9715385B2 (en) | 2013-01-23 | 2017-07-25 | International Business Machines Corporation | Vector exception code |
| 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 |
| US12223324B2 (en) * | 2022-09-30 | 2025-02-11 | Advanced Micro Devices, Inc. | Methods and apparatus for providing mask register optimization for vector operations |
| CN115904508B (zh) * | 2023-01-06 | 2023-05-05 | 北京微核芯科技有限公司 | 乱序处理器中队列的队列项选择方法及装置 |
Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5818754A (ja) * | 1981-07-27 | 1983-02-03 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | 命令処理ユニツト |
| US5761476A (en) * | 1993-12-30 | 1998-06-02 | Intel Corporation | Non-clocked early read for back-to-back scheduling of instructions |
| JPH10301791A (ja) * | 1997-04-30 | 1998-11-13 | Toshiba Corp | オブジェクトコード最適化装置、オブジェクトコード最適化方法、オブジェクトコード最適化プログラムを記録した機械読み取り可能な記録媒体、及び、コンパイラ |
| US5903769A (en) * | 1997-03-31 | 1999-05-11 | Sun Microsystems, Inc. | Conditional vector processing |
| JP2003520360A (ja) * | 1999-01-28 | 2003-07-02 | ボプス インコーポレイテッド | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| 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 |
| 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 |
| 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 not_active Expired - Fee Related
-
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
Patent Citations (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5818754A (ja) * | 1981-07-27 | 1983-02-03 | インタ−ナシヨナル・ビジネス・マシ−ンズ・コ−ポレ−シヨン | 命令処理ユニツト |
| US5761476A (en) * | 1993-12-30 | 1998-06-02 | Intel Corporation | Non-clocked early read for back-to-back scheduling of instructions |
| US5903769A (en) * | 1997-03-31 | 1999-05-11 | Sun Microsystems, Inc. | Conditional vector processing |
| JPH10301791A (ja) * | 1997-04-30 | 1998-11-13 | Toshiba Corp | オブジェクトコード最適化装置、オブジェクトコード最適化方法、オブジェクトコード最適化プログラムを記録した機械読み取り可能な記録媒体、及び、コンパイラ |
| JP2003520360A (ja) * | 1999-01-28 | 2003-07-02 | ボプス インコーポレイテッド | サブワード実行を用いるvliwベースのアレイプロセッサで条件付き実行をサポートする方法及び装置 |
Non-Patent Citations (1)
| Title |
|---|
| JPN6013033585; Roger Espasa et al.: '"Tarantura:A Vector Extension to the Alpha Architecture"' Proceedings 29th Annual International Symposium on Computer Architecture 2002 , 20020529, IEEE * |
Also Published As
| Publication number | Publication date |
|---|---|
| JP5539432B2 (ja) | 2014-07-02 |
| US20070118720A1 (en) | 2007-05-24 |
| TW200802083A (en) | 2008-01-01 |
| JP2007141246A (ja) | 2007-06-07 |
| US9436468B2 (en) | 2016-09-06 |
| TWI395136B (zh) | 2013-05-01 |
| CN1983235B (zh) | 2010-06-16 |
| CN1983235A (zh) | 2007-06-20 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP5539432B2 (ja) | ベクトルマスク設定技術 | |
| US20240078111A1 (en) | Hardware apparatuses and methods to switch shadow stack pointers | |
| US8539485B2 (en) | Polling using reservation mechanism | |
| US6266768B1 (en) | System and method for permitting out-of-order execution of load instructions | |
| KR102132805B1 (ko) | 커널 모듈을 위한 멀티코어 메모리 데이터 레코더 | |
| EP3716055A1 (en) | System, apparatus and method for symbolic store address generation for data-parallel processor | |
| CN108334400B (zh) | 为安全飞地管理存储器 | |
| CN119537067A (zh) | 用于存储器损坏检测的硬件装置和方法 | |
| JP2023526788A (ja) | マスターシャドウ物理レジスタファイルを利用するための方法及びシステム | |
| EP3543846B1 (en) | Computer system and memory access technology | |
| US20110173613A1 (en) | Virtual Machine Control Structure Identification Decoder | |
| CN111133418A (zh) | 在例外屏蔽更新指令之后允许未中止的事务处理 | |
| CN114357535A (zh) | 一种基于risc-v的安全可信加密处理器架构及其工作方法 | |
| US20250094356A1 (en) | Virtual memory paging system and translation lookaside buffer with pagelets | |
| JP3834145B2 (ja) | ネスト可能な遅延分岐命令を有するマイクロプロセッサを備えたデータ処理装置及びそのマイクロプロセッサを動作させる方法 | |
| US20070118696A1 (en) | Register tracking for speculative prefetching | |
| US6651164B1 (en) | System and method for detecting an erroneous data hazard between instructions of an instruction group and resulting from a compiler grouping error | |
| JP2021515929A (ja) | データ処理 | |
| KR20080025652A (ko) | 요구-기반 프로세싱 자원 할당 | |
| US20090228692A1 (en) | Load Register Instruction Short Circuiting Method | |
| US20170371701A1 (en) | Apparatuses, methods, and systems for granular and adaptive hardware transactional synchronization | |
| US20140365751A1 (en) | Operand generation in at least one processing pipeline | |
| US20260003624A1 (en) | Multi-instruction fusion | |
| WO2019134376A1 (zh) | 虚拟地址确定方法及装置、处理器、存储介质 | |
| JPH0250259A (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 |