JP7007371B2 - ベクトル命令のための要素間アドレス・ハザードの取扱い - Google Patents
ベクトル命令のための要素間アドレス・ハザードの取扱い Download PDFInfo
- Publication number
- JP7007371B2 JP7007371B2 JP2019513912A JP2019513912A JP7007371B2 JP 7007371 B2 JP7007371 B2 JP 7007371B2 JP 2019513912 A JP2019513912 A JP 2019513912A JP 2019513912 A JP2019513912 A JP 2019513912A JP 7007371 B2 JP7007371 B2 JP 7007371B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- hazard
- vector
- instruction
- transaction
- 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 225
- 238000012545 processing Methods 0.000 claims description 104
- 230000007246 mechanism Effects 0.000 claims description 91
- 230000004044 response Effects 0.000 claims description 67
- 238000001514 detection method Methods 0.000 claims description 61
- 238000013500 data storage Methods 0.000 claims description 26
- 230000000977 initiatory effect Effects 0.000 claims description 9
- 230000001960 triggered effect Effects 0.000 claims description 4
- 238000003672 processing method Methods 0.000 claims description 2
- 238000000034 method Methods 0.000 description 28
- 239000000872 buffer Substances 0.000 description 7
- 230000008901 benefit Effects 0.000 description 5
- 230000009471 action Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000005055 memory storage Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000006872 improvement Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 206010000210 abortion Diseases 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001627 detrimental effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method 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/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
- G06F9/3842—Speculative instruction execution
-
- 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/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30087—Synchronisation or serialisation 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3863—Recovery, e.g. branch miss-prediction, exception handling using multiple copies of the architectural state, e.g. shadow 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
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)
- Multimedia (AREA)
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
- Complex Calculations (AREA)
Description
命令に応答してデータ処理を実施するための処理回路機構であって、ベクトル・ロード命令に応答して、データ記憶装置のそれぞれの記憶位置からのデータを、ベクトル値のそれぞれのデータ要素にロードするように構成され、ベクトル・ストア命令に応答して、ベクトル値のそれぞれのデータ要素からのデータをデータ記憶装置のそれぞれの記憶位置に記憶するように構成される処理回路機構を備え、
処理回路機構は、トランザクション開始事象に応答して、1つ又は複数の後続する命令を投機的に実行し、トランザクション終了事象に応答して、トランザクション開始事象に引き続いて投機的に実行された1つ又は複数の後続する命令の投機的結果をコミットし、
装置は、トランザクション開始事象に引き続いて投機的に実行された以前のベクトル・ロード命令に対するデータ要素Jに対応するアドレスと、トランザクション開始事象に引き続いて投機的に実行された以後のベクトル・ストア命令に対するデータ要素Kに対応するアドレスとの間に要素間アドレス・ハザードが生じているかどうかを検出するためのハザード検出回路機構を備え、KはJとは異なり、また、以前のベクトル・ロード命令及び以後のベクトル・ストア命令は、いずれも、処理回路機構によって処理された命令の同じスレッドからのものであり、
ハザード検出回路機構は、要素間アドレス・ハザードの検出に応答して、トランザクション開始事象に引き続く命令のそれ以上の処理を中止するように処理回路機構をトリガし、前記投機的結果がコミットされることを防止するように構成される、装置を提供する。
命令に応答してデータを処理するための手段であって、ベクトル・ロード命令に応答して、データ記憶装置のそれぞれの記憶位置からのデータを、ベクトル値のそれぞれのデータ要素にロードするように構成され、また、ベクトル・ストア命令に応答して、ベクトル値のそれぞれのデータ要素からのデータをデータ記憶装置のそれぞれの記憶位置に記憶するように構成される、処理するための手段を備え、
処理するための手段は、トランザクション開始事象に応答して、1つ又は複数の後続する命令を投機的に実行し、また、トランザクション終了事象に応答して、トランザクション開始事象に引き続いて投機的に実行された1つ又は複数の後続する命令の投機的結果をコミットし、
装置は、トランザクション開始事象に引き続いて投機的に実行された以前のベクトル・ロード命令に対するデータ要素Jに対応するアドレスと、トランザクション開始事象に引き続いて投機的に実行された以後のベクトル・ストア命令に対するデータ要素Kに対応するアドレスとの間の要素間アドレス・ハザードを検出するための手段を備え、KはJとは異なり、また、以前のベクトル・ロード命令及び以後のベクトル・ストア命令は、いずれも、処理回路機構によって処理された命令の同じスレッドからのものであり、
検出するための手段は、要素間アドレス・ハザードの検出に応答して、トランザクション開始事象に引き続く命令のそれ以上の処理を中止するように処理のための手段をトリガし、前記投機的結果がコミットされることを防止するように構成される、装置を提供する。
トランザクション開始事象に応答して、1つ又は複数の後続する命令を投機的に実行するステップと、
ベクトル・ロード命令に応答して、データ記憶装置のそれぞれの記憶位置からのデータを、ベクトル値のそれぞれのデータ要素にロードするステップと、
ベクトル値のそれぞれのデータ要素からのデータをデータ記憶装置のそれぞれの記憶位置に記憶するためのベクトル・ストア命令に応答して、ベクトル・ロード命令に対するデータ要素Jに対応するアドレスと、ストア命令に対するデータ要素Kに対応するアドレスとの間に要素間アドレス・ハザードが生じているかどうかを検出するステップであって、KはJとは異なり、また、以前のベクトル・ロード命令及び以後のベクトル・ストア命令は、いずれも命令の同じスレッドからのものであるステップと、
要素間アドレス・ハザードの検出に応答して、1つ又は複数の後続する命令のそれ以上の処理を中止し、1つ又は複数の後続する命令の投機的結果がコミットされることを防止するステップと、
トランザクション終了事象に応答して、1つ又は複数の後続する命令の投機的結果をコミットするステップと
を含むデータ処理方法を提供する。
キャッシュ・ライン-アドレス・タグ、コヒーレンス状態、TM状態(トランザクション・メモリ目的のためにハザードを追跡するための状態)及びDTXエイリアス状態を示す。
//範囲#0~#63内のアドレスにアクセスする最大要素は要素2であり、また、範囲#64~127内のアドレスにアクセスする最大要素は要素3である。
add z0.d、z0.d、#4
//サイクル1 これはベクトル・ロード操作ではないため、キャッシュ・ライン・エイリアス・インデックスに対する変更はない。
st1d z0.d、[a、#64]
//サイクル2 str x0、[a、#88]|str x0、[a、#80]|str x0、[a、#72]|str x0、[a、#64]
Claims (14)
- 命令に応答してデータ処理を実施するための処理回路機構であって、ベクトル・ロード命令に応答して、データ記憶装置のそれぞれの記憶位置からのデータを、ベクトル値のそれぞれのデータ要素をロードするように構成され、ベクトル・ストア命令に応答して、ベクトル値のそれぞれのデータ要素からのデータを前記データ記憶装置のそれぞれの記憶位置に記憶するように構成される処理回路機構を備えた装置であって、
前記処理回路機構が、トランザクション開始事象に応答して、1つ又は複数の後続する命令を投機的に実行し、トランザクション終了事象に応答して、前記トランザクション開始事象に引き続いて投機的に実行された前記1つ又は複数の後続する命令の投機的結果をコミットし、
前記装置が、前記トランザクション開始事象に引き続いて投機的に実行された以前のベクトル・ロード命令に対するデータ要素Jに対応するアドレスと、前記トランザクション開始事象に引き続いて投機的に実行された以後のベクトル・ストア命令に対するデータ要素Kに対応するアドレスとの間に要素間アドレス・ハザードが生じているかどうかを検出するためのハザード検出回路機構を備え、KがJとは異なり、前記以前のベクトル・ロード命令及び前記以後のベクトル・ストア命令が、いずれも、前記処理回路機構によって処理された命令の同じスレッドからのものであり、
前記ハザード検出回路機構が、前記要素間アドレス・ハザードの検出に応答して、前記トランザクション開始事象に引き続く前記命令のそれ以上の処理を中止するように前記処理回路機構をトリガし、前記投機的結果がコミットされることを防止するように構成され、
前記トランザクション開始事象に引き続いて投機的に実行された1つ又は複数の前記以前のベクトル・ロード命令のために使用されたアドレスを追跡するためのハザード追跡データを記憶するためのハザード追跡記憶回路機構を備え、
前記ハザード追跡データが複数の追跡入口を含み、個々の追跡入口が、アドレスのそれぞれのブロックに対応し、且つ、アドレスの前記対応するブロック内のアドレスが、前記トランザクション開始事象に引き続いて投機的に実行された前記以前のベクトル・ロード命令のために使用された最も高いデータ要素位置を識別する、装置。 - 前記ハザード検出回路機構が、前記要素間アドレス・ハザードの検出に応答して、アーキテクチャ状態データを、前記トランザクション開始事象に応答して捕獲されたアーキテクチャ状態データの先行するバージョンに回復するように前記処理回路機構をトリガするように構成される、請求項1に記載の装置。
- K<Jである、請求項1及び2のいずれか一項に記載の装置。
- 前記ハザード追跡記憶回路機構が前記データ記憶装置の一部を備える、請求項1から3のいずれか一項に記載の装置。
- 前記ハザード検出回路機構が、前記トランザクション開始事象に応答して前記ハザード追跡データを消去するように構成される、請求項1から4のいずれか一項に記載の装置。
- 前記ハザード検出回路機構が、前記トランザクション開始事象に引き続いて実行されるトランザクション消去命令に応答して前記ハザード追跡データを消去するように構成される、請求項1から5までのいずれか一項に記載の装置。
- 前記ハザード検出回路機構が、前記トランザクション開始事象に引き続いて投機的に実行されたベクトル・ロード命令に応答して、前記ベクトル・ロード命令のために使用されたアドレスに基づいて前記ハザード追跡データを更新する、請求項1から6までのいずれか一項に記載の装置。
- 前記ハザード検出回路機構が、前記ベクトル・ロード命令の中から予め選択された所定のタイプのベクトル・ロード命令に応答して前記ハザード追跡データを更新し、前記所定のタイプのベクトル・ロード命令以外のベクトル・ロード命令に応答して前記ハザード追跡データの更新を抑制するように構成される、請求項7に記載の装置。
- 前記ハザード検出回路機構が、前記以後のベクトル・ストア命令の所与のデータ要素位置に対して使用されたアドレスを含むアドレスのブロックに対応する前記追跡入口が前記所与のデータ要素位置より高いデータ要素位置を識別すると、前記トランザクション開始事象に引き続いて投機的に実行された以後のベクトル・ストア命令に対する前記要素間アドレス・ハザードを検出するように構成される、請求項1から8のいずれか一項に記載の装置。
- 前記データ記憶装置が、データを記憶するための複数のキャッシュ・ラインを備えるキャッシュを備え、前記追跡入口が前記キャッシュに記憶され、個々のキャッシュ・ラインが前記キャッシュ・ラインに対応するアドレスの1つ又は複数のブロックのための前記追跡入口のうちの1つ又は複数と結合される、請求項1から9のいずれか一項に記載の装置。
- 前記ハザード検出回路機構が、アドレスの前記対応するブロックの少なくとも1つのアドレスが前記トランザクション開始事象に引き続いて投機的に実行された以前のベクトル・ロード命令のために使用されたことを示す追跡入口と結合した前記キャッシュからのキャッシュ・ラインの追払いに応答して、前記トランザクション開始事象に引き続く前記命令のそれ以上の処理を中止するように前記処理回路機構をトリガし、前記投機的結果がコミットされることを防止するように構成される、請求項10に記載の装置。
- 前記トランザクション開始事象がトランザクション開始命令を含み、前記トランザクション終了事象がトランザクション終了命令を含む、請求項1から11までのいずれかに記載の装置。
- 命令に応答してデータを処理するための手段であって、ベクトル・ロード命令に応答して、データ記憶装置のそれぞれの記憶位置からのデータを、ベクトル値のそれぞれのデータ要素をロードするように構成され、ベクトル・ストア命令に応答して、ベクトル値のそれぞれのデータ要素からのデータを前記データ記憶装置のそれぞれの記憶位置に記憶するように構成される、処理するための手段を備えた装置であって、
処理するための前記手段が、トランザクション開始事象に応答して、1つ又は複数の後続する命令を投機的に実行し、トランザクション終了事象に応答して、前記トランザクション開始事象に引き続いて投機的に実行された前記1つ又は複数の後続する命令の投機的結果をコミットし、
前記装置が、前記トランザクション開始事象に引き続いて投機的に実行された以前のベクトル・ロード命令に対するデータ要素Jに対応するアドレスと、前記トランザクション開始事象に引き続いて投機的に実行された以後のベクトル・ストア命令に対するデータ要素Kに対応するアドレスとの間の要素間アドレス・ハザードを検出するための手段を備え、KがJとは異なり、前記以前のベクトル・ロード命令及び前記以後のベクトル・ストア命令が、いずれも、前記処理するための手段によって処理された命令の同じスレッドからのものであり、
検出するための手段が、前記要素間アドレス・ハザードの検出に応答して、前記トランザクション開始事象に引き続く前記命令のそれ以上の処理を中止するように処理のための前記手段をトリガし、前記投機的結果がコミットされることを防止するように構成され、
前記トランザクション開始事象に引き続いて投機的に実行された1つ又は複数の前記以前のベクトル・ロード命令のために使用されたアドレスを追跡するためのハザード追跡データを記憶するためのハザード追跡記憶回路機構を備え、
前記ハザード追跡データが複数の追跡入口を含み、個々の追跡入口が、アドレスのそれぞれのブロックに対応し、且つ、アドレスの前記対応するブロック内のアドレスが、前記トランザクション開始事象に引き続いて投機的に実行された前記以前のベクトル・ロード命令のために使用された最も高いデータ要素位置を識別する、装置。 - トランザクション開始事象に応答して、1つ又は複数の後続する命令を投機的に実行するステップと、
ベクトル・ロード命令に応答して、データ記憶装置のそれぞれの記憶位置からのデータを、ベクトル値のそれぞれのデータ要素にロードするステップと、
ベクトル値のそれぞれのデータ要素からのデータを前記データ記憶装置のそれぞれの記憶位置に記憶するためのベクトル・ストア命令に応答して、前記ベクトル・ロード命令に対するデータ要素Jに対応するアドレスと、前記ストア命令に対するデータ要素Kに対応するアドレスとの間に要素間アドレス・ハザードが生じているかどうかを検出するステップであって、KがJとは異なり、以前の前記ベクトル・ロード命令及び以後の前記ベクトル・ストア命令が、いずれも命令の同じスレッドからのものであるステップと、
前記要素間アドレス・ハザードの検出に応答して、前記1つ又は複数の後続する命令のそれ以上の処理を中止し、前記1つ又は複数の後続する命令の投機的結果がコミットされることを防止するステップと、
トランザクション終了事象に応答して、前記1つ又は複数の後続する命令の前記投機的結果をコミットするステップと
を含み、
更に、前記トランザクション開始事象に引き続いて投機的に実行された1つ又は複数の前記以前のベクトル・ロード命令のために使用されたアドレスを追跡するためのハザード追跡データを記憶するステップを含み、
前記ハザード追跡データが複数の追跡入口を含み、個々の追跡入口が、アドレスのそれぞれのブロックに対応し、且つ、アドレスの前記対応するブロック内のアドレスが、前記トランザクション開始事象に引き続いて投機的に実行された前記以前のベクトル・ロード命令のために使用された最も高いデータ要素位置を識別する、データ処理方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1615959.2 | 2016-09-20 | ||
GB1615959.2A GB2554096B (en) | 2016-09-20 | 2016-09-20 | Handling of inter-element address hazards for vector instructions |
PCT/GB2017/052387 WO2018055326A1 (en) | 2016-09-20 | 2017-08-14 | Handling of inter-element address hazards for vector instructions |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019534504A JP2019534504A (ja) | 2019-11-28 |
JP7007371B2 true JP7007371B2 (ja) | 2022-01-24 |
Family
ID=57288580
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2019513912A Active JP7007371B2 (ja) | 2016-09-20 | 2017-08-14 | ベクトル命令のための要素間アドレス・ハザードの取扱い |
Country Status (8)
Country | Link |
---|---|
US (1) | US10922084B2 (ja) |
EP (1) | EP3516502B1 (ja) |
JP (1) | JP7007371B2 (ja) |
KR (1) | KR102344010B1 (ja) |
CN (1) | CN109690476B (ja) |
GB (1) | GB2554096B (ja) |
TW (1) | TWI758319B (ja) |
WO (1) | WO2018055326A1 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2554096B (en) * | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
GB2570466B (en) * | 2018-01-25 | 2020-03-04 | Advanced Risc Mach Ltd | Commit window move element |
US11068247B2 (en) * | 2018-02-06 | 2021-07-20 | Microsoft Technology Licensing, Llc | Vectorizing conditional min-max sequence reduction loops |
GB2572579B (en) * | 2018-04-04 | 2020-09-16 | Advanced Risc Mach Ltd | Speculative side-channel hint instruction |
EP3588280B1 (en) | 2018-06-25 | 2021-09-08 | ARM Limited | Handling load-exclusive instructions in apparatus having support for transactional memory |
US10783031B2 (en) * | 2018-08-20 | 2020-09-22 | Arm Limited | Identifying read-set information based on an encoding of replaceable-information values |
GB2585202B (en) * | 2019-07-01 | 2021-11-24 | Advanced Risc Mach Ltd | An apparatus and method for speculatively vectorising program code |
US11314510B2 (en) | 2020-08-14 | 2022-04-26 | International Business Machines Corporation | Tracking load and store instructions and addresses in an out-of-order processor |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100754A1 (en) | 2013-10-09 | 2015-04-09 | Arm Limited | Data processing apparatus and method for performing speculative vector access operations |
WO2016009168A1 (en) | 2014-07-15 | 2016-01-21 | Arm Limited | Call stack maintenance for a transactional data processing execution mode |
US20160188382A1 (en) | 2014-12-24 | 2016-06-30 | Elmoustapha Ould-Ahmed-Vall | Systems, apparatuses, and methods for data speculation execution |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2364404B (en) * | 2000-07-01 | 2002-10-02 | Marconi Comm Ltd | Method of detecting malicious code |
JP4202673B2 (ja) * | 2002-04-26 | 2008-12-24 | 株式会社東芝 | システムlsi開発環境生成方法及びそのプログラム |
US7472285B2 (en) * | 2003-06-25 | 2008-12-30 | Intel Corporation | Apparatus and method for memory encryption with reduced decryption latency |
JP3988144B2 (ja) * | 2004-02-23 | 2007-10-10 | 日本電気株式会社 | ベクトル処理装置、及び、追い越し制御回路 |
US8078847B2 (en) * | 2007-05-14 | 2011-12-13 | Apple Inc. | Detecting memory-hazard conflicts during vector processing |
US8019976B2 (en) * | 2007-05-14 | 2011-09-13 | Apple, Inc. | Memory-hazard detection and avoidance instructions for vector processing |
US9513905B2 (en) * | 2008-03-28 | 2016-12-06 | Intel Corporation | Vector instructions to enable efficient synchronization and parallel reduction operations |
US8209525B2 (en) * | 2008-08-15 | 2012-06-26 | Apple Inc. | Method and apparatus for executing program code |
US9262171B2 (en) * | 2009-06-30 | 2016-02-16 | Oracle America, Inc. | Dependency matrix for the determination of load dependencies |
US8549504B2 (en) * | 2010-09-25 | 2013-10-01 | Intel Corporation | Apparatus, method, and system for providing a decision mechanism for conditional commits in an atomic region |
US8868885B2 (en) * | 2010-11-18 | 2014-10-21 | Ceva D.S.P. Ltd. | On-the-fly permutation of vector elements for executing successive elemental instructions |
US8639889B2 (en) * | 2011-01-31 | 2014-01-28 | International Business Machines Corporation | Address-based hazard resolution for managing read/write operations in a memory cache |
US9021233B2 (en) * | 2011-09-28 | 2015-04-28 | Arm Limited | Interleaving data accesses issued in response to vector access instructions |
US9389860B2 (en) * | 2012-04-02 | 2016-07-12 | Apple Inc. | Prediction optimizations for Macroscalar vector partitioning loops |
US9330011B2 (en) * | 2013-09-20 | 2016-05-03 | Via Alliance Semiconductor Co., Ltd. | Microprocessor with integrated NOP slide detector |
US9552205B2 (en) * | 2013-09-27 | 2017-01-24 | Intel Corporation | Vector indexed memory access plus arithmetic and/or logical operation processors, methods, systems, and instructions |
CN103699434B (zh) * | 2013-12-17 | 2018-05-08 | 天津国芯科技有限公司 | 一种适用于多应用之间安全访问的mpu及其多应用之间安全访问的方法 |
US9720667B2 (en) * | 2014-03-21 | 2017-08-01 | Intel Corporation | Automatic loop vectorization using hardware transactional memory |
CN104052635A (zh) * | 2014-06-05 | 2014-09-17 | 北京江南天安科技有限公司 | 一种基于安全预警的风险态势预测方法及系统 |
CN104317637A (zh) * | 2014-10-16 | 2015-01-28 | 安徽理工大学 | 基于多智能体的虚拟矿工安全行为建模及应急仿真系统 |
US10387156B2 (en) | 2014-12-24 | 2019-08-20 | Intel Corporation | Systems, apparatuses, and methods for data speculation execution |
GB2540940B (en) * | 2015-07-31 | 2018-01-03 | Advanced Risc Mach Ltd | An apparatus and method for transferring a plurality of data structures between memory and one or more vectors of data elements stored in a register bank |
GB2554096B (en) * | 2016-09-20 | 2019-03-20 | Advanced Risc Mach Ltd | Handling of inter-element address hazards for vector instructions |
US10866805B2 (en) * | 2018-01-03 | 2020-12-15 | Arm Limited | Speculation barrier instruction |
-
2016
- 2016-09-20 GB GB1615959.2A patent/GB2554096B/en active Active
-
2017
- 2017-08-14 CN CN201780055951.0A patent/CN109690476B/zh active Active
- 2017-08-14 JP JP2019513912A patent/JP7007371B2/ja active Active
- 2017-08-14 KR KR1020197010503A patent/KR102344010B1/ko active IP Right Grant
- 2017-08-14 EP EP17752474.1A patent/EP3516502B1/en active Active
- 2017-08-14 WO PCT/GB2017/052387 patent/WO2018055326A1/en unknown
- 2017-08-14 US US16/331,179 patent/US10922084B2/en active Active
- 2017-09-04 TW TW106130131A patent/TWI758319B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150100754A1 (en) | 2013-10-09 | 2015-04-09 | Arm Limited | Data processing apparatus and method for performing speculative vector access operations |
WO2016009168A1 (en) | 2014-07-15 | 2016-01-21 | Arm Limited | Call stack maintenance for a transactional data processing execution mode |
US20160188382A1 (en) | 2014-12-24 | 2016-06-30 | Elmoustapha Ould-Ahmed-Vall | Systems, apparatuses, and methods for data speculation execution |
Also Published As
Publication number | Publication date |
---|---|
WO2018055326A1 (en) | 2018-03-29 |
KR20190051036A (ko) | 2019-05-14 |
GB201615959D0 (en) | 2016-11-02 |
EP3516502B1 (en) | 2021-04-28 |
CN109690476B (zh) | 2023-02-28 |
TWI758319B (zh) | 2022-03-21 |
US20190258489A1 (en) | 2019-08-22 |
EP3516502A1 (en) | 2019-07-31 |
US10922084B2 (en) | 2021-02-16 |
GB2554096A (en) | 2018-03-28 |
TW201814504A (zh) | 2018-04-16 |
JP2019534504A (ja) | 2019-11-28 |
KR102344010B1 (ko) | 2021-12-28 |
GB2554096B (en) | 2019-03-20 |
CN109690476A (zh) | 2019-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7007371B2 (ja) | ベクトル命令のための要素間アドレス・ハザードの取扱い | |
JP3096423B2 (ja) | スーパースカラまたはvliwプロセッサにおけるメモリ操作の順序替えのための方法及び装置 | |
EP2674856B1 (en) | Zero cycle load instruction | |
KR101025354B1 (ko) | 가상 트랜잭션 메모리를 위한 글로벌 오버플로우 방법 | |
US6189088B1 (en) | Forwarding stored dara fetched for out-of-order load/read operation to over-taken operation read-accessing same memory location | |
US9798590B2 (en) | Post-retire scheme for tracking tentative accesses during transactional execution | |
TWI617980B (zh) | 具有動態配送窗以及分散式架構的虛擬載入儲存佇列 | |
US6772317B2 (en) | Method and apparatus for optimizing load memory accesses | |
JP7281491B2 (ja) | トランザクショナル比較及び破棄命令 | |
TWI786181B (zh) | 在例外遮罩更新指令之後允許未中止的交易處理 | |
US11119925B2 (en) | Apparatus and method for managing capability metadata | |
US9122485B2 (en) | Predicting a result of a dependency-checking instruction when processing vector instructions | |
US9400655B2 (en) | Technique for freeing renamed registers | |
US10185561B2 (en) | Processor with efficient memory access | |
US8924693B2 (en) | Predicting a result for a predicate-generating instruction when processing vector instructions | |
JP7481328B2 (ja) | トランザクショナル・メモリのための装置及びデータ処理方法 | |
CN111164572B (zh) | 数据处理装置和方法 | |
JP3748191B2 (ja) | 計算機とその制御方法 | |
CN114174986A (zh) | 用于推测性向量化程序代码的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200807 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210831 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20210907 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20211206 |
|
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: 20211214 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20220106 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7007371 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |