JP7406489B2 - 推測バリア命令 - Google Patents

推測バリア命令 Download PDF

Info

Publication number
JP7406489B2
JP7406489B2 JP2020535645A JP2020535645A JP7406489B2 JP 7406489 B2 JP7406489 B2 JP 7406489B2 JP 2020535645 A JP2020535645 A JP 2020535645A JP 2020535645 A JP2020535645 A JP 2020535645A JP 7406489 B2 JP7406489 B2 JP 7406489B2
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.)
Active
Application number
JP2020535645A
Other languages
English (en)
Japanese (ja)
Other versions
JP2021509743A (ja
JP2021509743A5 (enExample
Inventor
ロイ グリセンスウェイト、リチャード
ガブリエッリ、ジャコモ
ジェイムズ ホースネル、マシュー
Original Assignee
アーム・リミテッド
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by アーム・リミテッド filed Critical アーム・リミテッド
Publication of JP2021509743A publication Critical patent/JP2021509743A/ja
Publication of JP2021509743A5 publication Critical patent/JP2021509743A5/ja
Application granted granted Critical
Publication of JP7406489B2 publication Critical patent/JP7406489B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/3834Maintaining memory consistency
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0875Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with dedicated cache, e.g. instruction or stack
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • G06F12/1491Protection against unauthorised use of memory or access to memory by checking the subject access rights in a hierarchical protection system, e.g. privilege levels, memory rings
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/32Address formation of the next instruction, e.g. by incrementing the instruction counter
    • G06F9/322Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
    • G06F9/323Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address for indirect branch instructions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Advance Control (AREA)
  • Executing Machine-Instructions (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
JP2020535645A 2018-01-03 2018-12-14 推測バリア命令 Active JP7406489B2 (ja)

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 US10866805B2 (en) 2018-01-03 2018-12-04 Speculation barrier instruction
US16/208,701 2018-12-04
PCT/GB2018/053636 WO2019135063A1 (en) 2018-01-03 2018-12-14 Speculation barrier instruction

Publications (3)

Publication Number Publication Date
JP2021509743A JP2021509743A (ja) 2021-04-01
JP2021509743A5 JP2021509743A5 (enExample) 2023-11-14
JP7406489B2 true JP7406489B2 (ja) 2023-12-27

Family

ID=67058912

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020535645A Active JP7406489B2 (ja) 2018-01-03 2018-12-14 推測バリア命令

Country Status (6)

Country Link
US (1) US10866805B2 (enExample)
EP (1) EP3735633B1 (enExample)
JP (1) JP7406489B2 (enExample)
KR (1) KR102727263B1 (enExample)
CN (1) CN111433740B (enExample)
WO (1) WO2019135063A1 (enExample)

Families Citing this family (27)

* 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
DE102019107055A1 (de) 2018-04-19 2019-10-24 Intel Corporation Systeme, Verfahren und Vorrichtungen zum Steuern der CPU-Spekulationen zur Verhinderung vn Seitenkanalangriffen
JP7064135B2 (ja) * 2018-05-15 2022-05-10 富士通株式会社 演算処理装置及び演算処理装置の制御方法
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
US11663014B2 (en) * 2019-08-26 2023-05-30 Arm Limited Speculatively executing instructions that follow a status updating instruction
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
US12079197B2 (en) * 2019-10-18 2024-09-03 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
CN111857825B (zh) 2020-07-20 2024-10-29 昆仑芯(北京)科技有限公司 指令执行方法、装置、电子设备、存储介质和程序产品
US11720360B2 (en) * 2020-09-11 2023-08-08 Apple Inc. DSB operation with excluded region
US20220091851A1 (en) * 2020-09-23 2022-03-24 Intel Corporation System, Apparatus And Methods For Register Hardening Via A Micro-Operation
US11675899B2 (en) * 2020-12-15 2023-06-13 International Business Machines Corporation Hardware mitigation for Spectre and meltdown-like attacks
US20220207147A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Hardening registers against speculation vulnerabilities
US20220207138A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Hardening store hardware against speculation vulnerabilities
DE102021102777A1 (de) * 2021-02-05 2022-08-11 Infineon Technologies Ag Verarbeitung von in einem speicher gespeicherter daten
CN113703842B (zh) * 2021-09-10 2024-03-26 中国人民解放军国防科技大学 一种基于分支预测的值预测方法、装置及介质
US12067399B2 (en) 2022-02-01 2024-08-20 Apple Inc. Conditional instructions prediction
US12450068B2 (en) 2023-07-25 2025-10-21 Apple Inc. Biased conditional instruction prediction
US12578965B2 (en) 2023-07-25 2026-03-17 Apple Inc. Biased indirect control transfer prediction
US20260072693A1 (en) * 2024-09-10 2026-03-12 Arm Limited Speculation barrier
US12561144B1 (en) * 2024-09-27 2026-02-24 Intel Corporation Circuitry and methods for a conditional fence instruction

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003515214A (ja) 1999-11-16 2003-04-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 計算を狭いオペランドで実施するための方法と装置
US20030084259A1 (en) 1999-12-30 2003-05-01 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
JP2005504390A (ja) 2001-10-02 2005-02-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ジャバハードウェアアクセラレータ用の投機的実行
JP2006507594A (ja) 2002-11-22 2006-03-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マイクロコントローラ、及びマイクロコントローラのプログラミングを処理するための割当方法
US20090089564A1 (en) 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities

Family Cites Families (10)

* 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
US8516201B2 (en) 2006-12-05 2013-08-20 Intel Corporation Protecting private data from cache attacks
KR20140011940A (ko) * 2012-07-18 2014-01-29 한국전자통신연구원 분기 명령 실행 캐쉬를 이용한 프로세서 및 분기 명령 실행 캐쉬를 이용한 프로세서의 동작 방법
GB2509830B (en) * 2013-02-11 2014-12-24 Imagination Tech Ltd Speculative load issue
US9304940B2 (en) * 2013-03-15 2016-04-05 Intel Corporation Processors, methods, and systems to relax synchronization of accesses to shared memory
US9361144B2 (en) * 2013-06-28 2016-06-07 Globalfoundries Inc. Predictive fetching and decoding for selected return instructions
US9323535B2 (en) * 2013-06-28 2016-04-26 Intel Corporation Instruction order enforcement pairs of instructions, processors, methods, and systems
CN105005737A (zh) * 2015-07-31 2015-10-28 天津大学 一种面向分支预测攻击的微体系结构级安全防护方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003515214A (ja) 1999-11-16 2003-04-22 アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド 計算を狭いオペランドで実施するための方法と装置
US20030084259A1 (en) 1999-12-30 2003-05-01 Intel Corporation MFENCE and LFENCE micro-architectural implementation method and system
JP2005504390A (ja) 2001-10-02 2005-02-10 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ジャバハードウェアアクセラレータ用の投機的実行
JP2006507594A (ja) 2002-11-22 2006-03-02 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ マイクロコントローラ、及びマイクロコントローラのプログラミングを処理するための割当方法
US20090089564A1 (en) 2006-12-06 2009-04-02 Brickell Ernie F Protecting a Branch Instruction from Side Channel Vulnerabilities

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
米田 聡,LINUXレポート「CPUの脆弱性対応で大騒ぎLinuxカーネルも修正を急ぐ」,日経Linux 2018年3月号,日経BP社,2018年02月08日,第20巻 第2号,第7頁

Also Published As

Publication number Publication date
KR20200101943A (ko) 2020-08-28
CN111433740B (zh) 2024-07-30
KR102727263B1 (ko) 2024-11-07
US10866805B2 (en) 2020-12-15
CN111433740A (zh) 2020-07-17
US20190205140A1 (en) 2019-07-04
EP3735633A1 (en) 2020-11-11
EP3735633B1 (en) 2022-10-12
WO2019135063A1 (en) 2019-07-11
JP2021509743A (ja) 2021-04-01

Similar Documents

Publication Publication Date Title
JP7406489B2 (ja) 推測バリア命令
Kocher et al. Spectre attacks: Exploiting speculative execution
KR102902347B1 (ko) 추측 제한된 메모리 영역 종류
Oleksenko et al. You shall not bypass: Employing data dependencies to prevent bounds check bypass
JP7377211B2 (ja) 投機的サイド・チャネル・ヒント命令
KR20210070936A (ko) 민감성으로서 명령들의 동적 지정
US20200410088A1 (en) Micro-instruction cache annotations to indicate speculative side-channel risk condition for read instructions
Le et al. A cross-process spectre attack via cache on RISC-V processor with trusted execution environment
Kvalsvik et al. Doppelganger loads: A safe, complexity-effective optimization for secure speculation schemes
CN116368465A (zh) 用于使用能力约束对存储器的访问的技术
US11307856B2 (en) Branch target variant of branch-with-link instruction
Hayes et al. {GPU} Taint Tracking
CN113316764A (zh) 控制由待解析推测性操作确定的数据的使用
Fuchs Analysis of Transient-Execution Attacks on the out-of-order CHERI-RISC-V Microprocessor Toooba
US12008149B2 (en) Method and system for on demand control of hardware support for software pointer authentification in a computing system
US20260072693A1 (en) Speculation barrier
TW202611707A (zh) 推測屏障
Guanhua Defense against Micro-Architecture Level Transient Execution Based Attacks via Program Analysis

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20211207

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20221227

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230125

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230425

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230803

A524 Written submission of copy of amendment under article 19 pct

Free format text: JAPANESE INTERMEDIATE CODE: A524

Effective date: 20231102

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: 20231121

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231215

R150 Certificate of patent or registration of utility model

Ref document number: 7406489

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150