JPWO2019135063A5 - - Google Patents

Download PDF

Info

Publication number
JPWO2019135063A5
JPWO2019135063A5 JP2020535645A JP2020535645A JPWO2019135063A5 JP WO2019135063 A5 JPWO2019135063 A5 JP WO2019135063A5 JP 2020535645 A JP2020535645 A JP 2020535645A JP 2020535645 A JP2020535645 A JP 2020535645A JP WO2019135063 A5 JPWO2019135063 A5 JP WO2019135063A5
Authority
JP
Japan
Prior art keywords
instruction
speculative
barrier
cache
conditional
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
Application number
JP2020535645A
Other languages
Japanese (ja)
Other versions
JP2021509743A (en
JP7406489B2 (en
Publication date
Priority claimed from US16/208,701 external-priority patent/US10866805B2/en
Application filed filed Critical
Publication of JP2021509743A publication Critical patent/JP2021509743A/en
Publication of JPWO2019135063A5 publication Critical patent/JPWO2019135063A5/ja
Application granted granted Critical
Publication of JP7406489B2 publication Critical patent/JP7406489B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

1つの実例では、推測バリア命令が終了するまで、
・条件付き選択命令の結果に対するアドレス依存性を有するロード、ストア、データ、又は命令プリロードRW2が、推測バリア命令後にプログラム順に現れる場合、
○条件付き選択命令は、入力レジスタの1つについて、推測的に実行されたロードR1に対するレジスタ・データ依存性を有し、
〇条件付き選択命令は、他の入力レジスタについて、R1に対するレジスタ依存性を有さず、
〇条件付き選択命令の条件は、R1が体系的に実行されていない場合に、R1に依存しない入力が選択されるのであれば、
処理回路構成は、キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1から推測的にロードされた値の任意の部分の値を判定するために使用されることができるような、キャッシュ内のエントリの割当に影響を与えるRW2を阻止するように構成される。これにより、攻撃者は、後続する動作RW2のキャッシュへの効果を分析することにより、ロードR1によって推測的にロードされた値に関する任意の情報を導出できなくなる。
In one example, until the speculative barrier instruction terminates,
- If a load, store, data, or instruction preload RW2 with address dependence on the result of a conditional selection instruction appears in program order after the speculative barrier instruction,
o The conditional select instruction has a register data dependency on one of the input registers, speculatively executed load R1,
〇The conditional selection instruction has no register dependence on R1 for other input registers,
〇The condition of the conditional selection instruction is that if R1 is not systematically executed, an input that does not depend on R1 is selected.
Processing circuitry is used to determine the value of any part of the speculatively loaded value from R1 by evaluating which entries in the cache have been allocated or removed. The cache is configured to prevent RW2 from affecting the allocation of entries in the cache such that the cache may This prevents an attacker from deriving any information about the value speculatively loaded by load R1 by analyzing the effect on the cache of subsequent operation RW2.

別の実例では、推測バリア命令が終了するまで、
・条件付き移動命令の結果に対するアドレス依存性を有するロード、ストア、データ、又は命令プリロードRW2が、推測バリア命令後にプログラム順に現れる場合、
○条件付き移動命令は、その入力レジスタについて、推測的に実行されたロードR1に対するレジスタ依存性を有さず、
〇条件付き移動命令の条件は、R1が体系的に実行されていない場合に、条件を満たすのであれば、
処理回路構成は、キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1から推測的にロードされた値の任意の部分の値を判定するために使用されることができるような、キャッシュ内のエントリの割当に影響を与えるRW2を阻止するように構成される。繰り返すが、これにより、攻撃者が、ロードR1の不正な推測を悪用して、キャッシュ割当における後続する動作RW2の効果の分析に基づいて、R1によってロードされた値に関する情報を取得することを阻止する。
In another example, until the speculative barrier instruction terminates,
- If a load, store, data, or instruction preload RW2 with address dependence on the result of a conditional move instruction appears in program order after the speculative barrier instruction,
o The conditional move instruction has no register dependencies for its input registers on the speculatively executed load R1;
〇If the condition of the conditional movement command is satisfied when R1 is not systematically executed, then
Processing circuitry is used to determine the value of any part of the speculatively loaded value from R1 by evaluating which entries in the cache have been allocated or removed. The cache is configured to prevent RW2 from affecting the allocation of entries in the cache such that the cache can Again, this prevents an attacker from exploiting load R1's false guesses to obtain information about the value loaded by R1 based on an analysis of the effect of subsequent operation RW2 on cache allocation. do.

Claims (7)

データ処理を実行する処理回路構成と、
前記データ処理を実行するように前記処理回路構成を制御する命令を復号する命令復号回路構成と
を備え、
前記命令復号回路構成は、推測バリア命令に応答して、前記推測バリア命令後にプログラム順に現れ、前記推測バリア命令に前記プログラム順に先行する前の命令に対するアドレス依存性を有する後続する動作が、キャッシュ内のエントリの割当に推測的に影響を与えることを阻止するように、前記処理回路構成を制御し、
前記推測バリア命令が終了するまで、
条件付き選択命令の結果に対するアドレス依存性を有する、ロード、ストア、データ、又は命令のプリロード命令RW2が、前記推測バリア命令後にプログラム順に現れ、そして、
前記条件付き選択命令が、前記条件付き選択命令の入力レジスタの1つについて、推測的に実行されているロード命令R1に対するレジスタ・データ依存性を有し、且つ
前記条件付き選択命令が、前記条件付き選択命令の別の入力レジスタについて、R1に対するレジスタ・データ依存性を有さず、且つ
前記条件付き選択命令の条件が、R1がアーキテクチャ上実行されていないならば、R1に依存しない入力レジスタが選択されるようになる場合に、
前記キャッシュ内のエントリの割当が、前記キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1からの推測的にロードされた値の任意の部分の値を判定するために使用されることができる場合に、前記処理回路構成は、記エントリの割当に影響を与えるRW2を阻止するように構成されている、装置。
a processing circuit configuration that performs data processing;
an instruction decoding circuit configuration that decodes an instruction that controls the processing circuit configuration to execute the data processing,
The instruction decoding circuitry is configured, in response to a speculative barrier instruction, to cause a subsequent operation that occurs in program order after the speculative barrier instruction and has an address dependency on a previous instruction that precedes the speculative barrier instruction in program order to decode the speculative barrier instruction in a cache. controlling said processing circuitry to prevent speculatively influencing the allocation of entries in;
Until the speculative barrier instruction ends,
A load, store, data, or instruction preload instruction RW2 having an address dependency on the result of the conditional selection instruction appears in program order after the speculative barrier instruction, and
the conditional selection instruction has a register data dependency on one of the input registers of the conditional selection instruction to a load instruction R1 being speculatively executed; and For another input register of a conditional select instruction, if it has no register data dependency on R1, and the condition of the conditional select instruction is that R1 is not executed architecturally, then the input register that does not depend on R1 is If it becomes selected,
assignment of entries in the cache determines the value of any part of the speculatively loaded values from R1 by evaluating which entries in the cache are assigned or removed; wherein the processing circuitry is configured to prevent RW2 from affecting the allocation of the entry .
データ処理を実行する処理回路構成と、
前記データ処理を実行するように前記処理回路構成を制御する命令を復号する命令復号回路構成と
を備え、
前記命令復号回路構成は、推測バリア命令に応答して、前記推測バリア命令後にプログラム順に現れ、前記推測バリア命令に前記プログラム順に先行する前の命令に対するアドレス依存性を有する後続する動作が、キャッシュ内のエントリの割当に推測的に影響を与えることを阻止するように、前記処理回路構成を制御し、
前記推測バリア命令が終了するまで、
条件付き移動命令の結果に対するアドレス依存性を有する、ロード、ストア、データ、又は命令のプリロード命令RW2が、前記推測バリア命令後にプログラム順に現れ、そして、
前記条件付き移動命令は、前記条件付き移動命令の入力レジスタについて、推測的に実行されているロード命令R1に対するレジスタ依存性を有さず、且つ
前記条件付き移動命令の条件は、R1がアーキテクチャ上実行されていないならば、前記条件を満たすようになる場合に、
前記キャッシュ内のエントリの割当が、前記キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1からの推測的にロードされた値の任意の部分の値を判定するために使用されることができる場合に、前記処理回路構成は、記エントリの割当に影響を与えるRW2を阻止するように構成されている、装置。
a processing circuit configuration that performs data processing;
an instruction decoding circuit configuration that decodes an instruction that controls the processing circuit configuration to execute the data processing,
The instruction decoding circuitry is configured, in response to a speculative barrier instruction, to cause a subsequent operation that occurs in program order after the speculative barrier instruction and has an address dependency on a previous instruction that precedes the speculative barrier instruction in program order to decode the speculative barrier instruction in a cache. controlling said processing circuitry to prevent speculatively influencing the allocation of entries in;
Until the speculative barrier instruction ends,
A load, store, data or instruction preload instruction RW2 having an address dependency on the result of a conditional move instruction appears in program order after said speculative barrier instruction, and
The conditional move instruction has no register dependency with respect to the input register of the conditional move instruction on the load instruction R1 that is being executed speculatively, and the condition of the conditional move instruction is such that R1 is architecturally If it is not executed, and the above condition is met,
assignment of entries in the cache determines the value of any part of the speculatively loaded values from R1 by evaluating which entries in the cache are assigned or removed; wherein the processing circuitry is configured to prevent RW2 from affecting the allocation of the entry .
前記キャッシュは、
データ・キャッシュ、
命令キャッシュ、及び
分岐予測キャッシュ
のうちの1つである、請求項1又は2に記載の装置。
The cache is
data cache,
3. The apparatus of claim 1 or 2, being one of: an instruction cache; and a branch prediction cache.
ターゲット・プログラム・コードの命令を実行する命令実行環境を提供するホスト処理装置を制御するコンピュータ・プログラムであって、
データ処理を実行するように処理プログラム・ロジックを制御する前記ターゲット・プログラム・コードの命令を復号する命令復号プログラム・ロジックを備え、
前記命令復号プログラム・ロジックは、推測バリア命令に応答して、前記推測バリア命令後にプログラム順に現れ、前記推測バリア命令に前記プログラム順に先行する前の命令に対するアドレス依存性を有する後続する動作が、キャッシュ内のエントリの割当に推測的に影響を与えることを阻止し、
前記推測バリア命令が終了するまで、
条件付き選択命令の結果に対するアドレス依存性を有する、ロード、ストア、データ、又は命令のプリロード命令RW2が、前記推測バリア命令後にプログラム順に現れ、そして、
前記条件付き選択命令が、前記条件付き選択命令の入力レジスタの1つについて、推測的に実行されているロード命令R1に対するレジスタ・データ依存性を有し、且つ
前記条件付き選択命令が、前記条件付き選択命令の別の入力レジスタについて、R1に対するレジスタ・データ依存性を有さず、且つ
前記条件付き選択命令の条件が、R1がアーキテクチャ上実行されていないならば、R1に依存しない入力レジスタが選択されるようになる場合に、
前記キャッシュ内のエントリの割当が、前記キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1からの推測的にロードされた値の任意の部分の値を判定するために使用されることができる場合に、前記命令復号プログラム・ロジックは、記エントリの割当に影響を与えるRW2を阻止するように構成されている、コンピュータ・プログラム。
A computer program for controlling a host processing unit that provides an instruction execution environment for executing instructions of target program code, the computer program comprising:
instruction decoding program logic for decoding instructions of said target program code controlling processing program logic to perform data processing;
The instruction decoding program logic is responsive to a speculative barrier instruction to ensure that subsequent operations that occur in program order after the speculative barrier instruction and that have address dependencies on previous instructions that precede the speculative barrier instruction in program order are cached. prevent speculative influence on the allocation of entries in
Until the speculative barrier instruction ends,
A load, store, data, or instruction preload instruction RW2 having an address dependency on the result of the conditional selection instruction appears in program order after the speculative barrier instruction, and
the conditional selection instruction has a register data dependency on one of the input registers of the conditional selection instruction to a load instruction R1 being speculatively executed; and For another input register of a conditional select instruction, if it has no register data dependency on R1, and the condition of the conditional select instruction is that R1 is not executed architecturally, then the input register that does not depend on R1 is If it becomes selected,
assignment of entries in the cache determines the value of any part of the speculatively loaded values from R1 by evaluating which entries in the cache are assigned or removed; the computer program product, wherein the instruction decoder program logic is configured to prevent RW2 from affecting the assignment of the entries when the instruction decode program logic is used to
ターゲット・プログラム・コードの命令を実行する命令実行環境を提供するホスト処理装置を制御するコンピュータ・プログラムであって、
データ処理を実行するように処理プログラム・ロジックを制御する前記ターゲット・プログラム・コードの命令を復号する命令復号プログラム・ロジックを備え、
前記命令復号プログラム・ロジックは、推測バリア命令に応答して、前記推測バリア命令後にプログラム順に現れ、前記推測バリア命令に前記プログラム順に先行する前の命令に対するアドレス依存性を有する後続する動作が、キャッシュ内のエントリの割当に推測的に影響を与えることを阻止し、
前記推測バリア命令が終了するまで、
条件付き移動命令の結果に対するアドレス依存性を有する、ロード、ストア、データ、又は命令のプリロード命令RW2が、前記推測バリア命令後にプログラム順に現れ、そして、
前記条件付き移動命令は、前記条件付き移動命令の入力レジスタについて、推測的に実行されているロード命令R1に対するレジスタ依存性を有さず、且つ
前記条件付き移動命令の条件は、R1がアーキテクチャ上実行されていないならば、前記条件を満たすようになる場合に、
前記キャッシュ内のエントリの割当が、前記キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1からの推測的にロードされた値の任意の部分の値を判定するために使用されることができる場合に、前記命令復号プログラム・ロジックは、記エントリの割当に影響を与えるRW2を阻止するように構成されている、コンピュータ・プログラム。
A computer program for controlling a host processing unit that provides an instruction execution environment for executing instructions of target program code, the computer program comprising:
instruction decoding program logic for decoding instructions of said target program code controlling processing program logic to perform data processing;
The instruction decoding program logic is responsive to a speculative barrier instruction to ensure that subsequent operations that occur in program order after the speculative barrier instruction and that have address dependencies on previous instructions that precede the speculative barrier instruction in program order are cached. prevent speculative influence on the allocation of entries in
Until the speculative barrier instruction ends,
A load, store, data or instruction preload instruction RW2 having an address dependency on the result of a conditional move instruction appears in program order after said speculative barrier instruction, and
The conditional move instruction has no register dependency with respect to the input register of the conditional move instruction on the load instruction R1 that is being executed speculatively, and the condition of the conditional move instruction is such that R1 is architecturally If it is not executed, and the above condition is met,
assignment of entries in the cache determines the value of any part of the speculatively loaded values from R1 by evaluating which entries in the cache are assigned or removed; the computer program product, wherein the instruction decoder program logic is configured to prevent RW2 from affecting the assignment of the entries when the instruction decode program logic is used to
推測バリア命令を復号するステップと、
前記推測バリア命令の復号に応答して、前記推測バリア命令後にプログラム順に現れ、前記推測バリア命令に前記プログラム順に先行する前の命令に対するアドレス依存性を有する後続する動作が、キャッシュ内のエントリの割当に推測的に影響を与えることを阻止するように、処理回路構成を制御するステップと
を含むデータ処理方法であって、
前記推測バリア命令が終了するまで、
条件付き選択命令の結果に対するアドレス依存性を有する、ロード、ストア、データ、又は命令のプリロード命令RW2が、前記推測バリア命令後にプログラム順に現れ、そして、
前記条件付き選択命令が、前記条件付き選択命令の入力レジスタの1つについて、推測的に実行されているロード命令R1に対するレジスタ・データ依存性を有し、且つ
前記条件付き選択命令が、前記条件付き選択命令の別の入力レジスタについて、R1に対するレジスタ・データ依存性を有さず、且つ
前記条件付き選択命令の条件が、R1がアーキテクチャ上実行されていないならば、R1に依存しない入力レジスタが選択されるようになる場合に、
前記キャッシュ内のエントリの割当が、前記キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1からの推測的にロードされた値の任意の部分の値を判定するために使用されることができる場合に、前記データ処理方法は、記エントリの割当に影響を与えるRW2を阻止するステップを含む、データ処理方法。
decoding the speculative barrier instruction;
In response to the decoding of the speculative barrier instruction, a subsequent operation that occurs in program order after the speculative barrier instruction and has an address dependency on a previous instruction that precedes the speculative barrier instruction in program order causes the allocation of an entry in the cache. controlling processing circuitry to prevent a priori from influencing a data processing method, the method comprising:
Until the speculative barrier instruction ends,
A load, store, data, or instruction preload instruction RW2 having an address dependency on the result of the conditional selection instruction appears in program order after the speculative barrier instruction, and
the conditional selection instruction has a register data dependency on one of the input registers of the conditional selection instruction to a load instruction R1 being speculatively executed; and For another input register of a conditional select instruction, if it has no register data dependency on R1, and the condition of the conditional select instruction is that R1 is not executed architecturally, then the input register that does not depend on R1 is If it becomes selected,
assignment of entries in the cache determines the value of any part of the speculatively loaded values from R1 by evaluating which entries in the cache are assigned or removed; the data processing method, the data processing method comprising the step of preventing RW2 from affecting the allocation of the entry when the data processing method can be used to
推測バリア命令を復号するステップと、
前記推測バリア命令の復号に応答して、前記推測バリア命令後にプログラム順に現れ、前記推測バリア命令に前記プログラム順に先行する前の命令に対するアドレス依存性を有する後続する動作が、キャッシュ内のエントリの割当に推測的に影響を与えることを阻止するように、処理回路構成を制御するステップと
を含むデータ処理方法であって、
前記推測バリア命令が終了するまで、
条件付き移動命令の結果に対するアドレス依存性を有する、ロード、ストア、データ、又は命令のプリロード命令RW2が、前記推測バリア命令後にプログラム順に現れ、そして、
前記条件付き移動命令は、前記条件付き移動命令の入力レジスタについて、推測的に実行されているロード命令R1に対するレジスタ依存性を有さず、且つ
前記条件付き移動命令の条件は、R1がアーキテクチャ上実行されていないならば、前記条件を満たすようになる場合に、
前記キャッシュ内のエントリの割当が、前記キャッシュ内のどのエントリが割り当てられているか、又は削除されているかを評価することにより、R1からの推測的にロードされた値の任意の部分の値を判定するために使用されることができる場合に、前記データ処理方法は、記エントリの割当に影響を与えるRW2を阻止するステップを含む、データ処理方法。
decoding the speculative barrier instruction;
In response to the decoding of the speculative barrier instruction, a subsequent operation that occurs in program order after the speculative barrier instruction and has an address dependency on a previous instruction that precedes the speculative barrier instruction in program order causes the allocation of an entry in the cache. controlling processing circuitry to prevent a priori from influencing a data processing method, the method comprising:
Until the speculative barrier instruction ends,
A load, store, data or instruction preload instruction RW2 having an address dependency on the result of a conditional move instruction appears in program order after said speculative barrier instruction, and
The conditional move instruction has no register dependency with respect to the input register of the conditional move instruction on the load instruction R1 that is being executed speculatively, and the condition of the conditional move instruction is such that R1 is architecturally If it is not executed, and the above condition is met,
assignment of entries in the cache determines the value of any part of the speculatively loaded values from R1 by evaluating which entries in the cache are assigned or removed; the data processing method, the data processing method comprising the step of preventing RW2 from affecting the allocation of the entry when the data processing method can be used to
JP2020535645A 2018-01-03 2018-12-14 guess barrier instruction Active JP7406489B2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862613280P 2018-01-03 2018-01-03
US62/613,280 2018-01-03
US16/208,701 2018-12-04
US16/208,701 US10866805B2 (en) 2018-01-03 2018-12-04 Speculation barrier instruction
PCT/GB2018/053636 WO2019135063A1 (en) 2018-01-03 2018-12-14 Speculation barrier instruction

Publications (3)

Publication Number Publication Date
JP2021509743A JP2021509743A (en) 2021-04-01
JPWO2019135063A5 true JPWO2019135063A5 (en) 2023-11-14
JP7406489B2 JP7406489B2 (en) 2023-12-27

Family

ID=67058912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020535645A Active JP7406489B2 (en) 2018-01-03 2018-12-14 guess barrier instruction

Country Status (6)

Country Link
US (1) US10866805B2 (en)
EP (1) EP3735633B1 (en)
JP (1) JP7406489B2 (en)
KR (1) KR20200101943A (en)
CN (1) CN111433740A (en)
WO (1) WO2019135063A1 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
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
US11265291B2 (en) 2017-08-25 2022-03-01 Red Hat, Inc. Malicious packet filtering by a hypervisor
US11675594B2 (en) * 2018-04-19 2023-06-13 Intel Corporation Systems, methods, and apparatuses to control CPU speculation for the prevention of side-channel attacks
JP7064135B2 (en) * 2018-05-15 2022-05-10 富士通株式会社 Arithmetic processing device and control method of arithmetic processing device
US11106466B2 (en) * 2018-06-18 2021-08-31 International Business Machines Corporation Decoupling of conditional branches
US11119784B2 (en) * 2018-06-29 2021-09-14 Intel Corporation Efficient mitigation of side-channel based attacks against speculative execution processing architectures
US11334495B2 (en) * 2019-08-23 2022-05-17 Arm Limited Cache eviction
US11709716B2 (en) * 2019-08-26 2023-07-25 Red Hat, Inc. Hardware offload support for an operating system offload interface using operation code verification
US11443044B2 (en) * 2019-09-23 2022-09-13 International Business Machines Corporation Targeted very long delay for increasing speculative execution progression
US20210096872A1 (en) * 2019-09-27 2021-04-01 Intel Corporation Hardware for eliding security checks when deemed safe during speculative execution
WO2021076871A1 (en) * 2019-10-18 2021-04-22 Dover Microsystems, Inc. Systems and methods for updating metadata
US10990393B1 (en) 2019-10-21 2021-04-27 Advanced Micro Devices, Inc. Address-based filtering for load/store speculation
CN111857825A (en) 2020-07-20 2020-10-30 北京百度网讯科技有限公司 Instruction execution method and device, electronic equipment and computer-readable storage medium
US20220091851A1 (en) * 2020-09-23 2022-03-24 Intel Corporation System, Apparatus And Methods For Register Hardening Via A Micro-Operation
US20220207147A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Hardening registers against speculation vulnerabilities
CN113703842B (en) * 2021-09-10 2024-03-26 中国人民解放军国防科技大学 Value prediction method, device and medium based on branch prediction

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5611063A (en) * 1996-02-06 1997-03-11 International Business Machines Corporation Method for executing speculative load instructions in high-performance processors
US6484230B1 (en) 1998-09-28 2002-11-19 International Business Machines Corporation Method and system for speculatively processing a load instruction before completion of a preceding synchronization instruction
US6772325B1 (en) * 1999-10-01 2004-08-03 Hitachi, Ltd. Processor architecture and operation for exploiting improved branch control instruction
US6493819B1 (en) * 1999-11-16 2002-12-10 Advanced Micro Devices, Inc. Merging narrow register for resolution of data dependencies when updating a portion of a register in a microprocessor
US6678810B1 (en) * 1999-12-30 2004-01-13 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
KR20040045467A (en) * 2001-10-02 2004-06-01 코닌클리케 필립스 일렉트로닉스 엔.브이. Speculative execution for java hardware accelerator
DE10254657A1 (en) * 2002-11-22 2004-06-03 Philips Intellectual Property & Standards Gmbh Microcontroller and associated method for processing the programming of the microcontroller
US8516201B2 (en) 2006-12-05 2013-08-20 Intel Corporation Protecting private data from cache attacks
US20090089564A1 (en) * 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities
GB2509830B (en) * 2013-02-11 2014-12-24 Imagination Tech Ltd Speculative load issue
US9361144B2 (en) * 2013-06-28 2016-06-07 Globalfoundries Inc. Predictive fetching and decoding for selected return instructions
CN105005737A (en) * 2015-07-31 2015-10-28 天津大学 Branch prediction attack oriented micro-architecture level safety protection method

Similar Documents

Publication Publication Date Title
US6393556B1 (en) Apparatus and method to change processor privilege without pipeline flush
US5367703A (en) Method and system for enhanced branch history prediction accuracy in a superscalar processor system
JPWO2019135063A5 (en)
US5903750A (en) Dynamic branch prediction for branch instructions with multiple targets
JP4763727B2 (en) System and method for correcting branch misprediction
US6665776B2 (en) Apparatus and method for speculative prefetching after data cache misses
US11347507B2 (en) Secure control flow prediction
CN111936980A (en) Apparatus and method for controlling allocation of data into cache memory
JP7160956B2 (en) Selective execution of advance branch prediction based on branch instruction type
JP2008530713A5 (en)
CN111886580A (en) Apparatus and method for controlling branch prediction
US9483438B2 (en) Apparatus and method for controlling the number of vector elements written to a data store while performing speculative vector write operations
JPH0795271B2 (en) Branch instruction execution device
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
KR20210018415A (en) Secondary branch prediction storage to reduce latency for predictive failure recovery
JP4134179B2 (en) Software dynamic prediction method and apparatus
KR20040045467A (en) Speculative execution for java hardware accelerator
EP0550289A2 (en) A mechanism to detect stores into the instruction stream
US6035392A (en) Computer with optimizing hardware for conditional hedge fetching into cache storage
US20100031011A1 (en) Method and apparatus for optimized method of bht banking and multiple updates
US11392383B2 (en) Apparatus and method for prefetching data items
US20220050909A1 (en) Controlling use of data determined by a resolve-pending speculative operation
US6026488A (en) Method for conditional hedge fetching into cache storage
JP4533432B2 (en) TLB correlation type branch predictor and method of using the same
JP7298624B2 (en) Processor and pipeline processing method