JPWO2019135063A5 - - Google Patents
Download PDFInfo
- 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
Links
- 230000004888 barrier function Effects 0.000 claims description 38
- 230000036316 preload Effects 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims 8
- 238000004590 computer program Methods 0.000 claims 6
- 238000000034 method Methods 0.000 claims 2
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
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)
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)
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 |
-
2018
- 2018-12-04 US US16/208,701 patent/US10866805B2/en active Active
- 2018-12-14 JP JP2020535645A patent/JP7406489B2/en active Active
- 2018-12-14 EP EP18822465.3A patent/EP3735633B1/en active Active
- 2018-12-14 KR KR1020207020303A patent/KR20200101943A/en not_active Application Discontinuation
- 2018-12-14 CN CN201880078157.2A patent/CN111433740A/en active Pending
- 2018-12-14 WO PCT/GB2018/053636 patent/WO2019135063A1/en unknown
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 |