JP2016006681A - セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 - Google Patents
セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 Download PDFInfo
- Publication number
- JP2016006681A JP2016006681A JP2015170962A JP2015170962A JP2016006681A JP 2016006681 A JP2016006681 A JP 2016006681A JP 2015170962 A JP2015170962 A JP 2015170962A JP 2015170962 A JP2015170962 A JP 2015170962A JP 2016006681 A JP2016006681 A JP 2016006681A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processor
- enclave
- secure
- secure enclave
- 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
- 238000012545 processing Methods 0.000 claims abstract description 139
- 238000013519 translation Methods 0.000 claims abstract description 29
- 238000013507 mapping Methods 0.000 claims abstract description 24
- 230000015654 memory Effects 0.000 claims description 166
- 238000000034 method Methods 0.000 claims description 105
- 238000003860 storage Methods 0.000 claims description 49
- 230000004044 response Effects 0.000 claims description 47
- 239000000872 buffer Substances 0.000 claims description 10
- 230000009466 transformation Effects 0.000 claims description 7
- 230000007423 decrease Effects 0.000 claims description 4
- 230000000903 blocking effect Effects 0.000 claims description 3
- 238000000844 transformation Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 53
- 238000007667 floating Methods 0.000 description 34
- 238000010586 diagram Methods 0.000 description 31
- 238000013461 design Methods 0.000 description 20
- 230000014616 translation Effects 0.000 description 20
- 238000005516 engineering process Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 15
- 238000004519 manufacturing process Methods 0.000 description 11
- 230000007246 mechanism Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 7
- 230000008901 benefit Effects 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 230000001419 dependent effect Effects 0.000 description 6
- 238000006073 displacement reaction Methods 0.000 description 6
- 230000003068 static effect Effects 0.000 description 6
- VOXZDWNPVJITMN-ZBRFXRBCSA-N 17β-estradiol Chemical compound OC1=CC=C2[C@H]3CC[C@](C)([C@H](CC4)O)[C@@H]4[C@@H]3CCC2=C1 VOXZDWNPVJITMN-ZBRFXRBCSA-N 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000007726 management method Methods 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000015556 catabolic process Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 238000006731 degradation reaction Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 4
- 238000013475 authorization Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 230000005291 magnetic effect Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 101100285899 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SSE2 gene Proteins 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 230000006837 decompression Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 229910052754 neon Inorganic materials 0.000 description 2
- GKAOGPIIYCISHV-UHFFFAOYSA-N neon atom Chemical compound [Ne] GKAOGPIIYCISHV-UHFFFAOYSA-N 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101000912503 Homo sapiens Tyrosine-protein kinase Fgr Proteins 0.000 description 1
- 102000001332 SRC Human genes 0.000 description 1
- 108060006706 SRC Proteins 0.000 description 1
- 102100026150 Tyrosine-protein kinase Fgr Human genes 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012938 design process Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/14—Protection against unauthorised use of memory or access to memory
- G06F12/1458—Protection against unauthorised use of memory or access to memory by checking the subject access rights
- G06F12/1466—Key-lock mechanism
- G06F12/1475—Key-lock mechanism in a virtual system, e.g. with translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0875—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0808—Multiuser, multiprocessor or multiprocessing cache systems with cache invalidating means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- 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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/40—Specific encoding of data in memory or cache
- G06F2212/402—Encrypted data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Storage Device Security (AREA)
- Executing Machine-Instructions (AREA)
Abstract
Description
リタイアユニット454および物理レジスタファイル(単数または複数)ユニット(単数または複数)458は、実行クラスタ(単数または複数)460に結合される。実行クラスタ(単数または複数)460は、1つまたは複数の実行ユニット462の組と、1つまたは複数のメモリアクセスユニット464の組とを含む。実行ユニット462は、さまざまなタイプのデータ(例、スカラ浮動小数点、パック整数、パック浮動小数点、ベクトル整数、ベクトル浮動小数点)に対して、さまざまな演算(例、シフト、加算、減算、乗算)を行ってもよい。いくつかの実施形態は、特定の機能または機能の組の専用にされたいくつかの実行ユニットを含んでもよいが、他の実施形態はただ1つの実行ユニットを含むか、またはすべてが全機能を行う複数の実行ユニットを含んでもよい。スケジューラユニット(単数または複数)456、物理レジスタファイル(単数または複数)ユニット(単数または複数)458、および実行クラスタ(単数または複数)460は、複数の可能性もあるものとして示されている。なぜなら、特定の実施形態は、特定のタイプのデータ/演算に対して別個のパイプラインを作成するからである(例、スカラ整数パイプライン、スカラ浮動小数点/パック整数/パック浮動小数点/ベクトル整数/ベクトル浮動小数点パイプライン、および/またはメモリアクセスパイプラインは、各々が自身のスケジューラユニット、物理レジスタファイル(単数または複数)ユニットおよび/または実行クラスタを有し、さらに別個のメモリアクセスパイプラインの場合には、特定の実施形態の実現において、このパイプラインの実行クラスタのみがメモリアクセスユニット(単数または複数)464を有する)。加えて、別個のパイプラインが用いられるとき、これらのパイプラインのうちの1つまたは複数がアウトオブオーダ発行/実行であって、残りのものがインオーダであってもよいことが理解されるべきである。
x86コンパイラ1304とは、少なくとも1つのx86命令セットコアを有するプロセッサ1316において、追加のリンク処理によって、または追加のリンク処理なしで実行され得るx86 2進コード1306(例、オブジェクトコード)を生成するために動作可能なコンパイラを表す。同様に、図13は、高レベル言語1302のプログラムが代替的命令セットコンパイラ1308を用いてコンパイルされることにより、少なくとも1つのx86命令セットコアを有さないプロセッサ1314(例、カリフォルニア州サニーヴェールのミップステクノロジーズのMIPS命令セットを実行するか、および/またはカリフォルニア州サニーヴェールのARMホールディングスのARM命令セットを実行するコアを有するプロセッサ)によってネイティブに実行され得る代替的命令セット2進コード1310が生成され得ることを示す。命令コンバータ1312は、x86 2進コード1306を、x86命令セットコアを有さないプロセッサ1314によってネイティブに実行され得るコードに変換するために用いられる。この変換されたコードは、代替的命令セット2進コード1310と同じではないと考えられる。なぜなら、それが可能な命令コンバータの作製は困難だからである。しかし、変換されたコードは一般的な動作を遂行し、代替的命令セットからの命令で構成されるだろう。よって命令コンバータ1312は、エミュレーション、シミュレーションまたはあらゆるその他のプロセスを通じて、x86命令セットプロセッサまたはコアを有さないプロセッサまたはその他の電子デバイスが、x86 2進コード1306を実行できるようにするソフトウェア、ファームウェア、ハードウェア、またはその組み合わせを表す。
本実施形態の例を下記の各項目として示す。
[項目1]
プロセッサであって、
第1のハードウェアスレッドおよび第2のハードウェアスレッドと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するためのエンクレーブページキャッシュと、
前記プロセッサによる実行のために第1の命令を復号するための復号段階であって、前記第1の命令は前記共有ページアドレスをオペランドとして指定する、復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックする、プロセッサ。
[項目2]
前記第1の命令は、任意の変換ルックアサイドバッファ(TLB)における前記共有ページアドレスに対応する新たな変換の前記作成を防ぐために前記共有ページアドレスを指定するEBLOCK命令である、項目1に記載のプロセッサ。
[項目3]
前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記セキュアエンクレーブをオペランドとして指定する、前記復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録する、項目1または2に記載のプロセッサ。
[項目4]
前記第2の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの数を記録するために前記セキュアエンクレーブを指定するETRACK命令である、項目3に記載のプロセッサ。
[項目5]
前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、項目4に記載のプロセッサ。
[項目6]
前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、項目4に記載のプロセッサ。
[項目7]
プロセッサであって、
第1のハードウェアスレッドおよび第2のハードウェアスレッドと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するためのエンクレーブページキャッシュと、
前記プロセッサによる実行のために第1の命令を復号するための復号段階であって、前記第1の命令は前記セキュアエンクレーブをオペランドとして指定する、復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録する、プロセッサ。
[項目8]
前記第1の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの数を記録するために前記セキュアエンクレーブを指定するETRACK命令である、項目7に記載のプロセッサ。
[項目9]
前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、項目8に記載のプロセッサ。
[項目10]
前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記共有ページアドレスをオペランドとして指定する、前記復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックする、項目7から9のいずれか1項に記載のプロセッサ。
[項目11]
前記第2の命令は、任意のTLBにおける前記共有ページアドレスに対応する新たな変換の前記作成を防ぐために前記共有ページアドレスを指定するEBLOCK命令である、項目10に記載のプロセッサ。
[項目12]
前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、項目11に記載のプロセッサ。
[項目13]
前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記共有ページアドレスをオペランドとして指定する、前記復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行う、項目7から12のいずれか1項に記載のプロセッサ。
[項目14]
前記第2の命令は、前記エンクレーブページキャッシュからの前記共有ページの退去および書戻しを行うために前記共有ページアドレスを指定するエンクレーブ書戻し(EWB)命令である、項目13に記載のプロセッサ。
[項目15]
前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第2の命令は失敗する、項目14に記載のプロセッサ。
[項目16]
前記第2の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するまで実行を待つ、項目14に記載のプロセッサ。
[項目17]
方法であって、
マルチスレッドプロセッサにおいて第1のハードウェアスレッドおよび第2のハードウェアスレッドを実行するステップと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するステップと、
前記プロセッサによる実行のために第1の命令を復号するステップであって、前記第1の命令は前記共有ページアドレスをオペランドとして指定する、ステップと、
前記第1の命令を復号するステップに応答して、前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックするステップと
を含む、方法。
[項目18]
前記第1の命令は、任意のTLBにおける前記共有ページアドレスに対応する新たな変換の前記作成を防ぐために前記共有ページアドレスを指定するEBLOCK命令である、項目17に記載の方法。
[項目19]
前記第1の命令を復号するステップに応答して、前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録するステップをさらに含む、項目17または18に記載の方法。
[項目20]
前記第1の命令を復号するステップに応答して、前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が減少する、項目19に記載の方法。
[項目21]
前記対応するハードウェアスレッドが前記セキュアエンクレーブから出るときに、前記ハードウェアスレッドのいずれかに対応するTLBに前記共有ページアドレスに対応する変換がフラッシュされる、項目20に記載の方法。
[項目22]
前記プロセッサによる実行のために第2の命令を復号するステップであって、前記第2の命令は前記セキュアエンクレーブをオペランドとして指定する、ステップと、
前記第2の命令を復号するステップに応答して、前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録するステップと
を含む、項目17から21のいずれか1項に記載の方法。
[項目23]
前記第2の命令を復号するステップに応答して、前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が減少する、項目22に記載の方法。
[項目24]
前記プロセッサによる実行のために第3の命令を復号するステップであって、前記第3の命令は前記共有ページアドレスをオペランドとして指定する、ステップと、
前記第3の命令を復号するステップに応答して、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行うステップと
を含む、項目22に記載の方法。
[項目25]
前記プロセッサによる実行のために前記第3の命令を復号するステップに応答して、前記セキュアデータをメモリまたは不揮発性記憶装置に書戻す前に、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内の前記セキュアデータが暗号化される、項目24に記載の方法。
[項目26]
前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第3の命令は失敗する、項目24に記載の方法。
[項目27]
前記第3の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するまで実行を待つ、項目24に記載の方法。
[項目28]
方法であって、
マルチスレッドプロセッサにおいて第1のハードウェアスレッドおよび第2のハードウェアスレッドを実行するステップと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するステップと、
前記プロセッサによる実行のために第1の命令を復号するステップであって、前記第1の命令は前記セキュアエンクレーブをオペランドとして指定する、ステップと、
前記第1の命令を復号するステップに応答して、前記セキュアエンクレーブに対応するエンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録するステップと
を含む、方法。
[項目29]
前記第1の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの数を記録するために前記セキュアエンクレーブを指定するETRACK命令である、項目28に記載の方法。
[項目30]
前記第1の命令を復号するステップに応答して、前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が減少する、項目28または29に記載の方法。
[項目31]
前記第1の命令を復号するステップに応答して、任意のTLBにおける前記共有ページアドレスに対応する新たな変換の作成が防がれる、項目30に記載の方法。
[項目32]
前記プロセッサによる実行のために第2の命令を復号するステップであって、前記第2の命令は前記共有ページアドレスをオペランドとして指定する、ステップと、
前記第2の命令を復号するステップに応答して、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行うステップと
を含む、項目30に記載の方法。
[項目33]
前記プロセッサによる実行のために前記第2の命令を復号するステップに応答して、前記セキュアデータをメモリまたは不揮発性記憶装置に書戻す前に、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内の前記セキュアデータが暗号化される、項目32に記載の方法。
[項目34]
前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第2の命令は失敗する、項目33に記載の方法。
[項目35]
処理システムであって、
メモリと、
プロセッサとを含み、前記プロセッサは、
第1のハードウェアスレッドおよび第2のハードウェアスレッドと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するためのエンクレーブページキャッシュと、
前記プロセッサによる実行のために第1の命令を復号するための復号段階であって、前記第1の命令は前記共有ページアドレスをオペランドとして指定する、復号段階と、
1つまたは複数の実行ユニットであって、前記復号された第1の命令に応答して、前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックする、1つまたは複数の実行ユニットと、
前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記セキュアエンクレーブをオペランドとして指定する、前記復号段階と、
前記1つまたは複数の実行ユニットであって、前記復号された第2の命令に応答して、
前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録し、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、前記1つまたは複数の実行ユニットと
を含む、処理システム。
[項目36]
前記対応するハードウェアスレッドが前記セキュアエンクレーブから出るときに、前記ハードウェアスレッドのいずれかに対応するTLBにおいて前記共有ページアドレスに対応する変換がフラッシュされる、項目35に記載の処理システム。
[項目37]
前記プロセッサは、
前記プロセッサによる実行のために第3の命令を復号するための前記復号段階であって、前記第3の命令は前記共有ページアドレスをオペランドとして指定する、前記復号段階と、
前記1つまたは複数の実行ユニットであって、前記復号された第3の命令に応答して、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行う、前記1つまたは複数の実行ユニットと
を含む、項目36に記載の処理システム。
[項目38]
前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第3の命令は失敗する、項目37に記載の処理システム。
Claims (38)
- プロセッサであって、
第1のハードウェアスレッドおよび第2のハードウェアスレッドと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するためのエンクレーブページキャッシュと、
前記プロセッサによる実行のために第1の命令を復号するための復号段階であって、前記第1の命令は前記共有ページアドレスをオペランドとして指定する、復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックする、プロセッサ。 - 前記第1の命令は、任意の変換ルックアサイドバッファ(TLB)における前記共有ページアドレスに対応する新たな変換の前記作成を防ぐために前記共有ページアドレスを指定するEBLOCK命令である、請求項1に記載のプロセッサ。
- 前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記セキュアエンクレーブをオペランドとして指定する、前記復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録する、請求項1または2に記載のプロセッサ。 - 前記第2の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの数を記録するために前記セキュアエンクレーブを指定するETRACK命令である、請求項3に記載のプロセッサ。
- 前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、請求項4に記載のプロセッサ。 - 前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、請求項4に記載のプロセッサ。 - プロセッサであって、
第1のハードウェアスレッドおよび第2のハードウェアスレッドと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するためのエンクレーブページキャッシュと、
前記プロセッサによる実行のために第1の命令を復号するための復号段階であって、前記第1の命令は前記セキュアエンクレーブをオペランドとして指定する、復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録する、プロセッサ。 - 前記第1の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの数を記録するために前記セキュアエンクレーブを指定するETRACK命令である、請求項7に記載のプロセッサ。
- 前記1つまたは複数の実行ユニットは、前記復号された第1の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、請求項8に記載のプロセッサ。 - 前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記共有ページアドレスをオペランドとして指定する、前記復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックする、請求項7から9のいずれか1項に記載のプロセッサ。 - 前記第2の命令は、任意のTLBにおける前記共有ページアドレスに対応する新たな変換の前記作成を防ぐために前記共有ページアドレスを指定するEBLOCK命令である、請求項10に記載のプロセッサ。
- 前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、請求項11に記載のプロセッサ。 - 前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記共有ページアドレスをオペランドとして指定する、前記復号段階と、
1つまたは複数の実行ユニットとを含み、前記1つまたは複数の実行ユニットは、前記復号された第2の命令に応答して、
前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行う、請求項7から12のいずれか1項に記載のプロセッサ。 - 前記第2の命令は、前記エンクレーブページキャッシュからの前記共有ページの退去および書戻しを行うために前記共有ページアドレスを指定するエンクレーブ書戻し(EWB)命令である、請求項13に記載のプロセッサ。
- 前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第2の命令は失敗する、請求項14に記載のプロセッサ。
- 前記第2の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するまで実行を待つ、請求項14に記載のプロセッサ。
- 方法であって、
マルチスレッドプロセッサにおいて第1のハードウェアスレッドおよび第2のハードウェアスレッドを実行するステップと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するステップと、
前記プロセッサによる実行のために第1の命令を復号するステップであって、前記第1の命令は前記共有ページアドレスをオペランドとして指定する、ステップと、
前記第1の命令を復号するステップに応答して、前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックするステップと
を含む、方法。 - 前記第1の命令は、任意のTLBにおける前記共有ページアドレスに対応する新たな変換の前記作成を防ぐために前記共有ページアドレスを指定するEBLOCK命令である、請求項17に記載の方法。
- 前記第1の命令を復号するステップに応答して、前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録するステップをさらに含む、請求項17または18に記載の方法。
- 前記第1の命令を復号するステップに応答して、前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が減少する、請求項19に記載の方法。
- 前記対応するハードウェアスレッドが前記セキュアエンクレーブから出るときに、前記ハードウェアスレッドのいずれかに対応するTLBに前記共有ページアドレスに対応する変換がフラッシュされる、請求項20に記載の方法。
- 前記プロセッサによる実行のために第2の命令を復号するステップであって、前記第2の命令は前記セキュアエンクレーブをオペランドとして指定する、ステップと、
前記第2の命令を復号するステップに応答して、前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録するステップと
を含む、請求項17から21のいずれか1項に記載の方法。 - 前記第2の命令を復号するステップに応答して、前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が減少する、請求項22に記載の方法。
- 前記プロセッサによる実行のために第3の命令を復号するステップであって、前記第3の命令は前記共有ページアドレスをオペランドとして指定する、ステップと、
前記第3の命令を復号するステップに応答して、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行うステップと
を含む、請求項22に記載の方法。 - 前記プロセッサによる実行のために前記第3の命令を復号するステップに応答して、前記セキュアデータをメモリまたは不揮発性記憶装置に書戻す前に、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内の前記セキュアデータが暗号化される、請求項24に記載の方法。
- 前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第3の命令は失敗する、請求項24に記載の方法。
- 前記第3の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するまで実行を待つ、請求項24に記載の方法。
- 方法であって、
マルチスレッドプロセッサにおいて第1のハードウェアスレッドおよび第2のハードウェアスレッドを実行するステップと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するステップと、
前記プロセッサによる実行のために第1の命令を復号するステップであって、前記第1の命令は前記セキュアエンクレーブをオペランドとして指定する、ステップと、
前記第1の命令を復号するステップに応答して、前記セキュアエンクレーブに対応するエンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録するステップと
を含む、方法。 - 前記第1の命令は、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの数を記録するために前記セキュアエンクレーブを指定するETRACK命令である、請求項28に記載の方法。
- 前記第1の命令を復号するステップに応答して、前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が減少する、請求項28または29に記載の方法。
- 前記第1の命令を復号するステップに応答して、任意のTLBにおける前記共有ページアドレスに対応する新たな変換の作成が防がれる、請求項30に記載の方法。
- 前記プロセッサによる実行のために第2の命令を復号するステップであって、前記第2の命令は前記共有ページアドレスをオペランドとして指定する、ステップと、
前記第2の命令を復号するステップに応答して、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行うステップと
を含む、請求項30に記載の方法。 - 前記プロセッサによる実行のために前記第2の命令を復号するステップに応答して、前記セキュアデータをメモリまたは不揮発性記憶装置に書戻す前に、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内の前記セキュアデータが暗号化される、請求項32に記載の方法。
- 前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第2の命令は失敗する、請求項33に記載の方法。
- 処理システムであって、
メモリと、
プロセッサとを含み、前記プロセッサは、
第1のハードウェアスレッドおよび第2のハードウェアスレッドと、
前記第1および第2のハードウェアスレッドによってアクセス可能な、対応するセキュアエンクレーブに割り当てられた共有ページアドレスに対するキャッシュラインにセキュアデータを保存するためのエンクレーブページキャッシュと、
前記プロセッサによる実行のために第1の命令を復号するための復号段階であって、前記第1の命令は前記共有ページアドレスをオペランドとして指定する、復号段階と、
1つまたは複数の実行ユニットであって、前記復号された第1の命令に応答して、前記共有ページアドレスに対するエンクレーブページキャッシュマッピングに対応するエントリをマーク付けすることによって、前記第1または第2のハードウェアスレッドのいずれかが前記共有ページアドレスに対応するセキュアデータにアクセスするための新たな変換の作成をブロックする、1つまたは複数の実行ユニットと、
前記プロセッサによる実行のために第2の命令を復号するための前記復号段階であって、前記第2の命令は前記セキュアエンクレーブをオペランドとして指定する、前記復号段階と、
前記1つまたは複数の実行ユニットであって、前記復号された第2の命令に応答して、
前記セキュアエンクレーブに対応する前記エンクレーブページキャッシュ内のセキュアデータに現在アクセス中のハードウェアスレッドを記録し、
前記ハードウェアスレッドのいずれかが前記セキュアエンクレーブから出るときに、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数を減らす、前記1つまたは複数の実行ユニットと
を含む、処理システム。 - 前記対応するハードウェアスレッドが前記セキュアエンクレーブから出るときに、前記ハードウェアスレッドのいずれかに対応するTLBにおいて前記共有ページアドレスに対応する変換がフラッシュされる、請求項35に記載の処理システム。
- 前記プロセッサは、
前記プロセッサによる実行のために第3の命令を復号するための前記復号段階であって、前記第3の命令は前記共有ページアドレスをオペランドとして指定する、前記復号段階と、
前記1つまたは複数の実行ユニットであって、前記復号された第3の命令に応答して、前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達するときに、前記共有ページアドレスに対応する前記エンクレーブページキャッシュ内のセキュアデータの退去および書戻しを行う、前記1つまたは複数の実行ユニットと
を含む、請求項36に記載の処理システム。 - 前記セキュアエンクレーブにおいて現在実行中のハードウェアスレッドの前記記録された数が0に達しないとき、前記第3の命令は失敗する、請求項37に記載の処理システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/854,107 | 2013-03-31 | ||
US13/854,107 US9430384B2 (en) | 2013-03-31 | 2013-03-31 | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014028162A Division JP5802290B2 (ja) | 2013-03-31 | 2014-02-18 | セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016006681A true JP2016006681A (ja) | 2016-01-14 |
JP6344614B2 JP6344614B2 (ja) | 2018-06-20 |
Family
ID=50737713
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014028162A Active JP5802290B2 (ja) | 2013-03-31 | 2014-02-18 | セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 |
JP2015170962A Active JP6344614B2 (ja) | 2013-03-31 | 2015-08-31 | セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014028162A Active JP5802290B2 (ja) | 2013-03-31 | 2014-02-18 | セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9430384B2 (ja) |
JP (2) | JP5802290B2 (ja) |
KR (1) | KR101628886B1 (ja) |
CN (1) | CN104484284B (ja) |
BR (1) | BR102014006806A2 (ja) |
DE (1) | DE102014004563A1 (ja) |
GB (4) | GB2515611B (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430384B2 (en) | 2013-03-31 | 2016-08-30 | Intel Corporation | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
US10867092B2 (en) | 2017-12-16 | 2020-12-15 | Intel Corporation | Avoiding asynchronous enclave exits based on requests to invalidate translation lookaside buffer entries |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9378560B2 (en) * | 2011-06-17 | 2016-06-28 | Advanced Micro Devices, Inc. | Real time on-chip texture decompression using shader processors |
US9705892B2 (en) * | 2014-06-27 | 2017-07-11 | Intel Corporation | Trusted time service for offline mode |
US9684608B2 (en) * | 2014-10-28 | 2017-06-20 | Intel Corporation | Maintaining a secure processing environment across power cycles |
US9710622B2 (en) * | 2015-02-23 | 2017-07-18 | Intel Corporation | Instructions and logic to fork processes of secure enclaves and establish child enclaves in a secure enclave page cache |
US9870467B2 (en) * | 2015-03-27 | 2018-01-16 | Intel Corporation | Apparatus and method for implementing a forked system call in a system with a protected region |
FR3035241B1 (fr) * | 2015-04-16 | 2017-12-22 | Inside Secure | Procede de partage d'une memoire entre au moins deux entites fonctionnelles |
US10664410B2 (en) | 2015-06-18 | 2020-05-26 | Hewlett Packard Enterprise Development Lp | Transmitting contents of an operation field to a media controller |
US9710401B2 (en) | 2015-06-26 | 2017-07-18 | Intel Corporation | Processors, methods, systems, and instructions to support live migration of protected containers |
US10664179B2 (en) | 2015-09-25 | 2020-05-26 | Intel Corporation | Processors, methods and systems to allow secure communications between protected container memory and input/output devices |
US9460011B1 (en) | 2015-12-14 | 2016-10-04 | International Business Machines Corporation | Memory reference estimation method and device based on improved cache |
US9798641B2 (en) * | 2015-12-22 | 2017-10-24 | Intel Corporation | Method to increase cloud availability and silicon isolation using secure enclaves |
US10534724B2 (en) * | 2015-12-24 | 2020-01-14 | Intel Corporation | Instructions and logic to suspend/resume migration of enclaves in a secure enclave page cache |
US10354095B2 (en) | 2016-03-31 | 2019-07-16 | Intel Corporation | Methods and apparatus to initialize enclaves on target processors |
US10346641B2 (en) | 2016-09-23 | 2019-07-09 | Intel Corporation | Processors, methods, systems, and instructions to determine whether to load encrypted copies of protected container pages into protected container memory |
US10180854B2 (en) * | 2016-09-28 | 2019-01-15 | Intel Corporation | Processor extensions to identify and avoid tracking conflicts between virtual machine monitor and guest virtual machine |
US20180095892A1 (en) * | 2016-10-01 | 2018-04-05 | Intel Corporation | Processors, methods, systems, and instructions to determine page group identifiers, and optionally page group metadata, associated with logical memory addresses |
US10120805B2 (en) * | 2017-01-18 | 2018-11-06 | Intel Corporation | Managing memory for secure enclaves |
CN108469986B (zh) * | 2017-02-23 | 2021-04-09 | 华为技术有限公司 | 一种数据迁移方法及装置 |
US10372452B2 (en) * | 2017-03-14 | 2019-08-06 | Samsung Electronics Co., Ltd. | Memory load to load fusing |
US10552153B2 (en) * | 2017-03-31 | 2020-02-04 | Intel Corporation | Efficient range-based memory writeback to improve host to device communication for optimal power and performance |
CN107273138A (zh) * | 2017-07-04 | 2017-10-20 | 杭州铜板街互联网金融信息服务有限公司 | 基于Android业务模块间交互的解耦方法和系统 |
US10534725B2 (en) * | 2017-07-25 | 2020-01-14 | International Business Machines Corporation | Computer system software/firmware and a processor unit with a security module |
CN107392011B (zh) * | 2017-08-22 | 2019-11-22 | 海光信息技术有限公司 | 一种内存页转移方法 |
US10552344B2 (en) * | 2017-12-26 | 2020-02-04 | Intel Corporation | Unblock instruction to reverse page block during paging |
US11126699B2 (en) * | 2018-02-07 | 2021-09-21 | Nec Corporation | Replica trusted execution environment: enabling seamless replication of trusted execution environment (TEE)-based enclaves in the cloud |
US10970390B2 (en) * | 2018-02-15 | 2021-04-06 | Intel Corporation | Mechanism to prevent software side channels |
US10649911B2 (en) * | 2018-03-29 | 2020-05-12 | Intel Corporation | Supporting memory paging in virtualized systems using trust domains |
US11509643B2 (en) | 2018-04-30 | 2022-11-22 | Google Llc | Enclave interactions |
EP3776323A1 (en) | 2018-04-30 | 2021-02-17 | Google LLC | Secure collaboration between processors and processing accelerators in enclaves |
EP3788518A1 (en) * | 2018-04-30 | 2021-03-10 | Google LLC | Managing enclave creation through a uniform enclave interface |
US10725911B2 (en) * | 2018-12-10 | 2020-07-28 | Sap Se | Non-Uniform pagination of columnar data |
EP3646216B1 (en) * | 2019-04-19 | 2021-04-14 | Advanced New Technologies Co., Ltd. | Methods and devices for executing trusted applications on processor with support for protected execution environments |
US11436016B2 (en) * | 2019-12-04 | 2022-09-06 | Advanced Micro Devices, Inc. | Techniques for improving operand caching |
CN113867789A (zh) * | 2020-06-30 | 2021-12-31 | 上海寒武纪信息科技有限公司 | 计算装置、集成电路芯片、板卡、电子设备和计算方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047468A1 (en) * | 1996-07-01 | 2001-11-29 | Sun Microsystems, Inc. | Branch and return on blocked load or store |
JP2003280989A (ja) * | 2002-03-20 | 2003-10-03 | Toshiba Corp | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
WO2004006075A1 (ja) * | 2002-07-09 | 2004-01-15 | Fujitsu Limited | 開放型汎用耐攻撃cpu及びその応用システム |
US20080133842A1 (en) * | 2006-12-05 | 2008-06-05 | Shlomo Raikin | Protected cache architecture and secure programming paradigm to protect applications |
US7475220B1 (en) * | 2003-08-18 | 2009-01-06 | Cray Incorporated | Buffer overflow detection |
JP2012508938A (ja) * | 2008-11-14 | 2012-04-12 | インテル・コーポレーション | セキュアなアプリケーション実行方法および装置 |
US20120163589A1 (en) * | 2010-12-22 | 2012-06-28 | Johnson Simon P | System and method for implementing a trusted dynamic launch and trusted platform module (tpm) using secure enclaves |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6185258B1 (en) * | 1997-09-16 | 2001-02-06 | At&T Wireless Services Inc. | Transmitter diversity technique for wireless communications |
US6539470B1 (en) * | 1999-11-16 | 2003-03-25 | Advanced Micro Devices, Inc. | Instruction decode unit producing instruction operand information in the order in which the operands are identified, and systems including same |
US8074051B2 (en) * | 2004-04-07 | 2011-12-06 | Aspen Acquisition Corporation | Multithreaded processor with multiple concurrent pipelines per thread |
US7657754B2 (en) * | 2005-12-08 | 2010-02-02 | Agere Systems Inc | Methods and apparatus for the secure handling of data in a microcontroller |
US7836320B2 (en) * | 2006-07-07 | 2010-11-16 | Arm Limited | Power management in a data processing apparatus having a plurality of domains in which devices of the data processing apparatus can operate |
US8108659B1 (en) * | 2006-11-03 | 2012-01-31 | Nvidia Corporation | Controlling access to memory resources shared among parallel synchronizable threads |
US8909601B2 (en) * | 2007-11-13 | 2014-12-09 | Oracle America, Inc. | System and method for implementing shared scalable nonzero indicators |
WO2010019916A1 (en) * | 2008-08-14 | 2010-02-18 | The Trustees Of Princeton University | Hardware trust anchors in sp-enabled processors |
US9305189B2 (en) * | 2009-04-14 | 2016-04-05 | Owl Computing Technologies, Inc. | Ruggedized, compact and integrated one-way controlled interface to enforce confidentiality of a secure enclave |
GB2550698B (en) * | 2009-12-22 | 2018-04-11 | Intel Corp | Method and Apparatus to provide secure application execution |
US8677076B2 (en) * | 2010-03-30 | 2014-03-18 | Oracle International Corporation | System and method for tracking references to shared objects using byte-addressable per-thread reference counters |
US8181176B2 (en) * | 2010-06-21 | 2012-05-15 | Intel Corporation | Uniform storage device access using partial virtual machine executing within a secure enclave session |
US8972746B2 (en) * | 2010-12-17 | 2015-03-03 | Intel Corporation | Technique for supporting multiple secure enclaves |
US8954755B2 (en) * | 2012-01-23 | 2015-02-10 | International Business Machines Corporation | Memory address translation-based data encryption with integrated encryption engine |
US9223709B1 (en) * | 2012-03-06 | 2015-12-29 | Marvell International Ltd. | Thread-aware cache memory management |
US20140181484A1 (en) * | 2012-12-21 | 2014-06-26 | James Callister | Mechanism to provide high performance and fairness in a multi-threading computer system |
US9430384B2 (en) | 2013-03-31 | 2016-08-30 | Intel Corporation | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
-
2013
- 2013-03-31 US US13/854,107 patent/US9430384B2/en not_active Expired - Fee Related
-
2014
- 2014-02-18 JP JP2014028162A patent/JP5802290B2/ja active Active
- 2014-03-21 BR BRBR102014006806-6A patent/BR102014006806A2/pt active Search and Examination
- 2014-03-26 KR KR1020140035456A patent/KR101628886B1/ko active IP Right Grant
- 2014-03-28 DE DE102014004563.3A patent/DE102014004563A1/de active Pending
- 2014-03-28 CN CN201410124302.XA patent/CN104484284B/zh active Active
- 2014-03-31 GB GB1405732.7A patent/GB2515611B/en active Active
-
2015
- 2015-04-01 GB GB1515835.5A patent/GB2528796B8/en active Active
- 2015-04-01 GB GB1505638.5A patent/GB2522137B/en active Active
- 2015-04-01 GB GB1601398.9A patent/GB2534037B8/en active Active
- 2015-08-31 JP JP2015170962A patent/JP6344614B2/ja active Active
-
2016
- 2016-08-29 US US15/250,787 patent/US10592421B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20010047468A1 (en) * | 1996-07-01 | 2001-11-29 | Sun Microsystems, Inc. | Branch and return on blocked load or store |
JP2003280989A (ja) * | 2002-03-20 | 2003-10-03 | Toshiba Corp | 内部メモリ型耐タンパプロセッサおよび秘密保護方法 |
WO2004006075A1 (ja) * | 2002-07-09 | 2004-01-15 | Fujitsu Limited | 開放型汎用耐攻撃cpu及びその応用システム |
US7475220B1 (en) * | 2003-08-18 | 2009-01-06 | Cray Incorporated | Buffer overflow detection |
US20080133842A1 (en) * | 2006-12-05 | 2008-06-05 | Shlomo Raikin | Protected cache architecture and secure programming paradigm to protect applications |
JP2012508938A (ja) * | 2008-11-14 | 2012-04-12 | インテル・コーポレーション | セキュアなアプリケーション実行方法および装置 |
US20120163589A1 (en) * | 2010-12-22 | 2012-06-28 | Johnson Simon P | System and method for implementing a trusted dynamic launch and trusted platform module (tpm) using secure enclaves |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9430384B2 (en) | 2013-03-31 | 2016-08-30 | Intel Corporation | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
US10592421B2 (en) | 2013-03-31 | 2020-03-17 | Intel Corporation | Instructions and logic to provide advanced paging capabilities for secure enclave page caches |
US10867092B2 (en) | 2017-12-16 | 2020-12-15 | Intel Corporation | Avoiding asynchronous enclave exits based on requests to invalidate translation lookaside buffer entries |
Also Published As
Publication number | Publication date |
---|---|
GB2528796B (en) | 2016-05-18 |
GB2534037A (en) | 2016-07-13 |
GB2534037B (en) | 2016-10-19 |
GB2515611A (en) | 2014-12-31 |
GB201505638D0 (en) | 2015-05-13 |
US20140297962A1 (en) | 2014-10-02 |
JP6344614B2 (ja) | 2018-06-20 |
US10592421B2 (en) | 2020-03-17 |
US20160371191A1 (en) | 2016-12-22 |
GB2528796B8 (en) | 2018-04-18 |
GB2534037A8 (en) | 2018-04-18 |
GB2534037B8 (en) | 2018-04-18 |
DE102014004563A1 (de) | 2014-10-02 |
CN104484284A (zh) | 2015-04-01 |
JP2014203456A (ja) | 2014-10-27 |
GB2515611B (en) | 2015-06-03 |
KR101628886B1 (ko) | 2016-06-09 |
BR102014006806A2 (pt) | 2014-12-02 |
CN104484284B (zh) | 2017-11-21 |
GB201601398D0 (en) | 2016-03-09 |
US9430384B2 (en) | 2016-08-30 |
GB2528796A8 (en) | 2018-04-18 |
JP5802290B2 (ja) | 2015-10-28 |
GB201405732D0 (en) | 2014-05-14 |
GB201515835D0 (en) | 2015-10-21 |
GB2528796A (en) | 2016-02-03 |
KR20140118862A (ko) | 2014-10-08 |
GB2522137B (en) | 2015-12-02 |
GB2522137A (en) | 2015-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6344614B2 (ja) | セキュアエンクレーブページキャッシュのための進歩したページング能力を提供するための命令および論理 | |
US9990314B2 (en) | Instructions and logic to interrupt and resume paging in a secure enclave page cache | |
CN107209722B (zh) | 处理器、处理系统和用于指令执行的方法 | |
JP6227621B2 (ja) | 複数の試験ソースに対するor試験及びand試験機能を提供するために命令をフュージングする方法及び装置 | |
CN108351839B (zh) | 挂起/恢复飞地页面高速缓存中飞地的迁移的设备和方法 | |
CN108351779B (zh) | 用于安全指令执行流水线的指令和逻辑 | |
KR101842058B1 (ko) | 푸싱형 버퍼 복사 및 저장 기능성을 제공하기 위한 명령어 및 논리 | |
US10346170B2 (en) | Performing partial register write operations in a processor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151008 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170217 |
|
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: 20180424 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6344614 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |