在雲端環境中,無法檢查 BIOS 中的處理器保留記憶體 (PRM),其中包括指定頁面快取記憶體 (EPC)。
無法使用Intel® Software Guard Extensions (Intel® SGX) SDK 來尋找指定位址的可用記憶體。
Intel® Software Guard Extensions (Intel® SGX) SDK 無法提供尋找最大指定位址區大小的方法。Intel® Software Guard Extensions (Intel® SGX) SDK 可讓您使用 Enclave Configuration File 在應用程式中 設定指定 位址區大小。
有兩種方法可以回報處理器上可用的Intel® Software Guard Extensions (Intel® SGX) 功能。兩種選項都會報告 MaxEnclaveSize,即虛擬最大指定位址區大小。實際的最大指定位址大小由 作業系統或記憶體限制決定。
選項 1
在 Linux* 系統 上,在 終端執行 cpuid:
$ cpuid | grep MaxEnclaveSize
選項 2
使用test_sgx.c:
$ gcc test-sgx.c -o test-sgx
$ ./test-sgx
MaxEnclaveSize 的說明
如果MaxEnclaveSize0,則平臺上不會啟用 SGX。
如果啟用 SGX,最常見的輸出是:
MaxEnclaveSize_Not64: 1f
MaxEnclaveSize_64: 24
32 位為 2^(0x1f),64 位指定位址為 2^(0x24)。
請參閱 IA 軟體發展者手冊第 3d第 4 部分 37.7.2 表 37-6 中 CPUID 呼叫退回的值。