例外または割り込みの後でインテル® Software Guard Extensions (インテル® SGX) エンクレーブ・スレッドが別のコアに移動する方法
コンテンツタイプ: 製品情報 & ドキュメント | 記事 ID: 000088863 | 最終改訂日: 2021/12/15
インテル® Software Guard Extensions (インテル® SGX) エンクレーブの論理コア・スイッチング・プロセスを確認できません。
エンクレーブは、論理プロセッサー・コア上で実行されるスレッド制御構造 (TCS)によって定義される特定のスレッド内で実行されます。すべての命令は TCS のコンテキスト内で実行され、アプリケーションごとに複数の TCS が存在する可能性があります。非同期 Enclave Exit (AEX) 命令が、エンクレーブを実行している特定の論理コアに発行されます。分離実行のための革新的な命令とソフトウェア・モデルのエンクレーブのエントリーとエグジットの章では、このプロセスを完全に説明します。
「EENTER 命令は、プログラムが制御するエンクレーブに入る方法です。EENTER を実行するには、ソフトウェアが入力するエンクレーブの一部である TCS のアドレスを提供する必要があります。TCS とは、コントロールを転送するエンクレーブ内の位置と、エンクレーブ AEX 内のレジスター状態を格納する位置を示します。論理プロセッサーがエンクレーブに入ると、論理プロセッサーがエンクレーブを終了するまで TCS は使用中と見なされます。SGX では、エンクレーブ・ビルダーが複数の TCS 構造を定義できるため、マルチスレッド・エンクレーブをサポートします....AEX 後に実行を再開: システム・ソフトウェアがエンクレーブを終了させるイベントにサービスを提供した後、論理プロセッサーは ERESTIUM を使用して実行を再開できます。」