JP5148680B2 - 複数のデータ・エレメントの収集及び分散 - Google Patents
複数のデータ・エレメントの収集及び分散 Download PDFInfo
- Publication number
- JP5148680B2 JP5148680B2 JP2010273399A JP2010273399A JP5148680B2 JP 5148680 B2 JP5148680 B2 JP 5148680B2 JP 2010273399 A JP2010273399 A JP 2010273399A JP 2010273399 A JP2010273399 A JP 2010273399A JP 5148680 B2 JP5148680 B2 JP 5148680B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- storage
- data elements
- execution
- single instruction
- 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
- 230000015654 memory Effects 0.000 claims description 94
- 238000000034 method Methods 0.000 claims description 79
- 238000003860 storage Methods 0.000 claims description 72
- 230000008569 process Effects 0.000 claims description 66
- 238000012545 processing Methods 0.000 claims description 45
- 238000012546 transfer Methods 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000012856 packing Methods 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 239000013598 vector Substances 0.000 description 6
- 238000013500 data storage Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 239000000872 buffer Substances 0.000 description 2
- 230000001427 coherent effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012800 visualization 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/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/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
- 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/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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3861—Recovery, e.g. branch miss-prediction, exception handling
- G06F9/3865—Recovery, e.g. branch miss-prediction, exception handling using deferred exception handling, e.g. exception flags
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)
- Memory System Of A Hierarchy Structure (AREA)
- Debugging And Monitoring (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
110 システム・メモリ
114 I/O装置
122 キーボード、マウス
124 音声I/O
126 通信装置
128 データ記憶装置
130 コード
132、118 バス・ブリッジ
134 メモリ制御部
138 高性能グラフィックス
140、160 プロセッサ
142、162 キャッシュ
144、164、108、112 バスI/F
202、204 メモリ
214 I/O装置
218 バス・ブリッジ
222 キーボード/マウス
224 音声I/O
226 通信装置
228 データ記憶装置
230 コード
238 高性能グラフィックス
270、280 プロセッサ
274、284 プロセッサ・コア
290 チップセット
410 マスク・レジスタ
416 キャッシュ・メモリ
435 外部メモリ
514 ソース/宛先レジスタ
Claims (30)
- プロセッサ装置により、複数のデータ・エレメントに対する第1の記憶域と第2の記憶域との間のデータ転送処理を指定する単一の命令をデコードする段階;
該プロセッサ内の演算実行部により、実行のために該単一の命令を発行する段階、
前記単一の命令の実行中に例外の発生を検出する段階、及び
該例外に応答して、該例外を配信する前に、保留されているトラップ又は割り込みを例外ハンドラに配信する段階、
を有する方法。 - 前記単一の命令の実行に応答して、前記第1及び第2の記憶域間で前記複数のデータ・エレメントを転送する段階、
を更に有し、
前記実行に応答して、配信する段階は、
前記例外の配信の前に、前記転送されたデータ・エレメントに関連する保留されているトラップ又は割り込みを前記例外ハンドラに配信する段階、
を更に有する、
ことを特徴とする請求項1に記載の方法。 - 前記単一の命令の実行が再開したとき、前記データ・エレメントが転送されるべきでないと示すよう、前記転送されたデータ・エレメントに対応するマスク・エレメントを更新する段階、
を更に有する請求項2に記載の方法。 - 前記トラップ又は割り込みは、データ中断点トラップである、請求項1記載の方法。
- 前記第1の記憶域は、SIMDレジスタであり、
該SIMDレジスタへ又は該SIMDレジスタから転送されているデータに関連する例外は、所定の順序で配信され、
該順序は、フォルトしているデータ・エレメントの、前記SIMDレジスタ内の他のフォルトしているデータ・エレメントに対する相対位置に基づく、
ことを特徴とする請求項1に記載の方法。 - 第1又は第2の実施がより良好に実行されることを示す予測値に基づき、前記単一の命令の該第1及び第2の実施の間で選択する段階、
を更に有する請求項1に記載の方法。 - 前記単一の命令の実行中にアクセスされた記憶域が閾数を超えたことに基づき、前記予測値を更新する段階、
を更に有する請求項6に記載の方法。 - 前記第1の実施は、重複していない記憶域からデータ・エレメントをロードする前に、重複している記憶域を有するデータ・エレメントをロードするために、処理に関するループを実行する段階を有する、
ことを特徴とする請求項6に記載の方法。 - 前記重複している記憶域は、キャッシュ・ラインを有する、
ことを特徴とする請求項8に記載の方法。 - 前記第1の実施は、
第1のデータ・エレメント及び第2のデータ・エレメントが重複している記憶域に格納されるべきであると決定する段階、
前記第1のデータ・エレメントに関連する最初の格納処理をスキップする段階、
前記第1及び第2のデータ・エレメントに対して次の格納処理を実行する段階、
を有する、
ことを特徴とする請求項6記載の方法。 - 複数のデータ・エレメントを格納するよう構成された第1の記憶域及び第2の記憶域、
前記複数のデータ・エレメントに対する前記第1及び第2の記憶域間の転送処理を指定する単一の命令をデコードするよう構成されたデコーダ、
前記デコードされた命令を受信するために該デコーダに結合され、前記転送処理を実行するために前記第1及び第2の記憶域に結合された演算実行部、
トラップ又は割り込みを受信する例外ハンドラ、
を有し、
前記単一の命令の実行中に例外が発生すると、前記例外を送信する前に、前記トラップ又は割り込みを前記例外ハンドラへ送信する、
ことを特徴とするプロセッサ。 - 前記単一の命令は、複数のマスク・エレメントを格納するよう構成された第3の記憶域を指定するように動作し、
各マスク・エレメントは、前記複数のデータ・エレメントの中の個々のデータ・エレメントに対応し、
前記演算実行部は、前記単一の命令が再開されたときに、データ・エレメントが転送されるべきでないと示すよう、転送されたデータ・エレメントに対応するマスク・エレメントを更新する、
ことを特徴とする請求項11に記載のプロセッサ。 - 前記トラップ又は割り込みは、データ中断点トラップである、請求項12記載のプロセッサ。
- 前記第1の記憶域は、SIMDレジスタであり、
該SIMDレジスタへ又は該SIMDレジスタから転送されているデータに関連する例外は、所定の順序で配信され、
該順序は、フォルトしているデータ・エレメントの、前記SIMDレジスタ内の他のフォルトしているデータ・エレメントに対する相対位置に基づく、
ことを特徴とする請求項11に記載のプロセッサ。 - 前記演算実行部は、
前記複数のデータ・エレメントを前記第1及び第2の記憶域の間で転送するよう構成された第1の実行ロジック及び第2の実行ロジック、
前記第1及び第2の実行ロジックの間で選択するよう構成された選択ロジック、
を更に有する、
ことを特徴とする請求項11記載のプロセッサ。 - 前記選択ロジックは、前記第1又は第2の実行ロジックが前記転送処理を事項するときにより良い性能を提供すると示す予測値を設定する予測ロジックを有する、
ことを特徴とする請求項15に記載のプロセッサ。 - 前記予測ロジックは、前記単一の命令の実行中にアクセスされた記憶域が閾数を超えたことに基づき、前記予測値を更新する、
ことを特徴とする請求項16に記載のプロセッサ。 - 前記第1の実行ロジックは、重複していない記憶域からデータ・エレメントをロードする前に、重複している記憶域を有するデータ・エレメントをロードするために、処理に関するループを実行するよう構成される、
ことを特徴とする請求項15に記載のプロセッサ。 - 前記重複している記憶域は、キャッシュ・ラインを有する、
ことを特徴とする請求項18に記載のプロセッサ。 - 前記第1の実行ロジックは、
第1のデータ・エレメント及び第2のデータ・エレメントが重複している記憶域に格納されるべきであると決定し、
肯定的な決定に応答して、
前記第1のデータ・エレメントに関連する最初の格納処理をスキップし、
前記第1及び第2のデータ・エレメントに対して次の格納処理を実行する、
ことを特徴とする請求項15記載のプロセッサ。 - 第1の記憶域に結合されたメモリ制御部、
該メモリ制御部に結合されたプロセッサ、
を有し、
前記プロセッサは、
複数のデータ・エレメントを格納するよう構成された第2の記憶域及び第3の記憶域、
前記複数のデータ・エレメントに対する前記第1、第2及び第3の記憶域のうちの2以上の間の転送処理を指定する単一の命令をデコードするよう構成されたデコーダ、
前記第2及び第3の記憶域に結合され、前記デコードされた命令を受信するために該デコーダに更に結合され、前記単一の命令を実行するよう構成された演算実行部、
トラップ又は割り込みを受信する例外ハンドラ、
を有し、
前記プロセッサは、前記単一の命令の実行中に例外が発生すると、前記例外を送信する前に、前記トラップ又は割り込みを前記例外ハンドラへ送信するよう構成される、
ことを特徴とするシステム。 - 前記単一の命令は、複数のマスク・エレメントを格納するよう構成された第4の記憶域を指定するように動作し、
各マスク・エレメントは、前記複数のデータ・エレメントの中の個々のデータ・エレメントに対応し、
前記演算実行部は、前記単一の命令が再開されたときに、データ・エレメントが転送されるべきでないと示すよう、転送されたデータ・エレメントに対応するマスク・エレメントを更新する、
ことを特徴とする請求項21に記載のシステム。 - 前記トラップ又は割り込みは、データ中断点トラップである、ことを特徴とする請求項22記載のシステム。
- 前記第2の記憶域は、SIMDレジスタであり、
該SIMDレジスタへ又は該SIMDレジスタから転送されているデータに関連する例外は、所定の順序で配信され、
該順序は、フォルトしているデータ・エレメントの、前記SIMDレジスタ内の他のフォルトしているデータ・エレメントに対する相対位置に基づく、
ことを特徴とする請求項21に記載のシステム。 - 前記演算実行部は、
前記単一の命令を実行するよう構成された第1及び第2の実行ロジック、
前記第1及び第2の実行ロジックの間で選択するよう構成された選択ロジック、
を有する、
ことを特徴とする請求項21記載のシステム。 - 前記選択ロジックは、前記第1又は第2の実行ロジックが前記転送処理を事項するときにより良い性能を提供すると示す予測値を設定する予測ロジックを有する、
ことを特徴とする請求項25に記載のシステム。 - 前記予測ロジックは、前記単一の命令の実行中にアクセスされた記憶域が閾数を超えたことに基づき、前記予測値を更新する、
ことを特徴とする請求項26に記載のシステム。 - 前記第1の実行ロジックは、重複していない記憶域からデータ・エレメントをロードする前に、重複している記憶域を有するデータ・エレメントをロードするために、処理に関するループを実行するよう構成される、
ことを特徴とする請求項25に記載のシステム。 - 前記第1の実行ロジックは、
第1のデータ・エレメント及び第2のデータ・エレメントが重複している記憶域に格納されるべきであると決定し、
肯定的な決定に応答して、
前記第1のデータ・エレメントに関連する最初の格納処理をスキップし、
前記第1及び第2のデータ・エレメントに対して次の格納処理を実行する、
ことを特徴とする請求項25記載のシステム。 - 格納された命令を有するコンピュータ可読媒体であって、
該命令は、プロセッサに、
複数のデータ・エレメントに対する第1の記憶域と第2の記憶域との間の転送処理を指定する単一の命令をデコードさせ、
前記プロセッサ内の演算実行部による実行のために前記単一の命令を発行させ、
前記単一の命令の実行中に例外の発生を検出させ、
前記単一の命令の実行に応答して、前記複数のデータ・エレメントのうちの1つのデータ・エレメントを前記第1及び第2の記憶域間で転送させ、
前記例外を分配する前に、前記転送されたデータ・エレメントに関連するトラップ又は割り込みを前記例外ハンドラに配信させる、
ことを特徴とするコンピュータ可読媒体。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/644,440 | 2009-12-22 | ||
US12/644,440 US8447962B2 (en) | 2009-12-22 | 2009-12-22 | Gathering and scattering multiple data elements |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012261129A Division JP5612061B2 (ja) | 2009-12-22 | 2012-11-29 | 複数のデータ・エレメントの収集及び分散 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011134318A JP2011134318A (ja) | 2011-07-07 |
JP5148680B2 true JP5148680B2 (ja) | 2013-02-20 |
Family
ID=44152780
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010273399A Active JP5148680B2 (ja) | 2009-12-22 | 2010-12-08 | 複数のデータ・エレメントの収集及び分散 |
JP2012261129A Active JP5612061B2 (ja) | 2009-12-22 | 2012-11-29 | 複数のデータ・エレメントの収集及び分散 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012261129A Active JP5612061B2 (ja) | 2009-12-22 | 2012-11-29 | 複数のデータ・エレメントの収集及び分散 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8447962B2 (ja) |
JP (2) | JP5148680B2 (ja) |
CN (2) | CN102103483B (ja) |
DE (1) | DE102010053088A1 (ja) |
TW (1) | TWI439929B (ja) |
Families Citing this family (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8447962B2 (en) * | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
JP5573134B2 (ja) * | 2009-12-04 | 2014-08-20 | 日本電気株式会社 | ベクトル型計算機及びベクトル型計算機の命令制御方法 |
US10175990B2 (en) * | 2009-12-22 | 2019-01-08 | Intel Corporation | Gathering and scattering multiple data elements |
CN103502935B (zh) | 2011-04-01 | 2016-10-12 | 英特尔公司 | 向量友好指令格式及其执行 |
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 |
KR101877347B1 (ko) * | 2011-09-26 | 2018-07-12 | 인텔 코포레이션 | 벡터 로드-op/저장-op에 스트라이드 기능을 제공하는 명령어 및 로직 |
US9672036B2 (en) * | 2011-09-26 | 2017-06-06 | Intel Corporation | Instruction and logic to provide vector loads with strides and masking functionality |
GB2508533B (en) | 2011-09-26 | 2020-01-01 | Intel Corp | Instruction and logic to provide vector scatter-op and gather-op functionality |
CN106293631B (zh) * | 2011-09-26 | 2020-04-10 | 英特尔公司 | 用于提供向量分散操作和聚集操作功能的指令和逻辑 |
US8839429B2 (en) * | 2011-11-07 | 2014-09-16 | Qualcomm Incorporated | Methods, devices, and systems for detecting return-oriented programming exploits |
US8842126B2 (en) * | 2011-12-13 | 2014-09-23 | Advanced Micro Devices, Inc. | Methods and systems to facilitate operation in unpinned memory |
CN104011670B (zh) | 2011-12-22 | 2016-12-28 | 英特尔公司 | 用于基于向量写掩码的内容而在通用寄存器中存储两个标量常数之一的指令 |
CN104025022B (zh) * | 2011-12-23 | 2017-09-19 | 英特尔公司 | 用于具有推测支持的向量化的装置和方法 |
US10055225B2 (en) * | 2011-12-23 | 2018-08-21 | Intel Corporation | Multi-register scatter instruction |
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 |
WO2013095657A1 (en) * | 2011-12-23 | 2013-06-27 | Intel Corporation | Instruction and logic to provide vector blend and permute functionality |
WO2013095672A1 (en) | 2011-12-23 | 2013-06-27 | Intel Corporation | Multi-register gather instruction |
CN114721721A (zh) * | 2011-12-23 | 2022-07-08 | 英特尔公司 | 用于混洗浮点或整数值的装置和方法 |
WO2013101020A1 (en) * | 2011-12-29 | 2013-07-04 | Intel Corporation | Aggregated page fault signaling and handline |
US9524162B2 (en) * | 2012-04-25 | 2016-12-20 | Freescale Semiconductor, Inc. | Apparatus and method for memory copy at a processor |
US8972697B2 (en) * | 2012-06-02 | 2015-03-03 | Intel Corporation | Gather using index array and finite state machine |
US9626333B2 (en) | 2012-06-02 | 2017-04-18 | Intel Corporation | Scatter using index array and finite state machine |
US9141560B2 (en) * | 2012-06-29 | 2015-09-22 | Intel Corporation | Multi-level storage apparatus |
US9575755B2 (en) | 2012-08-03 | 2017-02-21 | International Business Machines Corporation | Vector processing in an active memory device |
US9569211B2 (en) | 2012-08-03 | 2017-02-14 | International Business Machines Corporation | Predication in a vector processor |
US9632777B2 (en) * | 2012-08-03 | 2017-04-25 | International Business Machines Corporation | Gather/scatter of multiple data elements with packed loading/storing into/from a register file entry |
US9594724B2 (en) | 2012-08-09 | 2017-03-14 | International Business Machines Corporation | Vector register file |
TWI485560B (zh) * | 2012-08-31 | 2015-05-21 | Ibm | 資料分析系統、快取裝置、與資料處理方法 |
US9785436B2 (en) * | 2012-09-28 | 2017-10-10 | Intel Corporation | Apparatus and method for efficient gather and scatter operations |
US9842046B2 (en) | 2012-09-28 | 2017-12-12 | Intel Corporation | Processing memory access instructions that have duplicate memory indices |
KR20150064197A (ko) | 2012-12-26 | 2015-06-10 | 인텔 코포레이션 | 인접한 수집/분산 연산들의 통합 |
US9298375B2 (en) * | 2013-02-27 | 2016-03-29 | Vmware, Inc. | Method and apparatus for returning reads in the presence of partial data unavailability |
US9244684B2 (en) * | 2013-03-15 | 2016-01-26 | Intel Corporation | Limited range vector memory access instructions, processors, methods, and systems |
US9703562B2 (en) | 2013-03-16 | 2017-07-11 | Intel Corporation | Instruction emulation processors, methods, and systems |
US9477467B2 (en) * | 2013-03-30 | 2016-10-25 | Intel Corporation | Processors, methods, and systems to implement partial register accesses with masked full register accesses |
US11074169B2 (en) | 2013-07-03 | 2021-07-27 | Micron Technology, Inc. | Programmed memory controlled data movement and timing within a main memory device |
US9396113B2 (en) * | 2013-08-06 | 2016-07-19 | Oracle International Corporation | Flexible configuration hardware streaming unit |
CN103942162B (zh) * | 2014-05-14 | 2020-06-09 | 清华大学 | 在存储器中进行多访问的方法、装置和存储系统 |
US9600442B2 (en) | 2014-07-18 | 2017-03-21 | Intel Corporation | No-locality hint vector memory access processors, methods, systems, and instructions |
CN105573831B (zh) * | 2014-10-13 | 2019-11-26 | 龙芯中科技术有限公司 | 数据转移方法和装置 |
US9851970B2 (en) * | 2014-12-23 | 2017-12-26 | Intel Corporation | Method and apparatus for performing reduction operations on a set of vector elements |
US9582422B2 (en) | 2014-12-24 | 2017-02-28 | Intel Corporation | Hardware prefetcher for indirect access patterns |
US10296334B2 (en) * | 2014-12-27 | 2019-05-21 | Intel Corporation | Method and apparatus for performing a vector bit gather |
US9971686B2 (en) | 2015-02-23 | 2018-05-15 | Intel Corporation | Vector cache line write back processors, methods, systems, and instructions |
US10805392B2 (en) * | 2015-08-13 | 2020-10-13 | Advanced Micro Devices, Inc. | Distributed gather/scatter operations across a network of memory nodes |
JP6493088B2 (ja) * | 2015-08-24 | 2019-04-03 | 富士通株式会社 | 演算処理装置及び演算処理装置の制御方法 |
US10503502B2 (en) | 2015-09-25 | 2019-12-10 | Intel Corporation | Data element rearrangement, processors, methods, systems, and instructions |
US10509726B2 (en) | 2015-12-20 | 2019-12-17 | Intel Corporation | Instructions and logic for load-indices-and-prefetch-scatters operations |
US20170177349A1 (en) | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Load-Indices-and-Prefetch-Gathers Operations |
US20170177360A1 (en) * | 2015-12-21 | 2017-06-22 | Intel Corporation | Instructions and Logic for Load-Indices-and-Scatter Operations |
US20170177363A1 (en) * | 2015-12-22 | 2017-06-22 | Intel Corporation | Instructions and Logic for Load-Indices-and-Gather Operations |
US9892767B2 (en) * | 2016-02-12 | 2018-02-13 | Micron Technology, Inc. | Data gathering in memory |
US9899070B2 (en) | 2016-02-19 | 2018-02-20 | Micron Technology, Inc. | Modified decode for corner turn |
US10153008B2 (en) | 2016-04-20 | 2018-12-11 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
US9659605B1 (en) | 2016-04-20 | 2017-05-23 | Micron Technology, Inc. | Apparatuses and methods for performing corner turn operations using sensing circuitry |
JP6222859B2 (ja) * | 2016-04-25 | 2017-11-01 | インテル・コーポレーション | ストライド機能及びマスク機能を有するベクトルロード及びベクトルストアを提供する命令及びロジック |
JP6231155B2 (ja) * | 2016-05-02 | 2017-11-15 | インテル・コーポレーション | ベクトル散乱演算機能及びベクトル収集演算機能を提供する命令及びロジック |
US10191740B2 (en) | 2017-02-28 | 2019-01-29 | Intel Corporation | Deinterleave strided data elements processors, methods, systems, and instructions |
US11436010B2 (en) | 2017-06-30 | 2022-09-06 | Intel Corporation | Method and apparatus for vectorizing indirect update loops |
US11237970B2 (en) * | 2018-11-07 | 2022-02-01 | Micron Technology, Inc. | Reduce data traffic between cache and memory via data access of variable sizes |
Family Cites Families (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4589065A (en) * | 1983-06-30 | 1986-05-13 | International Business Machines Corporation | Mechanism for implementing one machine cycle executable trap instructions in a primitive instruction set computing system |
GB2200483B (en) * | 1987-01-22 | 1991-10-16 | Nat Semiconductor Corp | Memory referencing in a high performance microprocessor |
US5182811A (en) * | 1987-10-02 | 1993-01-26 | Mitsubishi Denki Kabushiki Kaisha | Exception, interrupt, and trap handling apparatus which fetches addressing and context data using a single instruction following an interrupt |
JPH0769783B2 (ja) * | 1987-11-16 | 1995-07-31 | 日本電気株式会社 | 例外処理方式 |
US5615349A (en) * | 1990-09-04 | 1997-03-25 | Mitsubishi Denki Kabushiki Kaisha | Data processing system capable of execution of plural instructions in parallel |
JP2581236B2 (ja) * | 1989-11-16 | 1997-02-12 | 三菱電機株式会社 | データ処理装置 |
CA2105806C (en) * | 1992-09-18 | 2001-11-20 | Paul V. Jeffs | Apparatus for implementing interrupts in pipelined processors |
US5745770A (en) * | 1993-12-27 | 1998-04-28 | Intel Corporation | Method and apparatus for servicing simultaneous I/O trap and debug traps in a microprocessor |
US5673426A (en) * | 1995-02-14 | 1997-09-30 | Hal Computer Systems, Inc. | Processor structure and method for tracking floating-point exceptions |
US6006030A (en) * | 1995-02-17 | 1999-12-21 | Vlsi Technology, Inc. | Microprocessor with programmable instruction trap for deimplementing instructions |
US5632028A (en) * | 1995-03-03 | 1997-05-20 | Hal Computer Systems, Inc. | Hardware support for fast software emulation of unimplemented instructions |
US5966529A (en) * | 1995-05-15 | 1999-10-12 | Zsp Corporation | Processor having auxiliary operand register file and complementary arrangements for non-disruptively performing adjunct execution |
US5680620A (en) * | 1995-06-30 | 1997-10-21 | Dell Usa, L.P. | System and method for detecting access to a peripheral device using a debug register |
US5812439A (en) * | 1995-10-10 | 1998-09-22 | Microunity Systems Engineering, Inc. | Technique of incorporating floating point information into processor instructions |
US5933618A (en) * | 1995-10-30 | 1999-08-03 | Advanced Micro Devices, Inc. | Speculative register storage for storing speculative results corresponding to register updated by a plurality of concurrently recorded instruction |
US6263401B1 (en) * | 1997-09-30 | 2001-07-17 | Institute For The Development Of Emerging Architectures, L.L.C. | Method and apparatus for transferring data between a register stack and a memory resource |
US20030074530A1 (en) * | 1997-12-11 | 2003-04-17 | Rupaka Mahalingaiah | Load/store unit with fast memory data access mechanism |
US6049876A (en) * | 1998-02-09 | 2000-04-11 | Motorola, Inc. | Data processing system and method which detect unauthorized memory accesses |
US6044454A (en) * | 1998-02-19 | 2000-03-28 | International Business Machines Corporation | IEEE compliant floating point unit |
JP2000339177A (ja) * | 1999-05-31 | 2000-12-08 | Mitsubishi Electric Corp | Eit処理機能を備えるマイクロプロセッサ及びeit処理方法 |
US6408379B1 (en) * | 1999-06-10 | 2002-06-18 | Advanced Micro Devices, Inc. | Apparatus and method for executing floating-point store instructions in a microprocessor |
US6374345B1 (en) * | 1999-07-22 | 2002-04-16 | Advanced Micro Devices, Inc. | Apparatus and method for handling tiny numbers using a super sticky bit in a microprocessor |
US6675292B2 (en) * | 1999-08-13 | 2004-01-06 | Sun Microsystems, Inc. | Exception handling for SIMD floating point-instructions using a floating point status register to report exceptions |
US6542988B1 (en) * | 1999-10-01 | 2003-04-01 | Sun Microsystems, Inc. | Sending both a load instruction and retrieved data from a load buffer to an annex prior to forwarding the load data to register file |
JP3762608B2 (ja) * | 2000-03-10 | 2006-04-05 | 富士通株式会社 | 計算機とその制御方法 |
US6704862B1 (en) * | 2000-03-06 | 2004-03-09 | Sun Microsystems, Inc. | Method and apparatus for facilitating exception handling using a conditional trap instruction |
US6615343B1 (en) * | 2000-06-22 | 2003-09-02 | Sun Microsystems, Inc. | Mechanism for delivering precise exceptions in an out-of-order processor with speculative execution |
GB2367648B (en) * | 2000-10-03 | 2002-08-28 | Sun Microsystems Inc | Multiple trap avoidance mechanism |
US20020184566A1 (en) * | 2001-06-01 | 2002-12-05 | Michael Catherwood | Register pointer trap |
GB2392998B (en) * | 2002-09-16 | 2005-07-27 | Advanced Risc Mach Ltd | Handling interrupts during multiple access program instructions |
US20040236920A1 (en) * | 2003-05-20 | 2004-11-25 | Sheaffer Gad S. | Methods and apparatus for gathering and scattering data associated with a single-instruction-multiple-data (SIMD) operation |
US7356735B2 (en) * | 2004-03-30 | 2008-04-08 | Intel Corporation | Providing support for single stepping a virtual machine in a virtual machine environment |
US7216218B2 (en) * | 2004-06-02 | 2007-05-08 | Broadcom Corporation | Microprocessor with high speed memory integrated in load/store unit to efficiently perform scatter and gather operations |
JP2006039874A (ja) * | 2004-07-26 | 2006-02-09 | Fujitsu Ltd | 情報処理装置 |
US7810083B2 (en) * | 2004-12-30 | 2010-10-05 | Intel Corporation | Mechanism to emulate user-level multithreading on an OS-sequestered sequencer |
US7882339B2 (en) * | 2005-06-23 | 2011-02-01 | Intel Corporation | Primitives to enhance thread-level speculation |
US7526583B2 (en) * | 2005-06-23 | 2009-04-28 | International Business Machines Corporation | Method and apparatus to launch write queue read data in a microprocessor recovery unit |
JP2007193572A (ja) * | 2006-01-19 | 2007-08-02 | Seiko Epson Corp | Cpu、集積回路装置、マイクロコンピュータ及び電子機器 |
US7502277B2 (en) * | 2006-11-15 | 2009-03-10 | Taiwan Semiconductor Manufacturing Co., Ltd. | Word-line driver design for pseudo two-port memories |
JP4978914B2 (ja) * | 2007-10-19 | 2012-07-18 | インテル・コーポレーション | マイクロプロセッサ上での複数命令ストリーム/複数データストリームの拡張を可能にする方法およびシステム |
US8447962B2 (en) * | 2009-12-22 | 2013-05-21 | Intel Corporation | Gathering and scattering multiple data elements |
US7984273B2 (en) * | 2007-12-31 | 2011-07-19 | Intel Corporation | System and method for using a mask register to track progress of gathering elements from memory |
-
2009
- 2009-12-22 US US12/644,440 patent/US8447962B2/en active Active
-
2010
- 2010-11-19 TW TW099139983A patent/TWI439929B/zh active
- 2010-12-01 DE DE102010053088A patent/DE102010053088A1/de active Pending
- 2010-12-08 JP JP2010273399A patent/JP5148680B2/ja active Active
- 2010-12-22 CN CN201010603703.5A patent/CN102103483B/zh active Active
- 2010-12-22 CN CN201410401488.9A patent/CN104317791B/zh active Active
-
2012
- 2012-11-29 JP JP2012261129A patent/JP5612061B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
CN102103483A (zh) | 2011-06-22 |
TWI439929B (zh) | 2014-06-01 |
JP5612061B2 (ja) | 2014-10-22 |
DE102010053088A1 (de) | 2011-06-30 |
US8447962B2 (en) | 2013-05-21 |
TW201140434A (en) | 2011-11-16 |
JP2011134318A (ja) | 2011-07-07 |
US20110153983A1 (en) | 2011-06-23 |
CN104317791A (zh) | 2015-01-28 |
CN104317791B (zh) | 2018-03-13 |
CN102103483B (zh) | 2014-09-10 |
JP2013080490A (ja) | 2013-05-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5148680B2 (ja) | 複数のデータ・エレメントの収集及び分散 | |
US10114651B2 (en) | Gathering and scattering multiple data elements | |
US10042814B2 (en) | System and method for using a mask register to track progress of gathering and scattering elements between data registers and memory | |
US10387151B2 (en) | Processor and method for tracking progress of gathering/scattering data element pairs in different cache memory banks | |
US6442707B1 (en) | Alternate fault handler | |
US5944815A (en) | Microprocessor configured to execute a prefetch instruction including an access count field defining an expected number of access | |
US6055650A (en) | Processor configured to detect program phase changes and to adapt thereto | |
JP3678444B2 (ja) | パイプ制御及びレジスタ変換機能を増強したスーパースカラーパイプライン式のプロセッサ | |
US5263153A (en) | Monitoring control flow in a microprocessor | |
US20050055536A1 (en) | Compiler instructions for vector transfer unit | |
CN103514009A (zh) | 零周期加载 | |
US6499116B1 (en) | Performance of data stream touch events | |
US20200285470A1 (en) | Cache Preload Operations Using Streaming Engine | |
US11119925B2 (en) | Apparatus and method for managing capability metadata | |
US6542988B1 (en) | Sending both a load instruction and retrieved data from a load buffer to an annex prior to forwarding the load data to register file | |
US20070162775A1 (en) | Dynamically self-decaying device architecture | |
US6625726B1 (en) | Method and apparatus for fault handling in computer systems | |
JP3170472B2 (ja) | レジスタ・リマップ構造を有する情報処理システム及び方法 | |
US6175909B1 (en) | Forwarding instruction byte blocks to parallel scanning units using instruction cache associated table storing scan block boundary information for faster alignment | |
US6625720B1 (en) | System for posting vector synchronization instructions to vector instruction queue to separate vector instructions from different application programs | |
US20210132985A1 (en) | Shadow latches in a shadow-latch configured register file for thread storage | |
US20030135717A1 (en) | Method and apparatus for transferring vector data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20121030 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20121128 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5148680 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20151207 Year of fee payment: 3 |
|
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 |