JP7443641B2 - 命令の機密としての動的な指定 - Google Patents
命令の機密としての動的な指定 Download PDFInfo
- Publication number
- JP7443641B2 JP7443641B2 JP2020195581A JP2020195581A JP7443641B2 JP 7443641 B2 JP7443641 B2 JP 7443641B2 JP 2020195581 A JP2020195581 A JP 2020195581A JP 2020195581 A JP2020195581 A JP 2020195581A JP 7443641 B2 JP7443641 B2 JP 7443641B2
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- sensitive
- instructions
- integrated circuit
- execution
- 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
- 238000000034 method Methods 0.000 claims description 207
- 230000008569 process Effects 0.000 claims description 133
- 238000012545 processing Methods 0.000 claims description 79
- 230000004044 response Effects 0.000 claims description 25
- 230000026676 system process Effects 0.000 claims description 6
- 238000001514 detection method Methods 0.000 claims description 5
- 230000000977 initiatory effect Effects 0.000 claims description 2
- 230000009849 deactivation Effects 0.000 claims 1
- 238000013519 translation Methods 0.000 description 17
- 230000014616 translation Effects 0.000 description 17
- 230000008901 benefit Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 6
- 238000000638 solvent extraction Methods 0.000 description 6
- 102100021885 Speedy protein A Human genes 0.000 description 5
- 101710151560 Speedy protein A Proteins 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 206010010099 Combined immunodeficiency Diseases 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 238000001360 collision-induced dissociation Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005192 partition Methods 0.000 description 2
- 230000036316 preload Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000004913 activation Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 229940082150 encore Drugs 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000011144 upstream manufacturing 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/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30156—Special purpose encoding of instructions, e.g. Gray coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/54—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
-
- 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/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/556—Detecting local intrusion or implementing counter-measures involving covert channels, i.e. data leakage between processes
-
- 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/3001—Arithmetic instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/30076—Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
- G06F9/30079—Pipeline control instructions, e.g. multicycle NOP
-
- 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/3009—Thread control 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/30098—Register arrangements
- G06F9/30101—Special purpose 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30145—Instruction analysis, e.g. decoding, instruction word fields
- G06F9/30149—Instruction analysis, e.g. decoding, instruction word fields of variable length instructions
- G06F9/30152—Determining start or end of instruction; determining instruction length
-
- 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
-
- 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
-
- 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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
-
- 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/3867—Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/484—Precedence
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Advance Control (AREA)
- Mathematical Physics (AREA)
- Executing Machine-Instructions (AREA)
Description
本願は、2019年12月5日に出願された米国仮出願特許第62/944,245号に基づく優先権およびその利益を主張するものであり、その開示全体が参照によりここに組み込まれる。
Claims (29)
- 命令を実行するための集積回路であって、
機密処理イネーブルインジケータを有するレジスタと、
プロセッサコアと
を備え、
前記プロセッサコアは、
前記機密処理イネーブルインジケータが有効にされているかどうかをチェックし、
第1プロセスの第1スレッドからの第1命令が機密命令として指定されたことを検出し、
前記機密処理イネーブルインジケータの有効化および前記機密命令の検出に応答して、前記第1命令の実行中に、前記第1スレッド以外のスレッドからの命令の発行、ディスパッチ、または実行のうち少なくとも1つをブロックする制約を呼び出し、
前記制約に従って前記第1命令を実行し、かつ、
前記第1命令が実行された後であって、前記機密処理イネーブルインジケータが依然として有効とされている間に、前記制約なしで機密命令として指定されていない第2命令を実行する
ように構成される、
集積回路。 - 前記プロセッサコアはさらに、特権レベルが前記第1プロセスより高い第2プロセスによって、セキュリティポリシーに基づいて、前記第1命令の機密命令としての前記指定を許可するかどうかを判定する、請求項1に記載の集積回路。
- 前記第1命令は、機密ビットを含み、前記プロセッサコアは、前記第1命令の前記機密ビットを評価することにより、前記第1命令が機密命令として指定されたことを検出するように構成される、請求項1または2に記載の集積回路。
- 前記機密ビットは、前記第1プロセスにより動的に設定またはクリアされる、請求項3に記載の集積回路。
- 前記第1プロセスの命令シーケンスにおいて、前記第1命令の前には機密開始命令があり、前記第1命令の後には機密停止命令があり、前記プロセッサコアは、前記機密開始命令の検出に基づいて、前記第1命令が機密命令として指定されたことを検出するように構成される、請求項1から4のいずれか一項に記載の集積回路。
- 前記第1命令は、前記第1プロセスの前記命令シーケンスにおいて、直前に前記機密開始命令があり、かつ、直後に前記機密停止命令がある、命令サブシーケンスのメンバであり、前記プロセッサコアは、前記制約に従って前記命令サブシーケンスの全てのメンバを実行するように構成される、請求項5に記載の集積回路。
- 前記プロセッサコアは、前記第2プロセスの命令に基づいて前記機密処理イネーブルインジケータの有効または無効の値を更新するように構成される、請求項2に記載の集積回路。
- 前記第2プロセスは、ハイパーバイザプロセスである、請求項2または7に記載の集積回路。
- 前記第2プロセスは、オペレーティングシステムプロセスである、請求項2または7に記載の集積回路。
- 前記プロセッサコアは、
第3プロセスの第3命令が機密命令として指定されたことを検出し、
前記機密処理イネーブルインジケータが有効になっているかどうかをチェックし、かつ、
前記機密処理イネーブルインジケータの無効化に応答して、前記制約なしで前記第3プロセスの前記第3命令を実行する
ように構成される、請求項7から9の何れか一項に記載の集積回路。 - プロセッサパイプラインを備え、
前記プロセッサパイプラインは、前記プロセッサパイプラインの実行ユニットを使用して2つ以上のスレッドからの命令を並行して実行するように構成され、
前記制約は、前記プロセッサパイプラインの実行ユニットにより前記第1命令が実行されている間、他のスレッドからの命令の並列実行を防止する、
請求項1から10の何れか一項に記載の集積回路。 - 前記レジスタは、前記第1プロセスの状態を記憶するプロセス状態レジスタである、請求項1から11の何れか一項に記載の集積回路。
- 前記第1命令は、暗号命令である、請求項1から12の何れか一項に記載の集積回路。
- 前記機密処理イネーブルインジケータは、単一のビットで構成される、請求項1から13の何れか一項に記載の集積回路。
- 第1プロセスの状態を記憶するプロセス状態レジスタ内の機密処理イネーブルインジケータが有効にされているかどうかをチェックする段階と、
前記第1プロセスの第1スレッドからの第1命令が機密命令として指定されたことを検出する段階と、
前記機密処理イネーブルインジケータの有効化および前記機密命令の検出に応答して、前記第1命令の実行中に、前記第1スレッド以外のスレッドからの命令の発行、ディスパッチ、または実行のうち少なくとも1つをブロックする制約を呼び出す段階と、
前記制約に従って前記第1命令を実行する段階と、
前記第1命令が実行された後であって、前記機密処理イネーブルインジケータが依然として有効とされている間に、前記制約なしで機密命令として指定されていない第2命令を実行する段階と
を備える方法。 - 前記第1命令が機密命令として指定されたことを検出する段階は、
前記第1命令に含まれる機密ビットを評価する段階
を有する、請求項15に記載の方法。 - 前記第1プロセスの命令シーケンスにおいて、前記第1命令の前には機密開始命令があり、前記第1命令の後には機密停止命令があり、前記方法は、
前記機密開始命令の検出に基づいて、前記第1命令が機密命令として指定されたことを検出する段階
を備える、請求項15または16に記載の方法。 - 前記第1命令は、前記第1プロセスの前記命令シーケンスにおいて、直前に前記機密開始命令があり、かつ、直後に前記機密停止命令がある、命令サブシーケンスのメンバであり、前記方法は、
前記制約に従って前記命令サブシーケンスの全てのメンバを実行する段階
を備える、請求項17に記載の方法。 - 前記第1プロセスより特権レベルの高い第2プロセスの命令に基づいて前記機密処理イネーブルインジケータの有効または無効の値を更新する段階
を備える請求項15から18の何れか一項に記載の方法。 - 前記第2プロセスは、ハイパーバイザプロセスである、請求項19に記載の方法。
- 前記第2プロセスは、オペレーティングシステムプロセスである、請求項19に記載の方法。
- 第3プロセスの第3命令が機密命令として指定されたことを検出する段階と、
前記第3プロセスに関連付けられる機密処理イネーブルインジケータが有効になっているかどうかをチェックする段階と、
前記第3プロセスに関連付けられる前記機密処理イネーブルインジケータの無効化に応答して、前記制約なしで前記第3プロセスの前記第3命令を実行する段階と
を備える請求項19から21の何れか一項に記載の方法。 - 前記制約は、プロセッサパイプラインの実行ユニットにより前記第1命令が実行されている間、他のスレッドからの命令の並列実行を防止し、前記プロセッサパイプラインは、前記プロセッサパイプラインの実行ユニットを使用して2つ以上のスレッドからの命令を並行して実行するように構成される、請求項15から22の何れか一項に記載の方法。
- 前記第1命令は、暗号命令である、請求項15から23の何れか一項に記載の方法。
- 前記機密処理イネーブルインジケータは、単一のビットで構成される、請求項16から24の何れか一項に記載の方法。
- 命令を実行するための集積回路であって、
機密処理イネーブルインジケータを記憶するための手段と、
前記機密処理イネーブルインジケータが有効にされているかどうかをチェックし、第1プロセスの第1スレッドからの第1命令が機密命令として指定されたことを検出し、かつ、前記機密処理イネーブルインジケータの有効化および前記機密命令の検出に応答して、前記第1命令の実行中に、前記第1スレッド以外のスレッドからの命令の発行、ディスパッチ、または実行のうち少なくとも1つをブロックする制約を呼び出すための手段と、
前記制約に従って前記第1命令を実行し、かつ、前記第1命令が実行された後であって、前記機密処理イネーブルインジケータが依然として有効とされている間に、前記制約なしで機密命令として指定されていない第2命令を実行するための手段と
を備える集積回路。 - 前記第1プロセスより特権レベルの高い第2プロセスの命令に基づいて前記機密処理イネーブルインジケータの有効または無効の値を更新するための手段
を備える請求項26に記載の集積回路。 - プロセッサパイプラインを備え、
前記プロセッサパイプラインは、前記プロセッサパイプラインの実行ユニットを使用して2つ以上のスレッドからの命令を並行して実行するように構成され、
前記制約は、前記プロセッサパイプラインの実行ユニットにより前記第1命令が実行されている間、他のスレッドからの命令の並列実行を防止する、
請求項26または27に記載の集積回路。 - 前記機密命令は、暗号命令である、請求項26から28の何れか一項に記載の集積回路。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962944245P | 2019-12-05 | 2019-12-05 | |
US62/944,245 | 2019-12-05 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2021089727A JP2021089727A (ja) | 2021-06-10 |
JP7443641B2 true JP7443641B2 (ja) | 2024-03-06 |
Family
ID=76208983
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020195581A Active JP7443641B2 (ja) | 2019-12-05 | 2020-11-25 | 命令の機密としての動的な指定 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11307857B2 (ja) |
JP (1) | JP7443641B2 (ja) |
KR (1) | KR102664370B1 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11263015B1 (en) | 2019-12-05 | 2022-03-01 | Marvell Asia Pte, Ltd. | Microarchitectural sensitive tag flow |
US11372647B2 (en) | 2019-12-05 | 2022-06-28 | Marvell Asia Pte, Ltd. | Pipelines for secure multithread execution |
US11914524B2 (en) * | 2022-03-01 | 2024-02-27 | Qualcomm Incorporated | Latency management in synchronization events |
US12045615B1 (en) | 2022-09-16 | 2024-07-23 | Apple Inc. | Processing of synchronization barrier instructions |
CN117375792B (zh) * | 2023-02-24 | 2024-07-19 | 华为技术有限公司 | 侧信道检测的方法和装置 |
US20240320157A1 (en) * | 2023-03-22 | 2024-09-26 | Qualcomm Incorporated | Filtering remote data synchronization barrier (dsb) instruction execution in processor-based devices |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007524869A (ja) | 2004-02-12 | 2007-08-30 | パノラマ ラブズ ピーティーワイ リミテッド | 性能を高める境界領域を含む構造化された導波管のための装置、方法及びコンピュータプログラム製品 |
JP2010108315A (ja) | 2008-10-30 | 2010-05-13 | Fujitsu Ltd | 不揮発性メモリ・ドライバ |
US20140229690A1 (en) | 2013-02-14 | 2014-08-14 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
US20190034356A1 (en) | 2017-07-25 | 2019-01-31 | International Business Machines Corporation | Computer system software/firmware and a processor unit with a security module |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080126766A1 (en) | 2006-11-03 | 2008-05-29 | Saurabh Chheda | Securing microprocessors against information leakage and physical tampering |
US20090089564A1 (en) * | 2006-12-06 | 2009-04-02 | Brickell Ernie F | Protecting a Branch Instruction from Side Channel Vulnerabilities |
US9887833B2 (en) | 2012-03-07 | 2018-02-06 | The Trustees Of Columbia University In The City Of New York | Systems and methods to counter side channel attacks |
US9824225B1 (en) * | 2013-09-20 | 2017-11-21 | EMC IP Holding Company LLC | Protecting virtual machines processing sensitive information |
US9436603B1 (en) | 2014-02-27 | 2016-09-06 | Amazon Technologies, Inc. | Detection and mitigation of timing side-channel attacks |
KR102354990B1 (ko) | 2014-09-17 | 2022-01-24 | 삼성전자주식회사 | 캐시 메모리 시스템 및 그 동작방법 |
GB2544452B (en) | 2015-08-26 | 2019-09-11 | Advanced Risc Mach Ltd | Data processing systems |
US10771236B2 (en) | 2017-05-03 | 2020-09-08 | Seagate Technology Llc | Defending against a side-channel information attack in a data storage device |
GB2566469B (en) | 2017-09-13 | 2021-03-24 | Advanced Risc Mach Ltd | Cache line statuses |
US10963567B2 (en) | 2017-10-12 | 2021-03-30 | Microsoft Technology Licensing, Llc | Speculative side-channel attack mitigations |
KR102424357B1 (ko) | 2017-10-24 | 2022-07-25 | 삼성전자주식회사 | 부채널 공격으로부터 정보를 보호하는 방법 및 디바이스 |
US10713075B2 (en) | 2017-11-30 | 2020-07-14 | International Business Machines Corporation | Workload manager control of dynamic thread mode switch |
US10936714B1 (en) | 2018-02-02 | 2021-03-02 | Itsec Analytics Pte. Ltd. | Systems and methods for preventing code insertion attacks |
GB2572158B (en) | 2018-03-20 | 2020-11-25 | Advanced Risc Mach Ltd | Random tag setting instruction |
US10860215B2 (en) | 2018-06-18 | 2020-12-08 | Arm Limited | Delay masking action for memory access requests |
US10740220B2 (en) | 2018-06-27 | 2020-08-11 | Microsoft Technology Licensing, Llc | Cache-based trace replay breakpoints using reserved tag field bits |
US10929535B2 (en) | 2018-06-29 | 2021-02-23 | Intel Corporation | Controlled introduction of uncertainty in system operating parameters |
US11144468B2 (en) | 2018-06-29 | 2021-10-12 | Intel Corporation | Hardware based technique to prevent critical fine-grained cache side-channel attacks |
US20200065112A1 (en) | 2018-08-22 | 2020-02-27 | Qualcomm Incorporated | Asymmetric speculative/nonspeculative conditional branching |
US11635965B2 (en) * | 2018-10-31 | 2023-04-25 | Intel Corporation | Apparatuses and methods for speculative execution side channel mitigation |
US20210096872A1 (en) * | 2019-09-27 | 2021-04-01 | Intel Corporation | Hardware for eliding security checks when deemed safe during speculative execution |
US11372647B2 (en) | 2019-12-05 | 2022-06-28 | Marvell Asia Pte, Ltd. | Pipelines for secure multithread execution |
-
2020
- 2020-10-27 US US17/081,099 patent/US11307857B2/en active Active
- 2020-11-25 JP JP2020195581A patent/JP7443641B2/ja active Active
- 2020-12-04 KR KR1020200168366A patent/KR102664370B1/ko active IP Right Grant
-
2022
- 2022-02-07 US US17/665,991 patent/US20220156076A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007524869A (ja) | 2004-02-12 | 2007-08-30 | パノラマ ラブズ ピーティーワイ リミテッド | 性能を高める境界領域を含む構造化された導波管のための装置、方法及びコンピュータプログラム製品 |
JP2010108315A (ja) | 2008-10-30 | 2010-05-13 | Fujitsu Ltd | 不揮発性メモリ・ドライバ |
US20140229690A1 (en) | 2013-02-14 | 2014-08-14 | International Business Machines Corporation | Instruction set architecture with secure clear instructions for protecting processing unit architected state information |
US20190034356A1 (en) | 2017-07-25 | 2019-01-31 | International Business Machines Corporation | Computer system software/firmware and a processor unit with a security module |
Non-Patent Citations (1)
Title |
---|
TOWNLEY, Daniel et.al,SMT-COP:Defeating Side-channel Attacks on Execution Units in SMT Processors,Published in:2019 28th International Conference on Parallel Architectures and Compilation Techniques (PACT),米国,IEEE,2019年09月26日,pages:43-54 |
Also Published As
Publication number | Publication date |
---|---|
JP2021089727A (ja) | 2021-06-10 |
KR20210070936A (ko) | 2021-06-15 |
US11307857B2 (en) | 2022-04-19 |
KR102664370B1 (ko) | 2024-05-28 |
US20210173651A1 (en) | 2021-06-10 |
US20220156076A1 (en) | 2022-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7443641B2 (ja) | 命令の機密としての動的な指定 | |
US11681533B2 (en) | Restricted speculative execution mode to prevent observable side effects | |
US11176055B1 (en) | Managing potential faults for speculative page table access | |
US11886882B2 (en) | Pipelines for secure multithread execution | |
US11733972B2 (en) | Processor that mitigates side channel attacks by providing random load data as a result of execution of a load operation that does not have permission to access a load address | |
US11907369B2 (en) | Processor that mitigates side channel attacks by preventing cache memory state from being affected by a missing load operation by inhibiting or canceling a fill request of the load operation if an older load generates a need for an architectural exception | |
US11734426B2 (en) | Processor that mitigates side channel attacks by prevents cache line data implicated by a missing load address from being filled into a data cache memory when the load address specifies a location with no valid address translation or no permission to read from the location | |
US11853424B2 (en) | Processor that mitigates side channel attacks by refraining from allocating an entry in a data TLB for a missing load address when the load address misses both in a data cache memory and in the data TLB and the load address specifies a location without a valid address translation or without permission to read from the location | |
CN112149114A (zh) | 利用用于指示数据类型的隐藏内联元数据的存储器保护 | |
KR20130140582A (ko) | 제로 사이클 로드 | |
CN112119377A (zh) | 用于多个软件工作负载的分支预测缓存 | |
US11442864B2 (en) | Managing prefetch requests based on stream information for previously recognized streams | |
US12118076B2 (en) | Physically-tagged data cache memory that uses translation context to reduce likelihood that entries allocated during execution under one translation context are accessible during execution under another translation context | |
US11500779B1 (en) | Vector prefetching for computing systems | |
US20240311150A1 (en) | Method for secure, simple, and fast speculative execution | |
US8046538B1 (en) | Method and mechanism for cache compaction and bandwidth reduction | |
US11625479B2 (en) | Virtually-tagged data cache memory that uses translation context to make entries allocated during execution under one translation context inaccessible during execution under another translation context | |
US11263015B1 (en) | Microarchitectural sensitive tag flow | |
US11403101B1 (en) | Introducing noise in threaded execution to mitigate cross-thread monitoring | |
US11822652B1 (en) | Prime and probe attack mitigation | |
US11604873B1 (en) | Noisy instructions for side-channel attack mitigation | |
US11663130B1 (en) | Cache replacement mechanisms for speculative execution | |
US11379368B1 (en) | External way allocation circuitry for processor cores | |
WO2024124036A1 (en) | A method for secure, simple, and fast speculative execution crossing trust domains |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230131 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230328 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20230711 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20231017 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20231027 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20231219 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20240112 |
|
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: 20240123 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20240126 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 7443641 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |